/* 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) */
/* hermoine-speaks – statue awakening in a quiet hall */
.scn-hermione-speaks {
  background:
    radial-gradient(ellipse at 50% 60%, #c8a87a 0%, #7a5a3a 60%, #2a1a0a 100%) padding-box,
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%) padding-box;
}
.scn-hermione-speaks .back-wall {
  position: absolute;
  inset: 10% 10% 20% 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 60px rgba(0,0,0,.6), 0 0 20px rgba(200,168,122,.2);
  animation: hs-back 20s ease-in-out infinite alternate;
}
.scn-hermione-speaks .column-l {
  position: absolute;
  left: 14%;
  top: 8%;
  width: 12%;
  height: 72%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 100%);
  border-radius: 10% / 4%;
  box-shadow: 6px 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: hs-column 30s ease-in-out infinite alternate;
}
.scn-hermione-speaks .column-r {
  position: absolute;
  right: 14%;
  top: 8%;
  width: 12%;
  height: 72%;
  background: linear-gradient(270deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 100%);
  border-radius: 10% / 4%;
  box-shadow: -6px 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: hs-column 30s ease-in-out infinite alternate-reverse;
}
.scn-hermione-speaks .pedestal {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 30%;
  height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 8px 30px rgba(0,0,0,.7);
}
.scn-hermione-speaks .statue {
  position: absolute;
  bottom: 26%;
  left: 50%;
  width: 12%;
  height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c4b4 0%, #a09484 40%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.3), inset 0 -20px 40px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: hs-statue 12s ease-in-out infinite alternate;
}
.scn-hermione-speaks .statue-arm {
  position: absolute;
  bottom: 48%;
  left: 38%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #d4c4b4 0%, #8a7a6a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: top center;
  transform: rotate(-20deg);
  box-shadow: 0 2px 10px rgba(0,0,0,.2);
  animation: hs-arm 10s ease-in-out infinite alternate;
}
.scn-hermione-speaks .glow-spot {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 40%;
  height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(255,200,120,.15) 0%, transparent 80%);
  filter: blur(20px);
  animation: hs-glow 8s ease-in-out infinite alternate;
}
.scn-hermione-speaks .candle-flame {
  position: absolute;
  bottom: 24%;
  left: 22%;
  width: 3%;
  height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ff8840 40%, #cc4400 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,120,.4), 0 0 60px 20px rgba(255,200,120,.15);
  animation: hs-flame 3s ease-in-out infinite alternate;
}
.scn-hermione-speaks .particle {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 2%;
  height: 2%;
  background: radial-gradient(circle, rgba(255,220,160,.8) 0%, transparent 70%);
  border-radius: 50%;
  animation: hs-particle 6s ease-in-out infinite;
}
@keyframes hs-back { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes hs-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(.995) } }
@keyframes hs-statue { 0% { transform: translateX(-50%) rotate(0) scaleY(1) } 50% { transform: translateX(-50%) rotate(.5deg) scaleY(1.005) } 100% { transform: translateX(-50%) rotate(-.3deg) scaleY(.998) } }
@keyframes hs-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-22deg) } }
@keyframes hs-glow { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes hs-flame { 0% { transform: scaleY(1) rotate(-3deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(.95) rotate(-1deg) } }
@keyframes hs-particle { 0% { transform: translate(0,0) opacity:.6 } 50% { transform: translate(10px,-20px) opacity:.9 } 100% { transform: translate(20px,5px) opacity:.4 } }

/* perdisa-reunion – embrace in a warm chamber */
.scn-perdisa-reunion {
  background:
    radial-gradient(ellipse at 50% 50%, #a08060 0%, #5a3a2a 70%, #1a0a00 100%) padding-box,
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%) padding-box;
}
.scn-perdisa-reunion .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-perdisa-reunion .tapestry {
  position: absolute;
  top: 8%;
  left: 15%;
  width: 70%;
  height: 55%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 4px 20px rgba(0,0,0,.3);
  animation: pr-tapestry 25s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .figure-l {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 14%;
  height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pr-figure-l 8s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .figure-r {
  position: absolute;
  bottom: 22%;
  right: 38%;
  width: 14%;
  height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pr-figure-r 8s ease-in-out infinite alternate-reverse;
}
.scn-perdisa-reunion .embrace-hands {
  position: absolute;
  bottom: 50%;
  left: 50%;
  width: 4%;
  height: 10%;
  transform: translate(-50%,0);
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 10px rgba(160,128,96,.3);
  animation: pr-hands 6s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .torch-fire {
  position: absolute;
  bottom: 35%;
  right: 12%;
  width: 4%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #ffb060 0%, #cc5500 50%, #662200 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,176,96,.4), 0 0 80px 30px rgba(255,176,96,.15);
  animation: pr-torch 3s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .pool-light {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 30%;
  height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(255,200,120,.12) 0%, transparent 100%);
  filter: blur(15px);
  animation: pr-pool 10s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .dust-mote {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 1.5%;
  height: 1.5%;
  background: radial-gradient(circle, rgba(255,220,160,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: pr-mote 12s ease-in-out infinite;
}
@keyframes pr-tapestry { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.88 } }
@keyframes pr-figure-l { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-.5deg) } }
@keyframes pr-figure-r { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(1px) rotate(.5deg) } }
@keyframes pr-hands { 0% { transform: translate(-50%,0) scaleY(1) } 50% { transform: translate(-50%,-2px) scaleY(1.05) } 100% { transform: translate(-50%,1px) scaleY(.98) } }
@keyframes pr-torch { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.12) rotate(2deg) } 100% { transform: scaleY(.95) rotate(-1deg) } }
@keyframes pr-pool { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes pr-mote { 0% { transform: translate(0,0) opacity:.3 } 50% { transform: translate(15px,-10px) opacity:.8 } 100% { transform: translate(30px,5px) opacity:.2 } }

/* final-procession – a ceremonial walk under an arch */
.scn-final-procession {
  background:
    radial-gradient(ellipse at 50% 50%, #a08060 0%, #4a2a1a 70%, #1a0a00 100%) padding-box,
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%) padding-box;
}
.scn-final-procession .arch-bg {
  position: absolute;
  top: 4%;
  left: 12%;
  width: 76%;
  height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 60px rgba(0,0,0,.5), 0 0 30px rgba(0,0,0,.3);
  animation: fp-arch 30s ease-in-out infinite alternate;
}
.scn-final-procession .floor-tile {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 22%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-final-procession .figure-a {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 12%;
  height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: fp-figure-a 10s ease-in-out infinite alternate;
}
.scn-final-procession .figure-b {
  position: absolute;
  bottom: 18%;
  left: 44%;
  width: 14%;
  height: 44%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: fp-figure-b 12s ease-in-out infinite alternate-reverse;
}
.scn-final-procession .figure-c {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 12%;
  height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: fp-figure-c 9s ease-in-out infinite alternate;
}
.scn-final-procession .torch {
  position: absolute;
  bottom: 32%;
  right: 18%;
  width: 3%;
  height: 18%;
  background: radial-gradient(ellipse at 50% 25%, #ffa050 0%, #cc4400 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,160,80,.4), 0 0 60px 20px rgba(255,160,80,.15);
  animation: fp-torch 4s ease-in-out infinite alternate;
}
.scn-final-procession .banner {
  position: absolute;
  top: 14%;
  left: 20%;
  width: 18%;
  height: 30%;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,.3);
  transform-origin: top center;
  animation: fp-banner 8s ease-in-out infinite alternate;
}
.scn-final-procession .star-dust {
  position: absolute;
  top: 8%;
  left: 40%;
  width: 2%;
  height: 2%;
  background: radial-gradient(circle, rgba(255,220,160,.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: fp-dust 15s ease-in-out infinite;
}
@keyframes fp-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(.995) } }
@keyframes fp-figure-a { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(.5deg) } 100% { transform: translateX(-2px) rotate(-.3deg) } }
@keyframes fp-figure-b { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-.5deg) } 100% { transform: translateX(3px) rotate(.3deg) } }
@keyframes fp-figure-c { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(.4deg) } 100% { transform: translateX(-1px) rotate(-.2deg) } }
@keyframes fp-torch { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.08) rotate(2deg) } 100% { transform: scaleY(.96) rotate(-1deg) } }
@keyframes fp-banner { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0) } 100% { transform: rotate(2deg) } }
@keyframes fp-dust { 0% { transform: translate(0,0) opacity:.4 } 50% { transform: translate(12px,-8px) opacity:.8 } 100% { transform: translate(24px,4px) opacity:.2 } }

.scn-statue-description {
  background: linear-gradient(180deg, #d4b890 0%, #c8a070 40%, #b08860 100%);
}
.scn-statue-description .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b890 80%, transparent 100%);
  animation: st-bg 12s ease-in-out infinite alternate;
}
.scn-statue-description .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 0 0;
}
.scn-statue-description .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-statue-description .statue {
  position: absolute; bottom: calc(20% + 40px); left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: st-statue 8s ease-in-out infinite;
}
.scn-statue-description .window-light {
  position: absolute; top: 10%; left: 20%; width: 150px; height: 200px;
  background: radial-gradient(ellipse at center, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: st-light 6s ease-in-out infinite alternate;
}
.scn-statue-description .shadow {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.2); border-radius: 50%;
  filter: blur(6px);
  animation: st-shadow 8s ease-in-out infinite;
}
.scn-statue-description .figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure 10s ease-in-out infinite;
}

@keyframes st-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes st-statue { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes st-light { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes st-shadow { 0%,100% { transform: translateX(-50%) scale(1); opacity: 0.2 } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.3 } }
@keyframes st-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }

.scn-gentlemen-exit {
  background: linear-gradient(180deg, #c8a880 0%, #b09060 50%, #a08050 100%), radial-gradient(ellipse at 50% 100%, #b09060 0%, transparent 70%);
}
.scn-gentlemen-exit .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0c8a8 0%, #c8b090 80%, transparent 100%);
  animation: ge-bg 14s ease-in-out infinite alternate;
}
.scn-gentlemen-exit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #907050 0%, #705040 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-gentlemen-exit .doorway {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-gentlemen-exit .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-walk-left 5s ease-in-out infinite;
}
.scn-gentlemen-exit .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-walk-right 5s ease-in-out infinite 1s;
}
.scn-gentlemen-exit .lamp {
  position: absolute; bottom: 40%; left: 15%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 4px;
}
.scn-gentlemen-exit .lamp-glow {
  position: absolute; bottom: 38%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  transform: translate(-50%, 50%);
  animation: ge-glow 3s ease-in-out infinite alternate;
}

@keyframes ge-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ge-walk-left { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes ge-walk-right { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-10px) rotate(-1deg) } 50% { transform: translateX(-20px) rotate(1deg) } 75% { transform: translateX(-30px) rotate(-1deg) } 100% { transform: translateX(-40px) rotate(0) } }
@keyframes ge-glow { 0% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.9) } 50% { opacity: 1; transform: translate(-50%, 50%) scale(1.2) } 100% { opacity: 0.6; transform: translate(-50%, 50%) scale(1) } }

.scn-autolycus-scheming {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #90ee90 0%, transparent 60%);
}
.scn-autolycus-scheming .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0f0 0%, #87ceeb 100%);
  animation: au-sky 20s ease-in-out infinite alternate;
}
.scn-autolycus-scheming .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #90ee90 0%, #32cd32 100%);
  border-radius: 30% 70% 0 0;
}
.scn-autolycus-scheming .autolycus {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au-dance 3s ease-in-out infinite;
}
.scn-autolycus-scheming .hat {
  position: absolute; bottom: calc(25% + 90px); left: 35%; width: 60px; height: 20px;
  transform: translateX(-5px);
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: au-hat 3s ease-in-out infinite 0.5s;
}
.scn-autolycus-scheming .bag {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top left;
  animation: au-bag 4s ease-in-out infinite;
}
.scn-autolycus-scheming .coin-a {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  animation: au-coin-a 2s ease-in-out infinite alternate;
}
.scn-autolycus-scheming .coin-b {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  animation: au-coin-b 2.5s ease-in-out infinite alternate 0.7s;
}

@keyframes au-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes au-dance { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(10px) rotate(-5deg) } 75% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes au-hat { 0%,100% { transform: translateX(-5px) rotate(0deg) } 50% { transform: translateX(-5px) rotate(15deg) } }
@keyframes au-bag { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-10deg) } }
@keyframes au-coin-a { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-15px) scale(0.5) rotate(180deg) } }
@keyframes au-coin-b { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-20px) scale(0.4) rotate(-180deg) } }

.scn-shepherd-clown-entry {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #90ee90 100%), radial-gradient(ellipse at 50% 100%, #32cd32 0%, transparent 70%);
}
.scn-shepherd-clown-entry .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-shepherd-clown-entry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #90ee90 0%, #228b22 100%);
  border-radius: 20% 80% 0 0;
}
.scn-shepherd-clown-entry .shepherd {
  position: absolute; bottom: 25%; left: 20%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-walk-shepherd 6s ease-in-out infinite;
}
.scn-shepherd-clown-entry .clown {
  position: absolute; bottom: 25%; right: 20%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #ffb347 0%, #cc7722 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-walk-clown 6s ease-in-out infinite 0.5s;
}
.scn-shepherd-clown-entry .path {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10px;
  background: linear-gradient(180deg, #cc9966 0%, #a0724a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sc-path 8s ease-in-out infinite alternate;
}
.scn-shepherd-clown-entry .bush {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at center, #228b22 0%, #006400 100%);
  border-radius: 50%;
  animation: sc-bush 12s ease-in-out infinite;
}

@keyframes sc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sc-walk-shepherd { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-2deg) } 75% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes sc-walk-clown { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-10px) rotate(-2deg) } 50% { transform: translateX(-20px) rotate(2deg) } 75% { transform: translateX(-30px) rotate(-2deg) } 100% { transform: translateX(-40px) rotate(0deg) } }
@keyframes sc-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes sc-bush { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } }

.scn-leontes-remembers-wooing {
  background: linear-gradient(180deg, #f0d5b0 0%, #e8b880 40%, #d48a50 100%), radial-gradient(ellipse at 50% 30%, #ffecb0 0%, transparent 70%);
}
.scn-leontes-remembers-wooing .bg-ambient {
  position: absolute; inset: 0; background: radial-gradient(circle at 70% 40%, #ffeabe 0%, #eac492 60%, #c97e3a 100%); animation: lrw-ambient 12s ease-in-out infinite alternate;
}
.scn-leontes-remembers-wooing .window-sun {
  position: absolute; top: 12%; left: 65%; width: 140px; height: 200px; background: linear-gradient(135deg, #fff8e0 0%, #ffe080 60%, #ffc860 100%); border-radius: 4px; box-shadow: 0 0 60px 30px rgba(255,200,96,0.3); animation: lrw-sunbeam 8s ease-in-out infinite alternate;
}
.scn-leontes-remembers-wooing .figure-leontes {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 100px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrw-leontes 6s ease-in-out infinite;
}
.scn-leontes-remembers-wooing .figure-hermione {
  position: absolute; bottom: 20%; left: 44%; width: 36px; height: 90px; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: lrw-hermione 7s ease-in-out infinite;
}
.scn-leontes-remembers-wooing .hand-reach {
  position: absolute; bottom: 38%; left: 36%; width: 24px; height: 14px; background: linear-gradient(90deg, #5a3a2a 0%, #7a4a3a 100%); border-radius: 50%; transform-origin: left center; animation: lrw-handreach 6s ease-in-out infinite;
}
.scn-leontes-remembers-wooing .glow-memory {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, rgba(255,230,180,0.3) 0%, transparent 70%); pointer-events: none; animation: lrw-glowmem 9s ease-in-out infinite;
}
@keyframes lrw-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lrw-sunbeam { 0% { transform: scaleY(1) translateY(0); opacity: 0.7; } 50% { transform: scaleY(1.04) translateY(-4px); opacity: 1; } 100% { transform: scaleY(0.98) translateY(2px); opacity: 0.8; } }
@keyframes lrw-leontes { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrw-hermione { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.02); } 100% { transform: translateX(-1px) scaleY(0.98); } }
@keyframes lrw-handreach { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(10px) rotate(10deg); } 80% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrw-glowmem { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-leontes-jealousy-aside {
  background: linear-gradient(180deg, #c87a4a 0%, #a05030 40%, #6a2a1a 100%), radial-gradient(ellipse at 40% 50%, #d08a5a 0%, transparent 60%);
}
.scn-leontes-jealousy-aside .bg-unease {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 40%, #d49a5a 0%, #b06838 60%, #7a3018 100%); animation: lja-unease 4s ease-in-out infinite alternate;
}
.scn-leontes-jealousy-aside .sharp-light {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(135deg, rgba(255,220,160,0.6) 0%, rgba(200,120,60,0.2) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: lja-sharp 3s ease-in-out infinite alternate;
}
.scn-leontes-jealousy-aside .figure-leontes-aside {
  position: absolute; bottom: 12%; left: 35%; width: 44px; height: 110px; background: linear-gradient(180deg, #4a2a1a 0%, #2a100a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: lja-figure 2s ease-in-out infinite;
}
.scn-leontes-jealousy-aside .chest-clutch {
  position: absolute; bottom: 40%; left: 40%; width: 16px; height: 20px; background: linear-gradient(180deg, #6a3a2a 0%, #4a2010 100%); border-radius: 40% 40% 30% 30%; animation: lja-clutch 1.5s ease-in-out infinite;
}
.scn-leontes-jealousy-aside .shadow-throb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(0deg, rgba(20,10,5,0.4) 0%, transparent 100%); animation: lja-throb 2s ease-in-out infinite;
}
.scn-leontes-jealousy-aside .edge-flicker {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(200,80,40,0.15) 0%, transparent 70%); animation: lja-flicker 1.6s steps(2) infinite;
}
@keyframes lja-unease { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes lja-sharp { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(0.95); } }
@keyframes lja-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lja-clutch { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes lja-throb { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.2; } }
@keyframes lja-flicker { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

.scn-camillo-defends-honesty {
  background: linear-gradient(180deg, #d09a6a 0%, #b07848 40%, #804020 100%), radial-gradient(ellipse at 60% 40%, #e0b080 0%, transparent 60%);
}
.scn-camillo-defends-honesty .bg-tense {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 50%, #d4a060 0%, #b06830 60%, #7a3018 100%); animation: cdh-tense 5s ease-in-out infinite alternate;
}
.scn-camillo-defends-honesty .table-divide {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 8px; background: linear-gradient(90deg, #6a3a1a 0%, #8a4a2a 50%, #6a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cdh-table 7s ease-in-out infinite;
}
.scn-camillo-defends-honesty .figure-camillo {
  position: absolute; bottom: 15%; left: 22%; width: 38px; height: 100px; background: linear-gradient(180deg, #4a2a1a 0%, #2a100a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: cdh-camillo 4s ease-in-out infinite;
}
.scn-camillo-defends-honesty .figure-leontes-defiant {
  position: absolute; bottom: 15%; right: 22%; width: 42px; height: 105px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdh-leontes 3s ease-in-out infinite;
}
.scn-camillo-defends-honesty .hand-outstretched {
  position: absolute; bottom: 35%; left: 32%; width: 30px; height: 12px; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 100%); border-radius: 50%; transform-origin: left center; animation: cdh-hand 4s ease-in-out infinite;
}
.scn-camillo-defends-honesty .light-jag {
  position: absolute; top: 0; left: 0; right: 0; height: 100%; background: linear-gradient(135deg, rgba(255,200,120,0.4) 0%, transparent 50%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: cdh-lightjag 3s ease-in-out infinite alternate;
}
@keyframes cdh-tense { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes cdh-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cdh-camillo { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdh-leontes { 0% { transform: rotate(0deg) scaleY(1); } 40% { transform: rotate(-3deg) scaleY(1.02); } 80% { transform: rotate(2deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cdh-hand { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(12px) rotate(15deg); } 80% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdh-lightjag { 0% { opacity: 0.3; transform: skewX(0deg); } 50% { opacity: 0.7; transform: skewX(2deg); } 100% { opacity: 0.2; transform: skewX(-1deg); } }

.scn-leontes-accuses-wife {
  background: linear-gradient(180deg, #402010 0%, #602818 40%, #301008 100%), radial-gradient(ellipse at 50% 40%, #803020 0%, transparent 70%);
}
.scn-leontes-accuses-wife .bg-accusation {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 30%, #5a2a18 0%, #3a180c 60%, #1a0804 100%); animation: law-bg 10s ease-in-out infinite alternate;
}
.scn-leontes-accuses-wife .window-barred {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 120px; background: linear-gradient(180deg, #806050 0%, #604030 100%); border: 4px solid #3a2010; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); border-radius: 2px; animation: law-window 14s ease-in-out infinite;
}
.scn-leontes-accuses-wife .figure-leontes-accuse {
  position: absolute; bottom: 12%; left: 28%; width: 48px; height: 115px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0800 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: law-leontes 5s ease-in-out infinite;
}
.scn-leontes-accuses-wife .figure-hermione-silent {
  position: absolute; bottom: 18%; right: 25%; width: 34px; height: 90px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: law-hermione 8s ease-in-out infinite;
}
.scn-leontes-accuses-wife .hand-point {
  position: absolute; bottom: 42%; left: 36%; width: 28px; height: 10px; background: linear-gradient(90deg, #3a1a0a 0%, #5a2a1a 100%); border-radius: 50%; transform-origin: left center; animation: law-handpoint 5s ease-in-out infinite;
}
.scn-leontes-accuses-wife .shadow-creep {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(10,0,0,0.6) 100%); animation: law-shadow 12s ease-in-out infinite;
}
@keyframes law-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes law-window { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes law-leontes { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(4px) rotate(5deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes law-hermione { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(0.96); } 100% { transform: translateX(0) scale(1); } }
@keyframes law-handpoint { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(18px) rotate(25deg); } 70% { transform: translateX(8px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes law-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }

/* Scene 1: leontes-desire */
.scn-leontes-desire {
  background:
    linear-gradient(to bottom, #4a3020 0%, #2a1a10 40%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 50%, #6a4030 0%, transparent 70%);
}
.scn-leontes-desire .ld-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(80,50,30,.6) 0%, transparent 50%, rgba(20,10,5,.4) 100%); }
.scn-leontes-desire .ld-wall { position:absolute; inset:10% 15% 0 10%; background: linear-gradient(180deg, #3a2518 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: ld-wall 8s ease-in-out infinite alternate; }
.scn-leontes-desire .ld-window { position:absolute; top:15%; left:20%; width:18%; height:30%; background: radial-gradient(ellipse at center, #d4a060 0%, #a07040 60%, transparent 80%); border: 3px solid #2a1a0e; border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 10px rgba(200,150,80,.3); animation: ld-glow 6s ease-in-out infinite; }
.scn-leontes-desire .ld-figure { position:absolute; bottom:20%; left:35%; width:12%; height:50%; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ld-figure 4s ease-in-out infinite; }
.scn-leontes-desire .ld-hand { position:absolute; bottom:40%; left:50%; width:8%; height:10%; background: linear-gradient(135deg, #3a2518 0%, #1a0e08 100%); border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%; transform: rotate(-20deg); animation: ld-hand 3s ease-in-out infinite; }
.scn-leontes-desire .ld-candle { position:absolute; bottom:30%; left:60%; width:3%; height:20%; background: linear-gradient(180deg, #8a6a40 0%, #4a3020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 2px #6a4030; }
.scn-leontes-desire .ld-flame { position:absolute; bottom:50%; left:60.8%; width:1.5%; height:6%; background: radial-gradient(ellipse at 50% 0, #ffc080 0%, #ff8020 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #ff8020, 0 0 40px 15px rgba(255,128,32,.3); animation: ld-flame 2s ease-in-out infinite alternate; }
.scn-leontes-desire .ld-shadow { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: ld-shadow 8s ease-in-out infinite; }

@keyframes ld-wall { 0% { opacity:.7; } 50% { opacity:.85; } 100% { opacity:.7; } }
@keyframes ld-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.6; transform: scale(1); } }
@keyframes ld-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ld-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5%); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ld-flame { 0% { transform: scaleY(1) rotate(0deg); opacity:.8; } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1; } 100% { transform: scaleY(1) rotate(0deg); opacity:.8; } }
@keyframes ld-shadow { 0% { transform: scaleX(1); opacity:.4; } 50% { transform: scaleX(1.2); opacity:.6; } 100% { transform: scaleX(1); opacity:.4; } }

/* Scene 2: paulina-spell */
.scn-paulina-spell {
  background:
    linear-gradient(to bottom, #2a1a2a 0%, #1a0a1a 40%, #0a020a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-paulina-spell .ps-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(30,20,30,.5) 0%, transparent 50%, rgba(10,5,10,.7) 100%); }
.scn-paulina-spell .ps-circle { position:absolute; bottom:20%; left:50%; width:40%; height:50%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #4a2a4a 0%, transparent 70%); border-radius: 50%; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: ps-circle 12s ease-in-out infinite alternate; }
.scn-paulina-spell .ps-figure { position:absolute; bottom:15%; left:35%; width:15%; height:55%; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-figure 5s ease-in-out infinite; }
.scn-paulina-spell .ps-arm { position:absolute; bottom:40%; left:50%; width:10%; height:25%; background: linear-gradient(135deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: top left; animation: ps-arm 3s ease-in-out infinite; }
.scn-paulina-spell .ps-wand { position:absolute; bottom:55%; left:55%; width:2%; height:25%; background: linear-gradient(180deg, #6a4a6a 0%, #2a1a2a 100%); border-radius: 10%; transform: rotate(-30deg); box-shadow: 0 0 8px #8a6a8a; }
.scn-paulina-spell .ps-sparkle { position:absolute; bottom:70%; left:55%; width:3%; height:3%; background: radial-gradient(circle, #c0a0c0 0%, #805080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px #a060a0, 0 0 40px 20px rgba(160,96,160,.5); animation: ps-sparkle 1.5s ease-in-out infinite alternate; }
.scn-paulina-spell .ps-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0a1a 0%, #0a020a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }

@keyframes ps-circle { 0% { transform: translateX(-50%) scale(1); opacity:.5; } 50% { transform: translateX(-50%) scale(1.1); opacity:.8; } 100% { transform: translateX(-50%) scale(1); opacity:.5; } }
@keyframes ps-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2%) rotate(1deg); } 60% { transform: translateY(1%) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-20deg); } }
@keyframes ps-sparkle { 0% { transform: scale(0.5); opacity:.3; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(0.5); opacity:.3; } }

/* Scene 3: item-statue-hermione */
.scn-item-statue-hermione {
  background:
    linear-gradient(to bottom, #1a1a2a 0%, #0e0e1e 40%, #05050a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-item-statue-hermione .sh-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,20,40,.4) 0%, transparent 50%, rgba(10,10,20,.6) 100%); }
.scn-item-statue-hermione .sh-pedestal { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:20%; height:15%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px rgba(0,0,0,.7); }
.scn-item-statue-hermione .sh-statue { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:16%; height:50%; background: linear-gradient(180deg, #c0c0d0 0%, #a0a0b8 40%, #707088 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(200,200,220,.3); animation: sh-statue 8s ease-in-out infinite alternate; }
.scn-item-statue-hermione .sh-drape { position:absolute; bottom:30%; left:43%; width:25%; height:20%; background: linear-gradient(180deg, #b0a0b0 0%, #706070 100%); border-radius: 20% 50% 30% 40% / 30% 40% 20% 50%; transform: rotate(-10deg); animation: sh-drape 6s ease-in-out infinite; }
.scn-item-statue-hermione .sh-light { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:30%; height:40%; background: radial-gradient(ellipse at 50% 0, rgba(255,255,200,.3) 0%, transparent 70%); mix-blend-mode: overlay; animation: sh-light 10s ease-in-out infinite alternate; }
.scn-item-statue-hermione .sh-shadow { position:absolute; bottom:10%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 60%); border-radius: 50%; filter: blur(4px); animation: sh-shadow 12s ease-in-out infinite; }
.scn-item-statue-hermione .sh-glow { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,200,255,.15) 0%, transparent 70%); mix-blend-mode: screen; animation: sh-glow 5s ease-in-out infinite alternate; }

@keyframes sh-statue { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2%); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sh-drape { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1%); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sh-light { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes sh-shadow { 0% { transform: scaleX(1); opacity:.4; } 50% { transform: scaleX(1.2); opacity:.6; } 100% { transform: scaleX(1); opacity:.4; } }
@keyframes sh-glow { 0% { opacity:.1; transform: scale(0.9); } 50% { opacity:.3; transform: scale(1.1); } 100% { opacity:.1; transform: scale(0.9); } }

/* Scene 4: hermione-embraces */
.scn-hermione-embraces {
  background:
    linear-gradient(to bottom, #2a1a10 0%, #1a0e08 40%, #0a0502 100%),
    radial-gradient(ellipse at 50% 50%, #4a3020 0%, transparent 70%);
}
.scn-hermione-embraces .he-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(60,30,15,.5) 0%, transparent 50%, rgba(20,10,5,.6) 100%); }
.scn-hermione-embraces .he-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-hermione-embraces .he-figure-left { position:absolute; bottom:20%; left:30%; width:15%; height:55%; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-left 4s ease-in-out infinite; }
.scn-hermione-embraces .he-figure-right { position:absolute; bottom:20%; right:30%; width:15%; height:55%; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-right 4s ease-in-out infinite reverse; }
.scn-hermione-embraces .he-arms { position:absolute; bottom:40%; left:35%; width:30%; height:15%; background: linear-gradient(135deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-5deg); animation: he-arms 6s ease-in-out infinite alternate; }
.scn-hermione-embraces .he-heart { position:absolute; bottom:50%; left:50%; transform:translate(-50%,50%); width:8%; height:8%; background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,.4); animation: he-heart 3s ease-in-out infinite alternate; }
.scn-hermione-embraces .he-light { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:40%; height:50%; background: radial-gradient(ellipse at 50% 0, rgba(255,200,100,.2) 0%, transparent 70%); mix-blend-mode: overlay; animation: he-light 8s ease-in-out infinite alternate; }

@keyframes he-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he-arms { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes he-heart { 0% { transform: translate(-50%,50%) scale(0.8); opacity:.7; } 50% { transform: translate(-50%,50%) scale(1.1); opacity:1; } 100% { transform: translate(-50%,50%) scale(0.8); opacity:.7; } }
@keyframes he-light { 0% { opacity:.15; } 50% { opacity:.35; } 100% { opacity:.15; } }

/* scene 1: antigonus-daughters-view */
.scn-antigonus-daughters-view {
  background:
    linear-gradient(180deg, #c8b88a 0%, #a08860 40%, #705040 100%),
    radial-gradient(ellipse at 60% 30%, #e8d8c0 0%, transparent 70%);
}
.scn-antigonus-daughters-view .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 40%, #b8a888 100%); }
.scn-antigonus-daughters-view .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #786048 0%, #584830 100%); border-radius: 20% 10% 0 0 / 10% 5% 0 0; }
.scn-antigonus-daughters-view .window { position:absolute; top:15%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #a8c8e0 0%, #80a8c0 60%, #406080 100%); border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(160,200,224,.4), 0 4px 12px rgba(0,0,0,.3); animation: anti-window 8s ease-in-out infinite alternate; }
.scn-antigonus-daughters-view .candle { position:absolute; bottom:40%; left:35%; width:8px; height:20px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px #f0d0a0, 0 0 32px 12px rgba(240,208,160,.4); animation: anti-candle 3s ease-in-out infinite alternate; }
.scn-antigonus-daughters-view .figure { position:absolute; bottom:30%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: anti-figure 6s ease-in-out infinite; }
.scn-antigonus-daughters-view .shadow { position:absolute; bottom:35%; left:30%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: anti-shadow 6s ease-in-out infinite; }
@keyframes anti-window { 0% { box-shadow: inset 0 0 20px rgba(160,200,224,.4), 0 4px 12px rgba(0,0,0,.3); } 50% { box-shadow: inset 0 0 30px rgba(160,200,224,.6), 0 4px 14px rgba(0,0,0,.4); } 100% { box-shadow: inset 0 0 20px rgba(160,200,224,.4), 0 4px 12px rgba(0,0,0,.3); } }
@keyframes anti-candle { 0% { transform: scaleY(1) translateX(0); box-shadow: 0 0 16px 6px #f0d0a0; } 50% { transform: scaleY(1.05) translateX(1px); box-shadow: 0 0 22px 8px #f0d0a0; } 100% { transform: scaleY(1) translateX(0); box-shadow: 0 0 16px 6px #f0d0a0; } }
@keyframes anti-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes anti-shadow { 0% { width:40px; opacity:.6; } 50% { width:45px; opacity:.4; } 100% { width:40px; opacity:.6; } }

/* scene 2: leontes-insists */
.scn-leontes-insists {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #b09880 0%, transparent 60%);
}
.scn-leontes-insists .wall-left { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-leontes-insists .wall-right { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-leontes-insists .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-leontes-insists .throne { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: leo1-throne 10s ease-in-out infinite alternate; }
.scn-leontes-insists .hand { position:absolute; bottom:30%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: leo1-hand 2s ease-in-out infinite; }
.scn-leontes-insists .glow { position:absolute; top:10%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #f0e0c0 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,224,192,.3); animation: leo1-glow 4s ease-in-out infinite alternate; }
.scn-leontes-insists .chain { position:absolute; bottom:40%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: leo1-chain 3s ease-in-out infinite; }
@keyframes leo1-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes leo1-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes leo1-glow { 0% { opacity:.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.2); } 100% { opacity:.7; transform: translateX(-50%) scale(1); } }
@keyframes leo1-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* scene 3: leontes-orders-oracle */
.scn-leontes-orders-oracle {
  background:
    linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 40%, #c0b0a0 0%, transparent 50%);
}
.scn-leontes-orders-oracle .pillar-left { position:absolute; top:0; left:15%; width:30px; height:100%; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 40%, #8a7a6a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-leontes-orders-oracle .pillar-right { position:absolute; top:0; right:15%; width:30px; height:100%; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 40%, #8a7a6a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-leontes-orders-oracle .altar { position:absolute; bottom:30%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-leontes-orders-oracle .scroll { position:absolute; bottom:30%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: leo2-scroll 5s ease-in-out infinite alternate; }
.scn-leontes-orders-oracle .flame { position:absolute; bottom:30%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #ffb060, 0 0 40px 12px rgba(255,176,96,.3); animation: leo2-flame 1.5s ease-in-out infinite alternate; }
.scn-leontes-orders-oracle .figure { position:absolute; bottom:30%; left:35%; width:28px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: leo2-figure 8s ease-in-out infinite; }
.scn-leontes-orders-oracle .veil { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(200,180,160,.2) 0%, transparent 100%); filter: blur(8px); animation: leo2-veil 12s ease-in-out infinite alternate; }
@keyframes leo2-scroll { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes leo2-flame { 0% { transform: translateX(-50%) scaleY(1); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.3); opacity:1; } 100% { transform: translateX(-50%) scaleY(1); opacity:.8; } }
@keyframes leo2-figure { 0% { transform: translateX(0); } 25% { transform: translateX(3px); } 50% { transform: translateX(0); } 75% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes leo2-veil { 0% { opacity:.2; transform: translateY(0); } 50% { opacity:.4; transform: translateY(-5px); } 100% { opacity:.2; transform: translateY(0); } }

/* scene 4: item-oracle-mission */
.scn-item-oracle-mission {
  background:
    linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #6a6a9a 0%, transparent 50%);
}
.scn-item-oracle-mission .chamber { position:absolute; inset:10% 10% 10% 10%; background: linear-gradient(135deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 20%; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-item-oracle-mission .pedestal { position:absolute; bottom:25%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-item-oracle-mission .orb { position:absolute; bottom:30%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #c0e0ff 0%, #80a0d0 50%, #4060a0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #80a0d0, 0 0 60px 20px rgba(128,160,208,.4); animation: ora-orb 4s ease-in-out infinite alternate; }
.scn-item-oracle-mission .base-glow { position:absolute; bottom:25%; left:50%; width:80px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(128,160,208,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: ora-base 4s ease-in-out infinite alternate; }
.scn-item-oracle-mission .beam { position:absolute; top:10%; left:50%; width:2px; height:55%; transform:translateX(-50%); background: linear-gradient(180deg, transparent 0%, rgba(128,160,208,.3) 30%, rgba(128,160,208,.1) 100%); animation: ora-beam 3s ease-in-out infinite alternate; }
.scn-item-oracle-mission .particle-1 { position:absolute; top:20%; left:40%; width:6px; height:6px; background: #c0e0ff; border-radius: 50%; box-shadow: 0 0 8px 2px #c0e0ff; animation: ora-particle1 6s linear infinite; }
.scn-item-oracle-mission .particle-2 { position:absolute; top:30%; left:55%; width:4px; height:4px; background: #80a0d0; border-radius: 50%; box-shadow: 0 0 6px 1px #80a0d0; animation: ora-particle2 8s linear infinite; animation-delay: -2s; }
.scn-item-oracle-mission .particle-3 { position:absolute; top:25%; left:45%; width:5px; height:5px; background: #a0c0e0; border-radius: 50%; box-shadow: 0 0 8px 2px #a0c0e0; animation: ora-particle3 7s linear infinite; animation-delay: -4s; }
@keyframes ora-orb { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px #80a0d0; } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 40px 15px #80a0d0; } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px #80a0d0; } }
@keyframes ora-base { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.2); } 100% { opacity:.6; transform: translateX(-50%) scale(1); } }
@keyframes ora-beam { 0% { opacity:.3; transform: translateX(-50%) scaleY(1); } 50% { opacity:.6; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:.3; transform: translateX(-50%) scaleY(1); } }
@keyframes ora-particle1 { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:1; } 100% { transform: translate(30px, -80px) scale(0); opacity:0; } }
@keyframes ora-particle2 { 0% { transform: translate(0, 0) scale(1); opacity:0; } 15% { opacity:1; } 100% { transform: translate(-20px, -100px) scale(0); opacity:0; } }
@keyframes ora-particle3 { 0% { transform: translate(0, 0) scale(1); opacity:0; } 20% { opacity:1; } 100% { transform: translate(10px, -90px) scale(0); opacity:0; } }

/* Scene: leontes-accuses-hermione */
.scn-leontes-accuses-hermione {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2c28 40%, #4a3828 70%, #2a1e1a 100%), radial-gradient(ellipse at 40% 20%, #6a5040 0%, transparent 60%);
}
.scn-leontes-accuses-hermione .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a30 0%, #2a1e1a 100%); z-index: 1;
}
.scn-leontes-accuses-hermione .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); border-radius: 0 0 20% 20%; z-index: 2;
}
.scn-leontes-accuses-hermione .window {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 110px; background: #2a4a5a; border: 6px solid #5a3a2a; border-radius: 6px; z-index: 3; animation: lth-window 8s ease-in-out infinite alternate;
}
.scn-leontes-accuses-hermione .pines {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 100px; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%); z-index: 4; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: lth-pines 12s ease-in-out infinite;
}
.scn-leontes-accuses-hermione .leontes {
  position: absolute; bottom: 25%; left: 38%; width: 28px; height: 70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; z-index: 5; animation: lth-point 3s ease-in-out infinite;
}
.scn-leontes-accuses-hermione .hermione {
  position: absolute; bottom: 25%; right: 30%; width: 24px; height: 66px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; z-index: 5; animation: lth-stand 4s ease-in-out infinite alternate;
}
.scn-leontes-accuses-hermione .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, #1a1210 60%); z-index: 6; animation: lth-shadow 10s ease-in-out infinite alternate;
}
.scn-leontes-accuses-hermione .flicker {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 20%, rgba(200,150,100,0.15) 0%, transparent 70%); z-index: 7; animation: lth-flicker 2s ease-in-out infinite alternate;
}
@keyframes lth-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes lth-pines { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes lth-point { 0% { transform: rotate(-10deg) translateY(0); } 33% { transform: rotate(5deg) translateY(-1px); } 66% { transform: rotate(-8deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes lth-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lth-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lth-flicker { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene: hermoine-defends-herself */
.scn-hermoine-defends-herself {
  background: linear-gradient(135deg, #4a3028 0%, #6a5040 50%, #4a3028 100%), radial-gradient(ellipse at 50% 30%, #8a7050 0%, transparent 60%);
}
.scn-hermoine-defends-herself .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3a2820 0%, #2a1a14 100%); z-index: 1;
}
.scn-hermoine-defends-herself .throne {
  position: absolute; bottom: 20%; left: 70%; width: 60px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); z-index: 2; animation: hds-throne 12s ease-in-out infinite;
}
.scn-hermoine-defends-herself .hermione {
  position: absolute; bottom: 25%; left: 35%; width: 26px; height: 68px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: hds-hermione 2s ease-in-out infinite alternate;
}
.scn-hermoine-defends-herself .leontes {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 72px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: hds-leontes 3s ease-in-out infinite alternate;
}
.scn-hermoine-defends-herself .guard {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 64px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 2; animation: hds-guard 5s ease-in-out infinite;
}
.scn-hermoine-defends-herself .torchlight {
  position: absolute; bottom: 60%; left: 50%; width: 20px; height: 30px; background: radial-gradient(ellipse, #c08040 0%, transparent 70%); border-radius: 50%; z-index: 5; animation: hds-torch 2s ease-in-out infinite alternate;
}
.scn-hermoine-defends-herself .shadow-sharp {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%; background: linear-gradient(180deg, transparent 0%, #1a1210 80%); z-index: 6; animation: hds-shadow 4s ease-in-out infinite alternate;
}
@keyframes hds-throne { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes hds-hermione { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hds-leontes { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes hds-guard { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes hds-torch { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes hds-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: hermoine-to-prison */
.scn-hermoine-to-prison {
  background: linear-gradient(180deg, #1a1412 0%, #2a221c 40%, #1a1412 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-hermoine-to-prison .corridor-left {
  position: absolute; inset: 0 60% 0 0; background: linear-gradient(90deg, #2a221c 0%, #1a1412 100%); z-index: 1; animation: htp-corridor 15s ease-in-out infinite alternate;
}
.scn-hermoine-to-prison .corridor-right {
  position: absolute; inset: 0 0 0 60%; background: linear-gradient(90deg, #1a1412 0%, #2a221c 100%); z-index: 1; animation: htp-corridor 15s ease-in-out infinite alternate-reverse;
}
.scn-hermoine-to-prison .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: repeating-linear-gradient(90deg, #3a2a20 0px, #3a2a20 30px, #2a1a14 30px, #2a1a14 60px); z-index: 2; animation: htp-tiles 20s linear infinite;
}
.scn-hermoine-to-prison .hermione {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 60px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); z-index: 4; animation: htp-walk 8s ease-in-out infinite;
}
.scn-hermoine-to-prison .guard {
  position: absolute; bottom: 22%; left: 60%; width: 24px; height: 62px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: htp-guard 8s ease-in-out infinite;
}
.scn-hermoine-to-prison .door {
  position: absolute; bottom: 18%; right: 5%; width: 50px; height: 80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border: 2px solid #5a4a3a; border-radius: 4px; z-index: 5; animation: htp-door 12s ease-in-out infinite;
}
.scn-hermoine-to-prison .torch {
  position: absolute; bottom: 50%; left: 15%; width: 8px; height: 12px; background: radial-gradient(ellipse, #c08040 0%, transparent 60%); border-radius: 50%; z-index: 6; animation: htp-torch 2s ease-in-out infinite alternate;
}
.scn-hermoine-to-prison .shadow-long {
  position: absolute; bottom: 0; left: 30%; width: 30%; height: 40%; background: linear-gradient(180deg, transparent 0%, #0a0808 80%); z-index: 7; animation: htp-shadow 6s ease-in-out infinite alternate;
}
@keyframes htp-corridor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes htp-tiles { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes htp-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 33% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 66% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes htp-guard { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes htp-door { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(0.98); opacity: 0.7; } 100% { transform: scale(1); opacity: 1; } }
@keyframes htp-torch { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes htp-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: lord-defends-queen */
.scn-lord-defends-queen {
  background: linear-gradient(180deg, #3a3028 0%, #5a4a3a 50%, #3a3028 100%), radial-gradient(ellipse at 50% 40%, #7a6050 0%, transparent 60%);
}
.scn-lord-defends-queen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); z-index: 1;
}
.scn-lord-defends-queen .column-left {
  position: absolute; bottom: 15%; left: 10%; width: 30px; height: 100px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 10% 10% 5% 5%; z-index: 2; animation: ldq-column 16s ease-in-out infinite;
}
.scn-lord-defends-queen .column-right {
  position: absolute; bottom: 15%; right: 10%; width: 30px; height: 100px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 10% 10% 5% 5%; z-index: 2; animation: ldq-column 16s ease-in-out infinite reverse;
}
.scn-lord-defends-queen .queen {
  position: absolute; bottom: 22%; left: 55%; width: 26px; height: 70px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(2deg); z-index: 3; animation: ldq-queen 5s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .lord {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 64px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: ldq-lord 3s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .king {
  position: absolute; bottom: 22%; left: 70%; width: 28px; height: 74px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); z-index: 4; animation: ldq-king 4s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .light-pool {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 30%; background: radial-gradient(ellipse, rgba(200,150,100,0.2) 0%, transparent 70%); z-index: 5; animation: ldq-light 6s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .shadow-drift {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, transparent 0%, #1a1210 80%); z-index: 6; animation: ldq-shadow 8s ease-in-out infinite alternate;
}
@keyframes ldq-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes ldq-queen { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes ldq-lord { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(5deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ldq-king { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes ldq-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes ldq-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene 1: polixenes-offer - warm, sunlit, handshake */
.scn-polixenes-offer {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFE4B5 40%, #F4A460 70%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-polixenes-offer .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 100%); animation: pol1-sky 8s ease-in-out infinite alternate; }
.scn-polixenes-offer .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.4); animation: pol1-sun 12s ease-in-out infinite; }
.scn-polixenes-offer .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #F4A460 0%, #8B4513 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-polixenes-offer .figure-left { position:absolute; bottom:25%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-polixenes-offer .figure-right { position:absolute; bottom:25%; right:25%; width:30px; height:70px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-polixenes-offer .hands { position:absolute; bottom:35%; left:50%; width:20px; height:15px; transform:translateX(-50%); background: #F0E68C; border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: pol1-hands 4s ease-in-out infinite; }
.scn-polixenes-offer .flower { position:absolute; bottom:20%; left:10%; width:12px; height:20px; background: #FFB6C1; border-radius: 50% 50% 40% 40%; animation: pol1-flower 6s ease-in-out infinite alternate; }
.scn-polixenes-offer .petal { position:absolute; bottom:23%; left:9%; width:8px; height:8px; background: #FF69B4; border-radius:50%; opacity:0.6; animation: pol1-petal 3s ease-in-out infinite; }
@keyframes pol1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pol1-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes pol1-hands { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) rotate(-2deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes pol1-flower { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes pol1-petal { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.8); } }

/* Scene 2: polixenes-questioning-father - tense, sunlit, sharp shadows */
.scn-polixenes-questioning-father {
  background:
    linear-gradient(180deg, #B0C4DE 0%, #FFF8DC 30%, #DAA520 60%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-polixenes-questioning-father .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 100%); animation: pol2-sky 10s ease-in-out infinite alternate; }
.scn-polixenes-questioning-father .sun-harsh { position:absolute; top:5%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #FFD700 0%, #FF8C00 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,140,0,0.5); animation: pol2-sun 15s ease-in-out infinite; }
.scn-polixenes-questioning-father .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #DAA520 0%, #8B4513 100%); border-radius: 20% 80% 0 0 / 50% 50% 0 0; }
.scn-polixenes-questioning-father .father { position:absolute; bottom:25%; left:30%; width:35px; height:80px; background: linear-gradient(180deg, #8B4513 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol2-father 5s ease-in-out infinite; }
.scn-polixenes-questioning-father .son { position:absolute; bottom:30%; right:30%; width:28px; height:65px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol2-son 5s ease-in-out infinite alternate; }
.scn-polixenes-questioning-father .finger { position:absolute; bottom:45%; left:38%; width:8px; height:20px; background: #8B4513; border-radius: 30% 30% 10% 10%; transform: rotate(20deg); animation: pol2-finger 2s ease-in-out infinite; }
.scn-polixenes-questioning-father .shadow-stripe { position:absolute; bottom:20%; left:10%; width:80%; height:5px; background: rgba(0,0,0,0.3); filter: blur(4px); animation: pol2-stripe 6s linear infinite; }
.scn-polixenes-questioning-father .dust { position:absolute; top:20%; left:20%; width:6px; height:6px; background: rgba(255,255,224,0.6); border-radius:50%; box-shadow: 20px 30px 0 2px rgba(255,255,224,0.4), 40px 10px 0 1px rgba(255,255,224,0.3); animation: pol2-dust 12s ease-in-out infinite alternate; }
@keyframes pol2-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes pol2-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(8deg); } 100% { transform: scale(0.9) rotate(-8deg); } }
@keyframes pol2-father { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pol2-son { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes pol2-finger { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes pol2-stripe { 0% { transform: translateX(-20px); } 100% { transform: translateX(20px); } }
@keyframes pol2-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.2); } 100% { transform: translateY(0) scale(0.8); } }

/* Scene 3: polixenes-revelation - dark mood, sunlit interior, sickbed */
.scn-polixenes-revelation {
  background:
    linear-gradient(180deg, #2F4F4F 0%, #8B7355 30%, #FFF8DC 60%, #F5DEB3 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 80%);
}
.scn-polixenes-revelation .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFF0C0 100%); opacity:0.4; animation: pol3-sky 8s ease-in-out infinite alternate; }
.scn-polixenes-revelation .sunbeam { position:absolute; top:5%; left:40%; width:120px; height:80%; background: linear-gradient(135deg, rgba(255,215,0,0.3) 0%, transparent 70%); transform: skewX(-10deg); filter: blur(8px); animation: pol3-beam 6s ease-in-out infinite; }
.scn-polixenes-revelation .walls { position:absolute; bottom:0; left:0; right:0; height:80%; background: linear-gradient(90deg, #4A3728 0%, #8B7355 50%, #4A3728 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); }
.scn-polixenes-revelation .bed { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #C4A882 0%, #8B7355 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); }
.scn-polixenes-revelation .figure-lying { position:absolute; bottom:22%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(10deg); animation: pol3-lying 10s ease-in-out infinite alternate; }
.scn-polixenes-revelation .figure-standing { position:absolute; bottom:35%; right:25%; width:28px; height:75px; background: linear-gradient(180deg, #2F4F4F 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pol3-standing 8s ease-in-out infinite; }
.scn-polixenes-revelation .chair { position:absolute; bottom:28%; right:15%; width:20px; height:30px; background: linear-gradient(180deg, #D2691E 0%, #8B4513 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-polixenes-revelation .clock { position:absolute; top:15%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #FFD700 0%, #DAA520 60%, #8B4513 100%); border-radius:50%; border: 2px solid #5C4033; animation: pol3-clock 3s ease-in-out infinite; }
@keyframes pol3-sky { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes pol3-beam { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-5deg) translateX(10px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes pol3-lying { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes pol3-standing { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pol3-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

/* Scene 4: polixenes-fury - dark mood, sunlit, accusation */
.scn-polixenes-fury {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #4a3a3a 40%, #DAA520 70%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-polixenes-fury .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2d2d44 0%, #7a5c5c 100%); animation: pol4-sky 9s ease-in-out infinite alternate; }
.scn-polixenes-fury .sun-glare { position:absolute; top:3%; left:50%; width:70px; height:70px; background: radial-gradient(circle, #FFD700 0%, #FF8C00 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,140,0,0.3); animation: pol4-sun 5s ease-in-out infinite; }
.scn-polixenes-fury .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5C4033 0%, #1a1a1a 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-polixenes-fury .accuser { position:absolute; bottom:25%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #2F1B1B 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol4-accuser 4s ease-in-out infinite; }
.scn-polixenes-fury .accused { position:absolute; bottom:28%; right:30%; width:28px; height:60px; background: linear-gradient(180deg, #8B7355 0%, #4A3728 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol4-accused 6s ease-in-out infinite alternate; }
.scn-polixenes-fury .arm { position:absolute; bottom:45%; left:22%; width:10px; height:40px; background: #2F1B1B; border-radius: 20% 20% 10% 10%; transform: rotate(30deg); animation: pol4-arm 2s ease-in-out infinite; }
.scn-polixenes-fury .chain { position:absolute; bottom:20%; left:50%; width:30px; height:8px; background: #8B7355; border-radius: 10px; box-shadow: 20px 0 0 0 #8B7355, 40px 0 0 0 #8B7355; transform: translateX(-50%); animation: pol4-chain 3s ease-in-out infinite; }
.scn-polixenes-fury .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 70%); opacity:0.5; animation: pol4-shadow 8s ease-in-out infinite alternate; }
@keyframes pol4-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes pol4-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.95) rotate(-10deg); } }
@keyframes pol4-accuser { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes pol4-accused { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes pol4-arm { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(3px); } 100% { transform: rotate(25deg) translateX(0); } }
@keyframes pol4-chain { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes pol4-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-leontes-rage-paulina { background: linear-gradient(135deg, #1a0e0a 0%, #2c1a14 40%, #1a0e0a 100%), radial-gradient(ellipse at 30% 80%, #c8553d 0%, transparent 60%); }
.scn-leontes-rage-paulina .bg-wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2c1a14 0%, #1a0e0a 100%); }
.scn-leontes-rage-paulina .bg-floor { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); border-top:3px solid #c8553d; }
.scn-leontes-rage-paulina .torch-glow { position:absolute; top:20%; left:75%; width:20px; height:40px; background: radial-gradient(circle at center, #ffa500 0%, #c8553d 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,85,61,0.6), 0 0 120px 60px rgba(200,85,61,0.3); animation: lrp-flicker 2s ease-in-out infinite alternate; }
.scn-leontes-rage-paulina .figure-leontes { position:absolute; bottom:45%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 60%, #0d0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrp-tremble 1.5s ease-in-out infinite; }
.scn-leontes-rage-paulina .figure-paulina { position:absolute; bottom:48%; left:55%; width:40px; height:90px; background: linear-gradient(180deg, #2c1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrp-retreat 4s ease-in-out infinite; }
.scn-leontes-rage-paulina .child { position:absolute; bottom:48%; left:55%; width:14px; height:20px; background: radial-gradient(ellipse at center, #b87878 0%, #5e1a1d 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px 2px #b87878; transform: translate(16px, -15px); animation: lrp-bounce 3s ease-in-out infinite; }
.scn-leontes-rage-paulina .arch-shadow { position:absolute; top:0; left:42%; width:16%; height:100%; background: linear-gradient(180deg, transparent 0%, #0d0805 60%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: lrp-sway 6s ease-in-out infinite; }
.scn-leontes-rage-paulina .flicker-spot { position:absolute; top:22%; left:76%; width:8px; height:8px; background: #ffa500; border-radius:50%; box-shadow: 0 0 20px 10px #ffa500; opacity:0.7; animation: lrp-flicker-spot 1.6s ease-in-out infinite alternate; }
@keyframes lrp-flicker { 0% { opacity:0.8; transform: scaleY(0.8); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.6; transform: scaleY(0.9); } }
@keyframes lrp-tremble { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes lrp-retreat { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(15px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrp-bounce { 0% { transform: translate(16px, -15px) scale(1); } 50% { transform: translate(16px, -20px) scale(1.1); } 100% { transform: translate(16px, -15px) scale(1); } }
@keyframes lrp-sway { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(0deg); } }
@keyframes lrp-flicker-spot { 0% { opacity:0.5; transform: scale(0.8); } 100% { opacity:0.9; transform: scale(1.2); } }

.scn-leontes-rage { background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 40%, #0d0805 100%), radial-gradient(ellipse at 50% 100%, #a0461a 0%, transparent 70%); }
.scn-leontes-rage .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0d0805 0%, #1a0e0a 100%); }
.scn-leontes-rage .brazier { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:40px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 30px 15px rgba(160,70,26,0.6); animation: lr-fire 3s ease-in-out infinite; }
.scn-leontes-rage .fire-glow { position:absolute; bottom:10%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #ffa500 0%, #c8553d 30%, transparent 70%); border-radius:50%; filter: blur(8px); animation: lr-fire 3s ease-in-out infinite; }
.scn-leontes-rage .figure-leontes { position:absolute; bottom:25%; left:50%; width:70px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 80%, #0d0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: lr-tremble 1.5s ease-in-out infinite; }
.scn-leontes-rage .shadow-throne { position:absolute; bottom:20%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, transparent 0%, #0d0805 80%); clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); animation: lr-pulse 4s ease-in-out infinite; }
.scn-leontes-rage .ember { position:absolute; bottom:12%; left:45%; width:4px; height:4px; background: #ffa500; border-radius:50%; box-shadow: 0 0 6px 2px #ffa500; animation: lr-ember 1.5s ease-in-out infinite alternate; }
@keyframes lr-fire { 0% { opacity:0.7; transform: scaleY(0.9) translateX(-50%); } 50% { opacity:1; transform: scaleY(1.1) translateX(-50%); } 100% { opacity:0.6; transform: scaleY(0.85) translateX(-50%); } }
@keyframes lr-tremble { 0% { transform: rotate(-0.5deg) translateX(-50%); } 25% { transform: rotate(0.5deg) translateX(-50%); } 50% { transform: rotate(1deg) translateX(-50%); } 75% { transform: rotate(-1deg) translateX(-50%); } 100% { transform: rotate(-0.5deg) translateX(-50%); } }
@keyframes lr-pulse { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lr-ember { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-10px) scale(0.5); opacity:0; } }

.scn-antigonus-pawn { background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 60%, #2c1a14 100%), radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 60%); }
.scn-antigonus-pawn .bg-floor { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); }
.scn-antigonus-pawn .bg-wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2c1a14 0%, #1a0e0a 100%); }
.scn-antigonus-pawn .figure-antigonus { position:absolute; bottom:55%; left:45%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 60%, #0d0805 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-kneel 6s ease-in-out infinite; }
.scn-antigonus-pawn .sword { position:absolute; bottom:55%; left:45%; width:4px; height:50px; transform:translateX(-50%) rotate(-20deg); background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius: 2px; box-shadow: 0 0 10px 2px #a0461a; transform-origin: bottom center; animation: ap-sword 3s ease-in-out infinite; }
.scn-antigonus-pawn .sword-glow { position:absolute; bottom:55%; left:45%; width:20px; height:20px; transform:translate(-50%, -30px); background: radial-gradient(circle, #c8553d 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: ap-glow 2s ease-in-out infinite alternate; }
.scn-antigonus-pawn .shadow-pawn { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(3px); animation: ap-shift 8s ease-in-out infinite; }
.scn-antigonus-pawn .light-beam { position:absolute; top:10%; left:40%; width:20%; height:90%; background: linear-gradient(180deg, rgba(255,165,0,0.1) 0%, transparent 80%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ap-beam 5s ease-in-out infinite; }
@keyframes ap-kneel { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ap-sword { 0% { transform: translateX(-50%) rotate(-20deg); } 50% { transform: translateX(-50%) rotate(-15deg); } 100% { transform: translateX(-50%) rotate(-20deg); } }
@keyframes ap-glow { 0% { opacity:0.6; transform: translate(-50%, -30px) scale(0.9); } 100% { opacity:1; transform: translate(-50%, -30px) scale(1.1); } }
@keyframes ap-shift { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes ap-beam { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-antigonus-commanded { background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 50%, #0d0805 100%), radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 60%); }
.scn-antigonus-commanded .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0d0805 0%, #1a0e0a 100%); }
.scn-antigonus-commanded .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); border-top:2px solid #5e1a1d; }
.scn-antigonus-commanded .figure-commander { position:absolute; bottom:45%; left:30%; width:55px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 80%, #0d0805 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ac-point 3s ease-in-out infinite; }
.scn-antigonus-commanded .figure-antigonus { position:absolute; bottom:40%; left:60%; width:45px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-bow 4s ease-in-out infinite; }
.scn-antigonus-commanded .child-bundle { position:absolute; bottom:45%; left:60%; width:16px; height:22px; transform:translate(-20px, -10px); background: radial-gradient(ellipse at center, #b87878 0%, #5e1a1d 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 8px 2px #b87878; animation: ac-hold 5s ease-in-out infinite; }
.scn-antigonus-commanded .light-source { position:absolute; top:15%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, transparent 60%); border-radius:50%; filter: blur(10px); animation: ac-light 4s ease-in-out infinite; }
.scn-antigonus-commanded .shadow-deep { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(5px); animation: ac-shift 7s ease-in-out infinite; }
@keyframes ac-point { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ac-bow { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(10deg) scaleY(0.9); } 70% { transform: translateX(-50%) rotate(5deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ac-hold { 0% { transform: translate(-20px, -10px) rotate(0deg); } 50% { transform: translate(-20px, -12px) rotate(-3deg); } 100% { transform: translate(-20px, -10px) rotate(0deg); } }
@keyframes ac-light { 0% { opacity:0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes ac-shift { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

/* camillos-soliloquy - tense interior, solitary figure */
.scn-camillos-soliloquy {
  background: 
    linear-gradient(180deg, #8b7355 0%, #5c4033 40%, #3a2a1a 100%),
    linear-gradient(135deg, #d4a76a 0%, transparent 50%),
    radial-gradient(ellipse at 30% 70%, #f0d8a0 0%, transparent 60%);
}
.scn-camillos-soliloquy .room-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 60%);
  opacity: 0.9;
}
.scn-camillos-soliloquy .window-arch {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 120px;
  height: 160px;
  background: radial-gradient(ellipse at 50% 0%, #fff8e7 0%, #c9b99a 40%, transparent 70%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 40px rgba(255,230,180,.5);
  animation: cso-window 4s ease-in-out infinite alternate;
}
.scn-camillos-soliloquy .light-shaft {
  position: absolute;
  top: 0;
  left: 55%;
  width: 80px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,220,150,.3) 0%, rgba(255,200,120,.1) 70%, transparent 100%);
  filter: blur(12px);
  animation: cso-shaft 6s ease-in-out infinite alternate;
}
.scn-camillos-soliloquy .figure.silhouette {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 32px;
  height: 90px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cso-figure 5s ease-in-out infinite;
  box-shadow: -15px 0 20px rgba(0,0,0,.6);
}
.scn-camillos-soliloquy .shadow-floor {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 70px;
  height: 20px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: cso-shadow 5s ease-in-out infinite;
}
.scn-camillos-soliloquy .chair-empty {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #4a3728 0%, #2a1f15 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: cso-chair 12s ease-in-out infinite;
}
.scn-camillos-soliloquy .dust-mote {
  position: absolute;
  top: 20%;
  left: 70%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, rgba(255,240,200,.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cso-mote 8s linear infinite;
}
@keyframes cso-window {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes cso-shaft {
  0% { opacity: .4; transform: skewX(-2deg); }
  50% { opacity: .7; transform: skewX(0deg); }
  100% { opacity: .5; transform: skewX(2deg); }
}
@keyframes cso-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes cso-shadow {
  0% { width: 70px; opacity: .4; }
  50% { width: 85px; opacity: .6; }
  100% { width: 70px; opacity: .4; }
}
@keyframes cso-chair {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cso-mote {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(40px, -20px) scale(.5); opacity: .3; }
  100% { transform: translate(80px, -10px) scale(0); opacity: 0; }
}

/* polixenes-suspects - confrontation, two figures, columns */
.scn-polixenes-suspects {
  background: 
    linear-gradient(180deg, #7a6b5a 0%, #4a3d30 30%, #2a2018 70%),
    radial-gradient(ellipse at 50% 30%, #c9b99a 0%, transparent 70%);
}
.scn-polixenes-suspects .hall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #5c4a3a 0%, #8b7355 50%, #5c4a3a 100%);
  opacity: .7;
}
.scn-polixenes-suspects .column.left {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 30px;
  height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5c4033 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 8px 0 15px rgba(0,0,0,.5);
}
.scn-polixenes-suspects .column.right {
  position: absolute;
  bottom: 0;
  right: 10%;
  width: 30px;
  height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5c4033 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -8px 0 15px rgba(0,0,0,.5);
}
.scn-polixenes-suspects .king-figure {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 65px;
  height: 120px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  box-shadow: -5px 0 15px rgba(0,0,0,.7);
  transform-origin: bottom center;
  animation: psu-king 2s ease-in-out infinite alternate;
}
.scn-polixenes-suspects .camillo-figure {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 30px;
  height: 95px;
  background: linear-gradient(180deg, #1e1410 0%, #0c0806 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: psu-camillo 3s ease-in-out infinite;
  box-shadow: 5px 0 10px rgba(0,0,0,.5);
}
.scn-polixenes-suspects .crown-glow {
  position: absolute;
  top: 6%;
  left: 33%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #f5d6a8 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: .6;
  animation: psu-crown 1.5s ease-in-out infinite alternate;
}
.scn-polixenes-suspects .shadow-long {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 120px;
  height: 25px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: psu-shadow 3s ease-in-out infinite;
}
.scn-polixenes-suspects .distant-shutter {
  position: absolute;
  top: 20%;
  right: 5%;
  width: 60px;
  height: 90px;
  background: linear-gradient(180deg, #4a3728 0%, #2a1f15 100%);
  border-radius: 4%;
  box-shadow: -2px 0 8px rgba(0,0,0,.4);
  animation: psu-shutter 8s ease-in-out infinite alternate;
}
@keyframes psu-king {
  0% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes psu-camillo {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes psu-crown {
  0% { opacity: .4; transform: scale(.9); }
  100% { opacity: .8; transform: scale(1.1); }
}
@keyframes psu-shadow {
  0% { opacity: .3; width: 120px; }
  50% { opacity: .5; width: 140px; }
  100% { opacity: .3; width: 120px; }
}
@keyframes psu-shutter {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(.3); }
  100% { transform: scaleX(1); }
}

/* item-mirror-reflection - mirror with reflection */
.scn-item-mirror-reflection {
  background: 
    linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 40%, #1e1410 100%),
    radial-gradient(ellipse at 50% 70%, #c9b99a 0%, transparent 60%);
}
.scn-item-mirror-reflection .wall-panel {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,.1) 40px, rgba(0,0,0,.1) 42px);
}
.scn-item-mirror-reflection .mirror-frame {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 200px;
  background: linear-gradient(135deg, #6a5535 0%, #4a3728 50%, #3a2a1a 100%);
  border-radius: 8%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.4);
  animation: mrf-frame 6s ease-in-out infinite alternate;
}
.scn-item-mirror-reflection .mirror-glass {
  position: absolute;
  top: 12%;
  left: 52%;
  transform: translateX(-50%);
  width: 130px;
  height: 170px;
  background: linear-gradient(180deg, #a89a80 0%, #8b7a6a 40%, #6a5a4a 100%);
  border-radius: 6%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 0 15px rgba(255,220,150,.2);
  animation: mrf-glass 4s ease-in-out infinite;
}
.scn-item-mirror-reflection .reflection-silhouette {
  position: absolute;
  top: 15%;
  left: 52%;
  transform: translateX(-50%);
  width: 60px;
  height: 100px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  filter: blur(2px);
  opacity: .6;
  animation: mrf-reflect 5s ease-in-out infinite alternate;
}
.scn-item-mirror-reflection .hand-holding {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 25px;
  height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mrf-hand 3s ease-in-out infinite;
}
.scn-item-mirror-reflection .light-glint {
  position: absolute;
  top: 18%;
  left: 52%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, rgba(255,255,220,.9) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mrf-glint 2.5s ease-in-out infinite alternate;
}
@keyframes mrf-frame {
  0% { box-shadow: 0 10px 30px rgba(0,0,0,.6); }
  50% { box-shadow: 0 15px 35px rgba(0,0,0,.8), 0 0 20px rgba(200,160,100,.2); }
  100% { box-shadow: 0 10px 30px rgba(0,0,0,.6); }
}
@keyframes mrf-glass {
  0% { opacity: .8; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.01); }
  100% { opacity: .85; transform: translateX(-50%) scaleX(1); }
}
@keyframes mrf-reflect {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: .5; }
  50% { transform: translateX(-50%) translateY(-5px) rotate(2deg); opacity: .7; }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: .5; }
}
@keyframes mrf-hand {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mrf-glint {
  0% { opacity: .3; transform: scale(.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* camillo-reveals-plot - close-up on table with candle, paper, hands */
.scn-camillo-reveals-plot {
  background: 
    linear-gradient(180deg, #4a3d30 0%, #2a2018 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #8b7355 0%, transparent 80%);
}
.scn-camillo-reveals-plot .table-wood {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
  animation: crp-table 8s ease-in-out infinite alternate;
}
.scn-camillo-reveals-plot .candle-lit {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 16px;
  height: 60px;
  background: linear-gradient(180deg, #f5d6a8 0%, #d4a76a 30%, #a07840 60%, #5c4033 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 -5px 30px rgba(255,200,100,.7), 0 0 60px rgba(255,200,100,.3);
  animation: crp-candle 2s ease-in-out infinite alternate;
}
.scn-camillo-reveals-plot .scroll-paper {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 80px;
  height: 50px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a0 100%);
  border-radius: 4% 8% 4% 8%;
  box-shadow: 2px 2px 10px rgba(0,0,0,.4);
  animation: crp-scroll 4s ease-in-out infinite;
}
.scn-camillo-reveals-plot .camillo-hand {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 30px;
  height: 35px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: crp-hand 3s ease-in-out infinite;
}
.scn-camillo-reveals-plot .polixenes-shadow {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  filter: blur(3px);
  opacity: .4;
  animation: crp-shadow 5s ease-in-out infinite alternate;
}
.scn-camillo-reveals-plot .inkwell {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 20px;
  height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: crp-ink 6s ease-in-out infinite;
}
.scn-camillo-reveals-plot .flicker-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 70%, transparent 40%, rgba(0,0,0,.3) 100%);
  animation: crp-flicker 3s ease-in-out infinite alternate;
}
@keyframes crp-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}
@keyframes crp-candle {
  0% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes crp-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes crp-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes crp-shadow {
  0% { opacity: .3; width: 50px; }
  50% { opacity: .5; width: 55px; }
  100% { opacity: .3; width: 50px; }
}
@keyframes crp-ink {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes crp-flicker {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}

.scn-autolycus-ballads{background:linear-gradient(180deg,#fde68a 0%,#fcd34d 30%,#fbbf24 60%,#f59e0b 100%),radial-gradient(ellipse at 50% 80%,#fef9c3 0%,transparent 70%)}
.scn-autolycus-ballads .bg-sky{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#bae6fd 0%,transparent 100%);animation:ab-sky 12s ease-in-out infinite alternate}
.scn-autolycus-ballads .bg-sun{position:absolute;top:5%;right:10%;width:50px;height:50px;background:radial-gradient(circle,#fef08a 0%,#fde047 50%,transparent 100%);border-radius:50%;box-shadow:0 0 60px 20px #fde047;animation:ab-sun 8s ease-in-out infinite alternate}
.scn-autolycus-ballads .figure-autolycus{position:absolute;bottom:20%;left:40%;width:24px;height:50px;background:linear-gradient(180deg,#57534e 0%,#292524 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:ab-walk 4s ease-in-out infinite}
.scn-autolycus-ballads .pack{position:absolute;bottom:38%;left:38%;width:18px;height:20px;background:linear-gradient(135deg,#a16207 0%,#713f12 100%);border-radius:30% 30% 20% 20%;transform:rotate(10deg);animation:ab-bounce 3s ease-in-out infinite}
.scn-autolycus-ballads .ballad{position:absolute;width:16px;height:20px;background:linear-gradient(135deg,#fefce8 0%,#fef08a 100%);border:1px solid #d97706;border-radius:2px;opacity:0.8}
.scn-autolycus-ballads .ballad.float-a{top:15%;left:10%;animation:ab-float 5s ease-in-out infinite}
.scn-autolycus-ballads .ballad.float-b{top:20%;right:20%;animation:ab-float 6s ease-in-out infinite 1s}
.scn-autolycus-ballads .ballad.float-c{top:10%;left:60%;animation:ab-float 7s ease-in-out infinite 2s}
.scn-autolycus-ballads .trinket{position:absolute;bottom:25%;left:55%;width:8px;height:8px;background:radial-gradient(circle,#6ee7b7 0%,#059669 100%);border-radius:50%;box-shadow:0 0 6px 2px #34d399;animation:ab-spin 3s linear infinite}
@keyframes ab-sky{0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8}}
@keyframes ab-sun{0%{transform:translateY(0) scale(0.95);opacity:0.9}50%{transform:translateY(-5px) scale(1.05);opacity:1}100%{transform:translateY(0) scale(0.95);opacity:0.9}}
@keyframes ab-walk{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(8px) rotate(1deg)}50%{transform:translateX(16px) rotate(-1deg)}75%{transform:translateX(24px) rotate(1deg)}100%{transform:translateX(32px) rotate(0)}}
@keyframes ab-bounce{0%,100%{transform:rotate(10deg) translateY(0)}50%{transform:rotate(10deg) translateY(-3px)}}
@keyframes ab-float{0%,100%{transform:translateY(0) rotate(0);opacity:0.6}50%{transform:translateY(-10px) rotate(15deg);opacity:0.9}}
@keyframes ab-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

.scn-ballads-true-or-false{background:linear-gradient(180deg,#7c2d12 0%,#92400e 30%,#b45309 60%,#d97706 100%),radial-gradient(ellipse at 50% 70%,#fbbf24 0%,transparent 60%)}
.scn-ballads-true-or-false .bg-room{position:absolute;inset:0;background:linear-gradient(180deg,#451a03 0%,transparent 100%);animation:btf-darken 10s ease-in-out infinite alternate}
.scn-ballads-true-or-false .bed{position:absolute;bottom:15%;left:20%;width:60%;height:30%;background:linear-gradient(135deg,#78350f 0%,#451a03 100%);border-radius:10px 10px 20px 20px;box-shadow:inset 0 -10px 20px rgba(0,0,0,0.5);animation:btf-shake 4s ease-in-out infinite}
.scn-ballads-true-or-false .figure-wife{position:absolute;bottom:28%;left:30%;width:30px;height:50px;background:linear-gradient(180deg,#a16207 0%,#713f12 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:btf-labor 3s ease-in-out infinite}
.scn-ballads-true-or-false .figure-midwife{position:absolute;bottom:25%;right:25%;width:22px;height:44px;background:linear-gradient(180deg,#78350f 0%,#451a03 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:scaleX(-1);animation:btf-bustle 5s ease-in-out infinite}
.scn-ballads-true-or-false .moneybags{position:absolute;bottom:30%;left:5%;right:5%;height:20%;background:radial-gradient(circle at 30% 50%,#fde68a 0%,#d97706 50%,#78350f 100%);border-radius:50%;filter:blur(3px);animation:btf-swell 6s ease-in-out infinite}
.scn-ballads-true-or-false .coin{position:absolute;width:10px;height:10px;background:radial-gradient(circle,#fde68a 0%,#d97706 100%);border-radius:50%;box-shadow:0 0 4px 1px #fbbf24}
.scn-ballads-true-or-false .coin-1{top:25%;left:45%;animation:btf-spin1 2s linear infinite}
.scn-ballads-true-or-false .coin-2{top:35%;left:55%;animation:btf-spin2 2.5s linear infinite 0.5s}
.scn-ballads-true-or-false .adders-head{position:absolute;bottom:40%;left:60%;width:12px;height:8px;background:linear-gradient(90deg,#a16207 0%,#d97706 100%);border-radius:50% 50% 0 0;transform:rotate(30deg);animation:btf-nod 3s ease-in-out infinite}
@keyframes btf-darken{0%{opacity:0.6}50%{opacity:0.8}100%{opacity:0.5}}
@keyframes btf-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(3px)}75%{transform:translateX(-3px)}}
@keyframes btf-labor{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-5px) rotate(-2deg)}}
@keyframes btf-bustle{0%,100%{transform:scaleX(-1) translateX(0)}50%{transform:scaleX(-1) translateX(8px)}}
@keyframes btf-swell{0%,100%{transform:scale(1);opacity:0.7}50%{transform:scale(1.1);opacity:1}}
@keyframes btf-spin1{0%{transform:rotate(0deg) translateY(0)}100%{transform:rotate(360deg) translateY(-10px)}}
@keyframes btf-spin2{0%{transform:rotate(0deg) translateY(0)}100%{transform:rotate(360deg) translateY(-8px)}}
@keyframes btf-nod{0%,100%{transform:rotate(30deg)}50%{transform:rotate(20deg)}}

.scn-song-three-parts{background:linear-gradient(180deg,#fef9c3 0%,#fde68a 30%,#fcd34d 60%,#f59e0b 100%),radial-gradient(ellipse at 50% 30%,#fef9c3 0%,transparent 70%)}
.scn-song-three-parts .bg-stage{position:absolute;inset:0;background:linear-gradient(180deg,#d97706 0%,transparent 100%);animation:stp-glow 8s ease-in-out infinite alternate}
.scn-song-three-parts .figure{position:absolute;bottom:20%;width:20px;height:45px;background:linear-gradient(180deg,#92400e 0%,#451a03 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center}
.scn-song-three-parts .figure.left{left:20%;animation:stp-sway-l 4s ease-in-out infinite}
.scn-song-three-parts .figure.center{left:45%;width:22px;height:48px;animation:stp-sway-c 4.5s ease-in-out infinite 0.5s}
.scn-song-three-parts .figure.right{right:20%;animation:stp-sway-r 5s ease-in-out infinite 1s}
.scn-song-three-parts .note{position:absolute;width:8px;height:12px;background:radial-gradient(circle at 50% 0%,#78350f 0%,#451a03 100%);border-radius:50% 50% 0 0;opacity:0.7}
.scn-song-three-parts .note-1{top:10%;left:15%;animation:stp-float 6s ease-in-out infinite}
.scn-song-three-parts .note-2{top:5%;left:50%;animation:stp-float 7s ease-in-out infinite 2s}
.scn-song-three-parts .note-3{top:15%;right:10%;animation:stp-float 8s ease-in-out infinite 4s}
@keyframes stp-glow{0%{opacity:0.6}50%{opacity:1}100%{opacity:0.7}}
@keyframes stp-sway-l{0%,100%{transform:rotate(-3deg) translateX(0)}50%{transform:rotate(3deg) translateX(4px)}}
@keyframes stp-sway-c{0%,100%{transform:rotate(0deg) translateY(0)}50%{transform:rotate(2deg) translateY(-5px)}}
@keyframes stp-sway-r{0%,100%{transform:rotate(3deg) translateX(0)}50%{transform:rotate(-3deg) translateX(-4px)}}
@keyframes stp-float{0%,100%{transform:translateY(0) rotate(0);opacity:0.4}50%{transform:translateY(-15px) rotate(20deg);opacity:0.9}}

.scn-autolycus-follows-singing{background:linear-gradient(180deg,#bae6fd 0%,#7dd3fc 30%,#38bdf8 60%,#0ea5e9 100%),radial-gradient(ellipse at 50% 80%,#fef9c3 0%,transparent 70%)}
.scn-autolycus-follows-singing .bg-meadow{position:absolute;inset:0;background:linear-gradient(180deg,#a3e635 0%,transparent 100%);animation:afs-sway 10s ease-in-out infinite alternate}
.scn-autolycus-follows-singing .figure-autolycus{position:absolute;bottom:20%;left:35%;width:24px;height:50px;background:linear-gradient(180deg,#57534e 0%,#292524 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:afs-strut 4s ease-in-out infinite}
.scn-autolycus-follows-singing .duck{position:absolute;bottom:22%;left:55%;width:18px;height:14px;background:linear-gradient(180deg,#fde047 0%,#eab308 100%);border-radius:50% 50% 30% 30% / 70% 70% 30% 30%;transform-origin:bottom center;animation:afs-waddle 3s ease-in-out infinite}
.scn-autolycus-follows-singing .item{position:absolute;bottom:30%;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fef08a 0%,#d97706 100%);box-shadow:0 0 4px 1px #fbbf24;animation:afs-scatter 5s ease-in-out infinite}
.scn-autolycus-follows-singing .item.ribbon{left:45%;animation-delay:0s}
.scn-autolycus-follows-singing .item.thread{left:50%;animation-delay:1s}
.scn-autolycus-follows-singing .item.toy{left:40%;animation-delay:2s}
.scn-autolycus-follows-singing .path{position:absolute;bottom:15%;left:10%;right:10%;height:4px;background:linear-gradient(90deg,#78350f 0%,#451a03 100%);border-radius:2px;opacity:0.5;animation:afs-scroll 8s linear infinite}
@keyframes afs-sway{0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.6}}
@keyframes afs-strut{0%,100%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(10px) rotate(-2deg)}50%{transform:translateX(20px) rotate(0deg)}75%{transform:translateX(30px) rotate(2deg)}}
@keyframes afs-waddle{0%,100%{transform:rotate(-3deg) translateX(0)}50%{transform:rotate(3deg) translateX(5px)}}
@keyframes afs-scatter{0%,100%{transform:translateY(0) scale(1);opacity:0.5}50%{transform:translateY(-8px) scale(1.5);opacity:1}}
@keyframes afs-scroll{0%{transform:translateX(-10%)}100%{transform:translateX(10%)}}

/* ---- oracle-verdict ---- */
.scn-oracle-verdict {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #e0ccaa 30%, #d4b890 60%, #b89a70 100%),
    radial-gradient(ellipse at 70% 40%, #fff4e0 0%, transparent 60%);
}
.scn-oracle-verdict .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #705a3a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-oracle-verdict .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b890 0%, #9a8a6a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-oracle-verdict .scroll {
  position: absolute; bottom: 32%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ov-scroll 4s ease-in-out infinite alternate;
}
.scn-oracle-verdict .seal {
  position: absolute; bottom: 47%; left: 50%; width: 16px; height: 16px; transform: translateX(-50%);
  background: radial-gradient(circle, #c07040 0%, #a05030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #a05030;
  animation: ov-seal 3s ease-in-out infinite;
}
.scn-oracle-verdict .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ov-figure-l 5s ease-in-out infinite alternate;
}
.scn-oracle-verdict .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ov-figure-r 5s ease-in-out infinite alternate-reverse;
}
.scn-oracle-verdict .light-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 85% 100%, 15% 100%);
  animation: ov-light 6s ease-in-out infinite alternate;
}
.scn-oracle-verdict .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 100%);
  pointer-events: none;
  animation: ov-shadow 8s ease-in-out infinite alternate;
}
@keyframes ov-scroll {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ov-seal {
  0%,100% { box-shadow: 0 0 6px 2px #a05030; }
  50% { box-shadow: 0 0 14px 4px #c06030, 0 0 24px 6px rgba(192,96,48,0.4); }
}
@keyframes ov-figure-l {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ov-figure-r {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ov-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ov-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

/* ---- leontes-repentance ---- */
.scn-leontes-repentance {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2c261e 30%, #1a1510 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-leontes-repentance .bg-dark {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #12100e 0%, #1a1510 100%);
}
.scn-leontes-repentance .throne {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-leontes-repentance .kneeling-figure {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 70px; transform: translateX(-30%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lr-kneel 4s ease-in-out infinite alternate;
}
.scn-leontes-repentance .window-glow {
  position: absolute; top: 20%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, #b0a080 0%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(176,160,128,0.3);
  animation: lr-window 6s ease-in-out infinite alternate;
}
.scn-leontes-repentance .tear {
  position: absolute; bottom: 45%; left: 45%; width: 6px; height: 10px;
  background: linear-gradient(180deg, rgba(200,200,220,0.6), transparent);
  border-radius: 50%;
  animation: lr-tear 3s ease-in-out infinite;
}
.scn-leontes-repentance .cloak {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
  border-radius: 80% 20% 20% 80% / 60% 40% 60% 40%;
  transform-origin: bottom right;
  animation: lr-cloak 7s ease-in-out infinite alternate;
}
.scn-leontes-repentance .dust-particle {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: rgba(200,190,180,0.3);
  border-radius: 50%;
  animation: lr-dust 12s linear infinite;
}
.scn-leontes-repentance .dust-particle.b {
  left: 30%; top: 50%;
  animation-delay: -6s;
  width: 3px; height: 3px;
}
@keyframes lr-kneel {
  0% { transform: translateX(-30%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-30%) translateY(-4px) rotate(-1deg); }
  100% { transform: translateX(-30%) translateY(0) rotate(0deg); }
}
@keyframes lr-window {
  0% { opacity: 0.3; box-shadow: 0 0 10px 4px rgba(176,160,128,0.2); }
  50% { opacity: 0.7; box-shadow: 0 0 30px 12px rgba(176,160,128,0.4); }
  100% { opacity: 0.4; box-shadow: 0 0 15px 6px rgba(176,160,128,0.25); }
}
@keyframes lr-tear {
  0% { transform: translateY(0) scaleY(1); opacity: 1; }
  50% { transform: translateY(8px) scaleY(1.4); opacity: 0.6; }
  100% { transform: translateY(16px) scaleY(1); opacity: 0; }
}
@keyframes lr-cloak {
  0% { transform: rotate(0deg) scaleX(1); }
  100% { transform: rotate(-3deg) scaleX(1.05); }
}
@keyframes lr-dust {
  0% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.3; }
  100% { transform: translate(40px, -30px); opacity: 0; }
}

/* ---- paulina-woe ---- */
.scn-paulina-woe {
  background:
    linear-gradient(180deg, #2a241e 0%, #1c1814 40%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-paulina-woe .bg-chamber {
  position: absolute; inset: 0 0 5% 0;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
}
.scn-paulina-woe .bench {
  position: absolute; bottom: 10%; left: 30%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-paulina-woe .figure-seated {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-seat 4s ease-in-out infinite alternate;
}
.scn-paulina-woe .hands-wring {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 20px;
  background: linear-gradient(135deg, #5a4a3a, #3a2a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pw-hands 2s ease-in-out infinite alternate;
}
.scn-paulina-woe .lace-snag {
  position: absolute; bottom: 28%; left: 38%; width: 10px; height: 6px;
  background: #8a7a6a;
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  animation: pw-lace 3s ease-in-out infinite;
}
.scn-paulina-woe .candle {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-paulina-woe .candle-glow {
  position: absolute; bottom: 55%; right: 23%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: pw-glow 3s ease-in-out infinite alternate;
}
.scn-paulina-woe .shadow-writhe {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  animation: pw-shadow 5s ease-in-out infinite alternate;
}
@keyframes pw-seat {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pw-hands {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(20deg) scale(0.9); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes pw-lace {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-2px) rotate(15deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes pw-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes pw-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

/* ---- antigonus-desert ---- */
.scn-antigonus-desert {
  background:
    linear-gradient(180deg, #6a7a70 0%, #8a9a8a 30%, #b0b8a8 60%, #c8c0b0 100%),
    radial-gradient(ellipse at 50% 100%, #8a9a8a 0%, transparent 70%);
}
.scn-antigonus-desert .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a8a80 0%, #8a9a8a 30%, #a0b0a0 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-antigonus-desert .sea-horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #7a8a80 0%, #4a5a50 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
}
.scn-antigonus-desert .sand-dune {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b0b8a8 0%, #c8c0b0 50%, #d8d0c0 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-antigonus-desert .ship-wreck {
  position: absolute; bottom: 42%; right: 20%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a, #3a2a1a);
  clip-path: polygon(0% 40%, 100% 10%, 100% 60%, 40% 100%, 0% 80%);
  transform-origin: bottom right;
  animation: ad-ship 8s ease-in-out infinite alternate;
}
.scn-antigonus-desert .figure-adult {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-figure-a 5s ease-in-out infinite alternate;
}
.scn-antigonus-desert .figure-child {
  position: absolute; bottom: 12%; left: 38%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-figure-c 5s ease-in-out infinite alternate-reverse;
}
.scn-antigonus-desert .storm-bird {
  position: absolute; top: 20%; left: 10%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  clip-path: polygon(0 50%, 30% 0, 60% 50%, 100% 50%, 60% 100%, 30% 50%);
  animation: ad-bird 12s linear infinite;
}
.scn-antigonus-desert .foam {
  position: absolute; bottom: 39%; left: 10%; width: 80px; height: 6px;
  background: rgba(200,220,210,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ad-foam 4s ease-in-out infinite alternate;
}
@keyframes ad-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ad-ship {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ad-figure-a {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ad-figure-c {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ad-bird {
  0% { transform: translateX(-60px) translateY(0); }
  50% { transform: translateX(40px) translateY(-10px); }
  100% { transform: translateX(120vw) translateY(0); }
}
@keyframes ad-foam {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(20px) scaleX(1.2); }
}

/* gentleman-praises-perdita */
.scn-gentleman-praises-perdita {
  background: linear-gradient(180deg, #f5e6d3 0%, #d8c3a5 40%, #b8a08e 100%),
              radial-gradient(ellipse at 50% 30%, #f0d5b0 0%, transparent 70%);
}
.scn-gentleman-praises-perdita .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d5b8 0%, #c9b094 100%);
}
.scn-gentleman-praises-perdita .window-frame {
  position: absolute; top: 8%; left: 25%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #8b7355 0%, #6b5a44 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.scn-gentleman-praises-perdita .window-pane {
  position: absolute; top: 12%; left: 28%; width: 24%; height: 38%;
  background: linear-gradient(180deg, #d4e4f0 0%, #b8d0e0 50%, #9cb8d0 100%);
  border-radius: 2px; box-shadow: inset 0 0 30px rgba(255,255,200,0.4);
  animation: gpp-sky 6s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .curtain-left {
  position: absolute; top: 6%; left: 20%; width: 12%; height: 50%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #7a2e12 100%);
  border-radius: 0 8px 8px 0; transform-origin: left top;
  animation: gpp-drape-left 8s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .curtain-right {
  position: absolute; top: 6%; right: 20%; width: 12%; height: 50%;
  background: linear-gradient(225deg, #c8553d 0%, #a0461a 50%, #7a2e12 100%);
  border-radius: 8px 0 0 8px; transform-origin: right top;
  animation: gpp-drape-right 8s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .figure-gentleman {
  position: absolute; bottom: 10%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1814 50%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpp-bow 5s ease-in-out infinite;
}
.scn-gentleman-praises-perdita .figure-perdita {
  position: absolute; bottom: 10%; right: 30%; width: 12%; height: 44%;
  background: linear-gradient(180deg, #d4a574 0%, #b8835a 50%, #8c5e3e 100%);
  border-radius: 50% 50% 40% 40% / 65% 55% 35% 45%;
  box-shadow: 0 0 25px rgba(255,200,150,0.3);
  animation: gpp-stand 4s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .candle.glow {
  position: absolute; bottom: 45%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffdf80 0%, #ffaa40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffaa40, 0 0 60px 20px rgba(255,170,64,0.3);
  animation: gpp-flicker 1.6s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .candle.flame {
  position: absolute; bottom: 46%; left: 54.5%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #ffdf80 0%, #ff8800 60%, #cc4400 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpp-flame 1.8s ease-in-out infinite alternate;
}
@keyframes gpp-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes gpp-drape-left {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(-3deg); }
  100% { transform: skewX(0deg); }
}
@keyframes gpp-drape-right {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(3deg); }
  100% { transform: skewX(0deg); }
}
@keyframes gpp-bow {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(4deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gpp-stand {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-3px) scaleY(1.02); }
}
@keyframes gpp-flicker {
  0% { opacity: 0.9; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.95; transform: scale(1); }
}
@keyframes gpp-flame {
  0% { transform: scaleY(1) rotate(-2deg); }
  50% { transform: scaleY(1.15) rotate(0deg); }
  100% { transform: scaleY(1) rotate(2deg); }
}

/* leontes-mourns-mamillius */
.scn-leontes-mourns-mamillius {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 60% 40%, #4a4a5e 0%, transparent 70%);
}
.scn-leontes-mourns-mamillius .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%);
}
.scn-leontes-mourns-mamillius .chair {
  position: absolute; bottom: 8%; left: 30%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: lmm-chair 12s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .figure-leontes {
  position: absolute; bottom: 12%; left: 32%; width: 13%; height: 42%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lmm-sit 6s ease-in-out infinite;
}
.scn-leontes-mourns-mamillius .child-toy {
  position: absolute; bottom: 10%; right: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #6b5a44 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: lmm-toy 4s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .window-light {
  position: absolute; top: 12%; left: 60%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #4a5a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,220,240,0.3);
  animation: lmm-light 8s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .shadow-1 {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: lmm-shade 10s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .shadow-2 {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 50%;
  background: linear-gradient(225deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: lmm-shade 12s ease-in-out infinite alternate-reverse;
}
@keyframes lmm-chair {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes lmm-sit {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(0) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(0) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes lmm-toy {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes lmm-light {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes lmm-shade {
  0% { opacity: 0.5; }
  100% { opacity: 0.7; }
}

/* florizel-perdita-enter */
.scn-florizel-perdita-enter {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 30%, #9a8a6a 60%, #7a6a4a 100%),
              radial-gradient(ellipse at 40% 20%, #e0d0b0 0%, transparent 60%);
}
.scn-florizel-perdita-enter .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 50%, #887868 100%);
}
.scn-florizel-perdita-enter .doorway {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: fpe-door 10s ease-in-out infinite alternate;
}
.scn-florizel-perdita-enter .florizel-silhouette {
  position: absolute; bottom: 12%; left: 40%; width: 8%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fpe-walk 5s ease-in-out infinite;
}
.scn-florizel-perdita-enter .perdita-silhouette {
  position: absolute; bottom: 12%; right: 40%; width: 7%; height: 44%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpe-walk 5s ease-in-out infinite reverse;
}
.scn-florizel-perdita-enter .floor-tile {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0%, #6a5a4a 8%, #7a6a5a 8%, #7a6a5a 16%);
  animation: fpe-floor 3s linear infinite;
}
.scn-florizel-perdita-enter .wall-sconce {
  position: absolute; top: 25%; left: 20%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #b08050 0%, #806040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-florizel-perdita-enter .sconce-glow {
  position: absolute; top: 24%; left: 19%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffcc60 0%, #ffaa40 30%, transparent 60%);
  border-radius: 50%;
  animation: fpe-glow 2s ease-in-out infinite alternate;
}
@keyframes fpe-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes fpe-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(0deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fpe-floor {
  0% { background-position: 0 0; }
  100% { background-position: 16% 0; }
}
@keyframes fpe-glow {
  0% { opacity: 0.7; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* florizel-greeting */
.scn-florizel-greeting {
  background: linear-gradient(180deg, #eae0c8 0%, #d4c4a0 30%, #b8a880 60%, #9a8a6a 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-florizel-greeting .bg-palace {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8b0 0%, #c0b098 50%, #a89880 100%);
}
.scn-florizel-greeting .column-left {
  position: absolute; bottom: 0; left: 15%; width: 6%; height: 80%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
}
.scn-florizel-greeting .column-right {
  position: absolute; bottom: 0; right: 15%; width: 6%; height: 80%;
  background: linear-gradient(225deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
}
.scn-florizel-greeting .florizel-figure {
  position: absolute; bottom: 15%; left: 35%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1814 50%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 55% 45% 40%;
  transform-origin: bottom center;
  animation: fg-bow 4s ease-in-out infinite alternate;
}
.scn-florizel-greeting .king-figure {
  position: absolute; bottom: 15%; right: 35%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 55% 60% 40% 45%;
  transform-origin: bottom center;
  animation: fg-stand 5s ease-in-out infinite;
}
.scn-florizel-greeting .carpet-roll {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 2%;
  background: linear-gradient(90deg, #5e1a1d 0%, #702243 30%, #8a3355 60%, #5e1a1d 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: fg-carpet 8s ease-in-out infinite alternate;
}
.scn-florizel-greeting .chandelier {
  position: absolute; top: 6%; left: 40%; width: 20%; height: 14%;
  background: linear-gradient(180deg, #b08050 0%, #806040 50%, #604030 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
.scn-florizel-greeting .chandelier-glow {
  position: absolute; top: 4%; left: 38%; width: 24%; height: 18%;
  background: radial-gradient(ellipse at center, #ffdf80 0%, #ffaa40 20%, transparent 60%);
  border-radius: 50%;
  animation: fg-chandelier 3s ease-in-out infinite alternate;
}
.scn-florizel-greeting .air-dust {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 70%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.05) 0%, transparent 50%);
  animation: fg-dust 20s linear infinite;
}
@keyframes fg-bow {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fg-stand {
  0% { transform: translateY(0); }
  25% { transform: translateY(-1px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fg-carpet {
  0% { background-position: 0 0; }
  100% { background-position: 20% 0; }
}
@keyframes fg-chandelier {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes fg-dust {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(5px) translateY(-3px); }
  66% { transform: translateX(-5px) translateY(2px); }
  100% { transform: translateX(0) translateY(0); }
}

.scn-camillo-advice {
  background:
    linear-gradient(180deg, #8fa8b0 0%, #d4c4a0 50%, #e8d8b4 100%),
    radial-gradient(ellipse at 50% 30%, #f0e4c8 0%, transparent 60%);
}
.scn-camillo-advice .wall {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a88a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-camillo-advice .window {
  position:absolute; top:15%; left:20%; width:40%; height:50%;
  background: linear-gradient(180deg, #f0f8ff 0%, #d0e0f0 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px #fff, 0 0 40px rgba(255,255,220,0.3);
}
.scn-camillo-advice .sunbeam {
  position:absolute; top:0; left:22%; width:36%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,230,0.3) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: ca-beam 8s ease-in-out infinite alternate;
}
.scn-camillo-advice .figure-left {
  position:absolute; bottom:15%; left:15%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: ca-figure-l 6s ease-in-out infinite;
}
.scn-camillo-advice .figure-right {
  position:absolute; bottom:15%; right:20%; width:25px; height:55px;
  background: linear-gradient(180deg, #2e2e2e 0%, #0e0e0e 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-8deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: ca-figure-r 5s ease-in-out infinite;
}
.scn-camillo-advice .floor-shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.1) 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(4px);
}
@keyframes ca-beam {
  0% { opacity:0.6; transform: skewX(-2deg); }
  50% { opacity:1; transform: skewX(0deg); }
  100% { opacity:0.7; transform: skewX(2deg); }
}
@keyframes ca-figure-l {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes ca-figure-r {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

.scn-florizel-vow {
  background:
    linear-gradient(180deg, #4a7a9a 0%, #8aafc0 30%, #c8d8e8 60%, #f0e8c0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%);
}
.scn-florizel-vow .sky {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #8ab0c8 0%, #d0e4f0 70%);
  animation: fv-sky 15s ease-in-out infinite alternate;
}
.scn-florizel-vow .sun {
  position:absolute; top:10%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, #fff8d0 0%, #ffe070 40%, #ffcc40 70%, transparent 100%);
  transform: translateX(-50%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(255,224,100,0.5);
  animation: fv-sun 4s ease-in-out infinite alternate;
}
.scn-florizel-vow .ray-1 {
  position:absolute; top:0; left:40%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  animation: fv-ray1 6s ease-in-out infinite;
}
.scn-florizel-vow .ray-2 {
  position:absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.5) 0%, transparent 70%);
  clip-path: polygon(10% 0, 90% 0, 60% 100%, 40% 100%);
  animation: fv-ray2 8s ease-in-out infinite reverse;
}
.scn-florizel-vow .figure {
  position:absolute; bottom:18%; left:50%; width:32px; height:70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: fv-figure 3s ease-in-out infinite;
}
.scn-florizel-vow .ground {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-florizel-vow .shrub {
  position:absolute; bottom:20%; right:15%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0;
  animation: fv-shrub 20s ease-in-out infinite;
}
@keyframes fv-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes fv-sun {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 30px rgba(255,224,100,0.4); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 100px 50px rgba(255,224,100,0.7); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 80px 40px rgba(255,224,100,0.5); }
}
@keyframes fv-ray1 {
  0% { opacity:0.3; transform: skewX(-2deg); }
  50% { opacity:0.7; transform: skewX(1deg); }
  100% { opacity:0.4; transform: skewX(-1deg); }
}
@keyframes fv-ray2 {
  0% { opacity:0.5; transform: skewX(3deg); }
  50% { opacity:0.9; transform: skewX(-1deg); }
  100% { opacity:0.6; transform: skewX(2deg); }
}
@keyframes fv-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes fv-shrub {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); }
}

.scn-camillo-plan {
  background:
    linear-gradient(180deg, #d4b88a 0%, #e8d4a0 30%, #f0e0b0 70%, #f8ecc0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 80%);
}
.scn-camillo-plan .wall {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #e8d4a0 0%, #d0b888 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08);
}
.scn-camillo-plan .window {
  position:absolute; top:10%; right:15%; width:35%; height:45%;
  background: linear-gradient(180deg, #f8f0d0 0%, #e0d0a0 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.8);
}
.scn-camillo-plan .sunbeam {
  position:absolute; top:0; left:45%; width:35%; height:100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%);
  animation: cp-beam 12s ease-in-out infinite alternate;
}
.scn-camillo-plan .desk {
  position:absolute; bottom:15%; left:15%; width:55%; height:8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cp-desk 10s ease-in-out infinite;
}
.scn-camillo-plan .scroll {
  position:absolute; bottom:23%; left:35%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, #d0b070 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  box-shadow: 1px 2px 6px rgba(0,0,0,0.15);
  animation: cp-scroll 8s ease-in-out infinite alternate;
}
.scn-camillo-plan .figure {
  position:absolute; bottom:15%; right:20%; width:30px; height:65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: cp-figure 5s ease-in-out infinite;
}
.scn-camillo-plan .chair {
  position:absolute; bottom:15%; right:24%; width:20px; height:30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(-3deg);
  animation: cp-chair 7s ease-in-out infinite alternate;
}
@keyframes cp-beam {
  0% { opacity:0.4; transform: skewX(-1deg); }
  50% { opacity:0.8; transform: skewX(2deg); }
  100% { opacity:0.5; transform: skewX(0deg); }
}
@keyframes cp-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cp-scroll {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-13deg) scale(1.03); }
  100% { transform: rotate(-17deg) scale(0.98); }
}
@keyframes cp-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-1deg) translateY(-1px); }
  75% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes cp-chair {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(1px); }
}

.scn-camillo-proposal {
  background:
    linear-gradient(180deg, #c8b08a 0%, #e0c8a0 40%, #f0d8b0 70%, #f8e8c8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%);
}
.scn-camillo-proposal .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-camillo-proposal .column-left {
  position:absolute; bottom:25%; left:12%; width:20px; height:60%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: cpr-col-l 15s ease-in-out infinite;
}
.scn-camillo-proposal .column-right {
  position:absolute; bottom:25%; right:12%; width:20px; height:60%;
  background: linear-gradient(180deg, #c8b898 0%, #a89078 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: cpr-col-r 18s ease-in-out infinite alternate;
}
.scn-camillo-proposal .sunbeam {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  animation: cpr-beam 10s ease-in-out infinite alternate;
}
.scn-camillo-proposal .figure-a {
  position:absolute; bottom:20%; left:25%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: cpr-fig-a 4s ease-in-out infinite;
}
.scn-camillo-proposal .figure-b {
  position:absolute; bottom:20%; right:25%; width:26px; height:58px;
  background: linear-gradient(180deg, #2e2212 0%, #0e0a06 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-2deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: cpr-fig-b 6s ease-in-out infinite alternate;
}
.scn-camillo-proposal .arch {
  position:absolute; top:0; left:8%; width:84%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #d8c8a8 0%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  animation: cpr-arch 20s ease-in-out infinite;
}
@keyframes cpr-col-l {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes cpr-col-r {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.995); }
  100% { transform: scaleY(1.005); }
}
@keyframes cpr-beam {
  0% { opacity:0.3; transform: skewX(-2deg); }
  50% { opacity:0.8; transform: skewX(3deg); }
  100% { opacity:0.4; transform: skewX(-1deg); }
}
@keyframes cpr-fig-a {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes cpr-fig-b {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes cpr-arch {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}

/* Scene: paulina-rebukes-leontes (prl) */
.scn-paulina-rebukes-leontes {
  background: linear-gradient(180deg, #2c2a3e 0%, #3a2e2a 30%, #4a3a2a 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-paulina-rebukes-leontes .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-bottom: 2px solid #2a1a0a;
}
.scn-paulina-rebukes-leontes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-paulina-rebukes-leontes .fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px #1a0a0a;
}
.scn-paulina-rebukes-leontes .fire {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #b05020 40%, #a04010 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: prl-fire 1.5s ease-in-out infinite alternate;
}
.scn-paulina-rebukes-leontes .figure-paulina {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prl-paulina 4s ease-in-out infinite;
}
.scn-paulina-rebukes-leontes .figure-leontes {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: prl-leontes 6s ease-in-out infinite;
}
.scn-paulina-rebukes-leontes .glow {
  position: absolute; inset: 0; opacity: 0.2;
  background: radial-gradient(ellipse at 50% 50%, #d08030 0%, transparent 60%);
  animation: prl-glow 2s ease-in-out infinite alternate;
}
.scn-paulina-rebukes-leontes .shadow {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: prl-shadow 4s ease-in-out infinite;
}
@keyframes prl-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.9); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); opacity: 0.85; }
}
@keyframes prl-paulina {
  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 prl-leontes {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(1deg); }
  66% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes prl-glow {
  0% { opacity: 0.15; }
  50% { opacity: 0.3; }
  100% { opacity: 0.2; }
}
@keyframes prl-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* Scene: paulina-argues-against-remarriage (par) */
.scn-paulina-argues-against-remarriage {
  background: linear-gradient(135deg, #2a2a3e 0%, #3a2a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 70%);
}
.scn-paulina-argues-against-remarriage .arch-back {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
}
.scn-paulina-argues-against-remarriage .floor-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
}
.scn-paulina-argues-against-remarriage .column-left {
  position: absolute; bottom: 30%; left: 22%; width: 12px; height: 70px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
}
.scn-paulina-argues-against-remarriage .column-right {
  position: absolute; bottom: 30%; right: 22%; width: 12px; height: 70px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-paulina-argues-against-remarriage .paulina-standing {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: par-stance 5s ease-in-out infinite;
}
.scn-paulina-argues-against-remarriage .scroll {
  position: absolute; bottom: 42%; left: 52%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #d0b080 0%, #b09060 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: par-scroll 6s ease-in-out infinite;
}
.scn-paulina-argues-against-remarriage .light-cast {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 40%, rgba(180,140,80,0.15) 0%, transparent 70%);
  animation: par-light 3s ease-in-out infinite alternate;
}
@keyframes par-stance {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes par-scroll {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes par-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* Scene: paulina-defies-counsel (pdc) */
.scn-paulina-defies-counsel {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-paulina-defies-counsel .tabletop {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 16px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-paulina-defies-counsel .candle {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px;
}
.scn-paulina-defies-counsel .flame {
  position: absolute; bottom: 44%; left: 50%; width: 12px; height: 18px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #d08030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  animation: pdc-flame 1.6s ease-in-out infinite alternate;
}
.scn-paulina-defies-counsel .counselor-1 {
  position: absolute; bottom: 33%; left: 15%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pdc-counsel 8s ease-in-out infinite;
}
.scn-paulina-defies-counsel .counselor-2 {
  position: absolute; bottom: 33%; left: 27%; width: 14px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pdc-counsel 8s ease-in-out infinite 2s;
}
.scn-paulina-defies-counsel .counselor-3 {
  position: absolute; bottom: 33%; left: 38%; width: 15px; height: 52px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pdc-counsel 8s ease-in-out infinite 4s;
}
.scn-paulina-defies-counsel .paulina-defiant {
  position: absolute; bottom: 32%; left: 62%; width: 22px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pdc-defiant 6s ease-in-out infinite;
}
.scn-paulina-defies-counsel .chandelier {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, rgba(180,140,80,0.3) 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(6px);
  animation: pdc-chandelier 5s ease-in-out infinite alternate;
}
@keyframes pdc-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.2) scaleX(0.8); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1.1); opacity: 0.85; }
}
@keyframes pdc-counsel {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(2deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pdc-defiant {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pdc-chandelier {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

/* Scene: leontes-swears-no-wife (lsn) */
.scn-leontes-swears-no-wife {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a0a0a 50%, #0a0000 100%), radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 80%);
}
.scn-leontes-swears-no-wife .throne-back {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.7);
}
.scn-leontes-swears-no-wife .throne-arm {
  position: absolute; bottom: 35%; left: 36%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-leontes-swears-no-wife .leontes-figure {
  position: absolute; bottom: 28%; left: 47%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lsn-leontes 7s ease-in-out infinite;
}
.scn-leontes-swears-no-wife .crown {
  position: absolute; bottom: 52%; left: 47%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%);
  animation: lsn-crown 10s ease-in-out infinite;
}
.scn-leontes-swears-no-wife .candle-flame {
  position: absolute; bottom: 30%; left: 65%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d07020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: lsn-flame 2.4s ease-in-out infinite alternate;
}
.scn-leontes-swears-no-wife .pool-light {
  position: absolute; bottom: 25%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,140,80,0.15) 0%, transparent 60%);
  border-radius: 50%;
  animation: lsn-pool 3s ease-in-out infinite alternate;
}
.scn-leontes-swears-no-wife .shadow-drape {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: lsn-drape 8s ease-in-out infinite alternate;
}
@keyframes lsn-leontes {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes lsn-crown {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lsn-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(0.7); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1.1); opacity: 0.9; }
}
@keyframes lsn-pool {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.2); }
  100% { opacity: 0.15; transform: scale(0.9); }
}
@keyframes lsn-drape {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-camillo-rejects-accusation {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #d4b88a 30%, #c4a070 60%, #a08050 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%),
    linear-gradient(90deg, #b09070 0%, #d4b88a 50%, #b09070 100%);
}
.scn-camillo-rejects-accusation .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b88a 40%, #c8a878 100%);
  animation: cra-wall 15s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08050 0%, #806040 50%, #604830 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: cra-floor 8s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .figure-camillo {
  position: absolute; bottom: 18%; left: 35%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -12px 0 20px rgba(0,0,0,.4);
  animation: cra-figure 6s ease-in-out infinite;
}
.scn-camillo-rejects-accusation .arm-reject {
  position: absolute; bottom: 60%; left: 48%; width: 40px; height: 14px;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 60% 40% 0;
  transform-origin: left center;
  box-shadow: 4px 2px 8px rgba(0,0,0,.3);
  animation: cra-arm 4s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .shadow-fall {
  position: absolute; bottom: 15%; left: 28%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cra-shadow 7s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .light-patch {
  position: absolute; bottom: 40%; left: 20%; width: 140px; height: 100px;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,230,180,.25) 0%, transparent 70%);
  filter: blur(12px);
  animation: cra-light 10s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .drapery {
  position: absolute; top: 0; right: 0; width: 80px; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 40%, #3a1a0a 100%);
  border-radius: 0 0 0 40%;
  box-shadow: -6px 0 12px rgba(0,0,0,.3);
  animation: cra-drape 12s ease-in-out infinite alternate;
}
@keyframes cra-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes cra-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(.98); } 100% { transform: scaleY(1); } }
@keyframes cra-figure { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1.5deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cra-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes cra-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.15); } 100% { opacity: .5; transform: scaleX(1); } }
@keyframes cra-light { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes cra-drape { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }

.scn-leontes-defends-jealousy {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 20%, #1a1a2e 50%, #0a0a1e 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%),
    linear-gradient(45deg, #0a0a1e 0%, #1a1a2e 50%, #0a0a1e 100%);
}
.scn-leontes-defends-jealousy .chamber-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2a4e 40%, #1a1a2e 100%);
  animation: ldf-chamber 20s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .torch-glow {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,180,80,.3) 0%, rgba(255,150,50,.1) 40%, transparent 80%);
  filter: blur(16px);
  animation: ldf-torch 3s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .figure-leontes {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #050510 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  box-shadow: 0 0 30px rgba(255,150,50,.15), inset 0 -20px 40px rgba(0,0,0,.5);
  animation: ldf-figure 5s ease-in-out infinite;
}
.scn-leontes-defends-jealousy .fist-clench {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: ldf-fist 2s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .shadow-twist {
  position: absolute; bottom: 0; left: 30%; width: 160px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: ldf-shadow 8s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .wall-crack {
  position: absolute; top: 20%; right: 15%; width: 6px; height: 90px;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  animation: ldf-crack 14s ease-in-out infinite;
}
.scn-leontes-defends-jealousy .dust-motes {
  position: absolute; top: 30%; left: 20%; width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,180,150,.08) 0%, transparent 70%);
  filter: blur(4px);
  animation: ldf-dust 12s linear infinite;
}
@keyframes ldf-chamber { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .85; } }
@keyframes ldf-torch { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: .7; transform: scale(.95); } }
@keyframes ldf-figure { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 30% { transform: translateX(-50%) rotate(1.5deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 100% { transform: translateX(-50%) rotate(0) translateY(0); } }
@keyframes ldf-fist { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(.95); } }
@keyframes ldf-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.2); } 100% { opacity: .6; transform: scaleX(1); } }
@keyframes ldf-crack { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ldf-dust { 0% { transform: translate(0, 0) rotate(0); } 25% { transform: translate(10px, -8px) rotate(5deg); } 50% { transform: translate(-5px, -15px) rotate(-3deg); } 75% { transform: translate(8px, -4px) rotate(7deg); } 100% { transform: translate(0, 0) rotate(0); } }

.scn-item-poison-cup {
  background:
    linear-gradient(180deg, #d4b88a 0%, #c4a070 30%, #b09060 60%, #8a7050 100%),
    radial-gradient(ellipse at 50% 40%, #e8d0a0 0%, transparent 70%),
    linear-gradient(90deg, #b09060 0%, #d4b88a 50%, #b09060 100%);
}
.scn-item-poison-cup .tabletop {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #705a3a 40%, #5a4a2a 100%);
  border-radius: 50% 50% 4px 4px / 30% 30% 4px 4px;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
  animation: ipc-table 20s ease-in-out infinite alternate;
}
.scn-item-poison-cup .cup-base {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806030 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ipc-base 5s ease-in-out infinite;
}
.scn-item-poison-cup .cup-bowl {
  position: absolute; bottom: 46%; left: 50%; width: 44px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d8b878 0%, #b89858 40%, #987840 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.25), inset 0 -8px 16px rgba(0,0,0,.2);
  animation: ipc-bowl 4s ease-in-out infinite alternate;
}
.scn-item-poison-cup .liquid-poison {
  position: absolute; bottom: 52%; left: 50%; width: 32px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 60%, #2a1a00 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: inset 0 2px 4px rgba(100,60,20,.3), 0 0 8px rgba(60,30,10,.2);
  animation: ipc-liquid 6s ease-in-out infinite alternate;
}
.scn-item-poison-cup .vapor-wisp {
  position: absolute; bottom: 58%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, rgba(80,60,40,.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: ipc-vapor 7s ease-in-out infinite;
}
.scn-item-poison-cup .shadow-cup {
  position: absolute; bottom: 38%; left: 44%; width: 70px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 80%);
  filter: blur(6px);
  animation: ipc-shadow 5s ease-in-out infinite alternate;
}
.scn-item-poison-cup .highlight-gleam {
  position: absolute; bottom: 54%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, rgba(255,230,180,.6) 0%, transparent 100%);
  border-radius: 4px;
  filter: blur(1px);
  animation: ipc-gleam 3s ease-in-out infinite alternate;
}
.scn-item-poison-cup .table-grain {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(60,40,20,.08) 30%, rgba(60,40,20,.12) 50%, rgba(60,40,20,.08) 70%, transparent 100%);
  filter: blur(2px);
  animation: ipc-grain 25s linear infinite;
}
@keyframes ipc-table { 0% { opacity: .95; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ipc-base { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ipc-bowl { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ipc-liquid { 0% { transform: translateX(-50%) scaleX(1); opacity: .8; } 50% { transform: translateX(-50%) scaleX(1.05); opacity: 1; } 100% { transform: translateX(-50%) scaleX(.98); opacity: .85; } }
@keyframes ipc-vapor { 0% { transform: translate(0, 0) scale(1); opacity: .4; } 25% { transform: translate(4px, -8px) scale(1.2); opacity: .6; } 50% { transform: translate(-2px, -18px) scale(.8); opacity: .3; } 75% { transform: translate(6px, -26px) scale(1.1); opacity: .5; } 100% { transform: translate(0, 0) scale(1); opacity: .4; } }
@keyframes ipc-shadow { 0% { opacity: .4; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.1); } 100% { opacity: .5; transform: scaleX(1); } }
@keyframes ipc-gleam { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .8; transform: translateY(-2px); } 100% { opacity: .4; transform: translateY(0); } }
@keyframes ipc-grain { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }

.scn-camillo-agrees-to-plot {
  background:
    linear-gradient(180deg, #c8a878 0%, #b89868 25%, #a08050 50%, #886840 100%),
    radial-gradient(ellipse at 40% 50%, #d8b888 0%, transparent 60%),
    linear-gradient(45deg, #a08050 0%, #c8a878 50%, #a08050 100%);
}
.scn-camillo-agrees-to-plot .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8a878 0%, #b89868 40%, #a08050 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.15);
  animation: cap-wall 18s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #6a4a2a 50%, #5a3a1a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: cap-floor 10s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .figure-camillo-plot {
  position: absolute; bottom: 18%; left: 38%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -8px 0 16px rgba(0,0,0,.35);
  animation: cap-figure-a 6s ease-in-out infinite;
}
.scn-camillo-agrees-to-plot .figure-leontes-plot {
  position: absolute; bottom: 18%; left: 52%; width: 60px; height: 115px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 40%, #0a0010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 8px 0 16px rgba(0,0,0,.35);
  animation: cap-figure-b 7s ease-in-out infinite;
}
.scn-camillo-agrees-to-plot .handshake-shadow {
  position: absolute; bottom: 30%; left: 44%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 80%);
  filter: blur(6px);
  animation: cap-hand 4s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .map-scroll {
  position: absolute; bottom: 28%; left: 48%; width: 70px; height: 12px;
  background: linear-gradient(180deg, #d4b88a 0%, #b89868 50%, #a08050 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: cap-scroll 12s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .candle-flame {
  position: absolute; top: 30%; right: 20%; width: 16px; height: 22px;
  background: radial-gradient(ellipse at 50% 40%, #ffe080 0%, #f0a040 40%, #d07020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,160,64,.3), 0 0 60px 16px rgba(240,160,64,.15);
  animation: cap-candle 2s ease-in-out infinite alternate;
}
@keyframes cap-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; } }
@keyframes cap-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(.97); } 100% { transform: scaleY(1); } }
@keyframes cap-figure-a { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1.5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cap-figure-b { 0% { transform: rotate(1deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-1.5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cap-hand { 0% { opacity: .3; transform: scaleX(.8); } 50% { opacity: .7; transform: scaleX(1.2); } 100% { opacity: .4; transform: scaleX(.9); } }
@keyframes cap-scroll { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes cap-candle { 0% { transform: scale(1) rotate(-3deg); opacity: .8; } 25% { transform: scale(1.06) rotate(2deg); opacity: 1; } 50% { transform: scale(.97) rotate(-2deg); opacity: .9; } 75% { transform: scale(1.04) rotate(3deg); opacity: 1; } 100% { transform: scale(1) rotate(-3deg); opacity: .8; } }

/* leontes-oath */
.scn-leontes-oath {
  background: 
    linear-gradient(180deg, #1a1015 0%, #2a1a1a 40%, #3a2020 100%),
    radial-gradient(ellipse at 20% 80%, #4a2520 0%, transparent 60%);
}
.scn-leontes-oath .bg-deep { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 70%, #2a1510 0%, transparent 80%); animation: lo-bg 12s ease-in-out infinite alternate; }
.scn-leontes-oath .wall { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background:linear-gradient(180deg, #3a2520 0%, #2a1a15 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.6); }
.scn-leontes-oath .candle-flame { position:absolute; bottom:30%; left:38%; width:8px; height:20px; background:linear-gradient(180deg, #ffd080 0%, #ff6020 50%, #401000 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ff8020, 0 0 40px 12px rgba(255,128,32,.4); animation: lo-flame 1.5s ease-in-out infinite; }
.scn-leontes-oath .figure-oath { position:absolute; bottom:18%; left:45%; width:28px; height:60px; background:linear-gradient(180deg, #1a0a0a 0%, #0a0500 100%); border-radius:45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lo-oath-body 6s ease-in-out infinite; }
.scn-leontes-oath .hand-raised { position:absolute; bottom:50%; left:48%; width:12px; height:18px; background:#0a0500; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: lo-hand 4s ease-in-out infinite; }
.scn-leontes-oath .witness-left { position:absolute; bottom:20%; left:20%; width:24px; height:50px; background:linear-gradient(180deg, #2a1510 0%, #0a0500 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: lo-witness 8s ease-in-out infinite; }
.scn-leontes-oath .witness-right { position:absolute; bottom:20%; right:22%; width:24px; height:50px; background:linear-gradient(180deg, #2a1510 0%, #0a0500 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: lo-witness 9s ease-in-out infinite reverse; }
.scn-leontes-oath .star-point { position:absolute; top:15%; left:60%; width:4px; height:4px; background:radial-gradient(circle, #fffac0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,250,192,.5); animation: lo-star 3s ease-in-out infinite alternate; }
@keyframes lo-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lo-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:.85 } }
@keyframes lo-oath-body { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lo-hand { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(-15deg) translateY(-4px) } 60% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes lo-witness { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lo-star { 0% { transform: scale(1) opacity:.4 } 50% { transform: scale(1.5) opacity:.8 } 100% { transform: scale(0.8) opacity:.6 } }

/* paulina-conditions */
.scn-paulina-conditions {
  background:
    linear-gradient(180deg, #1a1020 0%, #251530 40%, #2a1a3a 100%),
    radial-gradient(ellipse at 50% 90%, #3a2040 0%, transparent 70%);
}
.scn-paulina-conditions .bg-dark { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, #201030 0%, transparent 80%); animation: pc-bg 15s ease-in-out infinite alternate; }
.scn-paulina-conditions .curtain { position:absolute; top:5%; left:5%; right:5%; height:70%; background:linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 100%); border-radius:0 0 30% 30%; box-shadow: inset 0 -8px 30px rgba(0,0,0,.7); animation: pc-curtain 20s ease-in-out infinite; }
.scn-paulina-conditions .paul-fig { position:absolute; bottom:22%; left:35%; width:22px; height:55px; background:linear-gradient(180deg, #1a0a1a 0%, #0a0010 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: pc-paul 7s ease-in-out infinite; }
.scn-paulina-conditions .leontes-fig { position:absolute; bottom:20%; left:55%; width:28px; height:60px; background:linear-gradient(180deg, #1a0a10 0%, #050010 100%); border-radius:45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pc-leontes 9s ease-in-out infinite; }
.scn-paulina-conditions .ghost-hermione { position:absolute; bottom:25%; left:45%; width:26px; height:58px; background:linear-gradient(180deg, rgba(200,180,220,0.25) 0%, rgba(150,130,180,0.05) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(3px); animation: pc-ghost 8s ease-in-out infinite alternate; }
.scn-paulina-conditions .small-lamp { position:absolute; bottom:30%; left:48%; width:6px; height:10px; background:radial-gradient(circle, #ffc080 0%, #a05020 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 16px 4px #ffa050; animation: pc-lamp 2s ease-in-out infinite; }
.scn-paulina-conditions .floor-line { position:absolute; bottom:15%; left:10%; right:10%; height:3px; background:linear-gradient(90deg, transparent 0%, #3a2030 30%, #3a2030 70%, transparent 100%); animation: pc-floor 12s ease-in-out infinite; }
@keyframes pc-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes pc-curtain { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes pc-paul { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(1deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pc-leontes { 0% { transform: translateX(0) rotate(1deg) } 40% { transform: translateX(-4px) rotate(-2deg) } 80% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes pc-ghost { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-8px) scale(1.05); opacity:.5 } 100% { transform: translateY(4px) scale(0.95); opacity:.25 } }
@keyframes pc-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.9) } }
@keyframes pc-floor { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }

/* gentleman-announces-florizel */
.scn-gentleman-announces-florizel {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 50%, #b09870 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-gentleman-announces-florizel .bg-bright { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); animation: gf-bg 18s ease-in-out infinite alternate; }
.scn-gentleman-announces-florizel .column-left { position:absolute; bottom:0; left:10%; width:8%; height:80%; background:linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius:2% 2% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.15); animation: gf-column 25s ease-in-out infinite; }
.scn-gentleman-announces-florizel .column-right { position:absolute; bottom:0; right:10%; width:8%; height:80%; background:linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius:2% 2% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.15); animation: gf-column 30s ease-in-out infinite reverse; }
.scn-gentleman-announces-florizel .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #b09870 0%, #807050 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-gentleman-announces-florizel .announcer { position:absolute; bottom:10%; left:22%; width:18px; height:45px; background:linear-gradient(180deg, #705030 0%, #402810 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: gf-announcer 6s ease-in-out infinite; }
.scn-gentleman-announces-florizel .florizel { position:absolute; bottom:12%; left:45%; width:24px; height:55px; background:linear-gradient(180deg, #8a6040 0%, #503020 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: gf-florizel 8s ease-in-out infinite; }
.scn-gentleman-announces-florizel .princess { position:absolute; bottom:10%; left:58%; width:22px; height:50px; background:linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: gf-princess 9s ease-in-out infinite reverse; }
.scn-gentleman-announces-florizel .doorway-arch { position:absolute; bottom:20%; left:35%; right:35%; height:60%; border:4px solid #b09870; border-bottom:none; border-radius:50% 50% 0 0; background:transparent; box-shadow: 0 0 30px rgba(200,180,140,.3); animation: gf-arch 15s ease-in-out infinite; }
@keyframes gf-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gf-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes gf-announcer { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gf-florizel { 0% { transform: translateY(0) rotate(1deg) } 40% { transform: translateY(-4px) rotate(-1deg) } 80% { transform: translateY(2px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes gf-princess { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gf-arch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }

/* leontes-compares-to-hermione */
.scn-leontes-compares-to-hermione {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a08868 100%),
    radial-gradient(ellipse at 50% 30%, #f0e4c8 0%, transparent 70%);
}
.scn-leontes-compares-to-hermione .bg-light { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 80%); animation: lh-bg 20s ease-in-out infinite alternate; }
.scn-leontes-compares-to-hermione .pedestal { position:absolute; bottom:25%; left:50%; width:40px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #b09878 0%, #806850 100%); border-radius:4%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-leontes-compares-to-hermione .statue-hermione { position:absolute; bottom:35%; left:50%; width:30px; height:55px; transform:translateX(-50%); background:linear-gradient(180deg, #d0c0a8 0%, #b09880 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; box-shadow: 0 0 20px rgba(200,180,160,.4); animation: lh-statue 7s ease-in-out infinite; }
.scn-leontes-compares-to-hermione .leontes-figure { position:absolute; bottom:18%; left:30%; width:26px; height:58px; background:linear-gradient(180deg, #705030 0%, #402810 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: lh-leontes 6s ease-in-out infinite; }
.scn-leontes-compares-to-hermione .drape { position:absolute; bottom:20%; left:42%; right:45%; height:70%; background:linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius:0 0 40% 40%; clip-path:polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: lh-drape 15s ease-in-out infinite; }
.scn-leontes-compares-to-hermione .glow-spot { position:absolute; top:20%; left:45%; width:60px; height:60px; background:radial-gradient(circle, rgba(255,240,200,0.3) 0%, transparent 100%); border-radius:50%; animation: lh-glow 5s ease-in-out infinite alternate; }
.scn-leontes-compares-to-hermione .shadow-floor { position:absolute; bottom:10%; left:30%; right:30%; height:10%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.15) 70%, transparent 100%); animation: lh-shadow 12s ease-in-out infinite; }
@keyframes lh-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lh-statue { 0% { transform: translateX(-50%) translateY(0) } 30% { transform: translateX(-50%) translateY(-3px) } 70% { transform: translateX(-50%) translateY(2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes lh-leontes { 0% { transform: translateX(0) rotate(0) } 40% { transform: translateX(4px) rotate(2deg) } 80% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lh-drape { 0% { transform: rotate(0) skewX(0) } 50% { transform: rotate(1deg) skewX(1deg) } 100% { transform: rotate(-1deg) skewX(-1deg) } }
@keyframes lh-glow { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.2); opacity:.5 } 100% { transform: scale(0.9); opacity:.4 } }
@keyframes lh-shadow { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }

/* shepherd-flowers – warm sunlit field */
.scn-shepherd-flowers {
  background:
    linear-gradient(180deg, #87ceeb 0%, #fdf5e6 50%, #ffe4b5 100%),
    radial-gradient(ellipse at 60% 20%, #fff8dc 0%, rgba(255,248,220,0) 40%);
}
.scn-shepherd-flowers .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%);
  animation: sf-sky 10s ease-in-out infinite alternate;
}
.scn-shepherd-flowers .sun-glow {
  position: absolute; top: 8%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  animation: sf-sun 6s ease-in-out infinite alternate;
}
.scn-shepherd-flowers .hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
  animation: sf-hills 14s ease-in-out infinite alternate;
}
.scn-shepherd-flowers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #c8b56c 0%, #8b7d3c 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-shepherd-flowers .flowers {
  position: absolute; bottom: 18%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffb6c1 0%, #ff69b4 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-shepherd-flowers .flowers-a {
  left: 25%; animation: sf-flower 4s ease-in-out infinite;
}
.scn-shepherd-flowers .flowers-b {
  left: 70%; width: 28px; height: 28px; bottom: 22%;
  animation: sf-flower 5s ease-in-out infinite reverse;
}
.scn-shepherd-flowers .shepherd {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-figure 6s ease-in-out infinite;
}
.scn-shepherd-flowers .crook {
  position: absolute; bottom: 24%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8b5e3c 0%, #6b3e1c 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: sf-crook 6s ease-in-out infinite;
}
@keyframes sf-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sf-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.15) translate(4px,-4px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes sf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sf-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(15deg) translateY(-2px); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sf-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sf-crook { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }

/* servant-praises-pedlar – sunlit market stall */
.scn-servant-praises-pedlar {
  background:
    linear-gradient(180deg, #f0e68c 0%, #deb887 100%),
    radial-gradient(ellipse at 80% 30%, #fff8dc 0%, transparent 50%);
}
.scn-servant-praises-pedlar .bg-wall {
  position: absolute; inset: 10% 15% 20% 15%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-servant-praises-pedlar .stall-canopy {
  position: absolute; top: 5%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(135deg, #8b4513 0%, #d2691e 50%, #8b4513 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: sp-canopy 8s ease-in-out infinite alternate;
}
.scn-servant-praises-pedlar .stall-table {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #c4a882 0%, #8b6f47 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-servant-praises-pedlar .wares {
  position: absolute; bottom: 32%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #ff7f50 0%, #a0522d 80%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-servant-praises-pedlar .wares-a { left: 38%; animation: sp-wares 3s ease-in-out infinite; }
.scn-servant-praises-pedlar .wares-b { left: 52%; width: 20px; height: 20px; background: radial-gradient(circle, #f4a460 0%, #cd853f 80%); animation: sp-wares 3.5s ease-in-out infinite reverse; }
.scn-servant-praises-pedlar .pedlar {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #2e1a0c 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-pedlar 6s ease-in-out infinite;
}
.scn-servant-praises-pedlar .servant {
  position: absolute; bottom: 24%; right: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-servant 5s ease-in-out infinite;
}
.scn-servant-praises-pedlar .coin {
  position: absolute; bottom: 26%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 80%);
  border-radius: 50%;
  animation: sp-coin 2s ease-in-out infinite alternate;
}
@keyframes sp-canopy { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } 100% { transform: scaleY(1); } }
@keyframes sp-wares { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes sp-pedlar { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes sp-servant { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(-2px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes sp-coin { 0% { opacity: 0.7; } 100% { opacity: 1; transform: scale(1.2); } }

/* autolycus-song-entrance – funny, bright stage scene */
.scn-autolycus-song-entrance {
  background:
    linear-gradient(180deg, #ffdab9 0%, #f0e68c 50%, #ffe4b5 100%),
    radial-gradient(circle at 50% 80%, #fff8dc 0%, transparent 60%);
}
.scn-autolycus-song-entrance .stage-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 100%);
  animation: as-sky 12s ease-in-out infinite alternate;
}
.scn-autolycus-song-entrance .stage-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #cd853f 0%, #8b5e3c 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-autolycus-song-entrance .autolycus {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-walk 3s ease-in-out infinite;
}
.scn-autolycus-song-entrance .hat {
  position: absolute; bottom: 68%; left: 43%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #d2691e 0%, #8b4513 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-5deg);
  animation: as-hat 3s ease-in-out infinite;
}
.scn-autolycus-song-entrance .bag {
  position: absolute; bottom: 32%; left: 35%; width: 18px; height: 20px;
  background: linear-gradient(180deg, #6b3e1c 0%, #3a2010 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(10deg);
  animation: as-bag 3s ease-in-out infinite alternate;
}
.scn-autolycus-song-entrance .guitar {
  position: absolute; bottom: 22%; left: 52%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #a0522d 100%);
  border-radius: 4px;
  transform: rotate(20deg);
  animation: as-guitar 4s ease-in-out infinite;
}
.scn-autolycus-song-entrance .note {
  position: absolute; top: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ff8c00 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-autolycus-song-entrance .note-a { left: 30%; animation: as-note 2s ease-in-out infinite; }
.scn-autolycus-song-entrance .note-b { left: 60%; width: 12px; height: 12px; animation: as-note 2.5s ease-in-out infinite reverse; }
@keyframes as-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes as-walk { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(16px) rotate(-3deg); } }
@keyframes as-hat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes as-bag { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes as-guitar { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes as-note { 0% { transform: translate(0,0) scale(0.8); opacity: 0.6; } 50% { transform: translate(-10px,-20px) scale(1.2); opacity: 1; } 100% { transform: translate(-20px,-40px) scale(0.8); opacity: 0.4; } }

/* mopsa-dorcas-banter – funny, sunlit barn scene */
.scn-mopsa-dorcas-banter {
  background:
    linear-gradient(180deg, #f0e68c 0%, #deb887 60%),
    radial-gradient(ellipse at 20% 40%, #fff8dc 0%, transparent 60%);
}
.scn-mopsa-dorcas-banter .barn-wall {
  position: absolute; inset: 10% 10% 15% 10%;
  background: linear-gradient(180deg, #bc8f8f 0%, #a0522d 100%);
  border-radius: 8px;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.4);
}
.scn-mopsa-dorcas-banter .barn-roof {
  position: absolute; top: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(135deg, #8b4513 0%, #d2691e 50%, #8b4513 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: md-roof 10s ease-in-out infinite alternate;
}
.scn-mopsa-dorcas-banter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c4a882 0%, #8b7d3c 100%);
}
.scn-mopsa-dorcas-banter .milk-pail {
  position: absolute; bottom: 15%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-mopsa-dorcas-banter .milk-pail-1 { left: 30%; animation: md-pail 4s ease-in-out infinite; }
.scn-mopsa-dorcas-banter .milk-pail-2 { right: 30%; animation: md-pail 4.5s ease-in-out infinite reverse; }
.scn-mopsa-dorcas-banter .mopsa {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-mopsa 3s ease-in-out infinite;
}
.scn-mopsa-dorcas-banter .dorcas {
  position: absolute; bottom: 24%; right: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-dorcas 3.2s ease-in-out infinite alternate;
}
.scn-mopsa-dorcas-banter .speech-bubble {
  position: absolute; top: 20%; left: 35%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #fff8dc 0%, #f0e68c 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: md-bubble 2s ease-in-out infinite alternate;
}
@keyframes md-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes md-pail { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes md-mopsa { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes md-dorcas { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes md-bubble { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }

/* Scene 1: leontes-servant-messenger – tense, dim interior */
.scn-leontes-servant-messenger {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a2a1c 70%, #1e1410 100%),
    radial-gradient(ellipse at 30% 80%, #4a3420 0%, transparent 70%);
}
.scn-leontes-servant-messenger .room-bg {
  position: absolute; inset: 0; background: rgba(20,14,10,0.6);
  animation: slm1-room 12s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, rgba(10,8,5,0.8) 0%, transparent 100%);
  animation: slm1-floor 8s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .doorway {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0805 0%, #150f0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 8px 20px rgba(0,0,0,0.6);
  animation: slm1-door 5s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .messenger {
  position: absolute; bottom: 25%; left: 35%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: slm1-messenger 4s ease-in-out infinite;
}
.scn-leontes-servant-messenger .lantern-glow {
  position: absolute; bottom: 40%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c87a3a 0%, #8a4e22 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #a06030, 0 0 60px 20px rgba(160,96,48,0.3);
  animation: slm1-lantern 3s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .message-roll {
  position: absolute; bottom: 32%; left: 38%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #d4b878 0%, #a88450 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-20deg);
  animation: slm1-roll 4s ease-in-out infinite;
}
@keyframes slm1-room {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes slm1-floor {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes slm1-door {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.8), 0 0 10px rgba(200,120,50,0.2); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
}
@keyframes slm1-messenger {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes slm1-lantern {
  0% { box-shadow: 0 0 20px 4px #a06030; opacity: 0.8; transform: rotate(-5deg); }
  50% { box-shadow: 0 0 40px 12px #c87a3a; opacity: 1; transform: rotate(5deg); }
  100% { box-shadow: 0 0 25px 6px #a06030; opacity: 0.9; transform: rotate(-2deg); }
}
@keyframes slm1-roll {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

/* Scene 2: leontes-arraignment – dark, dim interior */
.scn-leontes-arraignment {
  background: 
    linear-gradient(180deg, #100a14 0%, #1a1220 30%, #241830 60%, #100a14 100%),
    radial-gradient(ellipse at 50% 80%, #2a1c38 0%, transparent 80%);
}
.scn-leontes-arraignment .dark-chamber {
  position: absolute; inset: 0; background: rgba(8,5,10,0.5);
  animation: la2-chamber 15s ease-in-out infinite alternate;
}
.scn-leontes-arraignment .throne-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1c38 0%, #140e1e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8), 0 10px 20px rgba(0,0,0,0.5);
  animation: la2-throne 7s ease-in-out infinite alternate;
}
.scn-leontes-arraignment .figure-kneeling {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a44 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: center bottom;
  animation: la2-kneel 5s ease-in-out infinite;
}
.scn-leontes-arraignment .torch-glow {
  position: absolute; bottom: 50%; left: 15%; width: 12px; height: 18px;
  background: radial-gradient(circle, #b86a30 0%, #6a3a1a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #8a4a22, 0 0 80px 30px rgba(138,74,34,0.3);
  animation: la2-torch 3s ease-in-out infinite alternate;
}
.scn-leontes-arraignment .chain-links {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 18px;
  background: repeating-linear-gradient(90deg, #4a3a4a 0px, #4a3a4a 4px, transparent 4px, transparent 8px);
  border-radius: 4px;
  transform: rotate(20deg);
  animation: la2-chain 4s ease-in-out infinite;
}
.scn-leontes-arraignment .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #241830 0%, transparent 100%);
  animation: la2-floor 10s ease-in-out infinite alternate;
}
@keyframes la2-chamber {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes la2-throne {
  0% { transform: translateX(-50%) scale(1); box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8); }
  50% { transform: translateX(-50%) scale(1.02); box-shadow: inset 0 -10px 40px rgba(0,0,0,0.9); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8); }
}
@keyframes la2-kneel {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(0) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(2px) rotate(0deg) translateY(0); }
  75% { transform: translateX(-2px) rotate(-2deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes la2-torch {
  0% { box-shadow: 0 0 30px 6px #8a4a22; opacity: 0.85; }
  50% { box-shadow: 0 0 50px 12px #b86a30; opacity: 1; }
  100% { box-shadow: 0 0 35px 8px #8a4a22; opacity: 0.9; }
}
@keyframes la2-chain {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(3px); }
  100% { transform: rotate(18deg) translateX(0); }
}
@keyframes la2-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

/* Scene 3: cleomenes-dion-oracle – calm, overcast */
.scn-cleomenes-dion-oracle {
  background: 
    linear-gradient(180deg, #9aaea8 0%, #7f948c 30%, #6a7e74 60%, #4a5e54 100%),
    radial-gradient(ellipse at 50% 0%, #bac8c2 0%, transparent 70%);
}
.scn-cleomenes-dion-oracle .sea-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #bac8c2 0%, #7f948c 100%);
  animation: cdo3-sky 20s ease-in-out infinite alternate;
}
.scn-cleomenes-dion-oracle .temple-columns {
  position: absolute; bottom: 25%; left: 50%; width: 90px; height: 100px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg, #a0aaa4 0px, #a0aaa4 12px, transparent 12px, transparent 18px, #a0aaa4 18px, #a0aaa4 30px, transparent 30px, transparent 36px, #a0aaa4 36px, #a0aaa4 48px, transparent 48px, transparent 54px, #a0aaa4 54px, #a0aaa4 66px, transparent 66px, transparent 72px, #a0aaa4 72px, #a0aaa4 84px, transparent 84px, transparent 90px);
  background-size: cover;
  border-radius: 4px;
  animation: cdo3-columns 30s ease-in-out infinite alternate;
}
.scn-cleomenes-dion-oracle .figures {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a5e54 0%, #2a3a32 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: cdo3-figures 8s ease-in-out infinite;
}
.scn-cleomenes-dion-oracle .wave-left {
  position: absolute; bottom: 0; left: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #6a7e74 40%, #4a5e54 100%);
  border-radius: 0 60% 0 0;
  animation: cdo3-wave-l 12s ease-in-out infinite alternate;
}
.scn-cleomenes-dion-oracle .wave-right {
  position: absolute; bottom: 0; right: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #6a7e74 40%, #4a5e54 100%);
  border-radius: 60% 0 0 0;
  animation: cdo3-wave-r 14s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-cleomenes-dion-oracle .cloud-overcast {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(186,200,194,0.8) 0%, rgba(127,148,140,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cdo3-cloud 40s linear infinite;
}
@keyframes cdo3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cdo3-columns {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes cdo3-figures {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cdo3-wave-l {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(0.95); }
}
@keyframes cdo3-wave-r {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.03); }
  100% { transform: translateY(0) scaleX(0.97); }
}
@keyframes cdo3-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

/* Scene 4: court-of-justice – tense, bright interior */
.scn-court-of-justice {
  background: 
    linear-gradient(180deg, #e8dad0 0%, #c8b8aa 40%, #a08878 70%, #6a5a4a 100%),
    radial-gradient(ellipse at 80% 20%, #f0e6da 0%, transparent 60%);
}
.scn-court-of-justice .court-window {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #f0e6da 0%, #c8b8aa 100%);
  border-right: 4px solid #6a5a4a;
  border-bottom: 4px solid #6a5a4a;
  animation: cj4-window 8s ease-in-out infinite alternate;
}
.scn-court-of-justice .window-light {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(135deg, rgba(240,230,218,0.6) 0%, transparent 100%);
  box-shadow: inset 0 0 40px rgba(240,230,218,0.3);
  animation: cj4-light 5s ease-in-out infinite alternate;
}
.scn-court-of-justice .judge-throne {
  position: absolute; bottom: 20%; left: 50%; width: 90px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.3), inset 0 10px 20px rgba(0,0,0,0.4);
  animation: cj4-throne 6s ease-in-out infinite alternate;
}
.scn-court-of-justice .accused {
  position: absolute; bottom: 15%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cj4-accused 4s ease-in-out infinite;
}
.scn-court-of-justice .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(40,30,20,0.6) 0%, transparent 100%);
  animation: cj4-stripe 10s ease-in-out infinite alternate;
}
.scn-court-of-justice .gavel-glow {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 14px;
  background: radial-gradient(circle, #c8a87a 0%, #a08060 50%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #b09070, 0 0 40px 12px rgba(176,144,112,0.4);
  animation: cj4-gavel 3s ease-in-out infinite alternate;
}
@keyframes cj4-window {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes cj4-light {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cj4-throne {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }
  50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 -10px 40px rgba(0,0,0,0.4); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }
}
@keyframes cj4-accused {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(0) rotate(3deg); }
  50% { transform: translateX(4px) rotate(0deg); }
  75% { transform: translateX(0) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cj4-stripe {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes cj4-gavel {
  0% { box-shadow: 0 0 10px 2px #b09070; opacity: 0.8; transform: rotate(-10deg); }
  50% { box-shadow: 0 0 25px 8px #c8a87a; opacity: 1; transform: rotate(10deg); }
  100% { box-shadow: 0 0 15px 4px #b09070; opacity: 0.9; transform: rotate(-5deg); }
}

/* Scene: lord-reports-camillo-betrayal */
.scn-lord-reports-camillo-betrayal {
  background:
    linear-gradient(180deg, #d4b48c 0%, #b89a7a 40%, #8a6e52 100%),
    radial-gradient(ellipse at 50% 30%, #f5e0c0 0%, transparent 70%);
}
.scn-lord-reports-camillo-betrayal .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, #b89a7a 0%, #c8a88a 50%, #b89a7a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-lord-reports-camillo-betrayal .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3a2e 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-lord-reports-camillo-betrayal .throne {
  position:absolute; bottom:25%; left:50%; width:80px; height:100px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #8a6e52 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-lord-reports-camillo-betrayal .figure-reporter {
  position:absolute; bottom:30%; left:30%; width:28px; height:60px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrcb-bow 2s ease-in-out infinite;
}
.scn-lord-reports-camillo-betrayal .figure-leontes {
  position:absolute; bottom:28%; left:55%; width:32px; height:70px;
  background: linear-gradient(180deg, #704020 0%, #4a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrcb-sit 3s ease-in-out infinite;
}
.scn-lord-reports-camillo-betrayal .candle {
  position:absolute; bottom:38%; left:40%; width:6px; height:14px;
  background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 16px 8px rgba(255,208,96,0.6), 0 0 32px 16px rgba(255,208,96,0.3);
  animation: lrcb-flicker 2s ease-in-out infinite;
}
.scn-lord-reports-camillo-betrayal .shadow-overlay {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.4) 100%);
  animation: lrcb-shadow-pulse 4s ease-in-out infinite;
}
@keyframes lrcb-bow {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lrcb-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lrcb-flicker {
  0% { opacity:0.8; box-shadow: 0 0 12px 6px rgba(255,208,96,0.4); }
  50% { opacity:1; box-shadow: 0 0 24px 12px rgba(255,208,96,0.7); }
  100% { opacity:0.85; box-shadow: 0 0 16px 8px rgba(255,208,96,0.5); }
}
@keyframes lrcb-shadow-pulse {
  0%,100% { opacity:0.8; }
  50% { opacity:1; }
}

/* Scene: florizel-fears */
.scn-florizel-fears {
  background:
    linear-gradient(180deg, #0f0c1a 0%, #1a1426 50%, #0f0c1a 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e3a 0%, transparent 80%);
}
.scn-florizel-fears .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0812 0%, #1a1426 100%);
}
.scn-florizel-fears .light-circle {
  position:absolute; bottom:30%; left:50%; width:120px; height:120px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(240,200,120,0.15) 0%, transparent 70%);
  border-radius:50%;
  animation: flf-breath 3s ease-in-out infinite alternate;
}
.scn-florizel-fears .figure-florizel {
  position:absolute; bottom:25%; left:50%; width:30px; height:65px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1222 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flf-tremble 1.6s ease-in-out infinite;
}
.scn-florizel-fears .shadow-florizel {
  position:absolute; bottom:20%; left:48%; width:40px; height:15px;
  background: rgba(0,0,0,0.6);
  border-radius:50%;
  filter: blur(4px);
  animation: flf-shadow-move 2s ease-in-out infinite;
}
.scn-florizel-fears .doorway {
  position:absolute; bottom:15%; left:20%; width:50px; height:80px;
  background: linear-gradient(180deg, #2a203a 0%, #0a0812 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: flf-door-sway 4s ease-in-out infinite;
}
.scn-florizel-fears .hand-clutching {
  position:absolute; bottom:30%; left:55%; width:12px; height:18px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: flf-clutch 1.5s ease-in-out infinite;
}
.scn-florizel-fears .dust-motes {
  position:absolute; top:20%; left:30%; width:4px; height:4px;
  background: rgba(255,255,255,0.2);
  border-radius:50%;
  box-shadow: 20px 30px 0 rgba(255,255,255,0.1), -10px 50px 0 rgba(255,255,255,0.15);
  animation: flf-drift 12s linear infinite;
}
@keyframes flf-breath {
  0% { transform: translateX(-50%) scale(0.95); opacity:0.6; }
  50% { transform: translateX(-50%) scale(1.05); opacity:0.9; }
  100% { transform: translateX(-50%) scale(0.98); opacity:0.7; }
}
@keyframes flf-tremble {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes flf-shadow-move {
  0%,100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(0.9); }
}
@keyframes flf-door-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes flf-clutch {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes flf-drift {
  0% { transform: translateY(0); opacity:0.2; }
  50% { transform: translateY(30px); opacity:0.6; }
  100% { transform: translateY(60px); opacity:0.1; }
}

/* Scene: leontes-advises */
.scn-leontes-advises {
  background:
    linear-gradient(135deg, #e8c8a8 0%, #d4a878 50%, #c09868 100%),
    radial-gradient(ellipse at 70% 20%, #f5dcc0 0%, transparent 60%);
}
.scn-leontes-advises .bg-warm-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d4b898 0%, #e0c8a8 100%);
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.1);
}
.scn-leontes-advises .floor-warm {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-leontes-advises .figure-leontes-advising {
  position:absolute; bottom:28%; left:45%; width:34px; height:72px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ladv-breathe 4s ease-in-out infinite;
}
.scn-leontes-advises .figure-lady {
  position:absolute; bottom:30%; left:55%; width:28px; height:60px;
  background: linear-gradient(180deg, #c09070 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ladv-look-up 3s ease-in-out infinite;
}
.scn-leontes-advises .window-light {
  position:absolute; top:10%; left:70%; width:60px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,160,0.6) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  animation: ladv-window 8s ease-in-out infinite alternate;
}
.scn-leontes-advises .gentle-glow {
  position:absolute; bottom:35%; left:50%; width:100px; height:80px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,200,150,0.2) 0%, transparent 70%);
  border-radius:50%;
  animation: ladv-glow-pulse 5s ease-in-out infinite;
}
@keyframes ladv-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ladv-look-up {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ladv-window {
  0% { opacity:0.5; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.6; transform: scale(0.98); }
}
@keyframes ladv-glow-pulse {
  0%,100% { opacity:0.3; transform: translateX(-50%) scale(1); }
  50% { opacity:0.6; transform: translateX(-50%) scale(1.1); }
}

/* Scene: paulina-warning-leontes */
.scn-paulina-warning-leontes {
  background:
    linear-gradient(180deg, #d4a87a 0%, #b88868 40%, #9a7050 100%),
    radial-gradient(ellipse at 50% 20%, #e8c8a0 0%, transparent 70%);
}
.scn-paulina-warning-leontes .bg-court {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #c8a080 0%, #b09070 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
}
.scn-paulina-warning-leontes .floor-court {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%);
  border-radius: 0 0 15% 15% / 0 0 10% 10%;
}
.scn-paulina-warning-leontes .throne-court {
  position:absolute; bottom:25%; left:50%; width:80px; height:95px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #8a6a52 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-paulina-warning-leontes .figure-paulina {
  position:absolute; bottom:28%; left:30%; width:26px; height:58px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwl-point 1.5s ease-in-out infinite;
}
.scn-paulina-warning-leontes .figure-leontes-court {
  position:absolute; bottom:26%; left:55%; width:34px; height:70px;
  background: linear-gradient(180deg, #704020 0%, #4a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwl-recoil 2s ease-in-out infinite;
}
.scn-paulina-warning-leontes .torch {
  position:absolute; bottom:38%; left:60%; width:6px; height:16px;
  background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #c06020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(255,160,64,0.5), 0 0 40px 20px rgba(255,160,64,0.2);
  animation: pwl-torch-flicker 2.4s ease-in-out infinite;
}
.scn-paulina-warning-leontes .shadow-court {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 50%, transparent 20%, rgba(0,0,0,0.5) 100%);
  animation: pwl-shadow-strech 3s ease-in-out infinite;
}
.scn-paulina-warning-leontes .scroll {
  position:absolute; bottom:30%; left:35%; width:14px; height:20px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b898 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pwl-scroll-drop 4s ease-in-out infinite;
}
@keyframes pwl-point {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-10deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-15deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pwl-recoil {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(5deg); }
}
@keyframes pwl-torch-flicker {
  0% { opacity:0.8; box-shadow: 0 0 15px 8px rgba(255,160,64,0.4); }
  50% { opacity:1; box-shadow: 0 0 25px 12px rgba(255,160,64,0.7); }
  100% { opacity:0.9; box-shadow: 0 0 18px 10px rgba(255,160,64,0.5); }
}
@keyframes pwl-shadow-strech {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
}
@keyframes pwl-scroll-drop {
  0% { transform: translateY(0) rotate(0deg); opacity:0; }
  20% { transform: translateY(0) rotate(0deg); opacity:1; }
  80% { transform: translateY(0) rotate(0deg); opacity:1; }
  100% { transform: translateY(10px) rotate(10deg); opacity:0; }
}

.scn-autolycus-soliloquy-exchange {
  background: linear-gradient(180deg, #f8f5e0 0%, #ffe8b0 30%, #ffd880 60%, #e0b060 100%),
              radial-gradient(ellipse at 70% 20%, #fff5d0 0%, transparent 60%);
}
.scn-autolycus-soliloquy-exchange .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #add8e6 0%, #b0e0e6 50%, #f0f8ff 100%); opacity:0.6; animation: au-sky 14s ease-in-out infinite alternate; }
.scn-autolycus-soliloquy-exchange .market-stall { position:absolute; bottom:25%; left:10%; right:20%; height:40%; background: linear-gradient(135deg, #d2b48c 0%, #c19a6b 50%, #a67c52 100%); border-radius: 10% 80% 0 0; box-shadow: inset 0 -8px 15px rgba(80,40,10,0.4); animation: au-stall 20s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .figure-autolycus { position:absolute; bottom:30%; left:45%; width:35px; height:70px; background: linear-gradient(180deg, #6b4c3b 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: au-figure 3s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .ear { position:absolute; bottom:55%; left:48%; width:12px; height:20px; background: radial-gradient(circle at 30% 30%, #dfc0a0 0%, #b8956a 100%); border-radius: 50% 50% 30% 30%; box-shadow: -2px 0 3px rgba(0,0,0,0.2); animation: au-ear 4s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .hand { position:absolute; bottom:35%; left:42%; width:16px; height:24px; background: linear-gradient(180deg, #c9a87c 0%, #8b6b4a 100%); border-radius: 40% 40% 20% 20%; transform-origin: 50% 100%; animation: au-hand 2.5s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .coin { position:absolute; bottom:28%; left:38%; width:14px; height:14px; background: radial-gradient(circle, #ffd700 0%, #b8860b 60%, #8b6508 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,215,0,0.6); animation: au-coin 5s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .shadow { position:absolute; bottom:25%; left:40%; width:80px; height:8px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50%; animation: au-shadow 4s ease-in-out infinite; }
@keyframes au-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes au-stall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateX(2px) } 100% { transform: scaleY(1) } }
@keyframes au-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes au-ear { 0% { transform: scale(1) } 50% { transform: scale(1.2,0.8) } 100% { transform: scale(1) } }
@keyframes au-hand { 0% { transform: rotate(10deg) translateY(0) } 30% { transform: rotate(-5deg) translateY(-4px) } 60% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes au-coin { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-8px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }
@keyframes au-shadow { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(0.8); opacity:0.4 } 100% { transform: scaleX(1); opacity:0.6 } }

.scn-shepherd-clown-approach {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #fffacd 100%),
              radial-gradient(ellipse at 30% 80%, #ffe68f 0%, transparent 70%);
}
.scn-shepherd-clown-approach .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e68c 0%, #fff8dc 100%); opacity:0.4; animation: sca-sky 12s ease-in-out infinite alternate; }
.scn-shepherd-clown-approach .path { position:absolute; bottom:20%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #cdb38c 0%, #a08050 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: sca-path 18s ease-in-out infinite; }
.scn-shepherd-clown-approach .clown { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #ffcc99 0%, #e69966 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sca-clown 3s ease-in-out infinite; }
.scn-shepherd-clown-approach .hat { position:absolute; bottom:68%; left:33%; width:44px; height:18px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0c 100%); border-radius: 60% 60% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: sca-hat 5s ease-in-out infinite; }
.scn-shepherd-clown-approach .shop { position:absolute; bottom:30%; right:10%; width:60px; height:50px; background: linear-gradient(135deg, #d2691e 0%, #a0522d 50%, #8b4513 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); animation: sca-shop 15s ease-in-out infinite; }
.scn-shepherd-clown-approach .sign { position:absolute; bottom:45%; right:18%; width:20px; height:8px; background: #f5deb3; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sca-sign 7s ease-in-out infinite; }
.scn-shepherd-clown-approach .shadow-clown { position:absolute; bottom:20%; left:30%; width:60px; height:6px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50%; animation: sca-shadow 4s ease-in-out infinite; }
@keyframes sca-sky { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes sca-path { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sca-clown { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sca-hat { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes sca-shop { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes sca-sign { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes sca-shadow { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(0.9); opacity:0.3 } 100% { transform: scaleX(1); opacity:0.5 } }

.scn-shepherd-clown-plot {
  background: linear-gradient(180deg, #ffff99 0%, #ffeb3b 40%, #ffc107 100%),
              radial-gradient(ellipse at 50% 100%, #ff9800 0%, transparent 60%);
  filter: contrast(1.1);
}
.scn-shepherd-clown-plot .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffdd57 0%, #ffe082 100%); opacity:0.7; animation: scp-sky 8s ease-in-out infinite alternate; }
.scn-shepherd-clown-plot .ground-plot { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c8a96e 0%, #8b6f47 100%); box-shadow: inset 0 10px 25px rgba(0,0,0,0.5); animation: scp-ground 12s ease infinite; }
.scn-shepherd-clown-plot .figure-left { position:absolute; bottom:25%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #4a2e2a 0%, #2d1b1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scp-fig-left 3s ease-in-out infinite; }
.scn-shepherd-clown-plot .figure-right { position:absolute; bottom:25%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #5a3e2e 0%, #3a2620 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scp-fig-right 3s ease-in-out infinite; }
.scn-shepherd-clown-plot .bundle { position:absolute; bottom:30%; left:45%; width:20px; height:18px; background: linear-gradient(135deg, #9e7c53 0%, #6b502e 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 0 10px 2px rgba(255,215,0,0.3); animation: scp-bundle 6s ease-in-out infinite; }
.scn-shepherd-clown-plot .secret-shadow { position:absolute; bottom:20%; left:30%; right:30%; height:10px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, transparent 100%); animation: scp-shadow 4s ease-in-out infinite; }
.scn-shepherd-clown-plot .eye-watch { position:absolute; top:20%; right:15%; width:10px; height:10px; background: radial-gradient(circle, #fff 0%, #000 80%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(255,255,255,0.5); animation: scp-eye 4s ease-in-out infinite; }
@keyframes scp-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes scp-ground { 0% { background-position:0 0 } 50% { background-position:5px 0 } 100% { background-position:0 0 } }
@keyframes scp-fig-left { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(-2deg) } 60% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes scp-fig-right { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes scp-bundle { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes scp-shadow { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(0.8); opacity:0.2 } 100% { transform: scaleX(1); opacity:0.4 } }
@keyframes scp-eye { 0% { transform: scale(1); box-shadow: 0 0 8px 2px white; } 50% { transform: scale(1.5); box-shadow: 0 0 20px 6px white; } 100% { transform: scale(1); } }

.scn-clown-brother-law {
  background: linear-gradient(180deg, #f0e68c 0%, #ffd700 30%, #daa520 100%),
              radial-gradient(circle at 80% 20%, #fff8dc 0%, transparent 60%);
}
.scn-clown-brother-law .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c4de 0%, #add8e6 100%); opacity:0.5; animation: cbl-sky 20s ease-in-out infinite alternate; }
.scn-clown-brother-law .floor { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #deb887 0%, #c8a96e 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,0.3); animation: cbl-floor 10s ease infinite; }
.scn-clown-brother-law .clown-brother { position:absolute; bottom:30%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #ffcc99 0%, #e68a5e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cbl-clown 2.5s ease-in-out infinite; }
.scn-clown-brother-law .crown { position:absolute; bottom:68%; left:36%; width:28px; height:12px; background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: cbl-crown 4s ease-in-out infinite; }
.scn-clown-brother-law .puppy { position:absolute; bottom:15%; left:60%; width:20px; height:20px; background: radial-gradient(circle at 60% 30%, #f5deb3 0%, #d2b48c 60%, #a08050 100%); border-radius: 50% 50% 40% 40%; animation: cbl-puppy 3s ease-in-out infinite; }
.scn-clown-brother-law .fardel { position:absolute; bottom:28%; right:15%; width:25px; height:20px; background: linear-gradient(135deg, #8b4513 0%, #5c2e0c 100%); border-radius: 15% 15% 25% 25%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5); animation: cbl-fardel 6s ease-in-out infinite; }
.scn-clown-brother-law .bounce-shadow { position:absolute; bottom:10%; left:30%; right:30%; height:8px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%); animation: cbl-bounce 3s ease-in-out infinite; }
@keyframes cbl-sky { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes cbl-floor { 0% { background-position:0 0 } 50% { background-position:3px 0 } 100% { background-position:0 0 } }
@keyframes cbl-clown { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(4deg) } 60% { transform: translateX(-5px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cbl-crown { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes cbl-puppy { 0% { transform: translateY(0) scale(1) } 30% { transform: translateY(-6px) scale(1.1) } 60% { transform: translateY(-3px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes cbl-fardel { 0% { transform: rotate(0) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0) } }
@keyframes cbl-bounce { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(0.7); opacity:0.2 } 100% { transform: scaleX(1); opacity:0.5 } }

.scn-shepherd-clown-banter { background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 60%), radial-gradient(ellipse at 50% 80%, #ffe87c 0%, transparent 70%); }
.scn-shepherd-clown-banter .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 100%); }
.scn-shepherd-clown-banter .sun { position: absolute; top: 12%; right: 18%; width: 40px; height: 40px; background: radial-gradient(circle, #fff5b0 0%, #ffd700 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); animation: scb-sun 6s ease-in-out infinite alternate; }
.scn-shepherd-clown-banter .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6b8e23 0%, #3a5f0b 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-shepherd-clown-banter .figure.shepherd { position: absolute; bottom: 20%; left: 25%; width: 28px; height: 48px; background: linear-gradient(180deg, #a0522d 0%, #5C3A21 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scb-bob 3s ease-in-out infinite; }
.scn-shepherd-clown-banter .figure.clown { position: absolute; bottom: 20%; right: 25%; width: 30px; height: 50px; background: linear-gradient(180deg, #ff8c00 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scb-bob 3.5s ease-in-out infinite reverse; }
.scn-shepherd-clown-banter .hat { position: absolute; bottom: 46%; right: 24%; width: 20px; height: 14px; background: linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius: 50% 50% 20% 20%; animation: scb-spin 4s linear infinite; }
.scn-shepherd-clown-banter .staff { position: absolute; bottom: 20%; left: 20%; width: 4px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5C3A21 100%); transform: rotate(-10deg); animation: scb-staff 5s ease-in-out infinite; }
.scn-shepherd-clown-banter .speech-bubble { position: absolute; top: 25%; left: 40%; width: 40px; height: 28px; background: rgba(255,255,255,0.7); border-radius: 50%; filter: blur(2px); animation: scb-bubble 2s ease-in-out infinite alternate; }
@keyframes scb-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(4px, -4px) scale(1.05); } 100% { transform: translate(-2px, 2px) scale(0.95); } }
@keyframes scb-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scb-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes scb-staff { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes scb-bubble { 0% { transform: scale(1) translate(0, 0); } 50% { transform: scale(1.1) translate(5px, -3px); } 100% { transform: scale(0.95) translate(-3px, 2px); } }

.scn-shepherd-clown-reconciliation { background: linear-gradient(180deg, #f0e68c 0%, #ffd700 40%), radial-gradient(ellipse at 50% 60%, #fff8dc 0%, transparent 70%); }
.scn-shepherd-clown-reconciliation .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a0c4ff 0%, #d4e0ff 100%); animation: scr-sky 12s ease-in-out infinite alternate; }
.scn-shepherd-clown-reconciliation .sun.warm { position: absolute; top: 8%; left: 20%; width: 50px; height: 50px; background: radial-gradient(circle, #fff7d0 0%, #ffb347 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,179,71,0.5); animation: scr-sun 8s ease-in-out infinite alternate; }
.scn-shepherd-clown-reconciliation .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-shepherd-clown-reconciliation .figure.left { position: absolute; bottom: 22%; left: 32%; width: 28px; height: 48px; background: linear-gradient(180deg, #a0522d 0%, #5C3A21 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scr-figure 4s ease-in-out infinite; }
.scn-shepherd-clown-reconciliation .figure.right { position: absolute; bottom: 22%; right: 32%; width: 28px; height: 48px; background: linear-gradient(180deg, #ff8c00 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scr-figure 4s ease-in-out infinite reverse; }
.scn-shepherd-clown-reconciliation .heart { position: absolute; top: 38%; left: 46%; width: 20px; height: 18px; background: #e65c5c; transform: rotate(-45deg); border-radius: 10px 10px 0 0; animation: scr-heart 3s ease-in-out infinite; }
.scn-shepherd-clown-reconciliation .sparkle { position: absolute; top: 30%; right: 25%; width: 6px; height: 6px; background: #fff7d0; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,247,208,0.8); animation: scr-sparkle 2s ease-in-out infinite alternate; }
@keyframes scr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes scr-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(6px, -3px) scale(1.02); } 100% { transform: translate(-4px, 2px) scale(0.98); } }
@keyframes scr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes scr-heart { 0% { transform: rotate(-45deg) scale(1); } 50% { transform: rotate(-45deg) scale(1.2); opacity: 0.8; } 100% { transform: rotate(-45deg) scale(0.95); } }
@keyframes scr-sparkle { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.5; } }

.scn-clown-oath-mockery { background: linear-gradient(180deg, #b0e0ff 0%, #87ceeb 50%), radial-gradient(ellipse at 50% 100%, #ffe87c 0%, transparent 70%); }
.scn-clown-oath-mockery .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #b0e0ff 0%, #d4f0ff 100%); }
.scn-clown-oath-mockery .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #6b8e23 0%, #3a5f0b 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-clown-oath-mockery .figure.clown { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 50px; background: linear-gradient(180deg, #ff8c00 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: com-figure 3s ease-in-out infinite; }
.scn-clown-oath-mockery .hat { position: absolute; bottom: 48%; left: 38%; width: 22px; height: 16px; background: linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius: 50% 50% 20% 20%; animation: com-hat 2.5s ease-in-out infinite; }
.scn-clown-oath-mockery .bottle { position: absolute; bottom: 28%; left: 55%; width: 10px; height: 20px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 30% 30% 10% 10%; transform: rotate(30deg); animation: com-bottle 4s ease-in-out infinite; }
.scn-clown-oath-mockery .hand { position: absolute; bottom: 24%; left: 48%; width: 12px; height: 16px; background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: com-hand 3.5s ease-in-out infinite alternate; }
.scn-clown-oath-mockery .scroll { position: absolute; top: 35%; right: 20%; width: 20px; height: 14px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 20% 20% 20% 20% / 40% 40% 40% 40%; animation: com-scroll 6s ease-in-out infinite alternate; }
@keyframes com-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(8deg); } 50% { transform: translateY(-2px) rotate(-4deg); } 75% { transform: translateY(-4px) rotate(6deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes com-hat { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(-3px, -2px) rotate(-10deg); } 50% { transform: translate(2px, -1px) rotate(15deg); } 75% { transform: translate(-1px, 2px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes com-bottle { 0% { transform: rotate(30deg) translate(0, 0); } 50% { transform: rotate(20deg) translate(4px, -2px); } 100% { transform: rotate(35deg) translate(-2px, 1px); } }
@keyframes com-hand { 0% { transform: rotate(20deg) translate(0, 0); } 50% { transform: rotate(30deg) translate(3px, -1px); } 100% { transform: rotate(15deg) translate(-2px, 2px); } }
@keyframes com-scroll { 0% { transform: scaleY(1) translate(0, 0); } 50% { transform: scaleY(1.1) translate(5px, -3px); } 100% { transform: scaleY(0.95) translate(-3px, 2px); } }

.scn-chapel-statue-revelation { background: linear-gradient(180deg, #1a1a2e 0%, #3a3a5e 50%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%); }
.scn-chapel-statue-revelation .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2c2c4a 0%, #1a1a2e 100%); }
.scn-chapel-statue-revelation .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; }
.scn-chapel-statue-revelation .window { position: absolute; top: 18%; left: 10%; width: 80px; height: 60px; background: linear-gradient(135deg, #87ceeb 0%, #b0e0ff 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(135,206,235,0.5), 0 0 40px rgba(135,206,235,0.3); animation: csr-window 8s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .statue { position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a5a7a 0%, #2a2a4a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: csr-statue 15s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .candle { position: absolute; bottom: 32%; left: 35%; width: 8px; height: 20px; background: linear-gradient(180deg, #f0c080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px rgba(240,192,128,0.6); animation: csr-candle 3s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .light-ray { position: absolute; top: 20%; left: 12%; width: 60px; height: 80px; background: radial-gradient(ellipse at top, rgba(255,255,240,0.3) 0%, transparent 60%); filter: blur(8px); animation: csr-light 10s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .figure.praying { position: absolute; bottom: 20%; left: 55%; width: 24px; height: 40px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csr-pray 4s ease-in-out infinite; }
@keyframes csr-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(135,206,235,0.5), 0 0 40px rgba(135,206,235,0.3); } 50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(135,206,235,0.7), 0 0 60px rgba(135,206,235,0.5); } 100% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(135,206,235,0.4), 0 0 30px rgba(135,206,235,0.2); } }
@keyframes csr-statue { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes csr-candle { 0% { transform: scaleY(1) translate(0, 0); opacity: 0.8; } 50% { transform: scaleY(1.05) translate(0, -2px); opacity: 1; } 100% { transform: scaleY(0.95) translate(0, 1px); opacity: 0.75; } }
@keyframes csr-light { 0% { transform: translateX(0) scaleY(1); opacity: 0.4; } 50% { transform: translateX(8px) scaleY(1.1); opacity: 0.6; } 100% { transform: translateX(-5px) scaleY(0.9); opacity: 0.3; } }
@keyframes csr-pray { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* florizel-accepts – warm sunlit outdoor dialogue */
.scn-florizel-accepts {
  background: linear-gradient(180deg, #f6d9a0 0%, #e4b97a 40%, #c88a4a 70%, #7a4a2a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-florizel-accepts .sun-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #f4ca8a 40%, #dba060 100%);
  animation: fa-sky 10s ease-in-out infinite alternate;
}
.scn-florizel-accepts .hills-bg {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9b7a4a 0%, #6b4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  transform: scale(1.02);
  animation: fa-hills 15s ease-in-out infinite alternate;
}
.scn-florizel-accepts .hill-fg {
  position: absolute; bottom: 25%; left: -5%; right: -5%; height: 28%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: fa-hillfg 12s ease-in-out infinite alternate;
}
.scn-florizel-accepts .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fa-figure1 6s ease-in-out infinite;
}
.scn-florizel-accepts .figure-right {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 35% 35% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fa-figure2 7s ease-in-out infinite;
}
.scn-florizel-accepts .cloak {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top center;
  animation: fa-cloak 4s ease-in-out infinite alternate;
}
.scn-florizel-accepts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-florizel-accepts .cloud-1 {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(255,240,210,0.6), rgba(255,240,210,0.1));
  border-radius: 50%; filter: blur(8px);
  animation: fa-drift1 40s linear infinite;
}
.scn-florizel-accepts .cloud-2 {
  position: absolute; top: 18%; right: 8%; width: 60px; height: 15px;
  background: linear-gradient(90deg, rgba(255,240,210,0.5), rgba(255,240,210,0.05));
  border-radius: 50%; filter: blur(6px);
  animation: fa-drift2 55s linear infinite reverse;
}
@keyframes fa-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fa-hills { 0% { transform: scale(1.02) translateY(0); } 50% { transform: scale(1.02) translateY(-4px); } 100% { transform: scale(1.02) translateY(0); } }
@keyframes fa-hillfg { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fa-figure1 { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(2deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fa-figure2 { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(4px) rotate(-3deg); } 70% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fa-cloak { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes fa-drift1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes fa-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* sicilia-plan – sunlit interior planning scene */
.scn-sicilia-plan {
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 40%, #a08050 80%, #605030 100%),
              radial-gradient(ellipse at 30% 40%, #fff0c0 0%, transparent 60%);
}
.scn-sicilia-plan .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-sicilia-plan .window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  margin-left: -40px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d090 100%);
  border: 8px solid #8a6a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.6);
  animation: sp-window 8s ease-in-out infinite alternate;
}
.scn-sicilia-plan .table {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-sicilia-plan .cup {
  position: absolute; bottom: 16%; left: 35%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a3a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: sp-cup 5s ease-in-out infinite alternate;
}
.scn-sicilia-plan .figure-king {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp-king 9s ease-in-out infinite;
}
.scn-sicilia-plan .figure-courtier {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #1a0a00 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp-courtier 7s ease-in-out infinite alternate;
}
.scn-sicilia-plan .scroll {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #f0d8a0 0%, #e0c080 50%, #f0d8a0 100%);
  border-radius: 4px;
  animation: sp-scroll 6s ease-in-out infinite;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-sicilia-plan .sun-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: sp-ray 12s ease-in-out infinite alternate;
}
@keyframes sp-window { 0% { opacity: 0.8; filter: brightness(0.9); } 50% { opacity: 1; filter: brightness(1); } 100% { opacity: 0.85; filter: brightness(0.95); } }
@keyframes sp-cup { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sp-king { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(2deg); } 60% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-courtier { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-scroll { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes sp-ray { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

/* florizel-questions-garb – tense, sharp shadows, sunlit */
.scn-florizel-questions-garb {
  background: linear-gradient(180deg, #fff0c0 0%, #e0b070 30%, #c08850 60%, #805030 100%),
              radial-gradient(ellipse at 40% 60%, #ffe8a0 0%, transparent 50%);
}
.scn-florizel-questions-garb .sky-tens {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c880 60%, #d0a060 100%);
  animation: fq-sky 6s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .shadow-layer {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(80,40,10,0.3) 0%, transparent 100%);
  mix-blend-mode: multiply;
  animation: fq-shadow 8s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .figure-upper {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 30% / 70% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fq-figure 5s ease-in-out infinite;
}
.scn-florizel-questions-garb .garment {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 60%, #702243 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: top center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: fq-garment 4s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .hands {
  position: absolute; bottom: 28%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  animation: fq-hands 7s ease-in-out infinite;
}
.scn-florizel-questions-garb .ground-tens {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: fq-ground 9s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .cloud-sharp {
  position: absolute; top: 12%; left: 20%; width: 100px; height: 24px;
  background: linear-gradient(90deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: fq-drift1 45s linear infinite;
}
.scn-florizel-questions-garb .cloud-soft {
  position: absolute; top: 22%; right: 10%; width: 70px; height: 18px;
  background: linear-gradient(90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(7px);
  animation: fq-drift2 60s linear infinite reverse;
}
@keyframes fq-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fq-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes fq-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-3deg); } 60% { transform: translateX(-1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fq-garment { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(8deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(0.95); } }
@keyframes fq-hands { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fq-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fq-drift1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(130vw); } }
@keyframes fq-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

/* florizel-commitment – warm close-up of clasped hands */
.scn-florizel-commitment {
  background: linear-gradient(180deg, #f5d8a0 0%, #e0b878 50%, #c09050 100%),
              radial-gradient(circle at 50% 60%, #ffe8b0 0%, transparent 70%);
}
.scn-florizel-commitment .glow-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,220,150,0.4) 0%, transparent 80%);
  animation: fc-glow 5s ease-in-out infinite alternate;
}
.scn-florizel-commitment .hand-left {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 20% 20% / 60% 40% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: fc-handl 3s ease-in-out infinite alternate;
}
.scn-florizel-commitment .hand-right {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 50% 20% 20% / 40% 60% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: fc-handr 3.5s ease-in-out infinite alternate;
}
.scn-florizel-commitment .sleeve-left {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #702243 100%);
  border-radius: 40% 20% 10% 10% / 50% 30% 10% 10%;
  animation: fc-sleevel 4s ease-in-out infinite alternate;
}
.scn-florizel-commitment .sleeve-right {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 40% 10% 10% / 30% 50% 10% 10%;
  animation: fc-sleever 4.2s ease-in-out infinite alternate;
}
.scn-florizel-commitment .light-spot {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  animation: fc-spot 2s ease-in-out infinite alternate;
}
.scn-florizel-commitment .dust {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: rgba(255,220,150,0.6);
  border-radius: 50%;
  box-shadow: 30px 40px 0 0 rgba(255,220,150,0.4), 70px 20px 0 0 rgba(255,220,150,0.3), 100px 60px 0 0 rgba(255,220,150,0.2);
  animation: fc-dust 8s ease-in-out infinite;
}
@keyframes fc-glow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes fc-handl { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes fc-handr { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes fc-sleevel { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes fc-sleever { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes fc-spot { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes fc-dust { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.9; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }

.scn-satyr-dance-arrangement {
  background: 
    linear-gradient(180deg, #7eb8da 0%, #a4d8f0 40%, #f2e8c6 70%, #c9b896 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-satyr-dance-arrangement .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #a4d8f0 0%, #d6eef5 100%); animation: sda-sky 20s ease-in-out infinite alternate; }
.scn-satyr-dance-arrangement .sun { position: absolute; top: 8%; left: 20%; width: 70px; height: 70px; background: radial-gradient(circle, #fff8d0 0%, #ffe47a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px #ffe47a; animation: sda-sun 30s ease-in-out infinite alternate; }
.scn-satyr-dance-arrangement .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8faf7a 0%, #6b8f5e 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); animation: sda-hills 15s ease-in-out infinite; }
.scn-satyr-dance-arrangement .trees-left { position: absolute; bottom: 35%; left: 8%; width: 50px; height: 100px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a25 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: sda-tree 25s ease-in-out infinite; }
.scn-satyr-dance-arrangement .trees-right { position: absolute; bottom: 35%; right: 8%; width: 60px; height: 110px; background: linear-gradient(180deg, #3a6a3a 0%, #1a4a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: sda-tree 30s ease-in-out infinite 5s; }
.scn-satyr-dance-arrangement .dancers { position: absolute; bottom: 28%; left: 35%; width: 120px; height: 60px; background: transparent; animation: sda-dancers 8s ease-in-out infinite; }
.scn-satyr-dance-arrangement .dancers::before, .scn-satyr-dance-arrangement .dancers::after { content: ''; position: absolute; bottom: 0; width: 20px; height: 40px; background: linear-gradient(180deg, #c8a882 0%, #a0805e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-satyr-dance-arrangement .dancers::before { left: 0; animation: sda-dancer-left 8s ease-in-out infinite; }
.scn-satyr-dance-arrangement .dancers::after { right: 0; animation: sda-dancer-right 8s ease-in-out infinite 2s; }
.scn-satyr-dance-arrangement .ground { position: absolute; bottom: 20%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #9ab87a 0%, #7a9a5e 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-satyr-dance-arrangement .grass { position: absolute; bottom: 18%; left: 0; right: 0; height: 8%; background: linear-gradient(90deg, #5a8a4a 0%, #6a9a5a 15%, #5a8a4a 30%, #6a9a5a 45%, #5a8a4a 60%, #6a9a5a 75%, #5a8a4a 100%); filter: blur(2px); animation: sda-grass 4s ease-in-out infinite; }
@keyframes sda-sky   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sda-sun   { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 80px 30px #ffe47a; } 50% { transform: translate(10px, -5px) scale(1.02); box-shadow: 0 0 100px 40px #ffe47a; } 100% { transform: translate(-5px, 5px) scale(0.98); box-shadow: 0 0 60px 20px #ffe47a; } }
@keyframes sda-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sda-tree  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sda-dancers { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes sda-dancer-left { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(10deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 75% { transform: translateY(-6px) rotate(8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sda-dancer-right { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-6px) rotate(-10deg) } 50% { transform: translateY(-3px) rotate(5deg) } 75% { transform: translateY(-5px) rotate(-8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sda-grass { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }

.scn-satyr-dance {
  background: 
    linear-gradient(180deg, #f7d89a 0%, #fce4b8 40%, #f2c882 100%),
    radial-gradient(ellipse at 50% 20%, #fff6d6 0%, transparent 70%);
}
.scn-satyr-dance .stage { position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #b8967a 0%, #8a705a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.2); animation: sd-stage 10s ease-in-out infinite; }
.scn-satyr-dance .backdrop { position: absolute; top: 10%; left: 15%; right: 15%; height: 50%; background: linear-gradient(180deg, #c8a882 0%, #e8c8a0 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; }
.scn-satyr-dance .satyr-left { position: absolute; bottom: 32%; left: 25%; width: 40px; height: 70px; background: linear-gradient(180deg, #a0805e 0%, #7a5e3e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sd-satyr-left 2s ease-in-out infinite; }
.scn-satyr-dance .satyr-left::before { content: ''; position: absolute; top: -20px; left: 5px; width: 30px; height: 30px; background: #a0805e; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(20deg); }
.scn-satyr-dance .satyr-left::after { content: ''; position: absolute; top: 0; right: -10px; width: 15px; height: 25px; background: #7a5e3e; border-radius: 40% 60% 30% 30% / 60% 40% 30% 30%; transform: rotate(-30deg); animation: sd-arm 1.5s ease-in-out infinite; }
.scn-satyr-dance .satyr-right { position: absolute; bottom: 32%; right: 25%; width: 40px; height: 70px; background: linear-gradient(180deg, #b0906e 0%, #8a6a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sd-satyr-right 2.5s ease-in-out infinite; }
.scn-satyr-dance .satyr-right::before { content: ''; position: absolute; top: -20px; left: 5px; width: 30px; height: 30px; background: #b0906e; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); }
.scn-satyr-dance .satyr-right::after { content: ''; position: absolute; top: 0; left: -10px; width: 15px; height: 25px; background: #8a6a4a; border-radius: 60% 40% 30% 30% / 40% 60% 30% 30%; transform: rotate(30deg); animation: sd-arm 1.8s ease-in-out infinite 0.5s; }
.scn-satyr-dance .shadow-left { position: absolute; bottom: 22%; left: 23%; width: 50px; height: 10px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px); animation: sd-shadow 2s ease-in-out infinite; }
.scn-satyr-dance .shadow-right { position: absolute; bottom: 22%; right: 23%; width: 50px; height: 10px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px); animation: sd-shadow 2.5s ease-in-out infinite 0.5s; }
.scn-satyr-dance .sunburst { position: absolute; top: 5%; left: 50%; width: 120px; height: 120px; transform: translateX(-50%); background: radial-gradient(circle, #fff8d0 0%, #ffe47a 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 100px 40px #ffe47a; animation: sd-sunburst 12s ease-in-out infinite; }
@keyframes sd-stage { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sd-satyr-left { 0% { transform: rotate(-5deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-8deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes sd-satyr-right { 0% { transform: rotate(5deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(5deg) } }
@keyframes sd-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-30deg) } }
@keyframes sd-shadow { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.2); opacity:0.3 } 100% { transform: scale(1); opacity:0.6 } }
@keyframes sd-sunburst { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7 } }

.scn-polixenes-advice-to-florizel {
  background: 
    linear-gradient(180deg, #f2d69a 0%, #fce8b8 40%, #e8c88a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-polixenes-advice-to-florizel .garden-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #b8d0a0 0%, #8ab07a 100%); }
.scn-polixenes-advice-to-florizel .arch { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 70%; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.15); animation: paf-arch 20s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .king { position: absolute; bottom: 25%; left: 30%; width: 50px; height: 90px; background: linear-gradient(180deg, #b8886a 0%, #8a604a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: paf-king 10s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .king::before { content: ''; position: absolute; top: -25px; left: 5px; width: 40px; height: 35px; background: #c8987a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; border: 3px solid #d0a080; }
.scn-polixenes-advice-to-florizel .young-man { position: absolute; bottom: 25%; right: 30%; width: 45px; height: 85px; background: linear-gradient(180deg, #d0b090 0%, #a0806a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: paf-young 12s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .young-man::before { content: ''; position: absolute; top: -22px; left: 5px; width: 35px; height: 30px; background: #e0c0a0; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-polixenes-advice-to-florizel .flowers { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%; background: repeating-linear-gradient(90deg, #c8553d 0%, #c8553d 4px, transparent 4px, transparent 20px); mask-image: radial-gradient(circle at 30% 50%, black 0%, transparent 60%); animation: paf-flowers 8s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .light-rays { position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(135deg, transparent 0%, rgba(255,255,200,0.3) 30%, transparent 60%); animation: paf-rays 15s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .shadow-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%); filter: blur(10px); }
@keyframes paf-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes paf-king { 0% { transform: translate(0, 0) rotate(-2deg) } 50% { transform: translate(2px, -3px) rotate(2deg) } 100% { transform: translate(0, 0) rotate(-2deg) } }
@keyframes paf-young { 0% { transform: translate(0, 0) rotate(2deg) } 50% { transform: translate(-2px, -4px) rotate(-2deg) } 100% { transform: translate(0, 0) rotate(2deg) } }
@keyframes paf-flowers { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes paf-rays { 0% { transform: skewX(0deg) } 50% { transform: skewX(5deg) } 100% { transform: skewX(0deg) } }

.scn-florizel-protestation {
  background: 
    linear-gradient(180deg, #d0e8f0 0%, #f0f8ff 40%, #c0d8e8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-florizel-protestation .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #8ac0e0 0%, #b8d8f0 100%); animation: fp-sky 25s ease-in-out infinite; }
.scn-florizel-protestation .sun { position: absolute; top: 5%; right: 15%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8d0 0%, #ffe47a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 100px 50px #ffe47a; animation: fp-sun 20s ease-in-out infinite; }
.scn-florizel-protestation .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #a0b87a 0%, #709060 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.15); }
.scn-florizel-protestation .hand-left { position: absolute; bottom: 35%; left: 30%; width: 50px; height: 70px; background: linear-gradient(180deg, #d0b090 0%, #a0806a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fp-hand-left 3s ease-in-out infinite; }
.scn-florizel-protestation .hand-left::before { content: ''; position: absolute; top: -20px; left: 5px; width: 40px; height: 30px; background: #d0b090; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; }
.scn-florizel-protestation .hand-right { position: absolute; bottom: 35%; right: 30%; width: 50px; height: 70px; background: linear-gradient(180deg, #c8a882 0%, #987a5e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fp-hand-right 3.5s ease-in-out infinite; }
.scn-florizel-protestation .hand-right::before { content: ''; position: absolute; top: -20px; left: 5px; width: 40px; height: 30px; background: #c8a882; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; }
.scn-florizel-protestation .light-burst { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 80px; height: 80px; background: radial-gradient(circle, #fff8d0 0%, #ffe47a 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 150px 80px #ffe47a; animation: fp-burst 4s ease-in-out infinite alternate; }
.scn-florizel-protestation .shadow-cast { position: absolute; bottom: 18%; left: 25%; right: 25%; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(8px); animation: fp-shadow 6s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fp-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes fp-hand-left { 0% { transform: translate(0, 0) rotate(-10deg) scale(1) } 25% { transform: translate(5px, -5px) rotate(-15deg) scale(1.02) } 50% { transform: translate(0, 0) rotate(5deg) scale(1) } 75% { transform: translate(-5px, 5px) rotate(-5deg) scale(0.98) } 100% { transform: translate(0, 0) rotate(-10deg) scale(1) } }
@keyframes fp-hand-right { 0% { transform: translate(0, 0) rotate(10deg) scale(1) } 25% { transform: translate(-5px, 5px) rotate(15deg) scale(1.02) } 50% { transform: translate(0, 0) rotate(-5deg) scale(1) } 75% { transform: translate(5px, -5px) rotate(5deg) scale(0.98) } 100% { transform: translate(0, 0) rotate(10deg) scale(1) } }
@keyframes fp-burst { 0% { transform: translateX(-50%) scale(0.8); opacity:0.6 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7 } }
@keyframes fp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Scene IDs: prison-paulina-first, paulina-meets-emilia, paulina-plans-advocacy, paulina-takes-baby */

/* === Scene 1: prison-paulina-first === */
.scn-prison-paulina-first {
  background:
    linear-gradient(135deg, #1a0e0a 0%, #2a1a12 40%, #0d0806 100%),
    radial-gradient(ellipse at 30% 70%, #4a2a1a 0%, transparent 60%);
}

.scn-prison-paulina-first .wall-left {
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-right: 2px solid #0d0806;
  animation: pp1-wall 14s ease-in-out infinite alternate;
}
.scn-prison-paulina-first .wall-right {
  position: absolute;
  right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  border-left: 2px solid #0d0806;
  animation: pp1-wall 14s ease-in-out infinite alternate-reverse;
}
.scn-prison-paulina-first .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: pp1-floor 18s ease-in-out infinite;
}
.scn-prison-paulina-first .window {
  position: absolute;
  top: 15%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e0a 80%);
  border: 4px solid #0d0806;
  border-radius: 8px;
  box-shadow: inset 0 0 20px #2a1a12;
  animation: pp1-window 10s ease-in-out infinite;
}
.scn-prison-paulina-first .door {
  position: absolute;
  bottom: 0; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border: 2px solid #0d0806;
  border-radius: 4px 4px 0 0;
  animation: pp1-door 20s ease-in-out infinite;
}
.scn-prison-paulina-first .figure-paulina {
  position: absolute;
  bottom: 20%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pp1-figure 4s ease-in-out infinite;
}
.scn-prison-paulina-first .figure-gaoler {
  position: absolute;
  bottom: 20%; right: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pp1-figure 4.8s ease-in-out infinite reverse;
}
.scn-prison-paulina-first .torch {
  position: absolute;
  bottom: 28%; left: 25%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #a06030 0%, #4a2a1a 100%);
  border-radius: 2px;
  animation: pp1-torch 2s ease-in-out infinite;
}
.scn-prison-paulina-first .torch-glow {
  position: absolute;
  bottom: 25%; left: 23%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,120,40,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pp1-torchglow 2s ease-in-out infinite alternate;
}

@keyframes pp1-wall { 0% { opacity: .9 } 100% { opacity: .7 } }
@keyframes pp1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pp1-window { 0% { box-shadow: inset 0 0 10px #2a1a12 } 50% { box-shadow: inset 0 0 30px #4a3a2a } 100% { box-shadow: inset 0 0 10px #2a1a12 } }
@keyframes pp1-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pp1-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 pp1-torch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.1) scaleX(0.9) } }
@keyframes pp1-torchglow { 0% { opacity: .6; transform: scale(1) } 100% { opacity: .9; transform: scale(1.2) } }

/* === Scene 2: paulina-meets-emilia === */
.scn-paulina-meets-emilia {
  background:
    linear-gradient(135deg, #0d0806 0%, #1a0e0a 40%, #0d0806 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a12 0%, transparent 70%);
}

.scn-paulina-meets-emilia .wall-back {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%);
  animation: pm2-wall 20s ease-in-out infinite alternate;
}
.scn-paulina-meets-emilia .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
  animation: pm2-floor 16s ease-in-out infinite;
}
.scn-paulina-meets-emilia .candle-stand {
  position: absolute;
  bottom: 20%; left: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 2px;
  animation: pm2-stand 8s ease-in-out infinite;
}
.scn-paulina-meets-emilia .figure-paulina {
  position: absolute;
  bottom: 20%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pm2-figure 5s ease-in-out infinite;
}
.scn-paulina-meets-emilia .figure-emilia {
  position: absolute;
  bottom: 20%; right: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pm2-figure 5.5s ease-in-out infinite reverse;
}
.scn-paulina-meets-emilia .baby-bundle {
  position: absolute;
  bottom: 24%; right: 30%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pm2-baby 3s ease-in-out infinite;
}
.scn-paulina-meets-emilia .candle-flame {
  position: absolute;
  bottom: 38%; left: 19.5%; width: 4px; height: 8px;
  background: radial-gradient(circle, #ffc060 0%, #ff8020 60%, transparent 80%);
  border-radius: 50%;
  animation: pm2-flame 1.5s ease-in-out infinite;
}
.scn-paulina-meets-emilia .candle-glow {
  position: absolute;
  bottom: 30%; left: 16%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,160,40,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pm2-glow 2s ease-in-out infinite alternate;
}

@keyframes pm2-wall { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes pm2-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pm2-stand { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes pm2-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pm2-baby { 0% { transform: scale(1) } 50% { transform: scale(0.95) } 100% { transform: scale(1) } }
@keyframes pm2-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pm2-glow { 0% { opacity: .5; transform: scale(1) } 100% { opacity: .8; transform: scale(1.3) } }

/* === Scene 3: paulina-plans-advocacy === */
.scn-paulina-plans-advocacy {
  background:
    linear-gradient(180deg, #0d0806 0%, #1a0e0a 30%, #0d0806 100%),
    radial-gradient(ellipse at 60% 50%, #2a1a12 0%, transparent 60%);
}

.scn-paulina-plans-advocacy .cell-wall {
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 40%;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  border-right: 2px solid #050302;
  animation: pa3-wall 20s ease-in-out infinite alternate;
}
.scn-paulina-plans-advocacy .cell-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.7);
}
.scn-paulina-plans-advocacy .table {
  position: absolute;
  bottom: 15%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: pa3-table 12s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .figure-paulina-close {
  position: absolute;
  bottom: 20%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pa3-figure 6s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .figure-emilia-behind {
  position: absolute;
  bottom: 20%; right: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pa3-figure 7s ease-in-out infinite reverse;
}
.scn-paulina-plans-advocacy .hand-gesture {
  position: absolute;
  bottom: 28%; left: 30%; width: 14px; height: 6px;
  background: #2a1a12;
  border-radius: 50%;
  animation: pa3-hand 2s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .candle-left {
  position: absolute;
  bottom: 35%; left: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffc060 0%, #a06030 100%);
  border-radius: 2px;
  animation: pa3-candle 3s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .candle-right {
  position: absolute;
  bottom: 32%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffc060 0%, #a06030 100%);
  border-radius: 2px;
  animation: pa3-candle 3.5s ease-in-out infinite reverse;
}
.scn-paulina-plans-advocacy .ambient-light {
  position: absolute;
  bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: pa3-ambient 8s ease-in-out infinite alternate;
}

@keyframes pa3-wall { 0% { opacity: .8 } 100% { opacity: .6 } }
@keyframes pa3-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pa3-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 pa3-hand { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes pa3-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pa3-ambient { 0% { opacity: .4; transform: scale(1) } 100% { opacity: .7; transform: scale(1.2) } }

/* === Scene 4: paulina-takes-baby === */
.scn-paulina-takes-baby {
  background:
    linear-gradient(180deg, #0d0806 0%, #1a0e0a 40%, #0d0806 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%);
}

.scn-paulina-takes-baby .stone-wall {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: pt4-wall 18s ease-in-out infinite alternate;
}
.scn-paulina-takes-baby .shadow-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  animation: pt4-floor 14s ease-in-out infinite;
}
.scn-paulina-takes-baby .figure-gaoler-reaches {
  position: absolute;
  bottom: 20%; left: 35%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pt4-gaoler 4.5s ease-in-out infinite;
}
.scn-paulina-takes-baby .baby-tiny {
  position: absolute;
  bottom: 26%; left: 33%; width: 14px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pt4-baby 2s ease-in-out infinite;
}
.scn-paulina-takes-baby .figure-paulina-reaches {
  position: absolute;
  bottom: 20%; right: 30%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pt4-paulina 4s ease-in-out infinite reverse;
}
.scn-paulina-takes-baby .sparkle-motion {
  position: absolute;
  bottom: 28%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffc060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pt4-sparkle 1.5s ease-in-out infinite;
}
.scn-paulina-takes-baby .torchlight {
  position: absolute;
  bottom: 40%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,120,40,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: pt4-torchlight 3s ease-in-out infinite alternate;
}

@keyframes pt4-wall { 0% { opacity: .7 } 100% { opacity: .9 } }
@keyframes pt4-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pt4-gaoler { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pt4-baby { 0% { transform: scale(1) } 50% { transform: scale(0.9) translateY(2px) } 100% { transform: scale(1) } }
@keyframes pt4-paulina { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pt4-sparkle { 0% { opacity: .3; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .3; transform: scale(0.5) } }
@keyframes pt4-torchlight { 0% { opacity: .4; transform: scale(1) } 100% { opacity: .8; transform: scale(1.3) } }

/* ── antigonus-dream ── */
.scn-antigonus-dream {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1e1e2a 50%, #141420 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-antigonus-dream .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3b3b5e 0%, #2a2a44 40%, #1e1e30 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-antigonus-dream .storm-clouds {
  position: absolute; top: 8%; left: 5%; right: 5%; height: 12%;
  background: rgba(60,60,80,0.4); border-radius: 60% 40% 50% 50%; filter: blur(10px);
  animation: ad-cloud 20s linear infinite;
}
.scn-antigonus-dream .hills-distant {
  position: absolute; bottom: 35%; left: -10%; right: -10%; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: ad-hills 12s ease-in-out infinite alternate;
}
.scn-antigonus-dream .path {
  position: absolute; bottom: 30%; left: 40%; right: 30%; height: 8%;
  background: linear-gradient(90deg, transparent, #4a3a2a 40%, #3a2a1a 60%, transparent);
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  animation: ad-path 8s ease-in-out infinite;
}
.scn-antigonus-dream .figure-antigonus {
  position: absolute; bottom: 28%; left: 45%; 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;
  animation: ad-fig 6s ease-in-out infinite;
}
.scn-antigonus-dream .baby-bundle {
  position: absolute; bottom: 26%; left: 50%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 2px rgba(200,180,150,0.3);
  animation: ad-baby 4s ease-in-out infinite alternate;
}
.scn-antigonus-dream .tears {
  position: absolute; bottom: 22%; left: 46%; width: 4px; height: 6px;
  background: radial-gradient(circle, #8ab4c8 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ad-tears 3s ease-in-out infinite;
}

@keyframes ad-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ad-cloud { 0%{transform:translateX(-20px)} 50%{transform:translateX(10px) scale(1.05)} 100%{transform:translateX(30px)} }
@keyframes ad-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(2px)} }
@keyframes ad-path { 0%{opacity:0.5; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.1)} 100%{opacity:0.5; transform:scaleY(1)} }
@keyframes ad-fig { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(8px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(0) translateY(0) rotate(0)} 75%{transform:translateX(-8px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(-2deg)} }
@keyframes ad-baby { 0%{box-shadow:0 0 6px 1px rgba(200,180,150,0.2)} 50%{box-shadow:0 0 18px 4px rgba(200,180,150,0.5)} 100%{box-shadow:0 0 8px 2px rgba(200,180,150,0.3)} }
@keyframes ad-tears { 0%{transform:translateY(0); opacity:0.8} 50%{transform:translateY(8px); opacity:0.4} 100%{transform:translateY(0); opacity:0.8} }

/* ── antigonus-baby-left ── */
.scn-antigonus-baby-left {
  background:
    linear-gradient(180deg, #2b2b40 0%, #1f1f30 50%, #121220 100%),
    radial-gradient(ellipse at 50% 100%, #1f1f30 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-antigonus-baby-left .sky-ab {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #404060 0%, #2a2a44 40%, #1a1a30 100%);
  animation: ab-sky 18s ease-in-out infinite alternate;
}
.scn-antigonus-baby-left .ground-ab {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ab-ground 20s ease-in-out infinite alternate;
}
.scn-antigonus-baby-left .baby-blossom {
  position: absolute; bottom: 25%; left: 50%; width: 18px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #e8c8a0 0%, #6a4a3a 80%);
  border-radius: 50% 50% 60% 40% / 60% 40% 60% 40%;
  box-shadow: 0 0 20px 4px rgba(220,180,140,0.3);
  animation: ab-baby 5s ease-in-out infinite alternate;
}
.scn-antigonus-baby-left .figure-departing {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-fig 8s ease-in-out infinite;
}
.scn-antigonus-baby-left .flowers {
  position: absolute; bottom: 20%; left: 30%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 20% 60%, #a07850 0%, transparent 60%),
              radial-gradient(ellipse at 60% 40%, #b08860 0%, transparent 50%),
              radial-gradient(ellipse at 80% 70%, #907050 0%, transparent 60%);
  animation: ab-flowers 6s ease-in-out infinite;
}
.scn-antigonus-baby-left .wind {
  position: absolute; top: 12%; left: -10%; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,0.3), transparent);
  filter: blur(3px);
  animation: ab-wind 15s linear infinite;
}

@keyframes ab-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ab-ground { 0%{transform:scaleY(1)} 50%{transform:scaleY(0.97)} 100%{transform:scaleY(1)} }
@keyframes ab-baby { 0%{box-shadow:0 0 10px 2px rgba(220,180,140,0.2); opacity:0.8} 50%{box-shadow:0 0 28px 6px rgba(220,180,140,0.6); opacity:1} 100%{box-shadow:0 0 12px 3px rgba(220,180,140,0.3); opacity:0.85} }
@keyframes ab-fig { 0%{transform:translateX(0) rotate(0)} 30%{transform:translateX(-18px) rotate(-4deg)} 60%{transform:translateX(-36px) rotate(-2deg)} 100%{transform:translateX(-50px) rotate(-5deg)} }
@keyframes ab-flowers { 0%{opacity:0.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:0.7; transform:scale(0.98)} }
@keyframes ab-wind { 0%{transform:translateX(0)} 100%{transform:translateX(200%)} }

/* ── shepherd-finds-babe ── */
.scn-shepherd-finds-babe {
  background:
    linear-gradient(180deg, #2f3f4f 0%, #1f2f3f 50%, #0f1f2f 100%),
    radial-gradient(ellipse at 50% 100%, #1f2f3f 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-shepherd-finds-babe .sky-sf {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%);
  animation: sf-sky 14s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .sea-sf {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: sf-sea 10s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .cliff-sf {
  position: absolute; bottom: 0; left: -10%; right: 60%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.5);
  animation: sf-cliff 24s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .shepherd {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sf-shepherd 6s ease-in-out infinite;
}
.scn-shepherd-finds-babe .baby-sf {
  position: absolute; bottom: 17%; left: 55%; width: 16px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #c8a880 0%, #7a5a3a 80%);
  border-radius: 50% 50% 60% 40% / 60% 40% 60% 40%;
  box-shadow: 0 0 14px 3px rgba(200,168,120,0.35);
  animation: sf-baby 4s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .sheep-sf {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 20px;
  background: radial-gradient(circle, #c0c0c0 0%, #808080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: sf-sheep 22s linear infinite;
}
.scn-shepherd-finds-babe .ivy-sf {
  position: absolute; bottom: 5%; left: 5%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 30% 70%, #3a5a2a 0%, transparent 60%),
              radial-gradient(ellipse at 70% 40%, #4a6a3a 0%, transparent 50%);
  border-radius: 50%;
  animation: sf-ivy 8s ease-in-out infinite;
}

@keyframes sf-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes sf-sea { 0%{transform:scaleX(1) translateY(0)} 50%{transform:scaleX(1.02) translateY(-2px)} 100%{transform:scaleX(0.99) translateY(0)} }
@keyframes sf-cliff { 0%{transform:translateX(0)} 50%{transform:translateX(-10px)} 100%{transform:translateX(0)} }
@keyframes sf-shepherd { 0%{transform:translateX(-50%) rotate(0)} 25%{transform:translateX(-50%) rotate(3deg)} 50%{transform:translateX(-50%) rotate(0)} 75%{transform:translateX(-50%) rotate(-3deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes sf-baby { 0%{box-shadow:0 0 8px 2px rgba(200,168,120,0.2)} 50%{box-shadow:0 0 24px 6px rgba(200,168,120,0.6)} 100%{box-shadow:0 0 10px 3px rgba(200,168,120,0.3)} }
@keyframes sf-sheep { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(60px) scale(1.05)} 100%{transform:translateX(120px) scale(1)} }
@keyframes sf-ivy { 0%{transform:scale(1) rotate(-2deg)} 50%{transform:scale(1.08) rotate(4deg)} 100%{transform:scale(1) rotate(-2deg)} }

/* ── time-chorus ── */
.scn-time-chorus {
  background:
    linear-gradient(180deg, #c8c8d0 0%, #a8a8b8 40%, #8888a0 100%),
    radial-gradient(ellipse at 50% 100%, #a8a8b8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-time-chorus .sky-tc {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d0d0dd 0%, #b0b0c0 50%, #9090a8 100%);
  animation: tc-sky 20s ease-in-out infinite alternate;
}
.scn-time-chorus .clouds-tc {
  position: absolute; top: 8%; left: 5%; right: 5%; height: 14%;
  background: rgba(220,220,235,0.5); border-radius: 60% 40% 50% 50%; filter: blur(12px);
  animation: tc-cloud 30s linear infinite;
}
.scn-time-chorus .figure-time {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 4px rgba(200,200,180,0.3);
  animation: tc-fig 10s ease-in-out infinite;
}
.scn-time-chorus .hourglass-tc {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #c8b890 0%, #a09070 50%, #806850 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 40%, 100% 100%, 0% 100%, 20% 40%);
  animation: tc-hourglass 8s ease-in-out infinite;
}
.scn-time-chorus .sands-tc {
  position: absolute; bottom: 30%; left: 31%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d8c090 0%, #b09870 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: tc-sands 6s ease-in-out infinite;
}
.scn-time-chorus .wings-tc {
  position: absolute; bottom: 50%; left: 25%; width: 60px; height: 30px;
  background: rgba(220,220,230,0.4); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(6px);
  animation: tc-wings 5s ease-in-out infinite alternate;
}
.scn-time-chorus .wings-tc:nth-child(2 of .wings-tc) {
  left: 55%; animation-delay: 2.5s;
}

@keyframes tc-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes tc-cloud { 0%{transform:translateX(-40px) scale(1)} 50%{transform:translateX(20px) scale(1.05)} 100%{transform:translateX(40px) scale(1)} }
@keyframes tc-fig { 0%{transform:translateX(-50%) rotate(0) scale(1)} 30%{transform:translateX(-50%) rotate(5deg) scale(1.02)} 60%{transform:translateX(-50%) rotate(-3deg) scale(0.98)} 100%{transform:translateX(-50%) rotate(0) scale(1)} }
@keyframes tc-hourglass { 0%{transform:rotate(0)} 50%{transform:rotate(180deg)} 100%{transform:rotate(360deg)} }
@keyframes tc-sands { 0%{opacity:1; transform:translateY(0)} 50%{opacity:0.3; transform:translateY(10px)} 100%{opacity:1; transform:translateY(0)} }
@keyframes tc-wings { 0%{transform:scaleX(1) rotate(0)} 50%{transform:scaleX(1.3) rotate(10deg)} 100%{transform:scaleX(0.9) rotate(-5deg)} }

.scn-antigonus-bear-attack {
  background: 
    linear-gradient(180deg, #f4e0c0 0%, #d4b88a 30%, #b89565 70%, #8a6a40 100%),
    radial-gradient(ellipse at 30% 60%, #ffd080 0%, transparent 60%);
}
.scn-antigonus-bear-attack .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
}
.scn-antigonus-bear-attack .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-antigonus-bear-attack .window-light {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 120px;
  background: radial-gradient(circle, #ffe4a0 0%, #ffcc80 60%, transparent 100%);
  border-radius: 10%; opacity: 0.7;
  box-shadow: 0 0 60px 30px #ffcc80, 0 0 120px 60px rgba(255,204,128,0.3);
  animation: ab-window 4s ease-in-out infinite alternate;
}
.scn-antigonus-bear-attack .bear {
  position: absolute; bottom: 30%; left: 55%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-bear 1.5s ease-in-out infinite;
}
.scn-antigonus-bear-attack .man {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ab-man 2s ease-in-out infinite;
}
.scn-antigonus-bear-attack .handkerchief {
  position: absolute; bottom: 50%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4c8b0 0%, #a89880 100%);
  border-radius: 10% 80% 10% 80%;
  opacity: 0.8;
  animation: ab-hank 6s ease-in-out infinite;
}
.scn-antigonus-bear-attack .rings {
  position: absolute; bottom: 45%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c8a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #c8a050;
  animation: ab-rings 3s ease-in-out infinite alternate;
}
.scn-antigonus-bear-attack .shadow-bear {
  position: absolute; bottom: 30%; left: 55%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  transform: translateX(-10px);
  animation: ab-shadow 1.5s ease-in-out infinite;
}
.scn-antigonus-bear-attack .shadow-man {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  transform: translateX(5px);
  animation: ab-shadow 2s ease-in-out infinite;
}
@keyframes ab-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 ab-bear {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-10px) rotate(-5deg) scale(1.05); }
  50% { transform: translateY(0) rotate(5deg) scale(1); }
  75% { transform: translateY(-5px) rotate(-3deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes ab-man {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-5px) rotate(3deg); }
  60% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ab-hank {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(180deg); }
  100% { transform: translateY(0) rotate(360deg); }
}
@keyframes ab-rings {
  0% { box-shadow: 0 0 8px 2px #c8a050; opacity: 0.7; }
  50% { box-shadow: 0 0 20px 8px #ffd080; opacity: 1; }
  100% { box-shadow: 0 0 12px 4px #c8a050; opacity: 0.8; }
}
@keyframes ab-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-item-handkerchief-rings {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #c8a060 70%, #a88040 100%),
    radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-item-handkerchief-rings .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #d8b888 100%);
}
.scn-item-handkerchief-rings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a88040 0%, #886830 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-item-handkerchief-rings .window-light {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 150px;
  background: radial-gradient(circle, #ffecc0 0%, #ffd080 40%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 80px 40px #ffd080;
  animation: ir-light 6s ease-in-out infinite alternate;
}
.scn-item-handkerchief-rings .paulina {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ir-embrace 4s ease-in-out infinite;
}
.scn-item-handkerchief-rings .princess {
  position: absolute; bottom: 20%; left: 45%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ir-embrace 4s ease-in-out infinite;
}
.scn-item-handkerchief-rings .handkerchief {
  position: absolute; bottom: 55%; left: 42%; width: 24px; height: 24px;
  background: radial-gradient(circle, #e8d8c0 0%, #c8b8a0 100%);
  border-radius: 10% 80% 10% 80%;
  opacity: 0.9;
  animation: ir-hank 8s linear infinite;
}
.scn-item-handkerchief-rings .rings {
  position: absolute; bottom: 50%; left: 44%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd880 0%, #c8a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #ffd880;
  animation: ir-rings 3s ease-in-out infinite alternate;
}
.scn-item-handkerchief-rings .embrace-glow {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 100px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: ir-glow 4s ease-in-out infinite alternate;
}
@keyframes ir-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.08); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ir-embrace {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ir-hank {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-12px) rotate(180deg); opacity: 1; }
  100% { transform: translateY(0) rotate(360deg); opacity: 0.8; }
}
@keyframes ir-rings {
  0% { box-shadow: 0 0 10px 3px #c8a050; opacity: 0.6; }
  50% { box-shadow: 0 0 25px 10px #ffd880; opacity: 1; }
  100% { box-shadow: 0 0 14px 5px #c8a050; opacity: 0.8; }
}
@keyframes ir-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

.scn-queen-death-affects {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d8b890 30%, #b89870 70%, #987858 100%),
    radial-gradient(ellipse at 70% 40%, #ffe0a0 0%, transparent 50%);
}
.scn-queen-death-affects .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%);
}
.scn-queen-death-affects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #987858 0%, #786038 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-queen-death-affects .window-light {
  position: absolute; top: 20%; left: 60%; width: 80px; height: 120px;
  background: radial-gradient(circle, #ffecb0 0%, #ffd080 40%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 60px 30px #ffd080;
  animation: qd-light 7s ease-in-out infinite alternate;
}
.scn-queen-death-affects .king {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qd-king 5s ease-in-out infinite;
}
.scn-queen-death-affects .daughter {
  position: absolute; bottom: 25%; left: 40%; width: 34px; height: 78px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: qd-daughter 6s ease-in-out infinite;
}
.scn-queen-death-affects .paulina {
  position: absolute; bottom: 25%; left: 55%; width: 36px; height: 82px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: qd-paulina 4s ease-in-out infinite;
}
.scn-queen-death-affects .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px #ffc060;
  animation: qd-candle 3s ease-in-out infinite;
}
.scn-queen-death-affects .light-pool {
  position: absolute; bottom: 25%; left: 30%; width: 160px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 80%);
  border-radius: 50%;
  animation: qd-pool 5s ease-in-out infinite alternate;
}
@keyframes qd-light {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes qd-king {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  75% { transform: translateY(-5px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes qd-daughter {
  0% { transform: translateY(0) rotate(1deg); }
  30% { transform: translateY(-3px) rotate(-1deg); }
  60% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes qd-paulina {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(-2deg); }
  40% { transform: translateY(-4px) rotate(0deg); }
  60% { transform: translateY(-1px) rotate(2deg); }
  80% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qd-candle {
  0% { box-shadow: 0 0 8px 2px #ffc060; opacity: 0.8; transform: scaleY(1); }
  50% { box-shadow: 0 0 20px 8px #ffe080; opacity: 1; transform: scaleY(1.1); }
  100% { box-shadow: 0 0 10px 3px #ffc060; opacity: 0.9; transform: scaleY(1); }
}
@keyframes qd-pool {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.1); }
  100% { opacity: 0.25; transform: scale(0.95); }
}

.scn-court-query {
  background:
    linear-gradient(180deg, #f4e4c8 0%, #e0c090 30%, #c8a870 60%, #a88850 100%),
    radial-gradient(ellipse at 80% 30%, #ffe4a0 0%, transparent 50%);
}
.scn-court-query .great-hall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e8d0a8 0%, #d0b088 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.1);
}
.scn-court-query .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a88850 0%, #886838 100%);
}
.scn-court-query .light-beam {
  position: absolute; top: 5%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,228,160,0.6) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: cq-beam 8s ease-in-out infinite alternate;
}
.scn-court-query .figure-1 {
  position: absolute; bottom: 15%; left: 15%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure1 5s ease-in-out infinite;
}
.scn-court-query .figure-2 {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure2 6s ease-in-out infinite;
}
.scn-court-query .figure-3 {
  position: absolute; bottom: 15%; left: 40%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure3 4.5s ease-in-out infinite;
}
.scn-court-query .figure-4 {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure4 7s ease-in-out infinite;
}
.scn-court-query .figure-5 {
  position: absolute; bottom: 15%; left: 68%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure5 5.5s ease-in-out infinite;
}
.scn-court-query .swoon-figure {
  position: absolute; bottom: 15%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: cq-swoon 4s ease-in-out infinite;
}
@keyframes cq-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}
@keyframes cq-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cq-figure2 {
  0% { transform: translateY(0) rotate(-1deg); }
  20% { transform: translateY(-3px) rotate(2deg); }
  40% { transform: translateY(-1px) rotate(0deg); }
  60% { transform: translateY(-4px) rotate(-2deg); }
  80% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cq-figure3 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cq-figure4 {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cq-figure5 {
  0% { transform: translateY(0) rotate(-1deg); }
  35% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cq-swoon {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-10px) rotate(-20deg) scale(0.9); }
  50% { transform: translateY(-5px) rotate(-10deg) scale(0.95); }
  75% { transform: translateY(-15px) rotate(-30deg) scale(0.85); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}

/* camillo-overhears-autolycus */
.scn-camillo-overhears-autolycus {
  background: linear-gradient(180deg, #fdebb3 0%, #f5c76a 40%, #d9a15a 100%), radial-gradient(ellipse at 70% 60%, #fdebb3 0%, transparent 60%);
}
.scn-camillo-overhears-autolycus .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8fc7e2 0%, #b9d8ee 70%, transparent 100%);
  animation: coa-sky 9s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .sunray {
  position: absolute; top: 10%; left: 70%; width: 90px; height: 90px;
  background: radial-gradient(circle, #fff7cc 0%, #f5c76a99 50%, transparent 70%);
  filter: blur(8px);
  animation: coa-sunray 6s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7c9a5e 0%, #4a6b32 60%, #2f451c 100%);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
}
.scn-camillo-overhears-autolycus .tree {
  position: absolute; bottom: 45%; left: 20%; width: 16px; height: 120px;
  background: linear-gradient(180deg, #5c3a1a 0%, #3d2410 100%);
  border-radius: 4px;
  transform-origin: bottom;
  animation: coa-tree 8s ease-in-out infinite;
}
.scn-camillo-overhears-autolycus .tree::after {
  content: ''; position: absolute; top: -40px; left: -20px; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #4a7a34 0%, #2f5a1e 70%);
  border-radius: 50%;
}
.scn-camillo-overhears-autolycus .bush {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 50px;
  background: radial-gradient(ellipse, #5a7a3a 0%, #2f4a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: scaleX(1.3);
  animation: coa-bush 5s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .figure-autolycus {
  position: absolute; bottom: 38%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #a06a44 0%, #6f4521 40%, #3d2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: coa-figure1 3s ease-in-out infinite;
}
.scn-camillo-overhears-autolycus .figure-autolycus::before {
  content: ''; position: absolute; top: -10px; left: 6px; width: 16px; height: 18px;
  background: radial-gradient(ellipse, #d4a577 0%, #a06a44 100%);
  border-radius: 50%;
}
.scn-camillo-overhears-autolycus .figure-camillo {
  position: absolute; bottom: 40%; left: 62%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: coa-figure2 4s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .figure-camillo::before {
  content: ''; position: absolute; top: -8px; left: 3px; width: 14px; height: 16px;
  background: radial-gradient(ellipse, #6f5540 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
}
.scn-camillo-overhears-autolycus .shadow {
  position: absolute; bottom: 38%; left: 28%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  filter: blur(4px);
  animation: coa-shadow 3s ease-in-out infinite alternate;
}
@keyframes coa-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes coa-sunray { 0% { transform: scale(1) rotate(0deg); opacity: .7; } 50% { transform: scale(1.05) rotate(3deg); opacity: .9; } 100% { transform: scale(.98) rotate(-2deg); opacity: .6; } }
@keyframes coa-tree { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes coa-bush { 0% { transform: scaleX(1.3) translateY(0); } 50% { transform: scaleX(1.25) translateY(-3px); } 100% { transform: scaleX(1.3) translateY(0); } }
@keyframes coa-figure1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes coa-figure2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes coa-shadow { 0% { transform: scaleX(1); opacity: .4; } 50% { transform: scaleX(1.2); opacity: .6; } 100% { transform: scaleX(1); opacity: .4; } }

/* garment-exchange */
.scn-garment-exchange {
  background: linear-gradient(180deg, #fdf3ce 0%, #f7d9a0 50%, #e6b86a 100%), radial-gradient(ellipse at 30% 50%, #fdf3ce 0%, transparent 50%);
}
.scn-garment-exchange .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9fd0ec 0%, #cae0f0 80%, transparent 100%);
  animation: gex-sky 12s ease-in-out infinite alternate;
}
.scn-garment-exchange .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8cf78 0%, #7fa350 60%, #4f6e2e 100%);
  border-radius: 20% 0 0 0 / 40% 0 0 0;
}
.scn-garment-exchange .figure-seller {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #b88654 0%, #7a5530 50%, #4d3219 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: gex-seller 4s ease-in-out infinite;
}
.scn-garment-exchange .figure-seller::before {
  content: ''; position: absolute; top: -12px; left: 5px; width: 18px; height: 19px;
  background: radial-gradient(ellipse, #d9a87c 0%, #b88654 100%);
  border-radius: 50%;
  transform: rotate(5deg);
}
.scn-garment-exchange .figure-buyer {
  position: absolute; bottom: 40%; left: 50%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3d5a2d 50%, #2a3f1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: gex-buyer 3.5s ease-in-out infinite reverse;
}
.scn-garment-exchange .figure-buyer::before {
  content: ''; position: absolute; top: -10px; left: 4px; width: 16px; height: 17px;
  background: radial-gradient(ellipse, #8aaa7a 0%, #5a7a4a 100%);
  border-radius: 50%;
  transform: rotate(-5deg);
}
.scn-garment-exchange .coat {
  position: absolute; bottom: 45%; left: 42%; width: 32px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8f3927 60%, #632418 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(10deg);
  animation: gex-coat 2s ease-in-out infinite;
}
.scn-garment-exchange .hat {
  position: absolute; bottom: 55%; left: 52%; width: 24px; height: 14px;
  background: linear-gradient(180deg, #c8a050 0%, #8f7030 60%, #6a5220 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-15deg);
  animation: gex-hat 2.5s ease-in-out infinite alternate;
}
.scn-garment-exchange .bag {
  position: absolute; bottom: 38%; left: 60%; width: 18px; height: 14px;
  background: #6b4a2a;
  border-radius: 10%;
  transform: skewY(-10deg);
  animation: gex-bag 3s ease-in-out infinite;
}
@keyframes gex-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gex-seller { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(2deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(-3px) rotate(1deg); } 80% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gex-buyer { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gex-coat { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes gex-hat { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes gex-bag { 0% { transform: skewY(-10deg) translateY(0); } 50% { transform: skewY(-8deg) translateY(-1px); } 100% { transform: skewY(-10deg) translateY(0); } }

/* disguise-plan */
.scn-disguise-plan {
  background: linear-gradient(180deg, #dce7f0 0%, #aecbe0 40%, #7ca5c2 100%), radial-gradient(ellipse at 80% 30%, #f9f3e0 0%, transparent 50%);
}
.scn-disguise-plan .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #aad0ee 0%, #cce2f2 70%, transparent 100%);
  animation: dpl-sky 14s ease-in-out infinite alternate;
}
.scn-disguise-plan .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1e4a6a 60%, #0f304a 100%);
  border-radius: 0 0 0 0;
  animation: dpl-sea 8s ease-in-out infinite alternate;
}
.scn-disguise-plan .ship {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 30px;
  background: linear-gradient(90deg, #5c3a1a 0%, #3d2410 50%, #5c3a1a 100%);
  border-radius: 10% 40% 40% 10% / 30% 50% 50% 30%;
  animation: dpl-ship 12s ease-in-out infinite;
}
.scn-disguise-plan .mast {
  position: absolute; bottom: 45%; left: 65%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3d2010 100%);
  transform-origin: bottom;
  animation: dpl-mast 16s linear infinite;
}
.scn-disguise-plan .figure-camillo {
  position: absolute; bottom: 35%; left: 25%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 60%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: dpl-camillo 3s ease-in-out infinite;
}
.scn-disguise-plan .figure-camillo::before {
  content: ''; position: absolute; top: -10px; left: 4px; width: 16px; height: 17px;
  background: radial-gradient(ellipse, #6f5540 0%, #4a3a2a 100%);
  border-radius: 50%;
}
.scn-disguise-plan .figure-polonius {
  position: absolute; bottom: 35%; left: 40%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #a06a44 0%, #6f4521 50%, #3d2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: dpl-polonius 4s ease-in-out infinite alternate;
}
.scn-disguise-plan .figure-polonius::before {
  content: ''; position: absolute; top: -9px; left: 3px; width: 15px; height: 16px;
  background: radial-gradient(ellipse, #d4a577 0%, #a06a44 100%);
  border-radius: 50%;
  transform: rotate(-5deg);
}
.scn-disguise-plan .cloak {
  position: absolute; bottom: 36%; left: 23%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3d0e10 100%);
  border-radius: 10% 50% 30% 10% / 20% 60% 40% 20%;
  transform: rotate(15deg);
  animation: dpl-cloak 5s ease-in-out infinite;
}
@keyframes dpl-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes dpl-sea { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes dpl-ship { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(1px) rotate(0.5deg); } 60% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dpl-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes dpl-camillo { 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 dpl-polonius { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dpl-cloak { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }

/* camillo-aside-plot */
.scn-camillo-aside-plot {
  background: linear-gradient(180deg, #f8e6c0 0%, #e4c79a 40%, #c6a070 100%), radial-gradient(ellipse at 90% 50%, #c6a070 0%, transparent 60%);
}
.scn-camillo-aside-plot .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9fc8e0 0%, #cde3f0 70%, transparent 100%);
  animation: cap-sky 15s ease-in-out infinite alternate;
}
.scn-camillo-aside-plot .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2e5e7a 0%, #1a3e56 60%, #0a1f30 100%);
  animation: cap-sea 10s ease-in-out infinite alternate;
}
.scn-camillo-aside-plot .cliff {
  position: absolute; bottom: 35%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #a08860 0%, #6f583a 60%, #4a3820 100%);
  border-radius: 30% 10% 0 0 / 50% 20% 0 0;
  transform-origin: bottom left;
  animation: cap-cliff 20s ease-in-out infinite;
}
.scn-camillo-aside-plot .ship {
  position: absolute; bottom: 40%; right: 10%; width: 90px; height: 35px;
  background: linear-gradient(90deg, #4a2a10 0%, #2a1408 50%, #4a2a10 100%);
  border-radius: 10% 50% 50% 10% / 30% 40% 40% 30%;
  animation: cap-ship 18s ease-in-out infinite;
}
.scn-camillo-aside-plot .figure-camillo {
  position: absolute; bottom: 38%; left: 20%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 60%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: cap-camillo 4s ease-in-out infinite;
}
.scn-camillo-aside-plot .figure-camillo::before {
  content: ''; position: absolute; top: -11px; left: 5px; width: 17px; height: 18px;
  background: radial-gradient(ellipse, #6f5540 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform: rotate(10deg);
}
.scn-camillo-aside-plot .staff {
  position: absolute; bottom: 37%; left: 19%; width: 6px; height: 55px;
  background: linear-gradient(180deg, #6f5a3a 0%, #3d2e1a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: cap-staff 3s ease-in-out infinite alternate;
}
.scn-camillo-aside-plot .sail {
  position: absolute; bottom: 45%; right: 12%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b89a 60%, #a08a70 100%);
  clip-path: polygon(0 0, 100% 50%, 100% 100%, 0 100%);
  animation: cap-sail 8s ease-in-out infinite;
}
@keyframes cap-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes cap-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes cap-cliff { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.01) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes cap-ship { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(0.3deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 75% { transform: translateY(1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cap-camillo { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cap-staff { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(17deg) scaleY(1.01); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes cap-sail { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* Scene: perdita-faith */
.scn-perdita-faith {
  background: linear-gradient(180deg, #f9e8c0 0%, #e8d0a0 40%, #b09070 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-perdita-faith .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e8f4 0%, #a0c8e8 100%);
  animation: pf-sky 15s ease-in-out infinite alternate;
}
.scn-perdita-faith .sun {
  position: absolute; top: 12%; left: 28%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff3c0 0%, #f0d080 80%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,208,128,0.4);
  animation: pf-sun 12s ease-in-out infinite;
}
.scn-perdita-faith .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8ba87a 0%, #5c7a4c 100%);
  border-radius: 60% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: pf-hills 20s ease-in-out infinite alternate;
}
.scn-perdita-faith .house {
  position: absolute; bottom: 28%; left: 45%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #c8a878 0%, #9a7850 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: pf-house 9s ease-in-out infinite;
}
.scn-perdita-faith .tree-a {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pf-tree 8s ease-in-out infinite alternate;
}
.scn-perdita-faith .tree-b {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a30 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pf-tree 10s ease-in-out infinite alternate;
}
.scn-perdita-faith .figure {
  position: absolute; bottom: 27%; left: 52%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #a08070 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figure 5s ease-in-out infinite;
}
.scn-perdita-faith .path {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 4px;
  background: #c8b898;
  border-radius: 50%;
  animation: pf-path 7s ease-in-out infinite;
}
.scn-perdita-faith .cloud-c {
  position: absolute; top: 8%; right: 10%; width: 70px; height: 16px;
  background: rgba(255,255,255,0.6); border-radius: 50%;
  filter: blur(5px);
  animation: pf-cloud 40s linear infinite;
}
@keyframes pf-sky    { 0% { opacity:0.9; background-position:0 0; } 50% { opacity:1; background-position:0 10px; } 100% { opacity:0.8; background-position:0 0; } }
@keyframes pf-sun    { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 20px rgba(240,208,128,0.2); } 50% { transform: scale(1.05) rotate(5deg); box-shadow:0 0 60px 30px rgba(240,208,128,0.5); } 100% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 20px rgba(240,208,128,0.2); } }
@keyframes pf-hills  { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pf-house  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pf-tree   { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes pf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes pf-path   { 0% { opacity:0.8; width:30%; } 50% { opacity:1; width:35%; } 100% { opacity:0.8; width:30%; } }
@keyframes pf-cloud  { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* Scene: camillo-assures */
.scn-camillo-assures {
  background: linear-gradient(180deg, #f5e6c8 0%, #dccba8 40%, #a08060 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 50%);
}
.scn-camillo-assures .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #88b8e0 100%);
  animation: ca-sky 18s ease-in-out infinite alternate;
}
.scn-camillo-assures .sun {
  position: absolute; top: 10%; left: 55%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff0b0 0%, #e8c880 80%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(232,200,128,0.3);
  animation: ca-sun 14s ease-in-out infinite;
}
.scn-camillo-assures .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 70% 30% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: ca-hills 22s ease-in-out infinite alternate;
}
.scn-camillo-assures .path {
  position: absolute; bottom: 14%; left: 20%; width: 60%; height: 5px;
  background: #c8b898; border-radius: 50%;
  animation: ca-path 10s ease-in-out infinite;
}
.scn-camillo-assures .figure-camillo {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ca-fig1 6s ease-in-out infinite;
}
.scn-camillo-assures .figure-perdita {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #b09070 0%, #705040 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ca-fig2 6s ease-in-out infinite 1s;
}
.scn-camillo-assures .tree-c {
  position: absolute; bottom: 22%; right: 25%; width: 45px; height: 130px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: ca-tree 9s ease-in-out infinite alternate;
}
.scn-camillo-assures .rock {
  position: absolute; bottom: 16%; left: 55%; width: 30px; height: 20px;
  background: #8a7a6a; border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.2);
  animation: ca-rock 12s ease-in-out infinite;
}
@keyframes ca-sky   { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ca-sun   { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 15px rgba(232,200,128,0.2); } 50% { transform: scale(1.06) rotate(3deg); box-shadow:0 0 60px 25px rgba(232,200,128,0.4); } 100% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 15px rgba(232,200,128,0.2); } }
@keyframes ca-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ca-path  { 0% { width:60%; opacity:0.8; } 50% { width:65%; opacity:1; } 100% { width:60%; opacity:0.8; } }
@keyframes ca-fig1  { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-2deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes ca-fig2  { 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 ca-tree  { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes ca-rock  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene: autolycus-soliloquy-purse */
.scn-autolycus-soliloquy-purse {
  background: linear-gradient(180deg, #f0e6c0 0%, #dcc890 40%, #a08050 100%),
              radial-gradient(ellipse at 80% 30%, #fff8d0 0%, transparent 50%);
}
.scn-autolycus-soliloquy-purse .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #78b0d8 100%);
  animation: as-sky 16s ease-in-out infinite alternate;
}
.scn-autolycus-soliloquy-purse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c8b888 0%, #a89870 100%);
  border-radius: 20% 30% 0 0 / 10% 20% 0 0;
  animation: as-ground 20s ease-in-out infinite alternate;
}
.scn-autolycus-soliloquy-purse .figure {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: as-figure 4s ease-in-out infinite;
}
.scn-autolycus-soliloquy-purse .hat {
  position: absolute; bottom: 68%; left: 35%; width: 40px; height: 30px;
  background: #6a5a3a; border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: as-hat 3s ease-in-out infinite alternate;
}
.scn-autolycus-soliloquy-purse .purse {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 18px;
  background: #b88860; border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: as-purse 5s ease-in-out infinite;
}
.scn-autolycus-soliloquy-purse .coin-a {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 8px;
  background: #e0d080; border-radius: 50%;
  animation: as-coin 3s ease-in-out infinite 0.2s;
}
.scn-autolycus-soliloquy-purse .coin-b {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 8px;
  background: #e0d080; border-radius: 50%;
  animation: as-coin 3s ease-in-out infinite 0.8s;
}
.scn-autolycus-soliloquy-purse .coin-c {
  position: absolute; bottom: 26%; left: 50%; width: 8px; height: 8px;
  background: #e0d080; border-radius: 50%;
  animation: as-coin 3s ease-in-out infinite 1.5s;
}
@keyframes as-sky    { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes as-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes as-figure { 0% { transform: translateX(0) rotate(-2deg) translateY(0); } 20% { transform: translateX(10px) rotate(2deg) translateY(-2px); } 40% { transform: translateX(20px) rotate(-2deg) translateY(0); } 60% { transform: translateX(30px) rotate(2deg) translateY(-2px); } 80% { transform: translateX(40px) rotate(-2deg) translateY(0); } 100% { transform: translateX(50px) rotate(0deg) translateY(0); } }
@keyframes as-hat   { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes as-purse  { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes as-coin   { 0% { transform: scale(1) translateY(0) rotate(0deg); opacity:1; } 50% { transform: scale(1.5) translateY(-8px) rotate(180deg); opacity:0.6; } 100% { transform: scale(1) translateY(0) rotate(360deg); opacity:1; } }

/* Scene: autolycus-pickpockets */
.scn-autolycus-pickpockets {
  background: linear-gradient(180deg, #f5e8c0 0%, #d8c090 40%, #a08050 100%),
              radial-gradient(ellipse at 60% 40%, #fff8d0 0%, transparent 50%);
}
.scn-autolycus-pickpockets .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #78b0d8 100%);
  animation: ap-sky 14s ease-in-out infinite alternate;
}
.scn-autolycus-pickpockets .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c8b888 0%, #a89870 100%);
  border-radius: 30% 20% 0 0 / 20% 15% 0 0;
  animation: ap-ground 18s ease-in-out infinite alternate;
}
.scn-autolycus-pickpockets .autolycus {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ap-autolycus 5s ease-in-out infinite;
}
.scn-autolycus-pickpockets .clown {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-clown 5s ease-in-out infinite 1s;
}
.scn-autolycus-pickpockets .purse {
  position: absolute; bottom: 15%; left: 38%; width: 20px; height: 15px;
  background: #b88860; border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200,160,80,0.4);
  animation: ap-purse 4s ease-in-out infinite;
}
.scn-autolycus-pickpockets .bag {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 25px;
  background: #7a6a4a; border-radius: 20% 20% 30% 30%;
  animation: ap-bag 6s ease-in-out infinite;
}
.scn-autolycus-pickpockets .post {
  position: absolute; bottom: 20%; right: 20%; width: 8px; height: 100px;
  background: #5a4a30; border-radius: 20%;
  animation: ap-post 10s ease-in-out infinite alternate;
}
.scn-autolycus-pickpockets .cloud-d {
  position: absolute; top: 8%; left: 15%; width: 60px; height: 14px;
  background: rgba(255,255,255,0.5); border-radius: 50%;
  filter: blur(4px);
  animation: ap-cloud 45s linear infinite;
}
@keyframes ap-sky        { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ap-ground     { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ap-autolycus  { 0% { transform: translateX(0) rotate(-1deg) translateY(0); } 25% { transform: translateX(8px) rotate(2deg) translateY(-2px); } 50% { transform: translateX(16px) rotate(-1deg) translateY(0); } 75% { transform: translateX(24px) rotate(2deg) translateY(-2px); } 100% { transform: translateX(32px) rotate(0deg) translateY(0); } }
@keyframes ap-clown      { 0% { transform: translateX(0) rotate(1deg) translateY(0); } 25% { transform: translateX(-6px) rotate(-2deg) translateY(-1px); } 50% { transform: translateX(-12px) rotate(1deg) translateY(0); } 75% { transform: translateX(-18px) rotate(-2deg) translateY(-1px); } 100% { transform: translateX(-24px) rotate(0deg) translateY(0); } }
@keyframes ap-purse      { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes ap-bag        { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ap-post       { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ap-cloud      { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-polixenes-shocked {
  background: 
    linear-gradient(180deg, #2c1f1a 0%, #4a3028 40%, #3d2620 100%),
    radial-gradient(ellipse at 60% 30%, #c8945a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-polixenes-shocked .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #4a3028 0%, #2c1f1a 100%);
  opacity: 0.7;
}
.scn-polixenes-shocked .window-stars {
  position: absolute; top: 8%; left: 55%; width: 35%; height: 40%; 
  background: 
    linear-gradient(180deg, #0e1626 0%, #1a2750 100%),
    radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 50% 10%, #fff 0%, transparent 100%),
    radial-gradient(2px 2px at 70% 50%, #fff 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 85% 20%, #fff 0%, transparent 100%),
    radial-gradient(1px 1px at 40% 70%, #fff 0%, transparent 100%);
  border: 3px solid #6a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.15);
  animation: polx-stars 6s ease-in-out infinite alternate;
}
.scn-polixenes-shocked .desk {
  position: absolute; bottom: 18%; left: 30%; width: 45%; height: 8%; 
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-polixenes-shocked .lamp-glow {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 30px; 
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%; 
  box-shadow: 0 0 40px 16px #c08040, 0 0 80px 30px rgba(192,128,64,0.3);
  animation: polx-lamp 2s ease-in-out infinite alternate;
}
.scn-polixenes-shocked .figure-shock {
  position: absolute; bottom: 20%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a14 0%, #120a08 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: polx-shiver 1.6s ease-in-out infinite alternate;
}
.scn-polixenes-shocked .chair {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 35px;
  background: linear-gradient(135deg, #4a3025 0%, #2a1a15 100%);
  border-radius: 8% 8% 5% 5%; box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
}
@keyframes polx-stars {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes polx-lamp {
  0% { box-shadow: 0 0 30px 12px #c08040, 0 0 60px 20px rgba(192,128,64,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 18px #ffd080, 0 0 90px 30px rgba(255,208,128,0.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px #c08040, 0 0 65px 22px rgba(192,128,64,0.25); opacity: 0.85; }
}
@keyframes polx-shiver {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

.scn-escape-plan {
  background: 
    linear-gradient(180deg, #2a2a2a 0%, #3a3030 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 30% 80%, #5a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-escape-plan .stone-wall {
  position: absolute; inset: 0;
  background: 
    linear-gradient(135deg, #4a4040 0%, #303030 50%, #2a2220 100%);
  background-size: 20px 20px, 30px 30px;
  opacity: 0.9;
}
.scn-escape-plan .archway {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 70%;
  background: radial-gradient(ellipse at 50% 0%, transparent 50%, #2a2220 51%);
  border: 2px solid #3a3028;
  border-bottom: none;
}
.scn-escape-plan .door {
  position: absolute; bottom: 5%; left: 25%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  border: 2px solid #4a3020;
  transform-origin: left center;
  animation: esc-door 3s ease-in-out infinite alternate;
}
.scn-escape-plan .figure-whisperer {
  position: absolute; bottom: 10%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: esc-lean 4s ease-in-out infinite;
}
.scn-escape-plan .figure-listener {
  position: absolute; bottom: 10%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: esc-tilt 4s ease-in-out infinite reverse;
}
.scn-escape-plan .torch-glow {
  position: absolute; bottom: 38%; left: 15%; width: 16px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #ff9040 0%, #c86020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c86020, 0 0 60px 20px rgba(200,96,32,0.3);
  animation: esc-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes esc-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes esc-lean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes esc-tilt {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes esc-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 25px 8px #c86020, 0 0 50px 15px rgba(200,96,32,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 14px #ff9040, 0 0 80px 25px rgba(255,144,64,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 10px #c86020, 0 0 55px 18px rgba(200,96,32,0.25); }
}

.scn-queen-and-mamillius {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a88c 100%),
    radial-gradient(ellipse at 30% 40%, #f0e4d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-queen-and-mamillius .palace-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88c 100%);
  opacity: 0.6;
}
.scn-queen-and-mamillius .window-curtain {
  position: absolute; top: 5%; left: 70%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 4px;
  clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
  animation: qm-curtain 12s ease-in-out infinite alternate;
}
.scn-queen-and-mamillius .throne {
  position: absolute; bottom: 10%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-queen-and-mamillius .queen-figure {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: qm-rock 8s ease-in-out infinite alternate;
}
.scn-queen-and-mamillius .mamillius-figure {
  position: absolute; bottom: 15%; left: 60%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: qm-bounce 4s ease-in-out infinite;
}
.scn-queen-and-mamillius .toy-block {
  position: absolute; bottom: 12%; left: 55%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #c86030 0%, #a04020 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: qm-roll 6s ease-in-out infinite;
}
@keyframes qm-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.95); }
}
@keyframes qm-rock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes qm-bounce {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes qm-roll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(180deg); }
  100% { transform: translateX(0) rotate(360deg); }
}

.scn-sad-tale-winter {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #3a2210 40%, #2a1808 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a20 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-sad-tale-winter .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2210 0%, #2a1808 100%);
  opacity: 0.8;
}
.scn-sad-tale-winter .hearth {
  position: absolute; bottom: 8%; left: 10%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
}
.scn-sad-tale-winter .fire-glow {
  position: absolute; bottom: 15%; left: 15%; width: 22%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #ff8040 0%, #c04020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #c04020, 0 0 100px 40px rgba(192,64,32,0.3);
  animation: stw-fire 2s ease-in-out infinite alternate;
}
.scn-sad-tale-winter .queen-sitting {
  position: absolute; bottom: 12%; left: 50%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: stw-story 10s ease-in-out infinite alternate;
}
.scn-sad-tale-winter .mamillius-lying {
  position: absolute; bottom: 8%; left: 65%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: stw-listen 8s ease-in-out infinite;
}
.scn-sad-tale-winter .winter-window {
  position: absolute; top: 5%; right: 5%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border: 3px solid #2a1a0a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.05);
}
.scn-sad-tale-winter .shadow-goblin {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 35px;
  background: radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.4;
  animation: stw-shadow 6s ease-in-out infinite alternate;
}
@keyframes stw-fire {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 40px 15px #c04020, 0 0 80px 30px rgba(192,64,32,0.2); }
  50% { transform: scale(1.08); opacity: 1; box-shadow: 0 0 70px 25px #ff8040, 0 0 120px 40px rgba(255,128,64,0.3); }
  100% { transform: scale(0.95); opacity: 0.9; box-shadow: 0 0 50px 18px #c04020, 0 0 90px 35px rgba(192,64,32,0.25); }
}
@keyframes stw-story {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}
@keyframes stw-listen {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-12deg); }
}
@keyframes stw-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* Scene: polixenes-camillo-discuss — bright interior, calm */
.scn-polixenes-camillo-discuss {
  background:
    linear-gradient(180deg, #f2e8d5 0%, #dcc8a8 50%, #c4a87a 100%),
    radial-gradient(ellipse at 70% 30%, #e8dcc0 0%, transparent 60%);
}
.scn-polixenes-camillo-discuss .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dac4 0%, #d4c0a8 100%);
  animation: pc-wall 12s ease-in-out infinite alternate;
}
.scn-polixenes-camillo-discuss .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7250 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-polixenes-camillo-discuss .pillar-left {
  position: absolute; bottom: 28%; left: 12%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c0a880 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-polixenes-camillo-discuss .pillar-right {
  position: absolute; bottom: 28%; right: 12%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c0a880 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-polixenes-camillo-discuss .arch-window {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #a8d8e8 0%, #80c0d0 60%, #b0d8e0 100%);
  border-radius: 50% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 30px rgba(160,200,220,0.4);
  animation: pc-window 6s ease-in-out infinite alternate;
}
.scn-polixenes-camillo-discuss .table {
  position: absolute; bottom: 28%; left: 50%; width: 30%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6030 0%, #604020 100%);
  border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
}
.scn-polixenes-camillo-discuss .polixenes {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pc-figure1 8s ease-in-out infinite;
}
.scn-polixenes-camillo-discuss .camillo {
  position: absolute; bottom: 30%; right: 38%; width: 9%; height: 36%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pc-figure2 9s ease-in-out infinite;
}
.scn-polixenes-camillo-discuss .candle {
  position: absolute; bottom: 34%; left: 50%; width: 2%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #e8a040 100%);
  border-radius: 50% 50% 2px 2px / 30% 30% 2px 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.5);
  animation: pc-candle 3s ease-in-out infinite alternate;
}
@keyframes pc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pc-window { 0% { background: radial-gradient(ellipse at 50% 30%, #a8d8e8 0%, #80c0d0 60%, #b0d8e0 100%); } 50% { background: radial-gradient(ellipse at 50% 30%, #c0e8f0 0%, #90d0e0 60%, #b8dce8 100%); } 100% { background: radial-gradient(ellipse at 50% 30%, #a8d8e8 0%, #80c0d0 60%, #b0d8e0 100%); } }
@keyframes pc-figure1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-figure2 { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-1%) rotate(-1deg); } 40% { transform: translateX(1%) rotate(1deg); } 60% { transform: translateX(-2%) rotate(-1deg); } 80% { transform: translateX(1%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-candle { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); transform: scaleY(0.95); } 50% { box-shadow: 0 0 25px 8px rgba(255,200,100,0.7); transform: scaleY(1.05); } 100% { box-shadow: 0 0 18px 5px rgba(255,200,100,0.4); transform: scaleY(0.98); } }

/* Scene: autolycus-singing — sunny road, funny */
.scn-autolycus-singing {
  background:
    linear-gradient(180deg, #5b8fb0 0%, #8fc8e8 40%, #b0d8f0 70%, #e0f0ff 100%);
}
.scn-autolycus-singing .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7ab8d8 0%, #b0d8f0 100%);
  animation: au-sky 10s ease-in-out infinite alternate;
}
.scn-autolycus-singing .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.2);
}
.scn-autolycus-singing .hedge {
  position: absolute; bottom: 45%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: au-hedge 15s ease-in-out infinite;
}
.scn-autolycus-singing .daffodils {
  position: absolute; bottom: 48%; left: 20%; width: 30%; height: 10%;
  background:
    radial-gradient(ellipse at 20% 80%, #f0e040 10%, transparent 25%),
    radial-gradient(ellipse at 40% 70%, #f0e040 10%, transparent 25%),
    radial-gradient(ellipse at 60% 90%, #f0e040 10%, transparent 25%);
  background-size: 100% 100%, 100% 100%, 100% 100%;
  animation: au-flowers 4s ease-in-out infinite;
}
.scn-autolycus-singing .autolycus {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: au-dance 2s ease-in-out infinite;
}
.scn-autolycus-singing .lute {
  position: absolute; bottom: 30%; left: 52%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  animation: au-lute 3s ease-in-out infinite;
}
.scn-autolycus-singing .notes {
  position: absolute; bottom: 60%; left: 55%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d0b0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: au-note 5s linear infinite;
}
@keyframes au-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes au-hedge { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes au-flowers { 0% { transform: scale(0.9) rotate(-2deg); } 50% { transform: scale(1.1) rotate(2deg); } 100% { transform: scale(0.9) rotate(-2deg); } }
@keyframes au-dance { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(4%) rotate(3deg) scale(1.05); } 50% { transform: translateX(0) rotate(-2deg) scale(0.95); } 75% { transform: translateX(-3%) rotate(2deg) scale(1.02); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes au-lute { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes au-note { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.7; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* Scene: autolycus-cheats-clown — sunny roadside, comic */
.scn-autolycus-cheats-clown {
  background:
    linear-gradient(180deg, #6ba0c0 0%, #a0d0e8 50%, #c8e8f8 100%);
}
.scn-autolycus-cheats-clown .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8cc0d8 0%, #b8e0f0 100%);
  animation: ac-sky 14s ease-in-out infinite alternate;
}
.scn-autolycus-cheats-clown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b0a070 0%, #807040 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-autolycus-cheats-clown .clown {
  position: absolute; bottom: 15%; left: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ac-clown 6s ease-in-out infinite;
}
.scn-autolycus-cheats-clown .autolycus {
  position: absolute; bottom: 18%; right: 25%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a4a2a 0%, #2a2a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ac-thief 3s ease-in-out infinite;
}
.scn-autolycus-cheats-clown .coin-pouch {
  position: absolute; bottom: 20%; right: 30%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #b08040 0%, #8a6020 100%);
  border-radius: 50%;
  animation: ac-pouch 4s ease-in-out infinite;
}
.scn-autolycus-cheats-clown .coin {
  position: absolute; bottom: 22%; left: 35%; width: 3%; height: 3%;
  background: radial-gradient(circle, #f0d080 0%, #c09030 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,208,128,0.5);
  animation: ac-coin 5s linear infinite;
}
@keyframes ac-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ac-clown { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(4%) rotate(0deg); } 75% { transform: translateX(2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ac-thief { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-3%) rotate(-5deg) scale(0.9); } 50% { transform: translateX(0) rotate(2deg) scale(1.05); } 75% { transform: translateX(2%) rotate(-3deg) scale(0.95); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes ac-pouch { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes ac-coin { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 50% { transform: translate(20px, -10px) rotate(180deg); opacity: 0.8; } 100% { transform: translate(40px, -20px) rotate(360deg); opacity: 0; } }

/* Scene: shepherd-sheep-shearing — warm pastoral */
.scn-shepherd-sheep-shearing {
  background:
    linear-gradient(180deg, #7fc0d8 0%, #a0d8e8 30%, #c8e8f0 60%, #e8f8e0 100%);
}
.scn-shepherd-sheep-shearing .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90c8e0 0%, #b8dff0 100%);
  animation: ss-sky 16s ease-in-out infinite alternate;
}
.scn-shepherd-sheep-shearing .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a9a4a 0%, #5a8a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: ss-hills 20s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7aaa4a 0%, #5a8a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-shepherd-sheep-shearing .cottage {
  position: absolute; bottom: 18%; left: 15%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #c8a880 0%, #a08050 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ss-cottage 8s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .sheep {
  position: absolute; bottom: 12%; left: 40%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #f0f0e8 0%, #d0d0c0 100%);
  border-radius: 50%;
  animation: ss-sheep 10s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .florizel {
  position: absolute; bottom: 5%; left: 50%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ss-figure1 7s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .perdita {
  position: absolute; bottom: 5%; right: 40%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ss-figure2 9s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .garland {
  position: absolute; bottom: 27%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #e0b080 0%, #c09060 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,100,0.4);
  animation: ss-garland 6s ease-in-out infinite;
}
@keyframes ss-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ss-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ss-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ss-sheep { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(5%) scale(1.05); } 50% { transform: translateX(10%) scale(0.95); } 75% { transform: translateX(5%) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes ss-figure1 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.03); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ss-figure2 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ss-garland { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }

/* leontes-grateful */
.scn-leontes-grateful {
  background:
    linear-gradient(180deg, #fbe9d7 0%, #e8cba5 40%, #c9a06a 100%),
    radial-gradient(ellipse at 50% 65%, #fce5c0 0%, transparent 70%);
}
.scn-leontes-grateful .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #f2dcc0 0%, #dbb88a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.08); }
.scn-leontes-grateful .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f4a 0%, #5a4228 100%); border-radius: 10% 10% 0 0; }
.scn-leontes-grateful .window { position:absolute; top:10%; right:25%; width:120px; height:150px; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border:6px solid #6a4e2e; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 20px #87ceeb; animation: lg-window 8s ease-in-out infinite alternate; }
.scn-leontes-grateful .figure-left { position:absolute; bottom:26%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #3a2f22 0%, #1e160b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lg-figure 6s ease-in-out infinite; }
.scn-leontes-grateful .figure-right { position:absolute; bottom:26%; right:30%; width:24px; height:48px; background: linear-gradient(180deg, #4d3c2a 0%, #2a1f12 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lg-figure 6s ease-in-out infinite reverse; }
.scn-leontes-grateful .fireglow { position:absolute; bottom:20%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #ffc080 0%, #f08030 40%, transparent 70%); border-radius:50%; animation: lg-fireglow 4s ease-in-out infinite alternate; }
.scn-leontes-grateful .vase { position:absolute; bottom:30%; left:65%; width:20px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; animation: lg-sway 5s ease-in-out infinite; }
.scn-leontes-grateful .cloud { position:absolute; top:12%; right:28%; width:70px; height:15px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(5px); animation: lg-drift 30s linear infinite; }
@keyframes lg-window { 0% { box-shadow: inset 0 0 20px #87ceeb, 0 0 10px rgba(135,206,235,0.3); } 50% { box-shadow: inset 0 0 40px #a0d8ef, 0 0 20px rgba(135,206,235,0.5); } 100% { box-shadow: inset 0 0 25px #87ceeb, 0 0 12px rgba(135,206,235,0.35); } }
@keyframes lg-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lg-fireglow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes lg-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes lg-drift { 0% { transform: translateX(-10px); } 100% { transform: translateX(100vw); } }

/* florizel-libya-story */
.scn-florizel-libya-story {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e3cfb0 30%, #c4a57a 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-florizel-libya-story .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a3845a 0%, #6b4e2c 100%); border-radius: 15% 15% 0 0; }
.scn-florizel-libya-story .throne { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #d4a85c 0%, #a67c3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: fl-throne 12s ease-in-out infinite; }
.scn-florizel-libya-story .figure { position:absolute; bottom:22%; left:32%; width:22px; height:46px; background: linear-gradient(180deg, #2c1f10 0%, #140a04 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: fl-figure 5s ease-in-out infinite; }
.scn-florizel-libya-story .listener { position:absolute; bottom:22%; right:30%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: fl-listener 6s ease-in-out infinite; }
.scn-florizel-libya-story .column-left { position:absolute; top:5%; left:10%; width:20px; height:90%; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius: 10%; box-shadow: 2px 0 8px rgba(0,0,0,0.1); }
.scn-florizel-libya-story .column-right { position:absolute; top:5%; right:10%; width:20px; height:90%; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius: 10%; box-shadow: -2px 0 8px rgba(0,0,0,0.1); }
.scn-florizel-libya-story .banner { position:absolute; top:5%; left:50%; width:100px; height:30px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #702243 100%); border-radius: 4px; transform: translateX(-50%); animation: fl-banner 4s ease-in-out infinite; }
.scn-florizel-libya-story .scroll { position:absolute; bottom:30%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: fl-scroll 8s ease-in-out infinite; }
.scn-florizel-libya-story .lightbeam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,245,224,0.3) 0%, transparent 80%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); animation: fl-beam 6s ease-in-out infinite alternate; }
@keyframes fl-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fl-figure { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes fl-listener { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fl-banner { 0% { transform: translateX(-50%) skewX(0); } 50% { transform: translateX(-50%) skewX(5deg); } 100% { transform: translateX(-50%) skewX(0); } }
@keyframes fl-scroll { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes fl-beam { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.05); } 100% { opacity:0.5; transform: scaleY(0.98); } }

/* leontes-blessing */
.scn-leontes-blessing {
  background:
    linear-gradient(180deg, #f7e0c0 0%, #d4b080 30%, #8c6a44 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e7 0%, #c9a06a 40%, transparent 70%);
}
.scn-leontes-blessing .altar { position:absolute; bottom:20%; left:38%; width:80px; height:50px; background: linear-gradient(180deg, #b8945a 0%, #7a5a32 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-leontes-blessing .cross { position:absolute; bottom:35%; left:50%; width:12px; height:70px; background: #6a4a2a; transform: translateX(-50%); border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: lb-cross 10s ease-in-out infinite; }
.scn-leontes-blessing .cross::before { content:''; position:absolute; top:30%; left:-20px; width:52px; height:12px; background: #6a4a2a; border-radius: 4px; }
.scn-leontes-blessing .figure-kneeling { position:absolute; bottom:18%; left:25%; width:22px; height:40px; background: linear-gradient(180deg, #2a1f12 0%, #0e0a04 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lb-kneel 7s ease-in-out infinite; }
.scn-leontes-blessing .figure-holy { position:absolute; bottom:18%; right:25%; width:24px; height:48px; background: linear-gradient(180deg, #4d3a20 0%, #1e160b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lb-holy 7s ease-in-out infinite; }
.scn-leontes-blessing .stained-glass { position:absolute; top:5%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #b87878 0%, #c8553d 30%, #5e1a1d 60%, #702243 100%); border:6px solid #4a2a1a; border-radius: 10% 10% 5% 5%; filter: drop-shadow(0 0 20px rgba(200,80,60,0.5)); animation: lb-glass 8s ease-in-out infinite alternate; }
.scn-leontes-blessing .pew { position:absolute; bottom:20%; left:10%; width:30%; height:20px; background: #5a4228; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-leontes-blessing .candle { position:absolute; bottom:35%; left:48%; width:6px; height:18px; background: #f0e0c0; border-radius: 2px; animation: lb-candle 3s ease-in-out infinite; }
.scn-leontes-blessing .lightray { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,248,230,0.4) 0%, transparent 80%); clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%); animation: lb-ray 6s ease-in-out infinite alternate; }
@keyframes lb-cross { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes lb-kneel { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lb-holy { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(0) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lb-glass { 0% { opacity:0.7; filter: drop-shadow(0 0 15px rgba(200,80,60,0.4)); } 50% { opacity:1; filter: drop-shadow(0 0 30px rgba(200,80,60,0.8)); } 100% { opacity:0.8; filter: drop-shadow(0 0 20px rgba(200,80,60,0.5)); } }
@keyframes lb-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes lb-ray { 0% { opacity:0.3; transform: scaleY(0.95); } 50% { opacity:0.6; transform: scaleY(1.05); } 100% { opacity:0.4; transform: scaleY(1); } }

/* lord-reports-polixenes */
.scn-lord-reports-polixenes {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #d5bfa0 30%, #8a7555 100%),
    radial-gradient(ellipse at 50% 50%, #fff5e0 0%, #d5bfa0 30%, transparent 70%);
}
.scn-lord-reports-polixenes .table { position:absolute; bottom:15%; left:30%; width:200px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2e16 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-lord-reports-polixenes .chair { position:absolute; bottom:25%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: lr-chair 8s ease-in-out infinite; }
.scn-lord-reports-polixenes .figure-standing { position:absolute; bottom:20%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #1e160b 0%, #0a0602 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lr-tremble 2s ease-in-out infinite; }
.scn-lord-reports-polixenes .curtain-left { position:absolute; top:0; left:0; width:80px; height:100%; background: linear-gradient(180deg, #702243 0%, #4a162a 40%, #2a0a18 100%); border-radius: 0 60% 60% 0 / 0 50% 50% 0; animation: lr-curtain 5s ease-in-out infinite alternate; }
.scn-lord-reports-polixenes .curtain-right { position:absolute; top:0; right:0; width:80px; height:100%; background: linear-gradient(180deg, #702243 0%, #4a162a 40%, #2a0a18 100%); border-radius: 60% 0 0 60% / 50% 0 0 50%; animation: lr-curtain 5s ease-in-out infinite alternate-reverse; }
.scn-lord-reports-polixenes .document { position:absolute; bottom:25%; left:45%; width:40px; height:30px; background: #f0e0c0; border-radius: 4px; transform: rotate(-5deg); animation: lr-document 3s ease-in-out infinite; }
.scn-lord-reports-polixenes .shadow { position:absolute; bottom:15%; left:20%; width:200px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: lr-shadow 4s ease-in-out infinite alternate; }
@keyframes lr-chair { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lr-tremble { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(-1px); } 75% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes lr-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes lr-document { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes lr-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-autolycus-threats {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #4a3a1e 50%, #7a5a2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff3c0 0%, transparent 70%);
}
.scn-autolycus-threats .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #5a3a1a 60%, transparent 100%);
  animation: at-sky 15s ease-in-out infinite alternate;
}
.scn-autolycus-threats .ground {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #1a2a0e 0%, #0e1a06 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: at-ground 20s ease-in-out infinite alternate;
}
.scn-autolycus-threats .throne {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,200,100,.1);
  animation: at-throne 6s ease-in-out infinite;
}
.scn-autolycus-threats .figure {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-fig 3s ease-in-out infinite;
}
.scn-autolycus-threats .sheep {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 12px;
  background: radial-gradient(ellipse, #1a1a1a 60%, #0a0a0a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: at-sheep 4s ease-in-out infinite alternate;
}
.scn-autolycus-threats .rays {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,243,192,.4) 0%, transparent 70%);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: at-rays 8s ease-in-out infinite alternate;
}
.scn-autolycus-threats .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: at-shadow 2s ease-in-out infinite alternate;
}

@keyframes at-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes at-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes at-throne { 0%,100% { transform: translateX(-50%); } 25% { transform: translateX(-50%) rotateZ(-1deg); } 75% { transform: translateX(-50%) rotateZ(1deg); } }
@keyframes at-fig { 0%,100% { transform: translateX(0) rotateZ(0); } 25% { transform: translateX(2px) rotateZ(3deg); } 75% { transform: translateX(-1px) rotateZ(-2deg); } }
@keyframes at-sheep { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes at-rays { 0% { opacity: .3; transform: rotate(15deg) scale(1); } 50% { opacity: .8; transform: rotate(25deg) scale(1.2); } 100% { opacity: .5; transform: rotate(10deg) scale(.9); } }
@keyframes at-shadow { 0% { opacity: .5; } 100% { opacity: .8; } }

/* Shepherd gives gold */
.scn-shepherd-gives-gold {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #ffd700 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-shepherd-gives-gold .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #ffeb99 100%);
  animation: sgg-sky 12s ease-in-out infinite alternate;
}
.scn-shepherd-gives-gold .ground {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-shepherd-gives-gold .hand-left {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #d4a574 0%, #b08060 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom right;
  animation: sgg-hand-left 2s ease-in-out infinite;
}
.scn-shepherd-gives-gold .hand-right {
  position: absolute; bottom: 30%; right: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #c09470 0%, #a07050 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom left;
  animation: sgg-hand-right 2s ease-in-out infinite alternate;
}
.scn-shepherd-gives-gold .purse {
  position: absolute; bottom: 37%; left: 37%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #b8860b 0%, #8b6508 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sgg-purse 3s ease-in-out infinite;
}
.scn-shepherd-gives-gold .coin {
  position: absolute; bottom: 42%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(255,215,0,.6);
  animation: sgg-coin 1.5s ease-in-out infinite;
}
.scn-shepherd-gives-gold .coin.second {
  left: 50%; animation-delay: .5s;
  width: 8px; height: 8px;
}
.scn-shepherd-gives-gold .sunlight {
  position: absolute; top: 0; right: 0; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: sgg-sunlight 6s ease-in-out infinite alternate;
}

@keyframes sgg-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes sgg-hand-left { 0%,100% { transform: translateX(0) rotateZ(0); } 50% { transform: translateX(8px) rotateZ(5deg); } }
@keyframes sgg-hand-right { 0% { transform: translateX(0) rotateZ(0); } 100% { transform: translateX(-6px) rotateZ(-3deg); } }
@keyframes sgg-purse { 0%,100% { transform: translateY(0) rotateZ(0); } 50% { transform: translateY(-3px) rotateZ(5deg); } }
@keyframes sgg-coin { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-8px) scale(1.2); opacity: .8; } 100% { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes sgg-sunlight { 0% { opacity: .3; } 100% { opacity: .7; } }

/* Autolycus takes gold */
.scn-autolycus-takes-gold {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #ffeb99 40%, #ffd700 70%),
    radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 50%);
}
.scn-autolycus-takes-gold .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #fff5cc 100%);
  animation: atg-sky 10s ease-in-out infinite alternate;
}
.scn-autolycus-takes-gold .ground {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #cd853f 0%, #8b6914 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-autolycus-takes-gold .figure {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: atg-fig 2.5s ease-in-out infinite;
}
.scn-autolycus-takes-gold .purse {
  position: absolute; bottom: 35%; left: 40%; width: 35px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, #d4af37 0%, #b8860b 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: atg-purse 3s ease-in-out infinite;
}
.scn-autolycus-takes-gold .sparkle {
  position: absolute; top: 20%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffffff 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  animation: atg-sparkle 2s ease-in-out infinite;
}
.scn-autolycus-takes-gold .sparkle.two {
  left: 55%; top: 15%; width: 8px; height: 8px;
  animation-delay: .7s;
}
.scn-autolycus-takes-gold .star {
  position: absolute; bottom: 45%; left: 50%; width: 16px; height: 16px;
  background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: atg-star 4s ease-in-out infinite;
}

@keyframes atg-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes atg-fig { 0%,100% { transform: translateY(0) rotateZ(0); } 25% { transform: translateY(-4px) rotateZ(5deg); } 75% { transform: translateY(-2px) rotateZ(-4deg); } }
@keyframes atg-purse { 0%,100% { transform: translateY(0) rotateZ(0); } 50% { transform: translateY(-5px) rotateZ(10deg); } }
@keyframes atg-sparkle { 0%,100% { opacity: 0; transform: scale(.5); } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes atg-star { 0%,100% { transform: scale(1) rotate(0); opacity: .6; } 50% { transform: scale(1.3) rotate(180deg); opacity: 1; } }

/* Autolycus sends them on */
.scn-autolycus-sends-them-on {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 40%);
}
.scn-autolycus-sends-them-on .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #ffe4b5 100%);
  animation: asto-sky 14s ease-in-out infinite alternate;
}
.scn-autolycus-sends-them-on .ground {
  position: absolute; inset: 35% 0 0 0;
  background: linear-gradient(180deg, #7b68ee 0%, #6a5acd 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-autolycus-sends-them-on .figure-aut {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asto-aut 3s ease-in-out infinite;
}
.scn-autolycus-sends-them-on .figure-walk {
  position: absolute; bottom: 22%; right: 20%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asto-walk 4s ease-in-out infinite;
}
.scn-autolycus-sends-them-on .hedge {
  position: absolute; bottom: 30%; left: 50%; width: 90px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #2e8b57 0%, #006400 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  filter: blur(2px);
  animation: asto-hedge 8s ease-in-out infinite alternate;
}
.scn-autolycus-sends-them-on .glint {
  position: absolute; top: 8%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: asto-glint 4s ease-in-out infinite;
}

@keyframes asto-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes asto-aut { 0%,100% { transform: translateX(0) rotateZ(0); } 25% { transform: translateX(4px) rotateZ(5deg); } 75% { transform: translateX(2px) rotateZ(-3deg); } }
@keyframes asto-walk { 0% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(-15px); opacity: .7; } 100% { transform: translateX(-30px); opacity: .4; } }
@keyframes asto-hedge { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(.95); } }
@keyframes asto-glint { 0%,100% { opacity: .3; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.3); } }

.scn-leontes-wonder { background: linear-gradient(180deg, #1a1410 0%, #2a1e15 40%, #3d291a 100%), radial-gradient(ellipse at 50% 80%, #3d291a 0%, transparent 60%); }
.scn-leontes-wonder .room-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0805 0%, transparent 50%); animation: lw-ambient 20s ease-in-out infinite alternate; }
.scn-leontes-wonder .candle-glow { position: absolute; bottom: 40%; left: 55%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #b08040 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: lw-flicker 3s ease-in-out infinite alternate; }
.scn-leontes-wonder .statue-base { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px; transform: translateX(-50%); background: linear-gradient(90deg, #3a2a1a, #5a4030, #3a2a1a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-leontes-wonder .statue-form { position: absolute; bottom: 32%; left: 50%; width: 70px; height: 110px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1e14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: lw-breathe 12s ease-in-out infinite alternate; }
.scn-leontes-wonder .hand { position: absolute; bottom: 38%; left: 48%; width: 30px; height: 20px; background: linear-gradient(180deg, #8a6a50, #5a4030); border-radius: 60% 40% 50% 50% / 70% 60% 40% 40%; transform: rotate(20deg); animation: lw-reach 8s ease-in-out infinite alternate; }
.scn-leontes-wonder .dust { position: absolute; width: 4px; height: 4px; background: rgba(255,200,150,.4); border-radius: 50%; filter: blur(1px); animation: lw-drift 30s linear infinite; top: 30%; left: 30%; box-shadow: 8px 40px 0 2px rgba(255,200,150,.3), -20px 70px 0 1px rgba(255,200,150,.2); }
.scn-leontes-wonder .shadow { position: absolute; inset: 0 0 0 45%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.6) 60%, rgba(0,0,0,.8) 100%); pointer-events: none; }
@keyframes lw-ambient { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lw-flicker { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05) translateY(-2px); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes lw-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes lw-reach { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } 100% { transform: rotate(22deg) translateX(-2px); } }
@keyframes lw-drift { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-80vh) rotate(180deg); } }

.scn-paulina-intervention { background: linear-gradient(180deg, #1a1210 0%, #2a1c14 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #3a2820 0%, transparent 70%); }
.scn-paulina-intervention .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #0a0805 0%, transparent 30%, transparent 70%, #0a0805 100%); }
.scn-paulina-intervention .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1c14, #1a1210); border-radius: 10% 10% 0 0; }
.scn-paulina-intervention .wall-shadow { position: absolute; left: 60%; right: 0; top: 0; bottom: 25%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.5) 40%, rgba(0,0,0,.7) 100%); animation: pi-shadow 6s ease-in-out infinite alternate; }
.scn-paulina-intervention .paulina { position: absolute; bottom: 25%; left: 65%; width: 40px; height: 90px; background: linear-gradient(180deg, #2a1a12, #140e08); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pi-paulina 8s ease-in-out infinite alternate; }
.scn-paulina-intervention .leontes { position: absolute; bottom: 25%; left: 40%; width: 50px; height: 60px; background: linear-gradient(180deg, #1a1210, #0a0605); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pi-leontes 4s ease-in-out infinite alternate; }
.scn-paulina-intervention .statue { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: pi-statue-shimmer 10s ease-in-out infinite alternate; }
.scn-paulina-intervention .candle { position: absolute; bottom: 30%; left: 35%; width: 8px; height: 30px; background: linear-gradient(180deg, #b07040, #804020); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(255,160,80,.5); animation: pi-candle 3s ease-in-out infinite alternate; }
@keyframes pi-shadow { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(5px); } }
@keyframes pi-paulina { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg); } }
@keyframes pi-leontes { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(1deg) scale(1.01); } }
@keyframes pi-statue-shimmer { 0% { opacity: 0.9; box-shadow: inset 0 0 10px rgba(0,0,0,.4); } 50% { opacity: 1; box-shadow: inset 0 0 20px rgba(0,0,0,.2), 0 0 10px rgba(180,140,100,.2); } 100% { opacity: 0.95; box-shadow: inset 0 0 10px rgba(0,0,0,.4); } }
@keyframes pi-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.7; } }

.scn-leontes-sorrow { background: linear-gradient(180deg, #0a0808 0%, #1a1212 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1212 0%, transparent 60%); }
.scn-leontes-sorrow .bg-deep { position: absolute; inset: 0; background: linear-gradient(180deg, #050303 0%, transparent 60%); animation: ls-darken 25s ease-in-out infinite alternate; }
.scn-leontes-sorrow .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1212, #0a0606); border-radius: 20% 20% 0 0; }
.scn-leontes-sorrow .statue-pedestal { position: absolute; bottom: 20%; left: 50%; width: 100px; height: 15px; transform: translateX(-50%); background: linear-gradient(90deg, #2a1a1a, #3a2a2a, #2a1a1a); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-leontes-sorrow .statue { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-leontes-sorrow .leontes-form { position: absolute; bottom: 22%; left: 45%; width: 70px; height: 50px; background: linear-gradient(180deg, #1a1212, #0a0606); border-radius: 70% 70% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ls-heave 15s ease-in-out infinite alternate; }
.scn-leontes-sorrow .tears { position: absolute; top: 45%; left: 48%; width: 6px; height: 6px; background: radial-gradient(circle, rgba(200,180,180,.6), transparent); border-radius: 50%; animation: ls-tears 10s ease-in infinite; box-shadow: 10px 20px 0 2px rgba(200,180,180,.2), -15px 40px 0 1px rgba(200,180,180,.15); }
.scn-leontes-sorrow .shadow-tendrils { position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.4) 20%, transparent 60%), radial-gradient(ellipse at 60% 40%, rgba(0,0,0,.3) 30%, transparent 70%); animation: ls-tendrils 20s linear infinite alternate; pointer-events: none; }
@keyframes ls-darken { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ls-heave { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg) translateY(-1px); } 100% { transform: scale(1) rotate(-0.5deg); } }
@keyframes ls-tears { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(40px); opacity: 0; } }
@keyframes ls-tendrils { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-paulina-warning { background: linear-gradient(180deg, #1a1210 0%, #2a1c14 40%, #3a2820 100%), radial-gradient(ellipse at 50% 80%, #3a2820 0%, transparent 60%); }
.scn-paulina-warning .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #0a0805 0%, transparent 50%, #0a0805 100%); }
.scn-paulina-warning .curtain-left { position: absolute; left: 0; top: 0; bottom: 0; width: 35%; background: linear-gradient(90deg, #5e1a1d 0%, #3a0d0f 50%, #2a080a 100%); border-radius: 0 50% 50% 0 / 0 20% 20% 0; filter: blur(2px); animation: pw-curtain 8s ease-in-out infinite alternate; }
.scn-paulina-warning .curtain-right { position: absolute; right: 0; top: 0; bottom: 0; width: 35%; background: linear-gradient(270deg, #5e1a1d 0%, #3a0d0f 50%, #2a080a 100%); border-radius: 50% 0 0 50% / 20% 0 0 20%; filter: blur(2px); animation: pw-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-paulina-warning .statue { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: pw-breathe 6s ease-in-out infinite alternate; }
.scn-paulina-warning .paulina-arm { position: absolute; bottom: 40%; left: 55%; width: 25px; height: 15px; background: linear-gradient(90deg, #2a1a12, #140e08); border-radius: 50% 20% 20% 50% / 50% 30% 30% 50%; transform: rotate(-30deg); animation: pw-arm 4s ease-in-out infinite alternate; }
.scn-paulina-warning .vein-glow { position: absolute; bottom: 32%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(220,180,140,.3) 0%, transparent 50%), radial-gradient(ellipse at 50% 70%, rgba(220,180,140,.2) 0%, transparent 50%); animation: pw-glow 5s ease-in-out infinite alternate; }
.scn-paulina-warning .sparkle { position: absolute; width: 3px; height: 3px; background: rgba(255,200,150,.6); border-radius: 50%; filter: blur(1px); animation: pw-sparkle 3s ease-in-out infinite; top: 40%; left: 50%; box-shadow: 10px 20px 0 1px rgba(255,200,150,.4), -15px -10px 0 2px rgba(255,200,150,.3), 5px -30px 0 1px rgba(255,200,150,.2); }
@keyframes pw-curtain { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(3px); filter: blur(3px); } 100% { transform: scaleX(0.98) translateX(-2px); filter: blur(1px); } }
@keyframes pw-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes pw-arm { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(5px); } 100% { transform: rotate(-35deg) translateX(-3px); } }
@keyframes pw-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes pw-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }

/* antechamber-camillo-archidamus */
.scn-antechamber-camillo-archidamus {
  background: linear-gradient(180deg, #f5e6d0 0%, #ecd5b8 100%), radial-gradient(ellipse at 50% 100%, #f0d0a0 0%, transparent 70%);
}
.scn-antechamber-camillo-archidamus .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #d4b896 0%, #c8a680 50%, #d4b896 100%);
  animation: am1-wall 20s ease-in-out infinite alternate;
}
.scn-antechamber-camillo-archidamus .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b89a6e 0%, #8c7450 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: am1-floor 30s ease-in-out infinite alternate;
}
.scn-antechamber-camillo-archidamus .window-arch {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #a4c8e8 0%, #7ba0c8 50%, #5a7ea8 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: am1-window 35s linear infinite;
}
.scn-antechamber-camillo-archidamus .column-left {
  position: absolute; top: 8%; left: 10%; bottom: 25%; width: 6%;
  background: linear-gradient(90deg, #a88c6a 0%, #c8ab84 30%, #a88c6a 100%);
  border-radius: 4% 50% 50% 4%;
  box-shadow: 8px 0 15px rgba(0,0,0,0.2);
  animation: am1-column 15s ease-in-out infinite alternate;
}
.scn-antechamber-camillo-archidamus .column-right {
  position: absolute; top: 8%; right: 10%; bottom: 25%; width: 6%;
  background: linear-gradient(90deg, #a88c6a 0%, #c8ab84 30%, #a88c6a 100%);
  border-radius: 50% 4% 4% 50%;
  box-shadow: -8px 0 15px rgba(0,0,0,0.2);
  animation: am1-column 15s ease-in-out infinite alternate-reverse;
}
.scn-antechamber-camillo-archidamus .figure-camillo {
  position: absolute; bottom: 25%; left: 38%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #d4a070 0%, #8c5834 40%, #4a2a18 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: am1-figure 6s ease-in-out infinite;
}
.scn-antechamber-camillo-archidamus .figure-archidamus {
  position: absolute; bottom: 25%; right: 38%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #b8885a 0%, #7a4a2a 40%, #3a2010 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: am1-figure 6s ease-in-out infinite 2s;
}
@keyframes am1-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes am1-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes am1-window {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: 0 0; }
}
@keyframes am1-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes am1-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* bohemia-sicilia-friendship */
.scn-bohemia-sicilia-friendship {
  background: linear-gradient(180deg, #d9e4d0 0%, #c4d4b8 100%), radial-gradient(ellipse at 50% 0%, #b0c8a0 0%, transparent 70%);
}
.scn-bohemia-sicilia-friendship .bg-left {
  position: absolute; inset: 0 50% 20% 0;
  background: linear-gradient(135deg, #b0c0a0 0%, #8ca87c 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
  animation: bs2-bg-left 40s ease-in-out infinite alternate;
}
.scn-bohemia-sicilia-friendship .bg-right {
  position: absolute; inset: 0 0 20% 50%;
  background: linear-gradient(225deg, #c0b8a0 0%, #a09880 100%);
  clip-path: polygon(15% 0, 100% 0, 100% 100%, 0 100%);
  animation: bs2-bg-right 40s ease-in-out infinite alternate-reverse;
}
.scn-bohemia-sicilia-friendship .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8c9a7a 0%, #6a7a5a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: bs2-floor 25s ease-in-out infinite alternate;
}
.scn-bohemia-sicilia-friendship .figure-bohemia {
  position: absolute; bottom: 22%; left: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #b8a080 0%, #786050 100%);
  border-radius: 45% 40% 30% 35% / 60% 55% 30% 35%;
  transform-origin: bottom center;
  animation: bs2-figure 8s ease-in-out infinite;
}
.scn-bohemia-sicilia-friendship .figure-sicilia {
  position: absolute; bottom: 22%; right: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #a89070 0%, #685040 100%);
  border-radius: 40% 45% 35% 30% / 55% 60% 35% 30%;
  transform-origin: bottom center;
  animation: bs2-figure 8s ease-in-out infinite 1s;
}
.scn-bohemia-sicilia-friendship .handshake-emblem {
  position: absolute; bottom: 48%; left: 50%; width: 20%; height: 15%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #a88040 50%, #785828 100%);
  border-radius: 50%;
  box-shadow: 0 4px 20px rgba(168, 128, 64, 0.5);
  animation: bs2-emblem 6s ease-in-out infinite alternate;
}
@keyframes bs2-bg-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes bs2-bg-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes bs2-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98) translateY(2px); }
  100% { transform: scaleY(1); }
}
@keyframes bs2-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs2-emblem {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 20px rgba(168,128,64,0.4); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 6px 30px rgba(168,128,64,0.7); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 20px rgba(168,128,64,0.4); }
}

/* praise-mamillius */
.scn-praise-mamillius {
  background: linear-gradient(180deg, #ffeac0 0%, #f5d8a0 100%), radial-gradient(ellipse at 50% 80%, #ffd88a 0%, transparent 70%);
}
.scn-praise-mamillius .bg-panel {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(135deg, #d4b080 0%, #c09868 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: pm3-panel 30s ease-in-out infinite alternate;
}
.scn-praise-mamillius .throne {
  position: absolute; bottom: 18%; left: 42%; right: 42%; height: 25%;
  background: linear-gradient(180deg, #b08858 0%, #88683a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: pm3-throne 12s ease-in-out infinite alternate;
}
.scn-praise-mamillius .figure-king {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #d0b090 0%, #8a684a 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 30% 30%;
  transform-origin: bottom center;
  animation: pm3-figure 8s ease-in-out infinite;
}
.scn-praise-mamillius .figure-queen {
  position: absolute; bottom: 22%; right: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #c8a880 0%, #785840 100%);
  border-radius: 40% 45% 30% 30% / 55% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pm3-figure 8s ease-in-out infinite 1.5s;
}
.scn-praise-mamillius .figure-mamillius {
  position: absolute; bottom: 18%; left: 48%; right: 48%; height: 18%;
  width: 4%; left: auto; right: auto; transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d8b0 0%, #b89870 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: pm3-mamillius 6s ease-in-out infinite;
}
.scn-praise-mamillius .crown {
  position: absolute; bottom: 42%; left: 49%; right: 49%; height: 5%; width: 6%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, #c89030 50%, #a06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(255, 208, 96, 0.6);
  animation: pm3-crown 3s ease-in-out infinite alternate;
}
.scn-praise-mamillius .light-ray {
  position: absolute; top: 0; left: 45%; right: 45%; bottom: 80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, transparent 100%);
  clip-path: polygon(50% 0, 100% 60%, 0 60%);
  animation: pm3-light 10s ease-in-out infinite alternate;
}
@keyframes pm3-panel {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pm3-throne {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes pm3-figure {
  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 pm3-mamillius {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(3deg); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pm3-crown {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 4px rgba(255,208,96,0.5); }
  50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 30px 8px rgba(255,208,96,0.8); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 4px rgba(255,208,96,0.5); }
}
@keyframes pm3-light {
  0% { opacity: 0.6; transform: rotate(-2deg); }
  50% { opacity: 0.9; transform: rotate(2deg); }
  100% { opacity: 0.6; transform: rotate(-2deg); }
}

/* room-of-state-welcome */
.scn-room-of-state-welcome {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4ac 100%), radial-gradient(ellipse at 50% 100%, #d0b898 0%, transparent 70%);
}
.scn-room-of-state-welcome .wall-tapestry {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(90deg, #b8a48c 0%, #a89078 50%, #b8a48c 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: rs4-tapestry 45s ease-in-out infinite alternate;
}
.scn-room-of-state-welcome .dais {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #a08868 0%, #806850 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
  animation: rs4-dais 20s ease-in-out infinite alternate;
}
.scn-room-of-state-welcome .throne-main {
  position: absolute; bottom: 26%; left: 38%; right: 38%; height: 20%;
  background: linear-gradient(180deg, #c09868 0%, #987848 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 8px 25px rgba(0,0,0,0.3);
  animation: rs4-throne 15s ease-in-out infinite alternate;
}
.scn-room-of-state-welcome .figure-leontes {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #c8a880 0%, #785030 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 30% 30%;
  transform-origin: bottom center;
  animation: rs4-figure 8s ease-in-out infinite;
}
.scn-room-of-state-welcome .figure-hermione {
  position: absolute; bottom: 20%; left: 42%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #d0b090 0%, #886040 100%);
  border-radius: 40% 45% 30% 30% / 55% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rs4-figure 8s ease-in-out infinite 1s;
}
.scn-room-of-state-welcome .figure-polixenes {
  position: absolute; bottom: 20%; right: 30%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #b89878 0%, #6a5030 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 30% 30%;
  transform-origin: bottom center;
  animation: rs4-figure 8s ease-in-out infinite 2s;
}
.scn-room-of-state-welcome .attendants-left {
  position: absolute; bottom: 18%; left: 10%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #a08060 0%, #604820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: rs4-attendant 10s ease-in-out infinite;
}
.scn-room-of-state-welcome .attendants-right {
  position: absolute; bottom: 18%; right: 10%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #a08060 0%, #604820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: rs4-attendant 10s ease-in-out infinite 3s;
}
@keyframes rs4-tapestry {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes rs4-dais {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes rs4-throne {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes rs4-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 rs4-attendant {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-polixenes-departure {
  background: linear-gradient(180deg, #5b7a9a 0%, #e8c29a 50%, #d49a6a 100%),
              radial-gradient(ellipse at 70% 20%, #ffeda8 0%, transparent 60%);
}
.scn-polixenes-departure .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a9ab8 0%, #c8a878 100%);
  animation: po-sky 12s ease-in-out infinite alternate;
}
.scn-polixenes-departure .sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8a0 0%, #d4a050 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,232,160,0.5);
  animation: po-sun 8s ease-in-out infinite alternate;
}
.scn-polixenes-departure .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b7a4a 0%, #4a5a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: po-hills 18s ease-in-out infinite alternate;
}
.scn-polixenes-departure .field {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  animation: po-field 14s ease-in-out infinite alternate;
}
.scn-polixenes-departure .figure {
  position: absolute; bottom: 10%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center;
  animation: po-figure 6s ease-in-out infinite;
}
.scn-polixenes-departure .cloak {
  position: absolute; bottom: 14%; left: 39%; width: 28px; height: 28px;
  background: linear-gradient(135deg, #3a2e2a 0%, #1a1614 100%);
  border-radius: 0 60% 0 60% / 0 50% 0 50%; transform-origin: top left;
  animation: po-cloak 3s ease-in-out infinite alternate;
}
.scn-polixenes-departure .dust {
  position: absolute; bottom: 8%; left: 45%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,140,0.4) 0%, transparent 70%);
  filter: blur(4px); animation: po-dust 4s ease-in-out infinite alternate;
}
@keyframes po-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes po-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 50px 15px rgba(255,232,160,0.4) } 50% { transform: translateX(5px) scale(1.05); box-shadow: 0 0 70px 25px rgba(255,232,160,0.7) } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 50px 15px rgba(255,232,160,0.4) } }
@keyframes po-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes po-field { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes po-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes po-cloak { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes po-dust { 0% { transform: translateX(0) scale(1); opacity: 0.5 } 50% { transform: translateX(8px) scale(1.3); opacity: 0.8 } 100% { transform: translateX(0) scale(1); opacity: 0.5 } }

.scn-perdita-resolve {
  background: linear-gradient(180deg, #8aaccc 0%, #ecc89a 60%, #d4a878 100%),
              radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-perdita-resolve .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #9abcda 0%, #d4b080 100%);
  animation: pe-sky 10s ease-in-out infinite alternate;
}
.scn-perdita-resolve .clouds {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 24px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  border-radius: 50%; filter: blur(6px); animation: pe-clouds 30s linear infinite;
}
.scn-perdita-resolve .cottage {
  position: absolute; bottom: 20%; left: 45%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6a4a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pe-cottage 8s ease-in-out infinite alternate;
}
.scn-perdita-resolve .roof {
  position: absolute; bottom: 48%; left: 43%; width: 100px; height: 30px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0; clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: pe-roof 6s ease-in-out infinite alternate;
}
.scn-perdita-resolve .door {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0; transform: translateX(-50%);
  animation: pe-door 4s ease-in-out infinite alternate;
}
.scn-perdita-resolve .figure {
  position: absolute; bottom: 19%; left: 36%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1a1410 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center;
  animation: pe-figure 2s ease-in-out infinite;
}
.scn-perdita-resolve .path {
  position: absolute; bottom: 5%; left: 38%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #b8a070 0%, #9a885a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); opacity: 0.7;
  animation: pe-path 5s ease-in-out infinite alternate;
}
.scn-perdita-resolve .flowers {
  position: absolute; bottom: 15%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d89070 0%, #b06850 70%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(180,104,80,0.5);
  animation: pe-flowers 3s ease-in-out infinite alternate;
}
@keyframes pe-sky { 0% { opacity: 0.75 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pe-clouds { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes pe-cottage { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pe-roof { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes pe-door { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes pe-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pe-path { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes pe-flowers { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(0deg) scale(1) } }

.scn-shepherd-lament {
  background: linear-gradient(180deg, #6a7a7a 0%, #b8a080 40%, #8a6a50 100%),
              radial-gradient(ellipse at 50% 30%, #d0b890 0%, transparent 70%);
}
.scn-shepherd-lament .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #c8b090 100%);
  animation: sh-sky 15s ease-in-out infinite alternate;
}
.scn-shepherd-lament .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: sh-ground 20s ease-in-out infinite alternate;
}
.scn-shepherd-lament .mound {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%); box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: sh-mound 8s ease-in-out infinite alternate;
}
.scn-shepherd-lament .cross-v {
  position: absolute; bottom: 52%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  transform: translateX(-50%); border-radius: 2px;
  animation: sh-cross 6s ease-in-out infinite alternate;
}
.scn-shepherd-lament .cross-h {
  position: absolute; bottom: 62%; left: 50%; width: 24px; height: 6px;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a3020 100%);
  transform: translateX(-50%); border-radius: 2px;
  animation: sh-cross 6s ease-in-out infinite alternate;
}
.scn-shepherd-lament .figure {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2218 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sh-figure 7s ease-in-out infinite;
}
.scn-shepherd-lament .hands {
  position: absolute; bottom: 18%; left: 42%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-10deg);
  animation: sh-hands 4s ease-in-out infinite alternate;
}
@keyframes sh-sky { 0% { opacity: 0.6 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes sh-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sh-mound { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes sh-cross { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes sh-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sh-hands { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.2) } 100% { transform: rotate(-15deg) scaleY(1) } }

.scn-florizel-steadfast {
  background: linear-gradient(180deg, #8aaccc 0%, #e8c89a 40%, #d4a070 100%),
              radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-florizel-steadfast .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9abcd4 0%, #d4b080 100%);
  animation: fl-sky 12s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .sun {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffeca8 0%, #d4a858 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,236,168,0.6);
  animation: fl-sun 8s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .wall {
  position: absolute; bottom: 30%; left: 40%; width: 25%; height: 60%;
  background: linear-gradient(90deg, #7a6a5a 0%, #a08a70 30%, #6a5a4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: fl-wall 10s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 80% 20% 0 0 / 40% 10% 0 0;
  animation: fl-ground 14s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .figure {
  position: absolute; bottom: 22%; left: 46%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2220 0%, #0e0c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center;
  animation: fl-figure 2s ease-in-out infinite;
}
.scn-florizel-steadfast .cloak {
  position: absolute; bottom: 26%; left: 44%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #3a2e2a 0%, #1a1614 100%);
  border-radius: 0 60% 0 60% / 0 50% 0 50%; transform-origin: bottom left;
  animation: fl-cloak 1.5s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .chain {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 4px;
  background: linear-gradient(90deg, #7a7050 0%, #b8a878 50%, #7a7050 100%);
  border-radius: 2px; animation: fl-chain 1.6s ease-in-out infinite alternate;
}
@keyframes fl-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fl-sun { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px 15px rgba(255,236,168,0.4) } 50% { transform: scale(1.08) rotate(5deg); box-shadow: 0 0 60px 25px rgba(255,236,168,0.7) } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px 15px rgba(255,236,168,0.4) } }
@keyframes fl-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } 100% { transform: scaleX(1) } }
@keyframes fl-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fl-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fl-cloak { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes fl-chain { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

/* leontes-orders-baby-burnt */
.scn-leontes-orders-baby-burnt {
  background: linear-gradient(180deg, #5a3230 0%, #3a1c1a 60%, #1a0e0c 100%),
              radial-gradient(ellipse at 40% 60%, #c87a4a 0%, transparent 50%);
}
.scn-leontes-orders-baby-burnt .lo1-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a2a28, #2a1412 60%, #1a0a08);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  border-radius: 0 0 30% 30% / 10% 10%;
}
.scn-leontes-orders-baby-burnt .lo1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a1a18, #1a0e0c);
  box-shadow: inset 0 8px 12px rgba(200,80,40,0.2);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-leontes-orders-baby-burnt .lo1-hearth {
  position: absolute; bottom: 22%; right: 18%; width: 80px; height: 70px;
  background: linear-gradient(90deg, #3a1c18, #2a120e);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -8px 20px #1a0c08;
}
.scn-leontes-orders-baby-burnt .lo1-fire {
  position: absolute; bottom: 28%; right: 22%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #f0a040 0%, #d06020 30%, #a03010 70%, transparent);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: lo1-fire 2.4s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px #d06020, 0 0 60px 20px rgba(200,80,30,0.4);
}
@keyframes lo1-fire {
  0% { transform: scaleY(1) scaleX(0.9) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.15) scaleX(1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.85) translateY(0); opacity: 0.85; }
}
.scn-leontes-orders-baby-burnt .lo1-leontes {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo1-figure 3s ease-in-out infinite;
}
@keyframes lo1-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-2px); }
  50% { transform: rotate(-4deg) translateY(1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
.scn-leontes-orders-baby-burnt .lo1-servant {
  position: absolute; bottom: 20%; right: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 40% 40% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lo1-servant 4s ease-in-out infinite;
}
@keyframes lo1-servant {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-leontes-orders-baby-burnt .lo1-baby {
  position: absolute; bottom: 30%; right: 32%; width: 20px; height: 25px;
  background: radial-gradient(ellipse at 50% 60%, #d0b0a0 0%, #8a6050 60%, #4a2a20 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lo1-baby 2s ease-in-out infinite;
}
@keyframes lo1-baby {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
.scn-leontes-orders-baby-burnt .lo1-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 40%, rgba(0,0,0,0.3) 80%);
  pointer-events: none;
  animation: lo1-shadow 8s ease-in-out infinite alternate;
}
@keyframes lo1-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* paulina-defies-king */
.scn-paulina-defies-king {
  background: linear-gradient(180deg, #6a4440 0%, #4a2a26 60%, #2a1612 100%),
              radial-gradient(ellipse at 50% 20%, #f0d0a0 0%, transparent 60%);
}
.scn-paulina-defies-king .pd-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2220, #1a0e0c 60%, #0a0605);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-paulina-defies-king .pd-pillar-l {
  position: absolute; top: 5%; left: 10%; width: 20px; height: 90%;
  background: linear-gradient(180deg, #5a3a30, #3a1e18);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
}
.scn-paulina-defies-king .pd-pillar-r {
  position: absolute; top: 5%; right: 10%; width: 20px; height: 90%;
  background: linear-gradient(180deg, #5a3a30, #3a1e18);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
}
.scn-paulina-defies-king .pd-throne {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a2e22, #2a1810);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-paulina-defies-king .pd-leontes {
  position: absolute; bottom: 18%; left: 40%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #1a120e 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-leontes 4s ease-in-out infinite;
}
@keyframes pd-leontes {
  0% { transform: rotate(0) translateY(0); }
  30% { transform: rotate(2deg) translateY(-2px); }
  60% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0) translateY(0); }
}
.scn-paulina-defies-king .pd-paulina {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  border-radius: 45% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pd-paulina 3.5s ease-in-out infinite;
}
@keyframes pd-paulina {
  0% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(4deg) translateY(-3px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
.scn-paulina-defies-king .pd-arm {
  position: absolute; bottom: 65%; left: 58%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a1a16, #1a0e0a);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pd-arm 2s ease-in-out infinite;
}
@keyframes pd-arm {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.1); }
  100% { transform: rotate(0deg) scaleY(1); }
}
.scn-paulina-defies-king .pd-candle {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #f0d0a0, #d0a070);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #f0d0a0, 0 0 40px 12px rgba(240,208,160,0.4);
  animation: pd-candle 1.8s ease-in-out infinite alternate;
}
@keyframes pd-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: scaleY(1.08) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(1.02); opacity: 0.85; }
}

/* item-newborn-princess */
.scn-item-newborn-princess {
  background: linear-gradient(180deg, #7a5a48 0%, #5a3a2e 50%, #3a2018 100%),
              radial-gradient(ellipse at 50% 30%, #f0d8b8 0%, transparent 70%);
}
.scn-item-newborn-princess .np-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3028, #2a1a14 60%, #1a0e0a);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-item-newborn-princess .np-hands-l {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #c8a898 0%, #8a6a5a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(-20deg);
  animation: np-hand-l 3s ease-in-out infinite;
}
@keyframes np-hand-l {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
.scn-item-newborn-princess .np-hands-r {
  position: absolute; bottom: 20%; right: 25%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #c8a898 0%, #8a6a5a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform: rotate(20deg);
  animation: np-hand-r 3s ease-in-out infinite;
}
@keyframes np-hand-r {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
.scn-item-newborn-princess .np-bundle {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 40px; height: 45px;
  background: radial-gradient(ellipse at 50% 50%, #e0c8b8 0%, #b09888 50%, #7a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: np-bundle 4s ease-in-out infinite;
}
@keyframes np-bundle {
  0% { transform: translateX(-50%) scale(1) rotate(0); }
  25% { transform: translateX(-50%) scale(1.02) rotate(2deg); }
  50% { transform: translateX(-50%) scale(0.98) rotate(-1deg); }
  75% { transform: translateX(-50%) scale(1.01) rotate(1deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0); }
}
.scn-item-newborn-princess .np-cloth {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%); width: 60px; height: 20px;
  background: linear-gradient(180deg, #e8d0b8 0%, #c0a890 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  opacity: 0.8;
  animation: np-cloth 5s ease-in-out infinite alternate;
}
@keyframes np-cloth {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); }
  50% { transform: translateX(-50%) scaleX(1.05) scaleY(0.95); }
  100% { transform: translateX(-50%) scaleX(0.95) scaleY(1.02); }
}
.scn-item-newborn-princess .np-seal {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%); width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c868 0%, #c89030 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #f0c868, 0 0 24px 8px rgba(240,200,104,0.3);
  animation: np-seal 2s ease-in-out infinite alternate;
}
@keyframes np-seal {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}
.scn-item-newborn-princess .np-sparkle {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%); width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: np-sparkle 3s ease-in-out infinite;
}
@keyframes np-sparkle {
  0% { transform: translateX(-50%) scale(0.8); opacity: 0.3; }
  50% { transform: translateX(-50%) scale(1.5); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(0.8); opacity: 0.3; }
}

/* leontes-outburst */
.scn-leontes-outburst {
  background: linear-gradient(180deg, #5a3028 0%, #3a1c16 50%, #1a0c08 100%),
              radial-gradient(ellipse at 30% 40%, #d08858 0%, transparent 60%);
}
.scn-leontes-outburst .lo2-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1612, #1a0c08 60%, #0a0402);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.8);
}
.scn-leontes-outburst .lo2-col-l {
  position: absolute; top: 0; left: 5%; width: 16px; height: 100%;
  background: linear-gradient(180deg, #3a221e, #1a0e0a);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
}
.scn-leontes-outburst .lo2-col-r {
  position: absolute; top: 0; right: 5%; width: 16px; height: 100%;
  background: linear-gradient(180deg, #3a221e, #1a0e0a);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
}
.scn-leontes-outburst .lo2-leontes {
  position: absolute; bottom: 20%; left: 30%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #1a100c 0%, #0c0806 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-leontes 2.5s ease-in-out infinite;
}
@keyframes lo2-leontes {
  0% { transform: rotate(-3deg) translateY(0); }
  20% { transform: rotate(5deg) translateY(-2px); }
  40% { transform: rotate(-4deg) translateY(1px); }
  60% { transform: rotate(6deg) translateY(-3px); }
  80% { transform: rotate(-2deg) translateY(0); }
  100% { transform: rotate(-3deg) translateY(0); }
}
.scn-leontes-outburst .lo2-guard-l {
  position: absolute; bottom: 20%; left: 12%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 40% 45% 40% 40% / 50% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-guard 3s ease-in-out infinite;
}
@keyframes lo2-guard {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-leontes-outburst .lo2-guard-r {
  position: absolute; bottom: 20%; right: 12%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 45% 40% 40% 40% / 55% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-guard 3.5s ease-in-out infinite reverse;
}
.scn-leontes-outburst .lo2-paulina {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  border-radius: 45% 50% 35% 40% / 50% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-paulina 4s ease-in-out infinite;
}
@keyframes lo2-paulina {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-4px) rotate(-3deg); }
  60% { transform: translateX(-8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-leontes-outburst .lo2-torch {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0b060 0%, #d08030 40%, #a04010 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #f0b060, 0 0 60px 20px rgba(240,176,96,0.4);
  animation: lo2-torch 1.5s ease-in-out infinite alternate;
}
@keyframes lo2-torch {
  0% { transform: translateX(-50%) scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(0.85); opacity: 0.8; }
}

.scn-autolycus-soliloquy-double-occasion { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #fff5ee 100%), radial-gradient(ellipse at 30% 20%, #f0e68c 0%, transparent 60%); }
.scn-autolycus-soliloquy-double-occasion .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb, #b0e0e6); animation: a1-sky 15s ease-in-out infinite alternate; }
.scn-autolycus-soliloquy-double-occasion .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #c8a86e 100%); border-radius: 20% 20% 0 0; animation: a1-ground 8s ease-in-out infinite alternate; }
.scn-autolycus-soliloquy-double-occasion .figure { position:absolute; bottom:30%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: a1-figure 2s ease-in-out infinite; }
.scn-autolycus-soliloquy-double-occasion .coin { position:absolute; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: a1-coin 3s ease-in-out infinite; }
.scn-autolycus-soliloquy-double-occasion .coin-1 { left:40%; top:50%; animation-delay: 0s; }
.scn-autolycus-soliloquy-double-occasion .coin-2 { left:50%; top:45%; animation-delay: -1s; }
.scn-autolycus-soliloquy-double-occasion .coin-3 { left:60%; top:55%; animation-delay: -2s; }
.scn-autolycus-soliloquy-double-occasion .purse { position:absolute; bottom:28%; left:45%; width:16px; height:12px; background: #8b4513; border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: a1-purse 4s ease-in-out infinite; }
@keyframes a1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes a1-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes a1-figure { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } }
@keyframes a1-coin { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 50% { transform: translateY(-15px) rotate(180deg); opacity:0.8 } 100% { transform: translateY(0) rotate(360deg); opacity:1 } }
@keyframes a1-purse { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-autolycus-exit { background: linear-gradient(180deg, #ffebcd 0%, #f5deb3 50%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #ffdead 0%, transparent 70%); }
.scn-autolycus-exit .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4de 0%, #e0ffff 100%); animation: a2-sky 20s ease-in-out infinite alternate; }
.scn-autolycus-exit .hills { position:absolute; bottom:35%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0; animation: a2-hills 18s ease-in-out infinite alternate; }
.scn-autolycus-exit .path { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #c8a86e 0%, #8b7355 100%); border-radius: 20% 20% 0 0; animation: a2-path 12s ease-in-out infinite alternate; }
.scn-autolycus-exit .figure { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a2-figure 3s ease-in-out infinite; }
.scn-autolycus-exit .bundle { position:absolute; bottom:27%; left:33%; width:10px; height:8px; background: #8b4513; border-radius: 30%; animation: a2-bundle 3s ease-in-out infinite; }
.scn-autolycus-exit .tree { position:absolute; bottom:25%; right:20%; width:8px; height:40px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 10% 10% 20% 20%; animation: a2-tree 9s ease-in-out infinite alternate; }
@keyframes a2-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes a2-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes a2-path { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes a2-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes a2-bundle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes a2-tree { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) } }

.scn-leontes-palace-paulina { background: linear-gradient(135deg, #f5f5dc 0%, #faf0e6 50%, #e6d3b8 100%), radial-gradient(ellipse at 30% 40%, #fffacd 0%, transparent 70%); }
.scn-leontes-palace-paulina .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5f5dc 0%, #e6d3b8 100%); animation: a3-wall 20s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d2b48c 0%, #c8a86e 100%); border-radius: 10% 10% 0 0; animation: a3-floor 15s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .window { position:absolute; top:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border: 2px solid #8b5a2b; box-shadow: inset 0 0 10px rgba(0,0,0,.2); border-radius: 5px; animation: a3-window 12s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .light-ray { position:absolute; top:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, rgba(255,255,224,0.4) 0%, transparent 100%); transform: skewX(-10deg); animation: a3-light 8s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .figure { position:absolute; bottom:18%; left:50%; width:25px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: a3-figure 6s ease-in-out infinite; }
.scn-leontes-palace-paulina .column { position:absolute; bottom:0; left:15%; width:10px; height:50%; background: linear-gradient(180deg, #d3c9b8 0%, #b8a88a 100%); border-radius: 10% 10% 0 0; animation: a3-column 18s ease-in-out infinite alternate; }
@keyframes a3-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes a3-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes a3-window { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 0 } 50% { box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 20px #fffacd } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 0 } }
@keyframes a3-light { 0% { opacity:0.3; transform: skewX(-10deg) translateX(0) } 50% { opacity:0.6; transform: skewX(-10deg) translateX(2px) } 100% { opacity:0.3; transform: skewX(-10deg) translateX(0) } }
@keyframes a3-figure { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes a3-column { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }

.scn-leontes-remembers-hermione { background: linear-gradient(180deg, #1a1a2e 0%, #2c2250 50%, #0d0d1a 100%), radial-gradient(ellipse at 50% 60%, #4a3a6e 0%, transparent 70%); }
.scn-leontes-remembers-hermione .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #1a1a2e 100%); animation: a4-bg 30s ease-in-out infinite alternate; }
.scn-leontes-remembers-hermione .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); animation: a4-wall 20s ease-in-out infinite alternate; }
.scn-leontes-remembers-hermione .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 10% 10% 0 0; animation: a4-floor 15s ease-in-out infinite alternate; }
.scn-leontes-remembers-hermione .figure-leontes { position:absolute; bottom:20%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a4-leontes 4s ease-in-out infinite; }
.scn-leontes-remembers-hermione .figure-hermione { position:absolute; bottom:25%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, rgba(200,200,230,0.3) 0%, rgba(150,150,200,0.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: a4-hermione 7s ease-in-out infinite; }
.scn-leontes-remembers-hermione .candle { position:absolute; bottom:22%; left:50%; width:6px; height:15px; background: linear-gradient(180deg, #ffd700 0%, #ff8c00 100%); border-radius: 30% 30% 10% 10%; animation: a4-candle 3s ease-in-out infinite; }
.scn-leontes-remembers-hermione .glow { position:absolute; bottom:20%; left:48%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,140,0,0.4) 0%, transparent 60%); border-radius:50%; animation: a4-glow 3s ease-in-out infinite alternate; }
@keyframes a4-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes a4-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes a4-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes a4-leontes { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) translateY(-3px) rotate(2deg) } }
@keyframes a4-hermione { 0%,100% { opacity:0.2; filter: blur(3px) } 50% { opacity:0.5; filter: blur(1px) } }
@keyframes a4-candle { 0% { transform: scaleY(1); opacity:1 } 50% { transform: scaleY(0.9); opacity:0.8 } 100% { transform: scaleY(1); opacity:1 } }
@keyframes a4-glow { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.4 } }

.scn-leontes-persuades-stay { background: linear-gradient(135deg, #d4c5a9 0%, #b8a78a 50%, #9c8b6e 100%), radial-gradient(ellipse at 30% 40%, #f5e6d0 0%, transparent 60%); }
.scn-leontes-persuades-stay .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); }
.scn-leontes-persuades-stay .window-frames { position:absolute; top:15%; left:20%; width:40%; height:50%; background: linear-gradient(135deg, #7f8c8d 0%, #b0bec5 100%); border: 8px solid #6b5b4e; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,.3); animation: lp-window 8s ease-in-out infinite alternate; }
.scn-leontes-persuades-stay .table { position:absolute; bottom:25%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #8b7355 0%, #5c4a36 100%); border-radius: 10px 10px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-leontes-persuades-stay .figure-left { position:absolute; bottom:28%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2e 30%, #2c1f16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure-left 6s ease-in-out infinite; }
.scn-leontes-persuades-stay .figure-right { position:absolute; bottom:28%; right:25%; width:30px; height:72px; background: linear-gradient(180deg, #3a4a5a 30%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure-right 5s ease-in-out infinite; }
.scn-leontes-persuades-stay .warm-glow { position:absolute; bottom:30%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); animation: lp-glow 4s ease-in-out infinite alternate; }
.scn-leontes-persuades-stay .curtain-left { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 0 20px 20px 0; filter: drop-shadow(4px 0 5px rgba(0,0,0,.3)); animation: lp-curtain 7s ease-in-out infinite; }
.scn-leontes-persuades-stay .curtain-right { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 20px 0 0 20px; filter: drop-shadow(-4px 0 5px rgba(0,0,0,.3)); animation: lp-curtain 7s ease-in-out infinite reverse; }
@keyframes lp-window { 0% { opacity:.8; } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,200,.5); } 100% { opacity:.9; } }
@keyframes lp-figure-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lp-figure-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lp-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }
@keyframes lp-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-hermoine-entreats { background: linear-gradient(180deg, #f2e6d3 0%, #dcc4a8 40%, #b89674 100%), radial-gradient(ellipse at 50% 70%, #ffdd99 0%, transparent 60%); }
.scn-hermoine-entreats .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #f5ede0 0%, #d9c4ab 50%, #b59a7a 100%); }
.scn-hermoine-entreats .throne { position:absolute; bottom:20%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #cba870 0%, #8b6e44 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-hermoine-entreats .figure-hermoine { position:absolute; bottom:22%; left:48%; width:35px; height:80px; background: linear-gradient(180deg, #e8d4b8 30%, #b69678 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-figure 5s ease-in-out infinite; }
.scn-hermoine-entreats .candle { position:absolute; bottom:30%; left:35%; width:8px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #d2ab7a 100%); border-radius: 50% 50% 20% 20%; }
.scn-hermoine-entreats .candle-glow { position:absolute; bottom:30%; left:34%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%); animation: he-candle 3s ease-in-out infinite alternate; }
.scn-hermoine-entreats .ornament-left { position:absolute; bottom:25%; left:25%; width:20px; height:20px; background: radial-gradient(circle, #d4a373 0%, #a67c52 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: he-ornament 7s ease-in-out infinite; }
.scn-hermoine-entreats .ornament-right { position:absolute; bottom:25%; right:25%; width:20px; height:20px; background: radial-gradient(circle, #d4a373 0%, #a67c52 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: he-ornament 7s ease-in-out infinite reverse; }
.scn-hermoine-entreats .light-ray { position:absolute; top:10%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, rgba(255,220,150,.1) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: he-light 15s linear infinite; }
@keyframes he-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes he-candle { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.9; transform: scale(1); } }
@keyframes he-ornament { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes he-light { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; transform: translateX(20px); } 100% { opacity:.3; transform: translateX(40px); } }

.scn-hermoine-teasing { background: linear-gradient(180deg, #f7e7ce 0%, #e0c9a6 40%, #c4a77a 100%), radial-gradient(ellipse at 30% 60%, #fce4b3 0%, transparent 60%); }
.scn-hermoine-teasing .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #faefd8 0%, #e8d4b7 50%, #cbaf8a 100%); }
.scn-hermoine-teasing .figure-left-ht { position:absolute; bottom:25%; left:30%; width:28px; height:65px; background: linear-gradient(180deg, #5a6a4a 30%, #3a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-left 4s ease-in-out infinite; }
.scn-hermoine-teasing .figure-right-ht { position:absolute; bottom:25%; right:30%; width:28px; height:68px; background: linear-gradient(180deg, #6a5a4a 30%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-right 3.5s ease-in-out infinite; }
.scn-hermoine-teasing .play-table { position:absolute; bottom:20%; left:40%; width:50px; height:10px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 5px rgba(0,0,0,.3); }
.scn-hermoine-teasing .lamp { position:absolute; bottom:45%; left:45%; width:12px; height:25px; background: radial-gradient(circle, #f5d78a 0%, #d4a66a 100%); border-radius: 50% 50% 20% 20%; }
.scn-hermoine-teasing .lamp-glow { position:absolute; bottom:42%; left:42%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,100,.4) 0%, transparent 70%); animation: ht-glow 3s ease-in-out infinite alternate; }
.scn-hermoine-teasing .petals { position:absolute; top:20%; left:10%; width:100%; height:60%; background: radial-gradient(circle at 20% 30%, rgba(255,200,150,.15) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(255,200,150,.1) 0%, transparent 50%); filter: blur(4px); animation: ht-petals 8s ease-in-out infinite; }
@keyframes ht-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ht-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ht-glow { 0% { opacity:.7; transform: scale(1) ; } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1); } }
@keyframes ht-petals { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.6; transform: translateY(-10px); } 100% { opacity:.3; transform: translateY(0); } }

.scn-childhood-innocence { background: linear-gradient(180deg, #f2e3d0 0%, #dcc1a8 40%, #b6987a 100%), radial-gradient(ellipse at 50% 80%, #fce8c8 0%, transparent 60%); }
.scn-childhood-innocence .bg-soft { position:absolute; inset:0; background: linear-gradient(180deg, #f9ede0 0%, #e6d2bd 50%, #c8af99 100%); }
.scn-childhood-innocence .mother-figure { position:absolute; bottom:20%; left:35%; width:35px; height:85px; background: linear-gradient(180deg, #d4b89a 30%, #a88668 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-mother 6s ease-in-out infinite; }
.scn-childhood-innocence .child-figure { position:absolute; bottom:20%; left:50%; width:25px; height:55px; background: linear-gradient(180deg, #e8cdb0 30%, #c0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-child 4s ease-in-out infinite; }
.scn-childhood-innocence .hearth { position:absolute; bottom:15%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #a08060 0%, #604830 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(255,100,50,.3); }
.scn-childhood-innocence .hearth-glow { position:absolute; bottom:15%; left:18%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(255,150,60,.3) 0%, transparent 70%); animation: ci-glow 3s ease-in-out infinite alternate; }
.scn-childhood-innocence .rugged-edge { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 0 0; }
.scn-childhood-innocence .distant-window { position:absolute; top:15%; left:60%; width:30px; height:40px; background: linear-gradient(135deg, #a0b8c0 0%, #c8d8e0 100%); border: 4px solid #6b5b4e; border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,200,.2); animation: ci-window 10s ease-in-out infinite alternate; }
@keyframes ci-mother { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-child { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-glow { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.8; transform: scale(1); } }
@keyframes ci-window { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-leontes-restless { background: radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 50%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%), linear-gradient(180deg, #1a0a00 0%, #3a2a1a 40%, #5a4a3a 70%, #6a5a4a 100%); }
.scn-leontes-restless .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); transform: perspective(800px) rotateX(2deg); animation: lr-floor 12s ease-in-out infinite alternate; }
.scn-leontes-restless .wall { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 60%, #4a3a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.3); animation: lr-wall 18s ease-in-out infinite; }
.scn-leontes-restless .column-l { position:absolute; top:5%; left:12%; width:8%; height:55%; background: linear-gradient(90deg, #4a3a2a 0%, #7a6a5a 30%, #5a4a3a 70%, #3a2a1a 100%); border-radius:6px; box-shadow: 4px 0 12px rgba(0,0,0,0.5), -2px 0 8px rgba(255,255,200,0.1); animation: lr-column 20s ease-in-out infinite alternate; }
.scn-leontes-restless .column-r { position:absolute; top:5%; right:12%; width:8%; height:55%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a5a 70%, #4a3a2a 100%); border-radius:6px; box-shadow: -4px 0 12px rgba(0,0,0,0.5), 2px 0 8px rgba(255,255,200,0.1); animation: lr-column 20s ease-in-out infinite alternate-reverse; }
.scn-leontes-restless .figure { position:absolute; bottom:15%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #05050a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: lr-restless 3s ease-in-out infinite; }
.scn-leontes-restless .candle { position:absolute; bottom:38%; left:38%; width:8px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,200,100,0.6), 0 0 48px 16px rgba(255,200,100,0.3), 0 0 80px 24px rgba(200,150,80,0.15); animation: lr-candle 2s ease-in-out infinite alternate; }
.scn-leontes-restless .shadow { position:absolute; bottom:15%; left:30%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(6px); transform-origin: bottom center; animation: lr-shadow 3s ease-in-out infinite; }
.scn-leontes-restless .window { position:absolute; top:18%; right:18%; width:50px; height:60px; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 4px 4px 12px rgba(0,0,0,0.4); animation: lr-window 25s ease-in-out infinite alternate; }
@keyframes lr-floor { 0% { transform: perspective(800px) rotateX(2deg) translateY(0); } 50% { transform: perspective(800px) rotateX(2.5deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(1.8deg) translateY(0); } }
@keyframes lr-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lr-column { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes lr-restless { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes lr-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; box-shadow: 0 0 30px 10px rgba(255,220,140,0.7), 0 0 60px 20px rgba(255,200,100,0.35); } 100% { transform: scaleY(0.95) rotate(2deg); opacity:0.85; box-shadow: 0 0 22px 7px rgba(255,200,100,0.55), 0 0 44px 14px rgba(255,200,100,0.28); } }
@keyframes lr-shadow { 0% { transform: translateX(0) scaleX(1) rotate(0deg); opacity:0.4; } 25% { transform: translateX(8px) scaleX(1.1) rotate(2deg); opacity:0.5; } 50% { transform: translateX(16px) scaleX(0.95) rotate(-1deg); opacity:0.3; } 75% { transform: translateX(24px) scaleX(1.05) rotate(1deg); opacity:0.45; } 100% { transform: translateX(32px) scaleX(1) rotate(0deg); opacity:0.35; } }
@keyframes lr-window { 0% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); } 50% { background: linear-gradient(180deg, #0a0a3a 0%, #1a1a4a 50%, #2a2a5a 100%); } 100% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); } }

.scn-paulina-enters-with-baby { background: radial-gradient(ellipse at 40% 50%, #6a5a4a 0%, transparent 50%), radial-gradient(ellipse at 60% 70%, #5a4a3a 0%, transparent 60%), linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 70%, #6a5a4a 100%); }
.scn-paulina-enters-with-baby .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); animation: pe-floor 15s ease-in-out infinite alternate; }
.scn-paulina-enters-with-baby .wall { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #7a6a5a 0%, #6a5a4a 50%, #5a4a3a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.2); animation: pe-wall 20s ease-in-out infinite; }
.scn-paulina-enters-with-baby .doorway { position:absolute; bottom:20%; left:50%; width:30%; height:55%; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; transform: translateX(-50%); box-shadow: inset 0 0 30px rgba(0,0,0,0.6), 0 0 20px rgba(0,0,0,0.3); animation: pe-doorway 25s ease-in-out infinite alternate; }
.scn-paulina-enters-with-baby .figure-paulina { position:absolute; bottom:15%; left:38%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 45% 40% 30% 35% / 60% 55% 45% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pe-paulina 4s ease-in-out infinite; }
.scn-paulina-enters-with-baby .figure-baby { position:absolute; bottom:28%; left:42%; width:14px; height:18px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: pe-baby 4s ease-in-out infinite; }
.scn-paulina-enters-with-baby .guard { position:absolute; bottom:15%; right:25%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pe-guard 5s ease-in-out infinite; }
.scn-paulina-enters-with-baby .torch { position:absolute; bottom:35%; right:15%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); animation: pe-torch 2.5s ease-in-out infinite alternate; }
@keyframes pe-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pe-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes pe-doorway { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(0.95); } }
@keyframes pe-paulina { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(4px) translateY(-2px) rotate(0deg); } 60% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(12px) translateY(0) rotate(-1deg); } }
@keyframes pe-baby { 0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } 30% { transform: translateX(4px) translateY(-1px) rotate(-2deg) scale(1.05); } 60% { transform: translateX(8px) translateY(-1px) rotate(1deg) scale(0.98); } 100% { transform: translateX(12px) translateY(0) rotate(0deg) scale(1); } }
@keyframes pe-guard { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pe-torch { 0% { transform: scaleY(1) rotate(-3deg); opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4), 0 0 32px 8px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.2) rotate(0deg); opacity:1; box-shadow: 0 0 26px 8px rgba(255,220,140,0.6), 0 0 52px 16px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.9) rotate(3deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.45), 0 0 36px 10px rgba(255,200,100,0.22); } }

.scn-paulina-confronts-king { background: radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, transparent 50%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%), linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 70%, #7a6a5a 100%); }
.scn-paulina-confronts-king .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); transform: perspective(800px) rotateX(3deg); animation: pk-floor 18s ease-in-out infinite alternate; }
.scn-paulina-confronts-king .wall { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #8a7a6a 0%, #7a6a5a 50%, #6a5a4a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.25); animation: pk-wall 22s ease-in-out infinite; }
.scn-paulina-confronts-king .dais { position:absolute; bottom:20%; left:50%; width:40%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%); transform: translateX(-50%) perspective(600px) rotateX(-2deg); border-radius: 4px; box-shadow: 0 -6px 20px rgba(0,0,0,0.4), inset 0 4px 10px rgba(255,255,200,0.1); animation: pk-dais 25s ease-in-out infinite alternate; }
.scn-paulina-confronts-king .figure-king { position:absolute; bottom:28%; left:50%; width:28px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: pk-king 6s ease-in-out infinite; }
.scn-paulina-confronts-king .figure-paulina { position:absolute; bottom:15%; left:25%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 45% 40% 30% 35% / 60% 55% 45% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pk-paulina 4s ease-in-out infinite; }
.scn-paulina-confronts-king .guard-l { position:absolute; bottom:15%; left:5%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pk-guard-l 7s ease-in-out infinite; }
.scn-paulina-confronts-king .guard-r { position:absolute; bottom:15%; right:5%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pk-guard-r 7s ease-in-out infinite reverse; }
.scn-paulina-confronts-king .torch-l { position:absolute; bottom:35%; left:8%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); animation: pk-torch-l 2.8s ease-in-out infinite alternate; }
.scn-paulina-confronts-king .torch-r { position:absolute; bottom:35%; right:8%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); animation: pk-torch-r 2.8s ease-in-out infinite alternate-reverse; }
@keyframes pk-floor { 0% { transform: perspective(800px) rotateX(3deg) translateY(0); } 50% { transform: perspective(800px) rotateX(3.5deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(2.8deg) translateY(0); } }
@keyframes pk-wall { 0% { opacity:0.88; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes pk-dais { 0% { transform: translateX(-50%) perspective(600px) rotateX(-2deg) translateY(0); } 50% { transform: translateX(-50%) perspective(600px) rotateX(-2.5deg) translateY(-3px); } 100% { transform: translateX(-50%) perspective(600px) rotateX(-1.8deg) translateY(0); } }
@keyframes pk-king { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 30% { transform: translateX(-50%) translateY(-3px) rotate(0deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes pk-paulina { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(8px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes pk-guard-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pk-guard-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pk-torch-l { 0% { transform: scaleY(1) rotate(-3deg); opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4), 0 0 32px 8px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; box-shadow: 0 0 28px 8px rgba(255,220,140,0.6), 0 0 56px 16px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.95) rotate(3deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.45), 0 0 36px 10px rgba(255,200,100,0.22); } }
@keyframes pk-torch-r { 0% { transform: scaleY(1) rotate(3deg); opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4), 0 0 32px 8px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; box-shadow: 0 0 28px 8px rgba(255,220,140,0.6), 0 0 56px 16px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.95) rotate(-3deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.45), 0 0 36px 10px rgba(255,200,100,0.22); } }

.scn-paulina-lays-babe { background: radial-gradient(ellipse at 40% 60%, #6a5a4a 0%, transparent 50%), radial-gradient(ellipse at 60% 40%, #5a4a3a 0%, transparent 55%), linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 70%, #6a5a4a 100%); }
.scn-paulina-lays-babe .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); animation: pl-floor 16s ease-in-out infinite alternate; }
.scn-paulina-lays-babe .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #7a6a5a 0%, #6a5a4a 50%, #5a4a3a 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.2); animation: pl-wall 24s ease-in-out infinite; }
.scn-paulina-lays-babe .table { position:absolute; bottom:20%; left:50%; width:60%; height:16%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%); transform: translateX(-50%) perspective(600px) rotateX(-3deg); border-radius: 6px; box-shadow: 0 -4px 20px rgba(0,0,0,0.4), inset 0 4px 12px rgba(255,255,200,0.1); animation: pl-table 20s ease-in-out infinite alternate; }
.scn-paulina-lays-babe .figure-paulina { position:absolute; bottom:18%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 45% 40% 30% 35% / 60% 55% 45% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pl-paulina 5s ease-in-out infinite; }
.scn-paulina-lays-babe .figure-babe { position:absolute; bottom:26%; left:50%; width:16px; height:20px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 12px rgba(0,0,0,0.25); animation: pl-babe 5s ease-in-out infinite; }
.scn-paulina-lays-babe .cloth { position:absolute; bottom:22%; left:44%; width:30%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 40%, #4a3a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: top center; box-shadow: 0 2px 10px rgba(0,0,0,0.3); animation: pl-cloth 7s ease-in-out infinite; }
.scn-paulina-lays-babe .candle { position:absolute; bottom:30%; left:25%; width:8px; height:14px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,200,100,0.5), 0 0 48px 16px rgba(255,200,100,0.25), 0 0 80px 24px rgba(200,150,80,0.12); animation: pl-candle 2.2s ease-in-out infinite alternate; }
@keyframes pl-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pl-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.93; } }
@keyframes pl-table { 0% { transform: translateX(-50%) perspective(600px) rotateX(-3deg) translateY(0); } 50% { transform: translateX(-50%) perspective(600px) rotateX(-3.5deg) translateY(-3px); } 100% { transform: translateX(-50%) perspective(600px) rotateX(-2.8deg) translateY(0); } }
@keyframes pl-paulina { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-4px) rotate(0deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 75% { transform: translateX(12px) translateY(-3px) rotate(0deg); } 100% { transform: translateX(16px) translateY(0) rotate(-2deg); } }
@keyframes pl-babe { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) scale(1.03); } 50% { transform: translateX(-50%) translateY(-1px) rotate(0deg) scale(0.98); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); } }
@keyframes pl-cloth { 0% { transform: rotateX(0deg) translateY(0); } 50% { transform: rotateX(5deg) translateY(-2px); } 100% { transform: rotateX(0deg) translateY(0); } }
@keyframes pl-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 18px 6px rgba(255,200,100,0.4), 0 0 36px 12px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.2) rotate(0deg); opacity:1; box-shadow: 0 0 30px 10px rgba(255,220,140,0.6), 0 0 60px 20px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.92) rotate(2deg); opacity:0.85; box-shadow: 0 0 20px 7px rgba(255,200,100,0.45), 0 0 40px 14px rgba(255,200,100,0.22); } }

/* autolycus-disguise-fardel — funny sunlit wide horizon */
.scn-autolycus-disguise-fardel {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%);
}
.scn-autolycus-disguise-fardel .au1-sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%);
  animation: au1-sky 15s ease-in-out infinite alternate;
}
.scn-autolycus-disguise-fardel .au1-sun {
  position:absolute; top:8%; left:75%; width:70px; height:70px;
  background: radial-gradient(circle, #FFFACD 0%, #FFD700 70%, transparent 100%); border-radius:50%;
  box-shadow: 0 0 50px 25px rgba(255,215,0,0.5);
  animation: au1-sun 10s ease-in-out infinite;
}
.scn-autolycus-disguise-fardel .au1-hills {
  position:absolute; bottom:28%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 40% 70% 0 0 / 50% 50% 0 0;
  animation: au1-hills 20s ease-in-out infinite alternate;
}
.scn-autolycus-disguise-fardel .au1-figure {
  position:absolute; bottom:24%; left:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #3B2F2F 0%, #1A1110 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au1-walk 4s ease-in-out infinite;
}
.scn-autolycus-disguise-fardel .au1-fardel {
  position:absolute; bottom:28%; left:24%; width:36px; height:36px;
  background: radial-gradient(circle at 40% 40%, #8B4513 0%, #5C4033 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: au1-sway 4s ease-in-out infinite;
}
.scn-autolycus-disguise-fardel .au1-rustic1 {
  position:absolute; bottom:24%; right:30%; width:28px; height:65px;
  background: linear-gradient(180deg, #5C4033 0%, #2B1A10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au1-walk 4.5s ease-in-out infinite -1s;
}
.scn-autolycus-disguise-fardel .au1-rustic2 {
  position:absolute; bottom:24%; right:15%; width:25px; height:60px;
  background: linear-gradient(180deg, #556B2F 0%, #2E3B1F 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au1-walk 5s ease-in-out infinite -2s;
}
.scn-autolycus-disguise-fardel .au1-staff {
  position:absolute; bottom:24%; left:22%; width:4px; height:80px;
  background: linear-gradient(180deg, #8B4513 0%, #3B2F2F 100%); border-radius:2px;
  transform-origin: bottom center; transform: rotate(-10deg);
  animation: au1-staff 4s ease-in-out infinite;
}
@keyframes au1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes au1-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes au1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes au1-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(-2deg) } 75% { transform: translateX(18px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes au1-sway { 0% { transform: translateX(0) rotate(-4deg) } 50% { transform: translateX(3px) rotate(4deg) } 100% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes au1-staff { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-5deg) } }

/* autolycus-courtier-pretence — funny sunlit interior cutaway */
.scn-autolycus-courtier-pretence {
  background: linear-gradient(180deg, #F5F5DC 0%, #E6E6FA 50%, #D8BFD8 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}
.scn-autolycus-courtier-pretence .au2-window {
  position:absolute; top:0; left:50%; width:70%; height:100%;
  background: radial-gradient(ellipse at 50% 20%, #87CEEB 0%, #B0E0E6 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  transform: translateX(-50%); box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: au2-window 12s ease-in-out infinite alternate;
}
.scn-autolycus-courtier-pretence .au2-beam {
  position:absolute; top:0; left:25%; width:50%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,224,0.5) 0%, transparent 100%);
  transform: skewX(-8deg);
  animation: au2-beam 8s ease-in-out infinite alternate;
}
.scn-autolycus-courtier-pretence .au2-figure {
  position:absolute; bottom:18%; left:50%; width:40px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4A3B32 0%, #2B1D14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au2-bow 6s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-cloak {
  position:absolute; bottom:18%; left:50%; width:80px; height:85px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4B0082 0%, #2E0854 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: au2-flourish 6s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-hat {
  position:absolute; bottom:78%; left:50%; width:60px; height:25px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #1A1110 0%, #3B2F2F 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: au2-hat 6s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-feather {
  position:absolute; bottom:85%; left:55%; width:8px; height:30px;
  background: linear-gradient(180deg, #C8553D 0%, #8B3A2A 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: bottom center;
  animation: au2-feather 3s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-purse {
  position:absolute; bottom:30%; right:22%; width:22px; height:28px;
  background: radial-gradient(circle at 40% 40%, #DAA520 0%, #B8860B 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: au2-jingle 4s ease-in-out infinite;
}
@keyframes au2-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes au2-beam { 0% { opacity:.3; transform: skewX(-8deg) translateX(-10px) } 50% { opacity:.6; transform: skewX(-5deg) translateX(10px) } 100% { opacity:.4; transform: skewX(-10deg) translateX(-5px) } }
@keyframes au2-bow { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(15deg) } 60% { transform: translateX(-50%) rotate(-10deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes au2-flourish { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(20deg) } 60% { transform: translateX(-50%) rotate(-15deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes au2-hat { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(8deg) } 60% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes au2-feather { 0% { transform: rotate(0deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(15deg) } }
@keyframes au2-jingle { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

/* fardel-secrets — tense sunlit close-up */
.scn-fardel-secrets {
  background: linear-gradient(180deg, #F5DEB3 0%, #8B4513 100%), radial-gradient(ellipse at 50% 50%, #F5DEB3 0%, transparent 70%);
}
.scn-fardel-secrets .au3-window {
  position:absolute; top:5%; left:20%; width:60%; height:35%;
  background: radial-gradient(ellipse at 50% 50%, #FFF8DC 0%, #87CEEB 100%);
  border: 8px solid #3B2F2F; border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: au3-light 5s ease-in-out infinite alternate;
}
.scn-fardel-secrets .au3-table {
  position:absolute; bottom:15%; left:5%; width:90%; height:25%;
  background: linear-gradient(180deg, #5C4033 0%, #3B2F2F 100%);
  border-radius: 6px; box-shadow: 0 -6px 15px rgba(0,0,0,0.6);
}
.scn-fardel-secrets .au3-fardel {
  position:absolute; bottom:28%; left:25%; width:80px; height:65px;
  background: radial-gradient(circle at 30% 30%, #6B4226 0%, #2B1A10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8);
  animation: au3-tremble 3s ease-in-out infinite;
}
.scn-fardel-secrets .au3-box {
  position:absolute; bottom:32%; right:22%; width:55px; height:55px;
  background: linear-gradient(135deg, #4A3B32 0%, #1A1110 100%);
  border: 4px solid #B8860B; border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: au3-tremble 3.5s ease-in-out infinite -0.5s;
}
.scn-fardel-secrets .au3-lock {
  position:absolute; bottom:46%; right:33%; width:12px; height:16px;
  background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(218,165,32,0.9);
  animation: au3-pulse 2s ease-in-out infinite alternate;
}
.scn-fardel-secrets .au3-hand {
  position:absolute; bottom:30%; left:12%; width:40px; height:55px;
  background: linear-gradient(180deg, #E8C39E 0%, #C58B59 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: au3-grasp 4s ease-in-out infinite;
}
.scn-fardel-secrets .au3-dust {
  position:absolute; top:15%; left:10%; width:4px; height:4px;
  background: rgba(255,255,224,0.9); border-radius:50%;
  box-shadow: 15px 25px 6px rgba(255,255,224,0.7), 40px 50px 10px rgba(255,255,224,0.5), 70px 15px 4px rgba(255,255,224,0.8);
  animation: au3-dust 8s linear infinite;
}
@keyframes au3-light { 0% { opacity:.6; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.2) } 100% { opacity:.7; filter:brightness(.9) } }
@keyframes au3-tremble { 0% { transform: translateX(0) } 20% { transform: translateX(-2px) } 40% { transform: translateX(2px) } 60% { transform: translateX(-1px) } 80% { transform: translateX(1px) } 100% { transform: translateX(0) } }
@keyframes au3-pulse { 0% { box-shadow: 0 0 10px rgba(218,165,32,0.6); } 100% { box-shadow: 0 0 25px rgba(218,165,32,1); } }
@keyframes au3-grasp { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(15px) rotate(10deg) } 60% { transform: translateX(10px) rotate(5deg) } 100% { transform: translateX(-5px) rotate(-2deg) } }
@keyframes au3-dust { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-30px) translateX(20px) } 100% { transform: translateY(-60px) translateX(40px) } }

/* autolycus-deception-king-grief — dark sunlit silhouette */
.scn-autolycus-deception-king-grief {
  background: linear-gradient(180deg, #F0E68C 0%, #BDB76B 50%, #8B8378 100%), radial-gradient(ellipse at 50% 0%, #FFFACD 0%, transparent 70%);
}
.scn-autolycus-deception-king-grief .au4-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #FFFACD 0%, #F0E68C 100%);
  animation: au4-heat 10s ease-in-out infinite alternate;
}
.scn-autolycus-deception-king-grief .au4-sun {
  position:absolute; top:2%; left:50%; width:120px; height:120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #FFFFFF 0%, #FFFACD 40%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(255,255,255,0.7);
  animation: au4-glare 8s ease-in-out infinite;
}
.scn-autolycus-deception-king-grief .au4-ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #BDB76B 0%, #8B8378 100%);
  border-radius: 20% 60% 0 0 / 10% 30% 0 0;
  animation: au4-ground 15s ease-in-out infinite alternate;
}
.scn-autolycus-deception-king-grief .au4-crack {
  position:absolute; bottom:20%; left:10%; width:80%; height:3px;
  background: #5C4033; border-radius:2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(-2deg);
}
.scn-autolycus-deception-king-grief .au4-king {
  position:absolute; bottom:30%; right:22%; width:40px; height:85px;
  background: #1A1110;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -25px 15px 20px rgba(0,0,0,0.6);
  animation: au4-grieve 6s ease-in-out infinite;
}
.scn-autolycus-deception-king-grief .au4-autolycus {
  position:absolute; bottom:30%; left:18%; width:35px; height:80px;
  background: #2B1D14;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 25px 15px 20px rgba(0,0,0,0.6);
  animation: au4-cower 6s ease-in-out infinite -3s;
}
.scn-autolycus-deception-king-grief .au4-shadow {
  position:absolute; bottom:0; left:5%; width:45%; height:35%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  border-radius: 0 80% 0 0 / 0 100% 0 0;
  transform: skewX(-25deg);
  animation: au4-shadow 12s ease-in-out infinite alternate;
}
@keyframes au4-heat { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes au4-glare { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.08) } 100% { transform: translateX(-50%) scale(.95) } }
@keyframes au4-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes au4-grieve { 0% { transform: rotate(0deg) } 30% { transform: rotate(-5deg) translateY(-3px) } 60% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes au4-cower { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(-1px) } }
@keyframes au4-shadow { 0% { opacity:.4; transform: skewX(-25deg) translateX(0) } 100% { opacity:.9; transform: skewX(-30deg) translateX(-20px) } }

.scn-autolycus-gentlemen-conversation { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #a8856a 100%), radial-gradient(ellipse at 50% 0%, #f5e6d0 0%, transparent 70%); }
.scn-autolycus-gentlemen-conversation .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0cdb0, #c4a788); animation: au-wall 20s ease-in-out infinite alternate; }
.scn-autolycus-gentlemen-conversation .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a8856a, #7a5d45); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.3); animation: au-floor 15s ease-in-out infinite; }
.scn-autolycus-gentlemen-conversation .window { position:absolute; top:15%; left:30%; width:60px; height:80px; background: linear-gradient(135deg, #87ceeb, #b0e0e6); border:4px solid #7a5d45; border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,200,0.5); animation: au-window 8s ease-in-out infinite alternate; }
.scn-autolycus-gentlemen-conversation .sunbeam { position:absolute; top:15%; left:30%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,255,200,0.4), transparent); clip-path:polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: au-sunbeam 12s ease-in-out infinite alternate; }
.scn-autolycus-gentlemen-conversation .fardel { position:absolute; bottom:30%; left:45%; width:40px; height:30px; background: linear-gradient(135deg, #8b6914, #5c4410); border-radius:20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,0.4); animation: au-fardel 6s ease-in-out infinite; }
.scn-autolycus-gentlemen-conversation .figure-left { position:absolute; bottom:30%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: au-figure 5s ease-in-out infinite; }
.scn-autolycus-gentlemen-conversation .figure-right { position:absolute; bottom:30%; right:25%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: au-figure2 5s ease-in-out infinite; }
@keyframes au-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes au-floor { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes au-window { 0% { box-shadow:inset 0 0 20px rgba(255,255,200,0.5); } 50% { box-shadow:inset 0 0 40px rgba(255,255,200,0.8); } 100% { box-shadow:inset 0 0 20px rgba(255,255,200,0.5); } }
@keyframes au-sunbeam { 0% { opacity:0.6; transform:translateX(-10px) scaleX(0.9); } 50% { opacity:1; transform:translateX(0) scaleX(1); } 100% { opacity:0.7; transform:translateX(10px) scaleX(0.95); } }
@keyframes au-fardel { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(-3px) rotate(-1deg); } 75% { transform:translateY(-1px) rotate(1deg); } }
@keyframes au-figure { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes au-figure2 { 0%,100% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-2px) rotate(-1deg); } }

.scn-gentlemen-narrate-discovery { background: linear-gradient(180deg, #ffe4b5 0%, #ffd39b 50%, #e8a15a 100%), radial-gradient(ellipse at 50% 100%, #e8a15a 0%, transparent 70%); }
.scn-gentlemen-narrate-discovery .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f4d03f 100%); animation: gn-sky 25s ease-in-out infinite alternate; }
.scn-gentlemen-narrate-discovery .bg-horizon { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #d4a76a, #b8860b); border-radius:30% 70% 0 0 / 50% 50% 0 0; animation: gn-horizon 18s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .figure-speaker { position:absolute; bottom:20%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #4a3728, #2c1e14); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gn-speaker 4s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .figure-audience-1 { position:absolute; bottom:22%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gn-audience1 6s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .figure-audience-2 { position:absolute; bottom:25%; left:58%; width:30px; height:65px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gn-audience2 6s ease-in-out infinite 2s; }
.scn-gentlemen-narrate-discovery .gesture-hand { position:absolute; bottom:35%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #4a3728, #2c1e14); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin:bottom left; animation: gn-hand 3s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .scroll { position:absolute; bottom:15%; left:42%; width:15px; height:10px; background: linear-gradient(135deg, #f5e6c8, #d4b896); border-radius:10% 10% 20% 20%; box-shadow:0 2px 4px rgba(0,0,0,0.3); animation: gn-scroll 8s ease-in-out infinite alternate; }
@keyframes gn-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gn-horizon { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes gn-speaker { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(-2deg); } 50% { transform:translateY(-5px) rotate(0deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes gn-audience1 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } }
@keyframes gn-audience2 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(-2deg); } }
@keyframes gn-hand { 0% { transform:rotate(-30deg) scale(1); } 25% { transform:rotate(0deg) scale(1.1); } 50% { transform:rotate(20deg) scale(1); } 75% { transform:rotate(0deg) scale(0.9); } 100% { transform:rotate(-30deg) scale(1); } }
@keyframes gn-scroll { 0% { transform:translateY(0) rotate(-5deg); opacity:0.7; } 50% { transform:translateY(-3px) rotate(0deg); opacity:1; } 100% { transform:translateY(0) rotate(5deg); opacity:0.8; } }

.scn-rogero-bonfires { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #cd853f 100%), radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 60%); }
.scn-rogero-bonfires .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb, #b0e0e6); animation: rb-sky 30s ease-in-out infinite alternate; }
.scn-rogero-bonfires .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #cd853f, #8b4513); border-radius:20% 80% 0 0 / 30% 70% 0 0; animation: rb-ground 20s ease-in-out infinite; }
.scn-rogero-bonfires .bonfire { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff4500 0%, #ff8c00 40%, #ffd700 70%, transparent 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow:0 0 40px 10px rgba(255,140,0,0.5); animation: rb-bonfire 5s ease-in-out infinite; }
.scn-rogero-bonfires .flame-1 { position:absolute; bottom:40%; left:44%; width:20px; height:30px; background: linear-gradient(180deg, #ff4500, #ff8c00, transparent); border-radius:50% 50% 0 0; animation: rb-flame1 2s ease-in-out infinite alternate; }
.scn-rogero-bonfires .flame-2 { position:absolute; bottom:40%; left:54%; width:18px; height:25px; background: linear-gradient(180deg, #ff6347, #ffa500, transparent); border-radius:50% 50% 0 0; animation: rb-flame2 1.8s ease-in-out infinite alternate 0.5s; }
.scn-rogero-bonfires .figure-1 { position:absolute; bottom:30%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-fig1 4s ease-in-out infinite; }
.scn-rogero-bonfires .figure-2 { position:absolute; bottom:30%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-fig2 4s ease-in-out infinite 1s; }
.scn-rogero-bonfires .torch { position:absolute; bottom:40%; left:60%; width:10px; height:20px; background: #4a3728; border-radius:10% 10% 20% 20%; box-shadow:0 0 10px 5px #ff8c00; animation: rb-torch 3s ease-in-out infinite; }
@keyframes rb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rb-ground { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes rb-bonfire { 0%,100% { transform:translateX(-50%) scale(1); opacity:0.9; } 50% { transform:translateX(-50%) scale(1.1); opacity:1; } }
@keyframes rb-flame1 { 0% { transform:translateY(0) scaleX(1) rotate(0deg); } 50% { transform:translateY(-5px) scaleX(1.2) rotate(5deg); } 100% { transform:translateY(-2px) scaleX(0.9) rotate(-5deg); } }
@keyframes rb-flame2 { 0% { transform:translateY(0) scaleX(1) rotate(0deg); } 50% { transform:translateY(-4px) scaleX(1.1) rotate(-6deg); } 100% { transform:translateY(-1px) scaleX(0.8) rotate(4deg); } }
@keyframes rb-fig1 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes rb-fig2 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-1deg); } }
@keyframes rb-torch { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(10deg); } }

.scn-gentlemen-reunion-talk { background: linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #8b7355 100%), radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 70%); }
.scn-gentlemen-reunion-talk .hall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f5deb3, #deb887, #8b7355); border-radius:10% 10% 0 0 / 20% 20% 0 0; box-shadow:inset 0 10px 50px rgba(0,0,0,0.3); animation: gr-hall 30s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .window-arch { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:100px; height:150px; background: linear-gradient(135deg, #87ceeb, #b0e0e6, #f0e68c); background-size:200% 200%; border-radius:50% 50% 10% 10% / 60% 60% 10% 10%; border:4px solid #8b7355; box-shadow:inset 0 0 30px rgba(255,255,200,0.6); animation: gr-window 12s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .light-rays { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:120px; height:80px; background: linear-gradient(180deg, rgba(255,255,200,0.5), transparent); clip-path:polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%); animation: gr-rays 15s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .king-left { position:absolute; bottom:20%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #2c1e14, #1a0e0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gr-kingL 6s ease-in-out infinite; }
.scn-gentlemen-reunion-talk .king-right { position:absolute; bottom:20%; right:30%; width:40px; height:90px; background: linear-gradient(180deg, #2c1e14, #1a0e0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gr-kingR 6s ease-in-out infinite 1s; }
.scn-gentlemen-reunion-talk .crown-left { position:absolute; top:10%; left:32%; width:30px; height:15px; background: linear-gradient(135deg, #ffd700, #b8860b); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow:0 0 10px 3px #ffd700; animation: gr-crownL 4s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .crown-right { position:absolute; top:10%; right:32%; width:30px; height:15px; background: linear-gradient(135deg, #ffd700, #b8860b); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow:0 0 10px 3px #ffd700; animation: gr-crownR 4s ease-in-out infinite alternate 0.5s; }
.scn-gentlemen-reunion-talk .onlookers { position:absolute; bottom:18%; left:15%; right:15%; height:30px; background: linear-gradient(180deg, #2c1e14, transparent); border-radius:50% 50% 0 0 / 100% 100% 0 0; filter:blur(2px); animation: gr-onlookers 20s ease-in-out infinite; }
@keyframes gr-hall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gr-window { 0% { background-position:0% 0%; } 100% { background-position:100% 100%; } }
@keyframes gr-rays { 0% { opacity:0.5; transform:translateX(-10px) scaleX(0.9); } 50% { opacity:1; transform:translateX(0) scaleX(1); } 100% { opacity:0.6; transform:translateX(10px) scaleX(0.95); } }
@keyframes gr-kingL { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1deg); } }
@keyframes gr-kingR { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(-1deg); } }
@keyframes gr-crownL { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-2px) rotate(0deg); } 100% { transform:translateY(0) rotate(3deg); } }
@keyframes gr-crownR { 0% { transform:translateY(0) rotate(3deg); } 50% { transform:translateY(-2px) rotate(0deg); } 100% { transform:translateY(0) rotate(-3deg); } }
@keyframes gr-onlookers { 0%,100% { transform:scaleY(1); opacity:0.8; } 50% { transform:scaleY(1.05); opacity:1; } }
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* hermoine-speaks – statue awakening in a quiet hall */
.scn-hermione-speaks {
  background:
    radial-gradient(ellipse at 50% 60%, #c8a87a 0%, #7a5a3a 60%, #2a1a0a 100%) padding-box,
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%) padding-box;
}
.scn-hermione-speaks .back-wall {
  position: absolute;
  inset: 10% 10% 20% 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 60px rgba(0,0,0,.6), 0 0 20px rgba(200,168,122,.2);
  animation: hs-back 20s ease-in-out infinite alternate;
}
.scn-hermione-speaks .column-l {
  position: absolute;
  left: 14%;
  top: 8%;
  width: 12%;
  height: 72%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 100%);
  border-radius: 10% / 4%;
  box-shadow: 6px 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: hs-column 30s ease-in-out infinite alternate;
}
.scn-hermione-speaks .column-r {
  position: absolute;
  right: 14%;
  top: 8%;
  width: 12%;
  height: 72%;
  background: linear-gradient(270deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 100%);
  border-radius: 10% / 4%;
  box-shadow: -6px 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: hs-column 30s ease-in-out infinite alternate-reverse;
}
.scn-hermione-speaks .pedestal {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 30%;
  height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 8px 30px rgba(0,0,0,.7);
}
.scn-hermione-speaks .statue {
  position: absolute;
  bottom: 26%;
  left: 50%;
  width: 12%;
  height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c4b4 0%, #a09484 40%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.3), inset 0 -20px 40px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: hs-statue 12s ease-in-out infinite alternate;
}
.scn-hermione-speaks .statue-arm {
  position: absolute;
  bottom: 48%;
  left: 38%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #d4c4b4 0%, #8a7a6a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: top center;
  transform: rotate(-20deg);
  box-shadow: 0 2px 10px rgba(0,0,0,.2);
  animation: hs-arm 10s ease-in-out infinite alternate;
}
.scn-hermione-speaks .glow-spot {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 40%;
  height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(255,200,120,.15) 0%, transparent 80%);
  filter: blur(20px);
  animation: hs-glow 8s ease-in-out infinite alternate;
}
.scn-hermione-speaks .candle-flame {
  position: absolute;
  bottom: 24%;
  left: 22%;
  width: 3%;
  height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #ff8840 40%, #cc4400 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,120,.4), 0 0 60px 20px rgba(255,200,120,.15);
  animation: hs-flame 3s ease-in-out infinite alternate;
}
.scn-hermione-speaks .particle {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 2%;
  height: 2%;
  background: radial-gradient(circle, rgba(255,220,160,.8) 0%, transparent 70%);
  border-radius: 50%;
  animation: hs-particle 6s ease-in-out infinite;
}
@keyframes hs-back { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes hs-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(.995) } }
@keyframes hs-statue { 0% { transform: translateX(-50%) rotate(0) scaleY(1) } 50% { transform: translateX(-50%) rotate(.5deg) scaleY(1.005) } 100% { transform: translateX(-50%) rotate(-.3deg) scaleY(.998) } }
@keyframes hs-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-22deg) } }
@keyframes hs-glow { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes hs-flame { 0% { transform: scaleY(1) rotate(-3deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(.95) rotate(-1deg) } }
@keyframes hs-particle { 0% { transform: translate(0,0) opacity:.6 } 50% { transform: translate(10px,-20px) opacity:.9 } 100% { transform: translate(20px,5px) opacity:.4 } }

/* perdisa-reunion – embrace in a warm chamber */
.scn-perdisa-reunion {
  background:
    radial-gradient(ellipse at 50% 50%, #a08060 0%, #5a3a2a 70%, #1a0a00 100%) padding-box,
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%) padding-box;
}
.scn-perdisa-reunion .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-perdisa-reunion .tapestry {
  position: absolute;
  top: 8%;
  left: 15%;
  width: 70%;
  height: 55%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 4px 20px rgba(0,0,0,.3);
  animation: pr-tapestry 25s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .figure-l {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 14%;
  height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pr-figure-l 8s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .figure-r {
  position: absolute;
  bottom: 22%;
  right: 38%;
  width: 14%;
  height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pr-figure-r 8s ease-in-out infinite alternate-reverse;
}
.scn-perdisa-reunion .embrace-hands {
  position: absolute;
  bottom: 50%;
  left: 50%;
  width: 4%;
  height: 10%;
  transform: translate(-50%,0);
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 10px rgba(160,128,96,.3);
  animation: pr-hands 6s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .torch-fire {
  position: absolute;
  bottom: 35%;
  right: 12%;
  width: 4%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #ffb060 0%, #cc5500 50%, #662200 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,176,96,.4), 0 0 80px 30px rgba(255,176,96,.15);
  animation: pr-torch 3s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .pool-light {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 30%;
  height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(255,200,120,.12) 0%, transparent 100%);
  filter: blur(15px);
  animation: pr-pool 10s ease-in-out infinite alternate;
}
.scn-perdisa-reunion .dust-mote {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 1.5%;
  height: 1.5%;
  background: radial-gradient(circle, rgba(255,220,160,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: pr-mote 12s ease-in-out infinite;
}
@keyframes pr-tapestry { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.88 } }
@keyframes pr-figure-l { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-.5deg) } }
@keyframes pr-figure-r { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(1px) rotate(.5deg) } }
@keyframes pr-hands { 0% { transform: translate(-50%,0) scaleY(1) } 50% { transform: translate(-50%,-2px) scaleY(1.05) } 100% { transform: translate(-50%,1px) scaleY(.98) } }
@keyframes pr-torch { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.12) rotate(2deg) } 100% { transform: scaleY(.95) rotate(-1deg) } }
@keyframes pr-pool { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes pr-mote { 0% { transform: translate(0,0) opacity:.3 } 50% { transform: translate(15px,-10px) opacity:.8 } 100% { transform: translate(30px,5px) opacity:.2 } }

/* final-procession – a ceremonial walk under an arch */
.scn-final-procession {
  background:
    radial-gradient(ellipse at 50% 50%, #a08060 0%, #4a2a1a 70%, #1a0a00 100%) padding-box,
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%) padding-box;
}
.scn-final-procession .arch-bg {
  position: absolute;
  top: 4%;
  left: 12%;
  width: 76%;
  height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 60px rgba(0,0,0,.5), 0 0 30px rgba(0,0,0,.3);
  animation: fp-arch 30s ease-in-out infinite alternate;
}
.scn-final-procession .floor-tile {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 22%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-final-procession .figure-a {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 12%;
  height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: fp-figure-a 10s ease-in-out infinite alternate;
}
.scn-final-procession .figure-b {
  position: absolute;
  bottom: 18%;
  left: 44%;
  width: 14%;
  height: 44%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: fp-figure-b 12s ease-in-out infinite alternate-reverse;
}
.scn-final-procession .figure-c {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 12%;
  height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: fp-figure-c 9s ease-in-out infinite alternate;
}
.scn-final-procession .torch {
  position: absolute;
  bottom: 32%;
  right: 18%;
  width: 3%;
  height: 18%;
  background: radial-gradient(ellipse at 50% 25%, #ffa050 0%, #cc4400 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,160,80,.4), 0 0 60px 20px rgba(255,160,80,.15);
  animation: fp-torch 4s ease-in-out infinite alternate;
}
.scn-final-procession .banner {
  position: absolute;
  top: 14%;
  left: 20%;
  width: 18%;
  height: 30%;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,.3);
  transform-origin: top center;
  animation: fp-banner 8s ease-in-out infinite alternate;
}
.scn-final-procession .star-dust {
  position: absolute;
  top: 8%;
  left: 40%;
  width: 2%;
  height: 2%;
  background: radial-gradient(circle, rgba(255,220,160,.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: fp-dust 15s ease-in-out infinite;
}
@keyframes fp-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(.995) } }
@keyframes fp-figure-a { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(.5deg) } 100% { transform: translateX(-2px) rotate(-.3deg) } }
@keyframes fp-figure-b { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-.5deg) } 100% { transform: translateX(3px) rotate(.3deg) } }
@keyframes fp-figure-c { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(.4deg) } 100% { transform: translateX(-1px) rotate(-.2deg) } }
@keyframes fp-torch { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.08) rotate(2deg) } 100% { transform: scaleY(.96) rotate(-1deg) } }
@keyframes fp-banner { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0) } 100% { transform: rotate(2deg) } }
@keyframes fp-dust { 0% { transform: translate(0,0) opacity:.4 } 50% { transform: translate(12px,-8px) opacity:.8 } 100% { transform: translate(24px,4px) opacity:.2 } }

.scn-statue-description {
  background: linear-gradient(180deg, #d4b890 0%, #c8a070 40%, #b08860 100%);
}
.scn-statue-description .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b890 80%, transparent 100%);
  animation: st-bg 12s ease-in-out infinite alternate;
}
.scn-statue-description .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 0 0;
}
.scn-statue-description .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-statue-description .statue {
  position: absolute; bottom: calc(20% + 40px); left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: st-statue 8s ease-in-out infinite;
}
.scn-statue-description .window-light {
  position: absolute; top: 10%; left: 20%; width: 150px; height: 200px;
  background: radial-gradient(ellipse at center, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: st-light 6s ease-in-out infinite alternate;
}
.scn-statue-description .shadow {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.2); border-radius: 50%;
  filter: blur(6px);
  animation: st-shadow 8s ease-in-out infinite;
}
.scn-statue-description .figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure 10s ease-in-out infinite;
}

@keyframes st-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes st-statue { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes st-light { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes st-shadow { 0%,100% { transform: translateX(-50%) scale(1); opacity: 0.2 } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.3 } }
@keyframes st-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }

.scn-gentlemen-exit {
  background: linear-gradient(180deg, #c8a880 0%, #b09060 50%, #a08050 100%), radial-gradient(ellipse at 50% 100%, #b09060 0%, transparent 70%);
}
.scn-gentlemen-exit .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0c8a8 0%, #c8b090 80%, transparent 100%);
  animation: ge-bg 14s ease-in-out infinite alternate;
}
.scn-gentlemen-exit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #907050 0%, #705040 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-gentlemen-exit .doorway {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-gentlemen-exit .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-walk-left 5s ease-in-out infinite;
}
.scn-gentlemen-exit .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-walk-right 5s ease-in-out infinite 1s;
}
.scn-gentlemen-exit .lamp {
  position: absolute; bottom: 40%; left: 15%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 4px;
}
.scn-gentlemen-exit .lamp-glow {
  position: absolute; bottom: 38%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  transform: translate(-50%, 50%);
  animation: ge-glow 3s ease-in-out infinite alternate;
}

@keyframes ge-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ge-walk-left { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes ge-walk-right { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-10px) rotate(-1deg) } 50% { transform: translateX(-20px) rotate(1deg) } 75% { transform: translateX(-30px) rotate(-1deg) } 100% { transform: translateX(-40px) rotate(0) } }
@keyframes ge-glow { 0% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.9) } 50% { opacity: 1; transform: translate(-50%, 50%) scale(1.2) } 100% { opacity: 0.6; transform: translate(-50%, 50%) scale(1) } }

.scn-autolycus-scheming {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #90ee90 0%, transparent 60%);
}
.scn-autolycus-scheming .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0f0 0%, #87ceeb 100%);
  animation: au-sky 20s ease-in-out infinite alternate;
}
.scn-autolycus-scheming .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #90ee90 0%, #32cd32 100%);
  border-radius: 30% 70% 0 0;
}
.scn-autolycus-scheming .autolycus {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au-dance 3s ease-in-out infinite;
}
.scn-autolycus-scheming .hat {
  position: absolute; bottom: calc(25% + 90px); left: 35%; width: 60px; height: 20px;
  transform: translateX(-5px);
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: au-hat 3s ease-in-out infinite 0.5s;
}
.scn-autolycus-scheming .bag {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top left;
  animation: au-bag 4s ease-in-out infinite;
}
.scn-autolycus-scheming .coin-a {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  animation: au-coin-a 2s ease-in-out infinite alternate;
}
.scn-autolycus-scheming .coin-b {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  animation: au-coin-b 2.5s ease-in-out infinite alternate 0.7s;
}

@keyframes au-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes au-dance { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(10px) rotate(-5deg) } 75% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes au-hat { 0%,100% { transform: translateX(-5px) rotate(0deg) } 50% { transform: translateX(-5px) rotate(15deg) } }
@keyframes au-bag { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-10deg) } }
@keyframes au-coin-a { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-15px) scale(0.5) rotate(180deg) } }
@keyframes au-coin-b { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-20px) scale(0.4) rotate(-180deg) } }

.scn-shepherd-clown-entry {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #90ee90 100%), radial-gradient(ellipse at 50% 100%, #32cd32 0%, transparent 70%);
}
.scn-shepherd-clown-entry .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-shepherd-clown-entry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #90ee90 0%, #228b22 100%);
  border-radius: 20% 80% 0 0;
}
.scn-shepherd-clown-entry .shepherd {
  position: absolute; bottom: 25%; left: 20%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-walk-shepherd 6s ease-in-out infinite;
}
.scn-shepherd-clown-entry .clown {
  position: absolute; bottom: 25%; right: 20%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #ffb347 0%, #cc7722 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-walk-clown 6s ease-in-out infinite 0.5s;
}
.scn-shepherd-clown-entry .path {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10px;
  background: linear-gradient(180deg, #cc9966 0%, #a0724a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sc-path 8s ease-in-out infinite alternate;
}
.scn-shepherd-clown-entry .bush {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at center, #228b22 0%, #006400 100%);
  border-radius: 50%;
  animation: sc-bush 12s ease-in-out infinite;
}

@keyframes sc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sc-walk-shepherd { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-2deg) } 75% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes sc-walk-clown { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-10px) rotate(-2deg) } 50% { transform: translateX(-20px) rotate(2deg) } 75% { transform: translateX(-30px) rotate(-2deg) } 100% { transform: translateX(-40px) rotate(0deg) } }
@keyframes sc-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes sc-bush { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } }

.scn-leontes-remembers-wooing {
  background: linear-gradient(180deg, #f0d5b0 0%, #e8b880 40%, #d48a50 100%), radial-gradient(ellipse at 50% 30%, #ffecb0 0%, transparent 70%);
}
.scn-leontes-remembers-wooing .bg-ambient {
  position: absolute; inset: 0; background: radial-gradient(circle at 70% 40%, #ffeabe 0%, #eac492 60%, #c97e3a 100%); animation: lrw-ambient 12s ease-in-out infinite alternate;
}
.scn-leontes-remembers-wooing .window-sun {
  position: absolute; top: 12%; left: 65%; width: 140px; height: 200px; background: linear-gradient(135deg, #fff8e0 0%, #ffe080 60%, #ffc860 100%); border-radius: 4px; box-shadow: 0 0 60px 30px rgba(255,200,96,0.3); animation: lrw-sunbeam 8s ease-in-out infinite alternate;
}
.scn-leontes-remembers-wooing .figure-leontes {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 100px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrw-leontes 6s ease-in-out infinite;
}
.scn-leontes-remembers-wooing .figure-hermione {
  position: absolute; bottom: 20%; left: 44%; width: 36px; height: 90px; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: lrw-hermione 7s ease-in-out infinite;
}
.scn-leontes-remembers-wooing .hand-reach {
  position: absolute; bottom: 38%; left: 36%; width: 24px; height: 14px; background: linear-gradient(90deg, #5a3a2a 0%, #7a4a3a 100%); border-radius: 50%; transform-origin: left center; animation: lrw-handreach 6s ease-in-out infinite;
}
.scn-leontes-remembers-wooing .glow-memory {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, rgba(255,230,180,0.3) 0%, transparent 70%); pointer-events: none; animation: lrw-glowmem 9s ease-in-out infinite;
}
@keyframes lrw-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lrw-sunbeam { 0% { transform: scaleY(1) translateY(0); opacity: 0.7; } 50% { transform: scaleY(1.04) translateY(-4px); opacity: 1; } 100% { transform: scaleY(0.98) translateY(2px); opacity: 0.8; } }
@keyframes lrw-leontes { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrw-hermione { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.02); } 100% { transform: translateX(-1px) scaleY(0.98); } }
@keyframes lrw-handreach { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(10px) rotate(10deg); } 80% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrw-glowmem { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-leontes-jealousy-aside {
  background: linear-gradient(180deg, #c87a4a 0%, #a05030 40%, #6a2a1a 100%), radial-gradient(ellipse at 40% 50%, #d08a5a 0%, transparent 60%);
}
.scn-leontes-jealousy-aside .bg-unease {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 40%, #d49a5a 0%, #b06838 60%, #7a3018 100%); animation: lja-unease 4s ease-in-out infinite alternate;
}
.scn-leontes-jealousy-aside .sharp-light {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(135deg, rgba(255,220,160,0.6) 0%, rgba(200,120,60,0.2) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: lja-sharp 3s ease-in-out infinite alternate;
}
.scn-leontes-jealousy-aside .figure-leontes-aside {
  position: absolute; bottom: 12%; left: 35%; width: 44px; height: 110px; background: linear-gradient(180deg, #4a2a1a 0%, #2a100a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: lja-figure 2s ease-in-out infinite;
}
.scn-leontes-jealousy-aside .chest-clutch {
  position: absolute; bottom: 40%; left: 40%; width: 16px; height: 20px; background: linear-gradient(180deg, #6a3a2a 0%, #4a2010 100%); border-radius: 40% 40% 30% 30%; animation: lja-clutch 1.5s ease-in-out infinite;
}
.scn-leontes-jealousy-aside .shadow-throb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(0deg, rgba(20,10,5,0.4) 0%, transparent 100%); animation: lja-throb 2s ease-in-out infinite;
}
.scn-leontes-jealousy-aside .edge-flicker {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(200,80,40,0.15) 0%, transparent 70%); animation: lja-flicker 1.6s steps(2) infinite;
}
@keyframes lja-unease { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes lja-sharp { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(0.95); } }
@keyframes lja-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lja-clutch { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes lja-throb { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.2; } }
@keyframes lja-flicker { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

.scn-camillo-defends-honesty {
  background: linear-gradient(180deg, #d09a6a 0%, #b07848 40%, #804020 100%), radial-gradient(ellipse at 60% 40%, #e0b080 0%, transparent 60%);
}
.scn-camillo-defends-honesty .bg-tense {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 50%, #d4a060 0%, #b06830 60%, #7a3018 100%); animation: cdh-tense 5s ease-in-out infinite alternate;
}
.scn-camillo-defends-honesty .table-divide {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 8px; background: linear-gradient(90deg, #6a3a1a 0%, #8a4a2a 50%, #6a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cdh-table 7s ease-in-out infinite;
}
.scn-camillo-defends-honesty .figure-camillo {
  position: absolute; bottom: 15%; left: 22%; width: 38px; height: 100px; background: linear-gradient(180deg, #4a2a1a 0%, #2a100a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: cdh-camillo 4s ease-in-out infinite;
}
.scn-camillo-defends-honesty .figure-leontes-defiant {
  position: absolute; bottom: 15%; right: 22%; width: 42px; height: 105px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdh-leontes 3s ease-in-out infinite;
}
.scn-camillo-defends-honesty .hand-outstretched {
  position: absolute; bottom: 35%; left: 32%; width: 30px; height: 12px; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 100%); border-radius: 50%; transform-origin: left center; animation: cdh-hand 4s ease-in-out infinite;
}
.scn-camillo-defends-honesty .light-jag {
  position: absolute; top: 0; left: 0; right: 0; height: 100%; background: linear-gradient(135deg, rgba(255,200,120,0.4) 0%, transparent 50%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: cdh-lightjag 3s ease-in-out infinite alternate;
}
@keyframes cdh-tense { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes cdh-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cdh-camillo { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdh-leontes { 0% { transform: rotate(0deg) scaleY(1); } 40% { transform: rotate(-3deg) scaleY(1.02); } 80% { transform: rotate(2deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cdh-hand { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(12px) rotate(15deg); } 80% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdh-lightjag { 0% { opacity: 0.3; transform: skewX(0deg); } 50% { opacity: 0.7; transform: skewX(2deg); } 100% { opacity: 0.2; transform: skewX(-1deg); } }

.scn-leontes-accuses-wife {
  background: linear-gradient(180deg, #402010 0%, #602818 40%, #301008 100%), radial-gradient(ellipse at 50% 40%, #803020 0%, transparent 70%);
}
.scn-leontes-accuses-wife .bg-accusation {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 30%, #5a2a18 0%, #3a180c 60%, #1a0804 100%); animation: law-bg 10s ease-in-out infinite alternate;
}
.scn-leontes-accuses-wife .window-barred {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 120px; background: linear-gradient(180deg, #806050 0%, #604030 100%); border: 4px solid #3a2010; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); border-radius: 2px; animation: law-window 14s ease-in-out infinite;
}
.scn-leontes-accuses-wife .figure-leontes-accuse {
  position: absolute; bottom: 12%; left: 28%; width: 48px; height: 115px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0800 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: law-leontes 5s ease-in-out infinite;
}
.scn-leontes-accuses-wife .figure-hermione-silent {
  position: absolute; bottom: 18%; right: 25%; width: 34px; height: 90px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: law-hermione 8s ease-in-out infinite;
}
.scn-leontes-accuses-wife .hand-point {
  position: absolute; bottom: 42%; left: 36%; width: 28px; height: 10px; background: linear-gradient(90deg, #3a1a0a 0%, #5a2a1a 100%); border-radius: 50%; transform-origin: left center; animation: law-handpoint 5s ease-in-out infinite;
}
.scn-leontes-accuses-wife .shadow-creep {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(10,0,0,0.6) 100%); animation: law-shadow 12s ease-in-out infinite;
}
@keyframes law-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes law-window { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes law-leontes { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(4px) rotate(5deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes law-hermione { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(0.96); } 100% { transform: translateX(0) scale(1); } }
@keyframes law-handpoint { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(18px) rotate(25deg); } 70% { transform: translateX(8px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes law-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }

/* Scene 1: leontes-desire */
.scn-leontes-desire {
  background:
    linear-gradient(to bottom, #4a3020 0%, #2a1a10 40%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 50%, #6a4030 0%, transparent 70%);
}
.scn-leontes-desire .ld-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(80,50,30,.6) 0%, transparent 50%, rgba(20,10,5,.4) 100%); }
.scn-leontes-desire .ld-wall { position:absolute; inset:10% 15% 0 10%; background: linear-gradient(180deg, #3a2518 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: ld-wall 8s ease-in-out infinite alternate; }
.scn-leontes-desire .ld-window { position:absolute; top:15%; left:20%; width:18%; height:30%; background: radial-gradient(ellipse at center, #d4a060 0%, #a07040 60%, transparent 80%); border: 3px solid #2a1a0e; border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 10px rgba(200,150,80,.3); animation: ld-glow 6s ease-in-out infinite; }
.scn-leontes-desire .ld-figure { position:absolute; bottom:20%; left:35%; width:12%; height:50%; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ld-figure 4s ease-in-out infinite; }
.scn-leontes-desire .ld-hand { position:absolute; bottom:40%; left:50%; width:8%; height:10%; background: linear-gradient(135deg, #3a2518 0%, #1a0e08 100%); border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%; transform: rotate(-20deg); animation: ld-hand 3s ease-in-out infinite; }
.scn-leontes-desire .ld-candle { position:absolute; bottom:30%; left:60%; width:3%; height:20%; background: linear-gradient(180deg, #8a6a40 0%, #4a3020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 2px #6a4030; }
.scn-leontes-desire .ld-flame { position:absolute; bottom:50%; left:60.8%; width:1.5%; height:6%; background: radial-gradient(ellipse at 50% 0, #ffc080 0%, #ff8020 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #ff8020, 0 0 40px 15px rgba(255,128,32,.3); animation: ld-flame 2s ease-in-out infinite alternate; }
.scn-leontes-desire .ld-shadow { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: ld-shadow 8s ease-in-out infinite; }

@keyframes ld-wall { 0% { opacity:.7; } 50% { opacity:.85; } 100% { opacity:.7; } }
@keyframes ld-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.6; transform: scale(1); } }
@keyframes ld-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ld-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5%); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ld-flame { 0% { transform: scaleY(1) rotate(0deg); opacity:.8; } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1; } 100% { transform: scaleY(1) rotate(0deg); opacity:.8; } }
@keyframes ld-shadow { 0% { transform: scaleX(1); opacity:.4; } 50% { transform: scaleX(1.2); opacity:.6; } 100% { transform: scaleX(1); opacity:.4; } }

/* Scene 2: paulina-spell */
.scn-paulina-spell {
  background:
    linear-gradient(to bottom, #2a1a2a 0%, #1a0a1a 40%, #0a020a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-paulina-spell .ps-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(30,20,30,.5) 0%, transparent 50%, rgba(10,5,10,.7) 100%); }
.scn-paulina-spell .ps-circle { position:absolute; bottom:20%; left:50%; width:40%; height:50%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #4a2a4a 0%, transparent 70%); border-radius: 50%; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: ps-circle 12s ease-in-out infinite alternate; }
.scn-paulina-spell .ps-figure { position:absolute; bottom:15%; left:35%; width:15%; height:55%; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-figure 5s ease-in-out infinite; }
.scn-paulina-spell .ps-arm { position:absolute; bottom:40%; left:50%; width:10%; height:25%; background: linear-gradient(135deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: top left; animation: ps-arm 3s ease-in-out infinite; }
.scn-paulina-spell .ps-wand { position:absolute; bottom:55%; left:55%; width:2%; height:25%; background: linear-gradient(180deg, #6a4a6a 0%, #2a1a2a 100%); border-radius: 10%; transform: rotate(-30deg); box-shadow: 0 0 8px #8a6a8a; }
.scn-paulina-spell .ps-sparkle { position:absolute; bottom:70%; left:55%; width:3%; height:3%; background: radial-gradient(circle, #c0a0c0 0%, #805080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px #a060a0, 0 0 40px 20px rgba(160,96,160,.5); animation: ps-sparkle 1.5s ease-in-out infinite alternate; }
.scn-paulina-spell .ps-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0a1a 0%, #0a020a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }

@keyframes ps-circle { 0% { transform: translateX(-50%) scale(1); opacity:.5; } 50% { transform: translateX(-50%) scale(1.1); opacity:.8; } 100% { transform: translateX(-50%) scale(1); opacity:.5; } }
@keyframes ps-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2%) rotate(1deg); } 60% { transform: translateY(1%) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-20deg); } }
@keyframes ps-sparkle { 0% { transform: scale(0.5); opacity:.3; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(0.5); opacity:.3; } }

/* Scene 3: item-statue-hermione */
.scn-item-statue-hermione {
  background:
    linear-gradient(to bottom, #1a1a2a 0%, #0e0e1e 40%, #05050a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-item-statue-hermione .sh-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,20,40,.4) 0%, transparent 50%, rgba(10,10,20,.6) 100%); }
.scn-item-statue-hermione .sh-pedestal { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:20%; height:15%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px rgba(0,0,0,.7); }
.scn-item-statue-hermione .sh-statue { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:16%; height:50%; background: linear-gradient(180deg, #c0c0d0 0%, #a0a0b8 40%, #707088 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(200,200,220,.3); animation: sh-statue 8s ease-in-out infinite alternate; }
.scn-item-statue-hermione .sh-drape { position:absolute; bottom:30%; left:43%; width:25%; height:20%; background: linear-gradient(180deg, #b0a0b0 0%, #706070 100%); border-radius: 20% 50% 30% 40% / 30% 40% 20% 50%; transform: rotate(-10deg); animation: sh-drape 6s ease-in-out infinite; }
.scn-item-statue-hermione .sh-light { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:30%; height:40%; background: radial-gradient(ellipse at 50% 0, rgba(255,255,200,.3) 0%, transparent 70%); mix-blend-mode: overlay; animation: sh-light 10s ease-in-out infinite alternate; }
.scn-item-statue-hermione .sh-shadow { position:absolute; bottom:10%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 60%); border-radius: 50%; filter: blur(4px); animation: sh-shadow 12s ease-in-out infinite; }
.scn-item-statue-hermione .sh-glow { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,200,255,.15) 0%, transparent 70%); mix-blend-mode: screen; animation: sh-glow 5s ease-in-out infinite alternate; }

@keyframes sh-statue { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2%); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sh-drape { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1%); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sh-light { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes sh-shadow { 0% { transform: scaleX(1); opacity:.4; } 50% { transform: scaleX(1.2); opacity:.6; } 100% { transform: scaleX(1); opacity:.4; } }
@keyframes sh-glow { 0% { opacity:.1; transform: scale(0.9); } 50% { opacity:.3; transform: scale(1.1); } 100% { opacity:.1; transform: scale(0.9); } }

/* Scene 4: hermione-embraces */
.scn-hermione-embraces {
  background:
    linear-gradient(to bottom, #2a1a10 0%, #1a0e08 40%, #0a0502 100%),
    radial-gradient(ellipse at 50% 50%, #4a3020 0%, transparent 70%);
}
.scn-hermione-embraces .he-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(60,30,15,.5) 0%, transparent 50%, rgba(20,10,5,.6) 100%); }
.scn-hermione-embraces .he-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-hermione-embraces .he-figure-left { position:absolute; bottom:20%; left:30%; width:15%; height:55%; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-left 4s ease-in-out infinite; }
.scn-hermione-embraces .he-figure-right { position:absolute; bottom:20%; right:30%; width:15%; height:55%; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-right 4s ease-in-out infinite reverse; }
.scn-hermione-embraces .he-arms { position:absolute; bottom:40%; left:35%; width:30%; height:15%; background: linear-gradient(135deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-5deg); animation: he-arms 6s ease-in-out infinite alternate; }
.scn-hermione-embraces .he-heart { position:absolute; bottom:50%; left:50%; transform:translate(-50%,50%); width:8%; height:8%; background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,.4); animation: he-heart 3s ease-in-out infinite alternate; }
.scn-hermione-embraces .he-light { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:40%; height:50%; background: radial-gradient(ellipse at 50% 0, rgba(255,200,100,.2) 0%, transparent 70%); mix-blend-mode: overlay; animation: he-light 8s ease-in-out infinite alternate; }

@keyframes he-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he-arms { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes he-heart { 0% { transform: translate(-50%,50%) scale(0.8); opacity:.7; } 50% { transform: translate(-50%,50%) scale(1.1); opacity:1; } 100% { transform: translate(-50%,50%) scale(0.8); opacity:.7; } }
@keyframes he-light { 0% { opacity:.15; } 50% { opacity:.35; } 100% { opacity:.15; } }

/* scene 1: antigonus-daughters-view */
.scn-antigonus-daughters-view {
  background:
    linear-gradient(180deg, #c8b88a 0%, #a08860 40%, #705040 100%),
    radial-gradient(ellipse at 60% 30%, #e8d8c0 0%, transparent 70%);
}
.scn-antigonus-daughters-view .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 40%, #b8a888 100%); }
.scn-antigonus-daughters-view .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #786048 0%, #584830 100%); border-radius: 20% 10% 0 0 / 10% 5% 0 0; }
.scn-antigonus-daughters-view .window { position:absolute; top:15%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #a8c8e0 0%, #80a8c0 60%, #406080 100%); border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(160,200,224,.4), 0 4px 12px rgba(0,0,0,.3); animation: anti-window 8s ease-in-out infinite alternate; }
.scn-antigonus-daughters-view .candle { position:absolute; bottom:40%; left:35%; width:8px; height:20px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px #f0d0a0, 0 0 32px 12px rgba(240,208,160,.4); animation: anti-candle 3s ease-in-out infinite alternate; }
.scn-antigonus-daughters-view .figure { position:absolute; bottom:30%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: anti-figure 6s ease-in-out infinite; }
.scn-antigonus-daughters-view .shadow { position:absolute; bottom:35%; left:30%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: anti-shadow 6s ease-in-out infinite; }
@keyframes anti-window { 0% { box-shadow: inset 0 0 20px rgba(160,200,224,.4), 0 4px 12px rgba(0,0,0,.3); } 50% { box-shadow: inset 0 0 30px rgba(160,200,224,.6), 0 4px 14px rgba(0,0,0,.4); } 100% { box-shadow: inset 0 0 20px rgba(160,200,224,.4), 0 4px 12px rgba(0,0,0,.3); } }
@keyframes anti-candle { 0% { transform: scaleY(1) translateX(0); box-shadow: 0 0 16px 6px #f0d0a0; } 50% { transform: scaleY(1.05) translateX(1px); box-shadow: 0 0 22px 8px #f0d0a0; } 100% { transform: scaleY(1) translateX(0); box-shadow: 0 0 16px 6px #f0d0a0; } }
@keyframes anti-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes anti-shadow { 0% { width:40px; opacity:.6; } 50% { width:45px; opacity:.4; } 100% { width:40px; opacity:.6; } }

/* scene 2: leontes-insists */
.scn-leontes-insists {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #b09880 0%, transparent 60%);
}
.scn-leontes-insists .wall-left { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-leontes-insists .wall-right { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-leontes-insists .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-leontes-insists .throne { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: leo1-throne 10s ease-in-out infinite alternate; }
.scn-leontes-insists .hand { position:absolute; bottom:30%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: leo1-hand 2s ease-in-out infinite; }
.scn-leontes-insists .glow { position:absolute; top:10%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #f0e0c0 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,224,192,.3); animation: leo1-glow 4s ease-in-out infinite alternate; }
.scn-leontes-insists .chain { position:absolute; bottom:40%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: leo1-chain 3s ease-in-out infinite; }
@keyframes leo1-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes leo1-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes leo1-glow { 0% { opacity:.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.2); } 100% { opacity:.7; transform: translateX(-50%) scale(1); } }
@keyframes leo1-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* scene 3: leontes-orders-oracle */
.scn-leontes-orders-oracle {
  background:
    linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 40%, #c0b0a0 0%, transparent 50%);
}
.scn-leontes-orders-oracle .pillar-left { position:absolute; top:0; left:15%; width:30px; height:100%; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 40%, #8a7a6a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-leontes-orders-oracle .pillar-right { position:absolute; top:0; right:15%; width:30px; height:100%; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 40%, #8a7a6a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-leontes-orders-oracle .altar { position:absolute; bottom:30%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-leontes-orders-oracle .scroll { position:absolute; bottom:30%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: leo2-scroll 5s ease-in-out infinite alternate; }
.scn-leontes-orders-oracle .flame { position:absolute; bottom:30%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #ffb060, 0 0 40px 12px rgba(255,176,96,.3); animation: leo2-flame 1.5s ease-in-out infinite alternate; }
.scn-leontes-orders-oracle .figure { position:absolute; bottom:30%; left:35%; width:28px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: leo2-figure 8s ease-in-out infinite; }
.scn-leontes-orders-oracle .veil { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(200,180,160,.2) 0%, transparent 100%); filter: blur(8px); animation: leo2-veil 12s ease-in-out infinite alternate; }
@keyframes leo2-scroll { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes leo2-flame { 0% { transform: translateX(-50%) scaleY(1); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.3); opacity:1; } 100% { transform: translateX(-50%) scaleY(1); opacity:.8; } }
@keyframes leo2-figure { 0% { transform: translateX(0); } 25% { transform: translateX(3px); } 50% { transform: translateX(0); } 75% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes leo2-veil { 0% { opacity:.2; transform: translateY(0); } 50% { opacity:.4; transform: translateY(-5px); } 100% { opacity:.2; transform: translateY(0); } }

/* scene 4: item-oracle-mission */
.scn-item-oracle-mission {
  background:
    linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #6a6a9a 0%, transparent 50%);
}
.scn-item-oracle-mission .chamber { position:absolute; inset:10% 10% 10% 10%; background: linear-gradient(135deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 20%; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-item-oracle-mission .pedestal { position:absolute; bottom:25%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-item-oracle-mission .orb { position:absolute; bottom:30%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #c0e0ff 0%, #80a0d0 50%, #4060a0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #80a0d0, 0 0 60px 20px rgba(128,160,208,.4); animation: ora-orb 4s ease-in-out infinite alternate; }
.scn-item-oracle-mission .base-glow { position:absolute; bottom:25%; left:50%; width:80px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(128,160,208,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: ora-base 4s ease-in-out infinite alternate; }
.scn-item-oracle-mission .beam { position:absolute; top:10%; left:50%; width:2px; height:55%; transform:translateX(-50%); background: linear-gradient(180deg, transparent 0%, rgba(128,160,208,.3) 30%, rgba(128,160,208,.1) 100%); animation: ora-beam 3s ease-in-out infinite alternate; }
.scn-item-oracle-mission .particle-1 { position:absolute; top:20%; left:40%; width:6px; height:6px; background: #c0e0ff; border-radius: 50%; box-shadow: 0 0 8px 2px #c0e0ff; animation: ora-particle1 6s linear infinite; }
.scn-item-oracle-mission .particle-2 { position:absolute; top:30%; left:55%; width:4px; height:4px; background: #80a0d0; border-radius: 50%; box-shadow: 0 0 6px 1px #80a0d0; animation: ora-particle2 8s linear infinite; animation-delay: -2s; }
.scn-item-oracle-mission .particle-3 { position:absolute; top:25%; left:45%; width:5px; height:5px; background: #a0c0e0; border-radius: 50%; box-shadow: 0 0 8px 2px #a0c0e0; animation: ora-particle3 7s linear infinite; animation-delay: -4s; }
@keyframes ora-orb { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px #80a0d0; } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 40px 15px #80a0d0; } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px #80a0d0; } }
@keyframes ora-base { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.2); } 100% { opacity:.6; transform: translateX(-50%) scale(1); } }
@keyframes ora-beam { 0% { opacity:.3; transform: translateX(-50%) scaleY(1); } 50% { opacity:.6; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:.3; transform: translateX(-50%) scaleY(1); } }
@keyframes ora-particle1 { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:1; } 100% { transform: translate(30px, -80px) scale(0); opacity:0; } }
@keyframes ora-particle2 { 0% { transform: translate(0, 0) scale(1); opacity:0; } 15% { opacity:1; } 100% { transform: translate(-20px, -100px) scale(0); opacity:0; } }
@keyframes ora-particle3 { 0% { transform: translate(0, 0) scale(1); opacity:0; } 20% { opacity:1; } 100% { transform: translate(10px, -90px) scale(0); opacity:0; } }

/* Scene: leontes-accuses-hermione */
.scn-leontes-accuses-hermione {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2c28 40%, #4a3828 70%, #2a1e1a 100%), radial-gradient(ellipse at 40% 20%, #6a5040 0%, transparent 60%);
}
.scn-leontes-accuses-hermione .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a30 0%, #2a1e1a 100%); z-index: 1;
}
.scn-leontes-accuses-hermione .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); border-radius: 0 0 20% 20%; z-index: 2;
}
.scn-leontes-accuses-hermione .window {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 110px; background: #2a4a5a; border: 6px solid #5a3a2a; border-radius: 6px; z-index: 3; animation: lth-window 8s ease-in-out infinite alternate;
}
.scn-leontes-accuses-hermione .pines {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 100px; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%); z-index: 4; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: lth-pines 12s ease-in-out infinite;
}
.scn-leontes-accuses-hermione .leontes {
  position: absolute; bottom: 25%; left: 38%; width: 28px; height: 70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; z-index: 5; animation: lth-point 3s ease-in-out infinite;
}
.scn-leontes-accuses-hermione .hermione {
  position: absolute; bottom: 25%; right: 30%; width: 24px; height: 66px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; z-index: 5; animation: lth-stand 4s ease-in-out infinite alternate;
}
.scn-leontes-accuses-hermione .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, #1a1210 60%); z-index: 6; animation: lth-shadow 10s ease-in-out infinite alternate;
}
.scn-leontes-accuses-hermione .flicker {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 20%, rgba(200,150,100,0.15) 0%, transparent 70%); z-index: 7; animation: lth-flicker 2s ease-in-out infinite alternate;
}
@keyframes lth-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes lth-pines { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes lth-point { 0% { transform: rotate(-10deg) translateY(0); } 33% { transform: rotate(5deg) translateY(-1px); } 66% { transform: rotate(-8deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes lth-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lth-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lth-flicker { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene: hermoine-defends-herself */
.scn-hermoine-defends-herself {
  background: linear-gradient(135deg, #4a3028 0%, #6a5040 50%, #4a3028 100%), radial-gradient(ellipse at 50% 30%, #8a7050 0%, transparent 60%);
}
.scn-hermoine-defends-herself .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3a2820 0%, #2a1a14 100%); z-index: 1;
}
.scn-hermoine-defends-herself .throne {
  position: absolute; bottom: 20%; left: 70%; width: 60px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); z-index: 2; animation: hds-throne 12s ease-in-out infinite;
}
.scn-hermoine-defends-herself .hermione {
  position: absolute; bottom: 25%; left: 35%; width: 26px; height: 68px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: hds-hermione 2s ease-in-out infinite alternate;
}
.scn-hermoine-defends-herself .leontes {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 72px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: hds-leontes 3s ease-in-out infinite alternate;
}
.scn-hermoine-defends-herself .guard {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 64px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 2; animation: hds-guard 5s ease-in-out infinite;
}
.scn-hermoine-defends-herself .torchlight {
  position: absolute; bottom: 60%; left: 50%; width: 20px; height: 30px; background: radial-gradient(ellipse, #c08040 0%, transparent 70%); border-radius: 50%; z-index: 5; animation: hds-torch 2s ease-in-out infinite alternate;
}
.scn-hermoine-defends-herself .shadow-sharp {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%; background: linear-gradient(180deg, transparent 0%, #1a1210 80%); z-index: 6; animation: hds-shadow 4s ease-in-out infinite alternate;
}
@keyframes hds-throne { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes hds-hermione { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hds-leontes { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes hds-guard { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes hds-torch { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes hds-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: hermoine-to-prison */
.scn-hermoine-to-prison {
  background: linear-gradient(180deg, #1a1412 0%, #2a221c 40%, #1a1412 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-hermoine-to-prison .corridor-left {
  position: absolute; inset: 0 60% 0 0; background: linear-gradient(90deg, #2a221c 0%, #1a1412 100%); z-index: 1; animation: htp-corridor 15s ease-in-out infinite alternate;
}
.scn-hermoine-to-prison .corridor-right {
  position: absolute; inset: 0 0 0 60%; background: linear-gradient(90deg, #1a1412 0%, #2a221c 100%); z-index: 1; animation: htp-corridor 15s ease-in-out infinite alternate-reverse;
}
.scn-hermoine-to-prison .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: repeating-linear-gradient(90deg, #3a2a20 0px, #3a2a20 30px, #2a1a14 30px, #2a1a14 60px); z-index: 2; animation: htp-tiles 20s linear infinite;
}
.scn-hermoine-to-prison .hermione {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 60px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); z-index: 4; animation: htp-walk 8s ease-in-out infinite;
}
.scn-hermoine-to-prison .guard {
  position: absolute; bottom: 22%; left: 60%; width: 24px; height: 62px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: htp-guard 8s ease-in-out infinite;
}
.scn-hermoine-to-prison .door {
  position: absolute; bottom: 18%; right: 5%; width: 50px; height: 80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border: 2px solid #5a4a3a; border-radius: 4px; z-index: 5; animation: htp-door 12s ease-in-out infinite;
}
.scn-hermoine-to-prison .torch {
  position: absolute; bottom: 50%; left: 15%; width: 8px; height: 12px; background: radial-gradient(ellipse, #c08040 0%, transparent 60%); border-radius: 50%; z-index: 6; animation: htp-torch 2s ease-in-out infinite alternate;
}
.scn-hermoine-to-prison .shadow-long {
  position: absolute; bottom: 0; left: 30%; width: 30%; height: 40%; background: linear-gradient(180deg, transparent 0%, #0a0808 80%); z-index: 7; animation: htp-shadow 6s ease-in-out infinite alternate;
}
@keyframes htp-corridor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes htp-tiles { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes htp-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 33% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 66% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes htp-guard { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes htp-door { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(0.98); opacity: 0.7; } 100% { transform: scale(1); opacity: 1; } }
@keyframes htp-torch { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes htp-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: lord-defends-queen */
.scn-lord-defends-queen {
  background: linear-gradient(180deg, #3a3028 0%, #5a4a3a 50%, #3a3028 100%), radial-gradient(ellipse at 50% 40%, #7a6050 0%, transparent 60%);
}
.scn-lord-defends-queen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); z-index: 1;
}
.scn-lord-defends-queen .column-left {
  position: absolute; bottom: 15%; left: 10%; width: 30px; height: 100px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 10% 10% 5% 5%; z-index: 2; animation: ldq-column 16s ease-in-out infinite;
}
.scn-lord-defends-queen .column-right {
  position: absolute; bottom: 15%; right: 10%; width: 30px; height: 100px; background: linear-gradient(180deg, #4a3a30 0%, #2a1a14 100%); border-radius: 10% 10% 5% 5%; z-index: 2; animation: ldq-column 16s ease-in-out infinite reverse;
}
.scn-lord-defends-queen .queen {
  position: absolute; bottom: 22%; left: 55%; width: 26px; height: 70px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(2deg); z-index: 3; animation: ldq-queen 5s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .lord {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 64px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 3; animation: ldq-lord 3s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .king {
  position: absolute; bottom: 22%; left: 70%; width: 28px; height: 74px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); z-index: 4; animation: ldq-king 4s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .light-pool {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 30%; background: radial-gradient(ellipse, rgba(200,150,100,0.2) 0%, transparent 70%); z-index: 5; animation: ldq-light 6s ease-in-out infinite alternate;
}
.scn-lord-defends-queen .shadow-drift {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, transparent 0%, #1a1210 80%); z-index: 6; animation: ldq-shadow 8s ease-in-out infinite alternate;
}
@keyframes ldq-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes ldq-queen { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes ldq-lord { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(5deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ldq-king { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes ldq-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes ldq-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene 1: polixenes-offer - warm, sunlit, handshake */
.scn-polixenes-offer {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFE4B5 40%, #F4A460 70%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-polixenes-offer .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 100%); animation: pol1-sky 8s ease-in-out infinite alternate; }
.scn-polixenes-offer .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.4); animation: pol1-sun 12s ease-in-out infinite; }
.scn-polixenes-offer .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #F4A460 0%, #8B4513 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-polixenes-offer .figure-left { position:absolute; bottom:25%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-polixenes-offer .figure-right { position:absolute; bottom:25%; right:25%; width:30px; height:70px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-polixenes-offer .hands { position:absolute; bottom:35%; left:50%; width:20px; height:15px; transform:translateX(-50%); background: #F0E68C; border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: pol1-hands 4s ease-in-out infinite; }
.scn-polixenes-offer .flower { position:absolute; bottom:20%; left:10%; width:12px; height:20px; background: #FFB6C1; border-radius: 50% 50% 40% 40%; animation: pol1-flower 6s ease-in-out infinite alternate; }
.scn-polixenes-offer .petal { position:absolute; bottom:23%; left:9%; width:8px; height:8px; background: #FF69B4; border-radius:50%; opacity:0.6; animation: pol1-petal 3s ease-in-out infinite; }
@keyframes pol1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pol1-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes pol1-hands { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) rotate(-2deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes pol1-flower { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes pol1-petal { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.8); } }

/* Scene 2: polixenes-questioning-father - tense, sunlit, sharp shadows */
.scn-polixenes-questioning-father {
  background:
    linear-gradient(180deg, #B0C4DE 0%, #FFF8DC 30%, #DAA520 60%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-polixenes-questioning-father .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 100%); animation: pol2-sky 10s ease-in-out infinite alternate; }
.scn-polixenes-questioning-father .sun-harsh { position:absolute; top:5%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #FFD700 0%, #FF8C00 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,140,0,0.5); animation: pol2-sun 15s ease-in-out infinite; }
.scn-polixenes-questioning-father .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #DAA520 0%, #8B4513 100%); border-radius: 20% 80% 0 0 / 50% 50% 0 0; }
.scn-polixenes-questioning-father .father { position:absolute; bottom:25%; left:30%; width:35px; height:80px; background: linear-gradient(180deg, #8B4513 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol2-father 5s ease-in-out infinite; }
.scn-polixenes-questioning-father .son { position:absolute; bottom:30%; right:30%; width:28px; height:65px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol2-son 5s ease-in-out infinite alternate; }
.scn-polixenes-questioning-father .finger { position:absolute; bottom:45%; left:38%; width:8px; height:20px; background: #8B4513; border-radius: 30% 30% 10% 10%; transform: rotate(20deg); animation: pol2-finger 2s ease-in-out infinite; }
.scn-polixenes-questioning-father .shadow-stripe { position:absolute; bottom:20%; left:10%; width:80%; height:5px; background: rgba(0,0,0,0.3); filter: blur(4px); animation: pol2-stripe 6s linear infinite; }
.scn-polixenes-questioning-father .dust { position:absolute; top:20%; left:20%; width:6px; height:6px; background: rgba(255,255,224,0.6); border-radius:50%; box-shadow: 20px 30px 0 2px rgba(255,255,224,0.4), 40px 10px 0 1px rgba(255,255,224,0.3); animation: pol2-dust 12s ease-in-out infinite alternate; }
@keyframes pol2-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes pol2-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(8deg); } 100% { transform: scale(0.9) rotate(-8deg); } }
@keyframes pol2-father { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pol2-son { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes pol2-finger { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes pol2-stripe { 0% { transform: translateX(-20px); } 100% { transform: translateX(20px); } }
@keyframes pol2-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.2); } 100% { transform: translateY(0) scale(0.8); } }

/* Scene 3: polixenes-revelation - dark mood, sunlit interior, sickbed */
.scn-polixenes-revelation {
  background:
    linear-gradient(180deg, #2F4F4F 0%, #8B7355 30%, #FFF8DC 60%, #F5DEB3 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 80%);
}
.scn-polixenes-revelation .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #87CEEB 0%, #FFF0C0 100%); opacity:0.4; animation: pol3-sky 8s ease-in-out infinite alternate; }
.scn-polixenes-revelation .sunbeam { position:absolute; top:5%; left:40%; width:120px; height:80%; background: linear-gradient(135deg, rgba(255,215,0,0.3) 0%, transparent 70%); transform: skewX(-10deg); filter: blur(8px); animation: pol3-beam 6s ease-in-out infinite; }
.scn-polixenes-revelation .walls { position:absolute; bottom:0; left:0; right:0; height:80%; background: linear-gradient(90deg, #4A3728 0%, #8B7355 50%, #4A3728 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); }
.scn-polixenes-revelation .bed { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #C4A882 0%, #8B7355 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); }
.scn-polixenes-revelation .figure-lying { position:absolute; bottom:22%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(10deg); animation: pol3-lying 10s ease-in-out infinite alternate; }
.scn-polixenes-revelation .figure-standing { position:absolute; bottom:35%; right:25%; width:28px; height:75px; background: linear-gradient(180deg, #2F4F4F 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pol3-standing 8s ease-in-out infinite; }
.scn-polixenes-revelation .chair { position:absolute; bottom:28%; right:15%; width:20px; height:30px; background: linear-gradient(180deg, #D2691E 0%, #8B4513 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-polixenes-revelation .clock { position:absolute; top:15%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #FFD700 0%, #DAA520 60%, #8B4513 100%); border-radius:50%; border: 2px solid #5C4033; animation: pol3-clock 3s ease-in-out infinite; }
@keyframes pol3-sky { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes pol3-beam { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-5deg) translateX(10px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes pol3-lying { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes pol3-standing { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pol3-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

/* Scene 4: polixenes-fury - dark mood, sunlit, accusation */
.scn-polixenes-fury {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #4a3a3a 40%, #DAA520 70%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-polixenes-fury .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2d2d44 0%, #7a5c5c 100%); animation: pol4-sky 9s ease-in-out infinite alternate; }
.scn-polixenes-fury .sun-glare { position:absolute; top:3%; left:50%; width:70px; height:70px; background: radial-gradient(circle, #FFD700 0%, #FF8C00 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,140,0,0.3); animation: pol4-sun 5s ease-in-out infinite; }
.scn-polixenes-fury .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5C4033 0%, #1a1a1a 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-polixenes-fury .accuser { position:absolute; bottom:25%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #2F1B1B 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol4-accuser 4s ease-in-out infinite; }
.scn-polixenes-fury .accused { position:absolute; bottom:28%; right:30%; width:28px; height:60px; background: linear-gradient(180deg, #8B7355 0%, #4A3728 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pol4-accused 6s ease-in-out infinite alternate; }
.scn-polixenes-fury .arm { position:absolute; bottom:45%; left:22%; width:10px; height:40px; background: #2F1B1B; border-radius: 20% 20% 10% 10%; transform: rotate(30deg); animation: pol4-arm 2s ease-in-out infinite; }
.scn-polixenes-fury .chain { position:absolute; bottom:20%; left:50%; width:30px; height:8px; background: #8B7355; border-radius: 10px; box-shadow: 20px 0 0 0 #8B7355, 40px 0 0 0 #8B7355; transform: translateX(-50%); animation: pol4-chain 3s ease-in-out infinite; }
.scn-polixenes-fury .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 70%); opacity:0.5; animation: pol4-shadow 8s ease-in-out infinite alternate; }
@keyframes pol4-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes pol4-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.95) rotate(-10deg); } }
@keyframes pol4-accuser { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes pol4-accused { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes pol4-arm { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(3px); } 100% { transform: rotate(25deg) translateX(0); } }
@keyframes pol4-chain { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes pol4-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-leontes-rage-paulina { background: linear-gradient(135deg, #1a0e0a 0%, #2c1a14 40%, #1a0e0a 100%), radial-gradient(ellipse at 30% 80%, #c8553d 0%, transparent 60%); }
.scn-leontes-rage-paulina .bg-wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2c1a14 0%, #1a0e0a 100%); }
.scn-leontes-rage-paulina .bg-floor { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); border-top:3px solid #c8553d; }
.scn-leontes-rage-paulina .torch-glow { position:absolute; top:20%; left:75%; width:20px; height:40px; background: radial-gradient(circle at center, #ffa500 0%, #c8553d 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,85,61,0.6), 0 0 120px 60px rgba(200,85,61,0.3); animation: lrp-flicker 2s ease-in-out infinite alternate; }
.scn-leontes-rage-paulina .figure-leontes { position:absolute; bottom:45%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 60%, #0d0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrp-tremble 1.5s ease-in-out infinite; }
.scn-leontes-rage-paulina .figure-paulina { position:absolute; bottom:48%; left:55%; width:40px; height:90px; background: linear-gradient(180deg, #2c1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lrp-retreat 4s ease-in-out infinite; }
.scn-leontes-rage-paulina .child { position:absolute; bottom:48%; left:55%; width:14px; height:20px; background: radial-gradient(ellipse at center, #b87878 0%, #5e1a1d 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px 2px #b87878; transform: translate(16px, -15px); animation: lrp-bounce 3s ease-in-out infinite; }
.scn-leontes-rage-paulina .arch-shadow { position:absolute; top:0; left:42%; width:16%; height:100%; background: linear-gradient(180deg, transparent 0%, #0d0805 60%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: lrp-sway 6s ease-in-out infinite; }
.scn-leontes-rage-paulina .flicker-spot { position:absolute; top:22%; left:76%; width:8px; height:8px; background: #ffa500; border-radius:50%; box-shadow: 0 0 20px 10px #ffa500; opacity:0.7; animation: lrp-flicker-spot 1.6s ease-in-out infinite alternate; }
@keyframes lrp-flicker { 0% { opacity:0.8; transform: scaleY(0.8); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.6; transform: scaleY(0.9); } }
@keyframes lrp-tremble { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes lrp-retreat { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(15px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrp-bounce { 0% { transform: translate(16px, -15px) scale(1); } 50% { transform: translate(16px, -20px) scale(1.1); } 100% { transform: translate(16px, -15px) scale(1); } }
@keyframes lrp-sway { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(0deg); } }
@keyframes lrp-flicker-spot { 0% { opacity:0.5; transform: scale(0.8); } 100% { opacity:0.9; transform: scale(1.2); } }

.scn-leontes-rage { background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 40%, #0d0805 100%), radial-gradient(ellipse at 50% 100%, #a0461a 0%, transparent 70%); }
.scn-leontes-rage .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0d0805 0%, #1a0e0a 100%); }
.scn-leontes-rage .brazier { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:40px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 30px 15px rgba(160,70,26,0.6); animation: lr-fire 3s ease-in-out infinite; }
.scn-leontes-rage .fire-glow { position:absolute; bottom:10%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #ffa500 0%, #c8553d 30%, transparent 70%); border-radius:50%; filter: blur(8px); animation: lr-fire 3s ease-in-out infinite; }
.scn-leontes-rage .figure-leontes { position:absolute; bottom:25%; left:50%; width:70px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 80%, #0d0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: lr-tremble 1.5s ease-in-out infinite; }
.scn-leontes-rage .shadow-throne { position:absolute; bottom:20%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, transparent 0%, #0d0805 80%); clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); animation: lr-pulse 4s ease-in-out infinite; }
.scn-leontes-rage .ember { position:absolute; bottom:12%; left:45%; width:4px; height:4px; background: #ffa500; border-radius:50%; box-shadow: 0 0 6px 2px #ffa500; animation: lr-ember 1.5s ease-in-out infinite alternate; }
@keyframes lr-fire { 0% { opacity:0.7; transform: scaleY(0.9) translateX(-50%); } 50% { opacity:1; transform: scaleY(1.1) translateX(-50%); } 100% { opacity:0.6; transform: scaleY(0.85) translateX(-50%); } }
@keyframes lr-tremble { 0% { transform: rotate(-0.5deg) translateX(-50%); } 25% { transform: rotate(0.5deg) translateX(-50%); } 50% { transform: rotate(1deg) translateX(-50%); } 75% { transform: rotate(-1deg) translateX(-50%); } 100% { transform: rotate(-0.5deg) translateX(-50%); } }
@keyframes lr-pulse { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lr-ember { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-10px) scale(0.5); opacity:0; } }

.scn-antigonus-pawn { background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 60%, #2c1a14 100%), radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 60%); }
.scn-antigonus-pawn .bg-floor { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); }
.scn-antigonus-pawn .bg-wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2c1a14 0%, #1a0e0a 100%); }
.scn-antigonus-pawn .figure-antigonus { position:absolute; bottom:55%; left:45%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 60%, #0d0805 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-kneel 6s ease-in-out infinite; }
.scn-antigonus-pawn .sword { position:absolute; bottom:55%; left:45%; width:4px; height:50px; transform:translateX(-50%) rotate(-20deg); background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius: 2px; box-shadow: 0 0 10px 2px #a0461a; transform-origin: bottom center; animation: ap-sword 3s ease-in-out infinite; }
.scn-antigonus-pawn .sword-glow { position:absolute; bottom:55%; left:45%; width:20px; height:20px; transform:translate(-50%, -30px); background: radial-gradient(circle, #c8553d 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: ap-glow 2s ease-in-out infinite alternate; }
.scn-antigonus-pawn .shadow-pawn { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(3px); animation: ap-shift 8s ease-in-out infinite; }
.scn-antigonus-pawn .light-beam { position:absolute; top:10%; left:40%; width:20%; height:90%; background: linear-gradient(180deg, rgba(255,165,0,0.1) 0%, transparent 80%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ap-beam 5s ease-in-out infinite; }
@keyframes ap-kneel { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ap-sword { 0% { transform: translateX(-50%) rotate(-20deg); } 50% { transform: translateX(-50%) rotate(-15deg); } 100% { transform: translateX(-50%) rotate(-20deg); } }
@keyframes ap-glow { 0% { opacity:0.6; transform: translate(-50%, -30px) scale(0.9); } 100% { opacity:1; transform: translate(-50%, -30px) scale(1.1); } }
@keyframes ap-shift { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes ap-beam { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-antigonus-commanded { background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 50%, #0d0805 100%), radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 60%); }
.scn-antigonus-commanded .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0d0805 0%, #1a0e0a 100%); }
.scn-antigonus-commanded .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); border-top:2px solid #5e1a1d; }
.scn-antigonus-commanded .figure-commander { position:absolute; bottom:45%; left:30%; width:55px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0805 0%, #1a0e0a 80%, #0d0805 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ac-point 3s ease-in-out infinite; }
.scn-antigonus-commanded .figure-antigonus { position:absolute; bottom:40%; left:60%; width:45px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-bow 4s ease-in-out infinite; }
.scn-antigonus-commanded .child-bundle { position:absolute; bottom:45%; left:60%; width:16px; height:22px; transform:translate(-20px, -10px); background: radial-gradient(ellipse at center, #b87878 0%, #5e1a1d 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 8px 2px #b87878; animation: ac-hold 5s ease-in-out infinite; }
.scn-antigonus-commanded .light-source { position:absolute; top:15%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, transparent 60%); border-radius:50%; filter: blur(10px); animation: ac-light 4s ease-in-out infinite; }
.scn-antigonus-commanded .shadow-deep { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(5px); animation: ac-shift 7s ease-in-out infinite; }
@keyframes ac-point { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ac-bow { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(10deg) scaleY(0.9); } 70% { transform: translateX(-50%) rotate(5deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ac-hold { 0% { transform: translate(-20px, -10px) rotate(0deg); } 50% { transform: translate(-20px, -12px) rotate(-3deg); } 100% { transform: translate(-20px, -10px) rotate(0deg); } }
@keyframes ac-light { 0% { opacity:0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes ac-shift { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

/* camillos-soliloquy - tense interior, solitary figure */
.scn-camillos-soliloquy {
  background: 
    linear-gradient(180deg, #8b7355 0%, #5c4033 40%, #3a2a1a 100%),
    linear-gradient(135deg, #d4a76a 0%, transparent 50%),
    radial-gradient(ellipse at 30% 70%, #f0d8a0 0%, transparent 60%);
}
.scn-camillos-soliloquy .room-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 60%);
  opacity: 0.9;
}
.scn-camillos-soliloquy .window-arch {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 120px;
  height: 160px;
  background: radial-gradient(ellipse at 50% 0%, #fff8e7 0%, #c9b99a 40%, transparent 70%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 40px rgba(255,230,180,.5);
  animation: cso-window 4s ease-in-out infinite alternate;
}
.scn-camillos-soliloquy .light-shaft {
  position: absolute;
  top: 0;
  left: 55%;
  width: 80px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,220,150,.3) 0%, rgba(255,200,120,.1) 70%, transparent 100%);
  filter: blur(12px);
  animation: cso-shaft 6s ease-in-out infinite alternate;
}
.scn-camillos-soliloquy .figure.silhouette {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 32px;
  height: 90px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cso-figure 5s ease-in-out infinite;
  box-shadow: -15px 0 20px rgba(0,0,0,.6);
}
.scn-camillos-soliloquy .shadow-floor {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 70px;
  height: 20px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: cso-shadow 5s ease-in-out infinite;
}
.scn-camillos-soliloquy .chair-empty {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #4a3728 0%, #2a1f15 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: cso-chair 12s ease-in-out infinite;
}
.scn-camillos-soliloquy .dust-mote {
  position: absolute;
  top: 20%;
  left: 70%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, rgba(255,240,200,.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cso-mote 8s linear infinite;
}
@keyframes cso-window {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes cso-shaft {
  0% { opacity: .4; transform: skewX(-2deg); }
  50% { opacity: .7; transform: skewX(0deg); }
  100% { opacity: .5; transform: skewX(2deg); }
}
@keyframes cso-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes cso-shadow {
  0% { width: 70px; opacity: .4; }
  50% { width: 85px; opacity: .6; }
  100% { width: 70px; opacity: .4; }
}
@keyframes cso-chair {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cso-mote {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(40px, -20px) scale(.5); opacity: .3; }
  100% { transform: translate(80px, -10px) scale(0); opacity: 0; }
}

/* polixenes-suspects - confrontation, two figures, columns */
.scn-polixenes-suspects {
  background: 
    linear-gradient(180deg, #7a6b5a 0%, #4a3d30 30%, #2a2018 70%),
    radial-gradient(ellipse at 50% 30%, #c9b99a 0%, transparent 70%);
}
.scn-polixenes-suspects .hall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #5c4a3a 0%, #8b7355 50%, #5c4a3a 100%);
  opacity: .7;
}
.scn-polixenes-suspects .column.left {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 30px;
  height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5c4033 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 8px 0 15px rgba(0,0,0,.5);
}
.scn-polixenes-suspects .column.right {
  position: absolute;
  bottom: 0;
  right: 10%;
  width: 30px;
  height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5c4033 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -8px 0 15px rgba(0,0,0,.5);
}
.scn-polixenes-suspects .king-figure {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 65px;
  height: 120px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  box-shadow: -5px 0 15px rgba(0,0,0,.7);
  transform-origin: bottom center;
  animation: psu-king 2s ease-in-out infinite alternate;
}
.scn-polixenes-suspects .camillo-figure {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 30px;
  height: 95px;
  background: linear-gradient(180deg, #1e1410 0%, #0c0806 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: psu-camillo 3s ease-in-out infinite;
  box-shadow: 5px 0 10px rgba(0,0,0,.5);
}
.scn-polixenes-suspects .crown-glow {
  position: absolute;
  top: 6%;
  left: 33%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #f5d6a8 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: .6;
  animation: psu-crown 1.5s ease-in-out infinite alternate;
}
.scn-polixenes-suspects .shadow-long {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 120px;
  height: 25px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: psu-shadow 3s ease-in-out infinite;
}
.scn-polixenes-suspects .distant-shutter {
  position: absolute;
  top: 20%;
  right: 5%;
  width: 60px;
  height: 90px;
  background: linear-gradient(180deg, #4a3728 0%, #2a1f15 100%);
  border-radius: 4%;
  box-shadow: -2px 0 8px rgba(0,0,0,.4);
  animation: psu-shutter 8s ease-in-out infinite alternate;
}
@keyframes psu-king {
  0% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes psu-camillo {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes psu-crown {
  0% { opacity: .4; transform: scale(.9); }
  100% { opacity: .8; transform: scale(1.1); }
}
@keyframes psu-shadow {
  0% { opacity: .3; width: 120px; }
  50% { opacity: .5; width: 140px; }
  100% { opacity: .3; width: 120px; }
}
@keyframes psu-shutter {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(.3); }
  100% { transform: scaleX(1); }
}

/* item-mirror-reflection - mirror with reflection */
.scn-item-mirror-reflection {
  background: 
    linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 40%, #1e1410 100%),
    radial-gradient(ellipse at 50% 70%, #c9b99a 0%, transparent 60%);
}
.scn-item-mirror-reflection .wall-panel {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,.1) 40px, rgba(0,0,0,.1) 42px);
}
.scn-item-mirror-reflection .mirror-frame {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 200px;
  background: linear-gradient(135deg, #6a5535 0%, #4a3728 50%, #3a2a1a 100%);
  border-radius: 8%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.4);
  animation: mrf-frame 6s ease-in-out infinite alternate;
}
.scn-item-mirror-reflection .mirror-glass {
  position: absolute;
  top: 12%;
  left: 52%;
  transform: translateX(-50%);
  width: 130px;
  height: 170px;
  background: linear-gradient(180deg, #a89a80 0%, #8b7a6a 40%, #6a5a4a 100%);
  border-radius: 6%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 0 15px rgba(255,220,150,.2);
  animation: mrf-glass 4s ease-in-out infinite;
}
.scn-item-mirror-reflection .reflection-silhouette {
  position: absolute;
  top: 15%;
  left: 52%;
  transform: translateX(-50%);
  width: 60px;
  height: 100px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  filter: blur(2px);
  opacity: .6;
  animation: mrf-reflect 5s ease-in-out infinite alternate;
}
.scn-item-mirror-reflection .hand-holding {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 25px;
  height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mrf-hand 3s ease-in-out infinite;
}
.scn-item-mirror-reflection .light-glint {
  position: absolute;
  top: 18%;
  left: 52%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, rgba(255,255,220,.9) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mrf-glint 2.5s ease-in-out infinite alternate;
}
@keyframes mrf-frame {
  0% { box-shadow: 0 10px 30px rgba(0,0,0,.6); }
  50% { box-shadow: 0 15px 35px rgba(0,0,0,.8), 0 0 20px rgba(200,160,100,.2); }
  100% { box-shadow: 0 10px 30px rgba(0,0,0,.6); }
}
@keyframes mrf-glass {
  0% { opacity: .8; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.01); }
  100% { opacity: .85; transform: translateX(-50%) scaleX(1); }
}
@keyframes mrf-reflect {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: .5; }
  50% { transform: translateX(-50%) translateY(-5px) rotate(2deg); opacity: .7; }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: .5; }
}
@keyframes mrf-hand {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mrf-glint {
  0% { opacity: .3; transform: scale(.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* camillo-reveals-plot - close-up on table with candle, paper, hands */
.scn-camillo-reveals-plot {
  background: 
    linear-gradient(180deg, #4a3d30 0%, #2a2018 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #8b7355 0%, transparent 80%);
}
.scn-camillo-reveals-plot .table-wood {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
  animation: crp-table 8s ease-in-out infinite alternate;
}
.scn-camillo-reveals-plot .candle-lit {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 16px;
  height: 60px;
  background: linear-gradient(180deg, #f5d6a8 0%, #d4a76a 30%, #a07840 60%, #5c4033 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 -5px 30px rgba(255,200,100,.7), 0 0 60px rgba(255,200,100,.3);
  animation: crp-candle 2s ease-in-out infinite alternate;
}
.scn-camillo-reveals-plot .scroll-paper {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 80px;
  height: 50px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a0 100%);
  border-radius: 4% 8% 4% 8%;
  box-shadow: 2px 2px 10px rgba(0,0,0,.4);
  animation: crp-scroll 4s ease-in-out infinite;
}
.scn-camillo-reveals-plot .camillo-hand {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 30px;
  height: 35px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: crp-hand 3s ease-in-out infinite;
}
.scn-camillo-reveals-plot .polixenes-shadow {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  filter: blur(3px);
  opacity: .4;
  animation: crp-shadow 5s ease-in-out infinite alternate;
}
.scn-camillo-reveals-plot .inkwell {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 20px;
  height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: crp-ink 6s ease-in-out infinite;
}
.scn-camillo-reveals-plot .flicker-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 70%, transparent 40%, rgba(0,0,0,.3) 100%);
  animation: crp-flicker 3s ease-in-out infinite alternate;
}
@keyframes crp-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}
@keyframes crp-candle {
  0% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes crp-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes crp-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes crp-shadow {
  0% { opacity: .3; width: 50px; }
  50% { opacity: .5; width: 55px; }
  100% { opacity: .3; width: 50px; }
}
@keyframes crp-ink {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes crp-flicker {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}

.scn-autolycus-ballads{background:linear-gradient(180deg,#fde68a 0%,#fcd34d 30%,#fbbf24 60%,#f59e0b 100%),radial-gradient(ellipse at 50% 80%,#fef9c3 0%,transparent 70%)}
.scn-autolycus-ballads .bg-sky{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#bae6fd 0%,transparent 100%);animation:ab-sky 12s ease-in-out infinite alternate}
.scn-autolycus-ballads .bg-sun{position:absolute;top:5%;right:10%;width:50px;height:50px;background:radial-gradient(circle,#fef08a 0%,#fde047 50%,transparent 100%);border-radius:50%;box-shadow:0 0 60px 20px #fde047;animation:ab-sun 8s ease-in-out infinite alternate}
.scn-autolycus-ballads .figure-autolycus{position:absolute;bottom:20%;left:40%;width:24px;height:50px;background:linear-gradient(180deg,#57534e 0%,#292524 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:ab-walk 4s ease-in-out infinite}
.scn-autolycus-ballads .pack{position:absolute;bottom:38%;left:38%;width:18px;height:20px;background:linear-gradient(135deg,#a16207 0%,#713f12 100%);border-radius:30% 30% 20% 20%;transform:rotate(10deg);animation:ab-bounce 3s ease-in-out infinite}
.scn-autolycus-ballads .ballad{position:absolute;width:16px;height:20px;background:linear-gradient(135deg,#fefce8 0%,#fef08a 100%);border:1px solid #d97706;border-radius:2px;opacity:0.8}
.scn-autolycus-ballads .ballad.float-a{top:15%;left:10%;animation:ab-float 5s ease-in-out infinite}
.scn-autolycus-ballads .ballad.float-b{top:20%;right:20%;animation:ab-float 6s ease-in-out infinite 1s}
.scn-autolycus-ballads .ballad.float-c{top:10%;left:60%;animation:ab-float 7s ease-in-out infinite 2s}
.scn-autolycus-ballads .trinket{position:absolute;bottom:25%;left:55%;width:8px;height:8px;background:radial-gradient(circle,#6ee7b7 0%,#059669 100%);border-radius:50%;box-shadow:0 0 6px 2px #34d399;animation:ab-spin 3s linear infinite}
@keyframes ab-sky{0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8}}
@keyframes ab-sun{0%{transform:translateY(0) scale(0.95);opacity:0.9}50%{transform:translateY(-5px) scale(1.05);opacity:1}100%{transform:translateY(0) scale(0.95);opacity:0.9}}
@keyframes ab-walk{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(8px) rotate(1deg)}50%{transform:translateX(16px) rotate(-1deg)}75%{transform:translateX(24px) rotate(1deg)}100%{transform:translateX(32px) rotate(0)}}
@keyframes ab-bounce{0%,100%{transform:rotate(10deg) translateY(0)}50%{transform:rotate(10deg) translateY(-3px)}}
@keyframes ab-float{0%,100%{transform:translateY(0) rotate(0);opacity:0.6}50%{transform:translateY(-10px) rotate(15deg);opacity:0.9}}
@keyframes ab-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

.scn-ballads-true-or-false{background:linear-gradient(180deg,#7c2d12 0%,#92400e 30%,#b45309 60%,#d97706 100%),radial-gradient(ellipse at 50% 70%,#fbbf24 0%,transparent 60%)}
.scn-ballads-true-or-false .bg-room{position:absolute;inset:0;background:linear-gradient(180deg,#451a03 0%,transparent 100%);animation:btf-darken 10s ease-in-out infinite alternate}
.scn-ballads-true-or-false .bed{position:absolute;bottom:15%;left:20%;width:60%;height:30%;background:linear-gradient(135deg,#78350f 0%,#451a03 100%);border-radius:10px 10px 20px 20px;box-shadow:inset 0 -10px 20px rgba(0,0,0,0.5);animation:btf-shake 4s ease-in-out infinite}
.scn-ballads-true-or-false .figure-wife{position:absolute;bottom:28%;left:30%;width:30px;height:50px;background:linear-gradient(180deg,#a16207 0%,#713f12 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:btf-labor 3s ease-in-out infinite}
.scn-ballads-true-or-false .figure-midwife{position:absolute;bottom:25%;right:25%;width:22px;height:44px;background:linear-gradient(180deg,#78350f 0%,#451a03 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:scaleX(-1);animation:btf-bustle 5s ease-in-out infinite}
.scn-ballads-true-or-false .moneybags{position:absolute;bottom:30%;left:5%;right:5%;height:20%;background:radial-gradient(circle at 30% 50%,#fde68a 0%,#d97706 50%,#78350f 100%);border-radius:50%;filter:blur(3px);animation:btf-swell 6s ease-in-out infinite}
.scn-ballads-true-or-false .coin{position:absolute;width:10px;height:10px;background:radial-gradient(circle,#fde68a 0%,#d97706 100%);border-radius:50%;box-shadow:0 0 4px 1px #fbbf24}
.scn-ballads-true-or-false .coin-1{top:25%;left:45%;animation:btf-spin1 2s linear infinite}
.scn-ballads-true-or-false .coin-2{top:35%;left:55%;animation:btf-spin2 2.5s linear infinite 0.5s}
.scn-ballads-true-or-false .adders-head{position:absolute;bottom:40%;left:60%;width:12px;height:8px;background:linear-gradient(90deg,#a16207 0%,#d97706 100%);border-radius:50% 50% 0 0;transform:rotate(30deg);animation:btf-nod 3s ease-in-out infinite}
@keyframes btf-darken{0%{opacity:0.6}50%{opacity:0.8}100%{opacity:0.5}}
@keyframes btf-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(3px)}75%{transform:translateX(-3px)}}
@keyframes btf-labor{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-5px) rotate(-2deg)}}
@keyframes btf-bustle{0%,100%{transform:scaleX(-1) translateX(0)}50%{transform:scaleX(-1) translateX(8px)}}
@keyframes btf-swell{0%,100%{transform:scale(1);opacity:0.7}50%{transform:scale(1.1);opacity:1}}
@keyframes btf-spin1{0%{transform:rotate(0deg) translateY(0)}100%{transform:rotate(360deg) translateY(-10px)}}
@keyframes btf-spin2{0%{transform:rotate(0deg) translateY(0)}100%{transform:rotate(360deg) translateY(-8px)}}
@keyframes btf-nod{0%,100%{transform:rotate(30deg)}50%{transform:rotate(20deg)}}

.scn-song-three-parts{background:linear-gradient(180deg,#fef9c3 0%,#fde68a 30%,#fcd34d 60%,#f59e0b 100%),radial-gradient(ellipse at 50% 30%,#fef9c3 0%,transparent 70%)}
.scn-song-three-parts .bg-stage{position:absolute;inset:0;background:linear-gradient(180deg,#d97706 0%,transparent 100%);animation:stp-glow 8s ease-in-out infinite alternate}
.scn-song-three-parts .figure{position:absolute;bottom:20%;width:20px;height:45px;background:linear-gradient(180deg,#92400e 0%,#451a03 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center}
.scn-song-three-parts .figure.left{left:20%;animation:stp-sway-l 4s ease-in-out infinite}
.scn-song-three-parts .figure.center{left:45%;width:22px;height:48px;animation:stp-sway-c 4.5s ease-in-out infinite 0.5s}
.scn-song-three-parts .figure.right{right:20%;animation:stp-sway-r 5s ease-in-out infinite 1s}
.scn-song-three-parts .note{position:absolute;width:8px;height:12px;background:radial-gradient(circle at 50% 0%,#78350f 0%,#451a03 100%);border-radius:50% 50% 0 0;opacity:0.7}
.scn-song-three-parts .note-1{top:10%;left:15%;animation:stp-float 6s ease-in-out infinite}
.scn-song-three-parts .note-2{top:5%;left:50%;animation:stp-float 7s ease-in-out infinite 2s}
.scn-song-three-parts .note-3{top:15%;right:10%;animation:stp-float 8s ease-in-out infinite 4s}
@keyframes stp-glow{0%{opacity:0.6}50%{opacity:1}100%{opacity:0.7}}
@keyframes stp-sway-l{0%,100%{transform:rotate(-3deg) translateX(0)}50%{transform:rotate(3deg) translateX(4px)}}
@keyframes stp-sway-c{0%,100%{transform:rotate(0deg) translateY(0)}50%{transform:rotate(2deg) translateY(-5px)}}
@keyframes stp-sway-r{0%,100%{transform:rotate(3deg) translateX(0)}50%{transform:rotate(-3deg) translateX(-4px)}}
@keyframes stp-float{0%,100%{transform:translateY(0) rotate(0);opacity:0.4}50%{transform:translateY(-15px) rotate(20deg);opacity:0.9}}

.scn-autolycus-follows-singing{background:linear-gradient(180deg,#bae6fd 0%,#7dd3fc 30%,#38bdf8 60%,#0ea5e9 100%),radial-gradient(ellipse at 50% 80%,#fef9c3 0%,transparent 70%)}
.scn-autolycus-follows-singing .bg-meadow{position:absolute;inset:0;background:linear-gradient(180deg,#a3e635 0%,transparent 100%);animation:afs-sway 10s ease-in-out infinite alternate}
.scn-autolycus-follows-singing .figure-autolycus{position:absolute;bottom:20%;left:35%;width:24px;height:50px;background:linear-gradient(180deg,#57534e 0%,#292524 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:afs-strut 4s ease-in-out infinite}
.scn-autolycus-follows-singing .duck{position:absolute;bottom:22%;left:55%;width:18px;height:14px;background:linear-gradient(180deg,#fde047 0%,#eab308 100%);border-radius:50% 50% 30% 30% / 70% 70% 30% 30%;transform-origin:bottom center;animation:afs-waddle 3s ease-in-out infinite}
.scn-autolycus-follows-singing .item{position:absolute;bottom:30%;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fef08a 0%,#d97706 100%);box-shadow:0 0 4px 1px #fbbf24;animation:afs-scatter 5s ease-in-out infinite}
.scn-autolycus-follows-singing .item.ribbon{left:45%;animation-delay:0s}
.scn-autolycus-follows-singing .item.thread{left:50%;animation-delay:1s}
.scn-autolycus-follows-singing .item.toy{left:40%;animation-delay:2s}
.scn-autolycus-follows-singing .path{position:absolute;bottom:15%;left:10%;right:10%;height:4px;background:linear-gradient(90deg,#78350f 0%,#451a03 100%);border-radius:2px;opacity:0.5;animation:afs-scroll 8s linear infinite}
@keyframes afs-sway{0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.6}}
@keyframes afs-strut{0%,100%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(10px) rotate(-2deg)}50%{transform:translateX(20px) rotate(0deg)}75%{transform:translateX(30px) rotate(2deg)}}
@keyframes afs-waddle{0%,100%{transform:rotate(-3deg) translateX(0)}50%{transform:rotate(3deg) translateX(5px)}}
@keyframes afs-scatter{0%,100%{transform:translateY(0) scale(1);opacity:0.5}50%{transform:translateY(-8px) scale(1.5);opacity:1}}
@keyframes afs-scroll{0%{transform:translateX(-10%)}100%{transform:translateX(10%)}}

/* ---- oracle-verdict ---- */
.scn-oracle-verdict {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #e0ccaa 30%, #d4b890 60%, #b89a70 100%),
    radial-gradient(ellipse at 70% 40%, #fff4e0 0%, transparent 60%);
}
.scn-oracle-verdict .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #705a3a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-oracle-verdict .pedestal {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b890 0%, #9a8a6a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-oracle-verdict .scroll {
  position: absolute; bottom: 32%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ov-scroll 4s ease-in-out infinite alternate;
}
.scn-oracle-verdict .seal {
  position: absolute; bottom: 47%; left: 50%; width: 16px; height: 16px; transform: translateX(-50%);
  background: radial-gradient(circle, #c07040 0%, #a05030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #a05030;
  animation: ov-seal 3s ease-in-out infinite;
}
.scn-oracle-verdict .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ov-figure-l 5s ease-in-out infinite alternate;
}
.scn-oracle-verdict .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ov-figure-r 5s ease-in-out infinite alternate-reverse;
}
.scn-oracle-verdict .light-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 85% 100%, 15% 100%);
  animation: ov-light 6s ease-in-out infinite alternate;
}
.scn-oracle-verdict .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 100%);
  pointer-events: none;
  animation: ov-shadow 8s ease-in-out infinite alternate;
}
@keyframes ov-scroll {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ov-seal {
  0%,100% { box-shadow: 0 0 6px 2px #a05030; }
  50% { box-shadow: 0 0 14px 4px #c06030, 0 0 24px 6px rgba(192,96,48,0.4); }
}
@keyframes ov-figure-l {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ov-figure-r {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ov-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ov-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

/* ---- leontes-repentance ---- */
.scn-leontes-repentance {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2c261e 30%, #1a1510 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-leontes-repentance .bg-dark {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #12100e 0%, #1a1510 100%);
}
.scn-leontes-repentance .throne {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-leontes-repentance .kneeling-figure {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 70px; transform: translateX(-30%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lr-kneel 4s ease-in-out infinite alternate;
}
.scn-leontes-repentance .window-glow {
  position: absolute; top: 20%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, #b0a080 0%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(176,160,128,0.3);
  animation: lr-window 6s ease-in-out infinite alternate;
}
.scn-leontes-repentance .tear {
  position: absolute; bottom: 45%; left: 45%; width: 6px; height: 10px;
  background: linear-gradient(180deg, rgba(200,200,220,0.6), transparent);
  border-radius: 50%;
  animation: lr-tear 3s ease-in-out infinite;
}
.scn-leontes-repentance .cloak {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
  border-radius: 80% 20% 20% 80% / 60% 40% 60% 40%;
  transform-origin: bottom right;
  animation: lr-cloak 7s ease-in-out infinite alternate;
}
.scn-leontes-repentance .dust-particle {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: rgba(200,190,180,0.3);
  border-radius: 50%;
  animation: lr-dust 12s linear infinite;
}
.scn-leontes-repentance .dust-particle.b {
  left: 30%; top: 50%;
  animation-delay: -6s;
  width: 3px; height: 3px;
}
@keyframes lr-kneel {
  0% { transform: translateX(-30%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-30%) translateY(-4px) rotate(-1deg); }
  100% { transform: translateX(-30%) translateY(0) rotate(0deg); }
}
@keyframes lr-window {
  0% { opacity: 0.3; box-shadow: 0 0 10px 4px rgba(176,160,128,0.2); }
  50% { opacity: 0.7; box-shadow: 0 0 30px 12px rgba(176,160,128,0.4); }
  100% { opacity: 0.4; box-shadow: 0 0 15px 6px rgba(176,160,128,0.25); }
}
@keyframes lr-tear {
  0% { transform: translateY(0) scaleY(1); opacity: 1; }
  50% { transform: translateY(8px) scaleY(1.4); opacity: 0.6; }
  100% { transform: translateY(16px) scaleY(1); opacity: 0; }
}
@keyframes lr-cloak {
  0% { transform: rotate(0deg) scaleX(1); }
  100% { transform: rotate(-3deg) scaleX(1.05); }
}
@keyframes lr-dust {
  0% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.3; }
  100% { transform: translate(40px, -30px); opacity: 0; }
}

/* ---- paulina-woe ---- */
.scn-paulina-woe {
  background:
    linear-gradient(180deg, #2a241e 0%, #1c1814 40%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-paulina-woe .bg-chamber {
  position: absolute; inset: 0 0 5% 0;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
}
.scn-paulina-woe .bench {
  position: absolute; bottom: 10%; left: 30%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-paulina-woe .figure-seated {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-seat 4s ease-in-out infinite alternate;
}
.scn-paulina-woe .hands-wring {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 20px;
  background: linear-gradient(135deg, #5a4a3a, #3a2a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pw-hands 2s ease-in-out infinite alternate;
}
.scn-paulina-woe .lace-snag {
  position: absolute; bottom: 28%; left: 38%; width: 10px; height: 6px;
  background: #8a7a6a;
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  animation: pw-lace 3s ease-in-out infinite;
}
.scn-paulina-woe .candle {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-paulina-woe .candle-glow {
  position: absolute; bottom: 55%; right: 23%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: pw-glow 3s ease-in-out infinite alternate;
}
.scn-paulina-woe .shadow-writhe {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  animation: pw-shadow 5s ease-in-out infinite alternate;
}
@keyframes pw-seat {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pw-hands {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(20deg) scale(0.9); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes pw-lace {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-2px) rotate(15deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes pw-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes pw-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

/* ---- antigonus-desert ---- */
.scn-antigonus-desert {
  background:
    linear-gradient(180deg, #6a7a70 0%, #8a9a8a 30%, #b0b8a8 60%, #c8c0b0 100%),
    radial-gradient(ellipse at 50% 100%, #8a9a8a 0%, transparent 70%);
}
.scn-antigonus-desert .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a8a80 0%, #8a9a8a 30%, #a0b0a0 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-antigonus-desert .sea-horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #7a8a80 0%, #4a5a50 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
}
.scn-antigonus-desert .sand-dune {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b0b8a8 0%, #c8c0b0 50%, #d8d0c0 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-antigonus-desert .ship-wreck {
  position: absolute; bottom: 42%; right: 20%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a, #3a2a1a);
  clip-path: polygon(0% 40%, 100% 10%, 100% 60%, 40% 100%, 0% 80%);
  transform-origin: bottom right;
  animation: ad-ship 8s ease-in-out infinite alternate;
}
.scn-antigonus-desert .figure-adult {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-figure-a 5s ease-in-out infinite alternate;
}
.scn-antigonus-desert .figure-child {
  position: absolute; bottom: 12%; left: 38%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-figure-c 5s ease-in-out infinite alternate-reverse;
}
.scn-antigonus-desert .storm-bird {
  position: absolute; top: 20%; left: 10%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  clip-path: polygon(0 50%, 30% 0, 60% 50%, 100% 50%, 60% 100%, 30% 50%);
  animation: ad-bird 12s linear infinite;
}
.scn-antigonus-desert .foam {
  position: absolute; bottom: 39%; left: 10%; width: 80px; height: 6px;
  background: rgba(200,220,210,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ad-foam 4s ease-in-out infinite alternate;
}
@keyframes ad-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ad-ship {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ad-figure-a {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ad-figure-c {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ad-bird {
  0% { transform: translateX(-60px) translateY(0); }
  50% { transform: translateX(40px) translateY(-10px); }
  100% { transform: translateX(120vw) translateY(0); }
}
@keyframes ad-foam {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(20px) scaleX(1.2); }
}

/* gentleman-praises-perdita */
.scn-gentleman-praises-perdita {
  background: linear-gradient(180deg, #f5e6d3 0%, #d8c3a5 40%, #b8a08e 100%),
              radial-gradient(ellipse at 50% 30%, #f0d5b0 0%, transparent 70%);
}
.scn-gentleman-praises-perdita .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d5b8 0%, #c9b094 100%);
}
.scn-gentleman-praises-perdita .window-frame {
  position: absolute; top: 8%; left: 25%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #8b7355 0%, #6b5a44 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.scn-gentleman-praises-perdita .window-pane {
  position: absolute; top: 12%; left: 28%; width: 24%; height: 38%;
  background: linear-gradient(180deg, #d4e4f0 0%, #b8d0e0 50%, #9cb8d0 100%);
  border-radius: 2px; box-shadow: inset 0 0 30px rgba(255,255,200,0.4);
  animation: gpp-sky 6s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .curtain-left {
  position: absolute; top: 6%; left: 20%; width: 12%; height: 50%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #7a2e12 100%);
  border-radius: 0 8px 8px 0; transform-origin: left top;
  animation: gpp-drape-left 8s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .curtain-right {
  position: absolute; top: 6%; right: 20%; width: 12%; height: 50%;
  background: linear-gradient(225deg, #c8553d 0%, #a0461a 50%, #7a2e12 100%);
  border-radius: 8px 0 0 8px; transform-origin: right top;
  animation: gpp-drape-right 8s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .figure-gentleman {
  position: absolute; bottom: 10%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1814 50%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpp-bow 5s ease-in-out infinite;
}
.scn-gentleman-praises-perdita .figure-perdita {
  position: absolute; bottom: 10%; right: 30%; width: 12%; height: 44%;
  background: linear-gradient(180deg, #d4a574 0%, #b8835a 50%, #8c5e3e 100%);
  border-radius: 50% 50% 40% 40% / 65% 55% 35% 45%;
  box-shadow: 0 0 25px rgba(255,200,150,0.3);
  animation: gpp-stand 4s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .candle.glow {
  position: absolute; bottom: 45%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffdf80 0%, #ffaa40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffaa40, 0 0 60px 20px rgba(255,170,64,0.3);
  animation: gpp-flicker 1.6s ease-in-out infinite alternate;
}
.scn-gentleman-praises-perdita .candle.flame {
  position: absolute; bottom: 46%; left: 54.5%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #ffdf80 0%, #ff8800 60%, #cc4400 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpp-flame 1.8s ease-in-out infinite alternate;
}
@keyframes gpp-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes gpp-drape-left {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(-3deg); }
  100% { transform: skewX(0deg); }
}
@keyframes gpp-drape-right {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(3deg); }
  100% { transform: skewX(0deg); }
}
@keyframes gpp-bow {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(4deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gpp-stand {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-3px) scaleY(1.02); }
}
@keyframes gpp-flicker {
  0% { opacity: 0.9; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.95; transform: scale(1); }
}
@keyframes gpp-flame {
  0% { transform: scaleY(1) rotate(-2deg); }
  50% { transform: scaleY(1.15) rotate(0deg); }
  100% { transform: scaleY(1) rotate(2deg); }
}

/* leontes-mourns-mamillius */
.scn-leontes-mourns-mamillius {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 60% 40%, #4a4a5e 0%, transparent 70%);
}
.scn-leontes-mourns-mamillius .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%);
}
.scn-leontes-mourns-mamillius .chair {
  position: absolute; bottom: 8%; left: 30%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: lmm-chair 12s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .figure-leontes {
  position: absolute; bottom: 12%; left: 32%; width: 13%; height: 42%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lmm-sit 6s ease-in-out infinite;
}
.scn-leontes-mourns-mamillius .child-toy {
  position: absolute; bottom: 10%; right: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #6b5a44 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: lmm-toy 4s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .window-light {
  position: absolute; top: 12%; left: 60%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #4a5a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,220,240,0.3);
  animation: lmm-light 8s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .shadow-1 {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: lmm-shade 10s ease-in-out infinite alternate;
}
.scn-leontes-mourns-mamillius .shadow-2 {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 50%;
  background: linear-gradient(225deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: lmm-shade 12s ease-in-out infinite alternate-reverse;
}
@keyframes lmm-chair {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes lmm-sit {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(0) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(0) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes lmm-toy {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes lmm-light {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes lmm-shade {
  0% { opacity: 0.5; }
  100% { opacity: 0.7; }
}

/* florizel-perdita-enter */
.scn-florizel-perdita-enter {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 30%, #9a8a6a 60%, #7a6a4a 100%),
              radial-gradient(ellipse at 40% 20%, #e0d0b0 0%, transparent 60%);
}
.scn-florizel-perdita-enter .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 50%, #887868 100%);
}
.scn-florizel-perdita-enter .doorway {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: fpe-door 10s ease-in-out infinite alternate;
}
.scn-florizel-perdita-enter .florizel-silhouette {
  position: absolute; bottom: 12%; left: 40%; width: 8%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fpe-walk 5s ease-in-out infinite;
}
.scn-florizel-perdita-enter .perdita-silhouette {
  position: absolute; bottom: 12%; right: 40%; width: 7%; height: 44%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpe-walk 5s ease-in-out infinite reverse;
}
.scn-florizel-perdita-enter .floor-tile {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0%, #6a5a4a 8%, #7a6a5a 8%, #7a6a5a 16%);
  animation: fpe-floor 3s linear infinite;
}
.scn-florizel-perdita-enter .wall-sconce {
  position: absolute; top: 25%; left: 20%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #b08050 0%, #806040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-florizel-perdita-enter .sconce-glow {
  position: absolute; top: 24%; left: 19%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffcc60 0%, #ffaa40 30%, transparent 60%);
  border-radius: 50%;
  animation: fpe-glow 2s ease-in-out infinite alternate;
}
@keyframes fpe-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes fpe-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(0deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fpe-floor {
  0% { background-position: 0 0; }
  100% { background-position: 16% 0; }
}
@keyframes fpe-glow {
  0% { opacity: 0.7; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* florizel-greeting */
.scn-florizel-greeting {
  background: linear-gradient(180deg, #eae0c8 0%, #d4c4a0 30%, #b8a880 60%, #9a8a6a 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-florizel-greeting .bg-palace {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8b0 0%, #c0b098 50%, #a89880 100%);
}
.scn-florizel-greeting .column-left {
  position: absolute; bottom: 0; left: 15%; width: 6%; height: 80%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
}
.scn-florizel-greeting .column-right {
  position: absolute; bottom: 0; right: 15%; width: 6%; height: 80%;
  background: linear-gradient(225deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
}
.scn-florizel-greeting .florizel-figure {
  position: absolute; bottom: 15%; left: 35%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1814 50%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 55% 45% 40%;
  transform-origin: bottom center;
  animation: fg-bow 4s ease-in-out infinite alternate;
}
.scn-florizel-greeting .king-figure {
  position: absolute; bottom: 15%; right: 35%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 55% 60% 40% 45%;
  transform-origin: bottom center;
  animation: fg-stand 5s ease-in-out infinite;
}
.scn-florizel-greeting .carpet-roll {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 2%;
  background: linear-gradient(90deg, #5e1a1d 0%, #702243 30%, #8a3355 60%, #5e1a1d 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: fg-carpet 8s ease-in-out infinite alternate;
}
.scn-florizel-greeting .chandelier {
  position: absolute; top: 6%; left: 40%; width: 20%; height: 14%;
  background: linear-gradient(180deg, #b08050 0%, #806040 50%, #604030 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
.scn-florizel-greeting .chandelier-glow {
  position: absolute; top: 4%; left: 38%; width: 24%; height: 18%;
  background: radial-gradient(ellipse at center, #ffdf80 0%, #ffaa40 20%, transparent 60%);
  border-radius: 50%;
  animation: fg-chandelier 3s ease-in-out infinite alternate;
}
.scn-florizel-greeting .air-dust {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 70%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.05) 0%, transparent 50%);
  animation: fg-dust 20s linear infinite;
}
@keyframes fg-bow {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fg-stand {
  0% { transform: translateY(0); }
  25% { transform: translateY(-1px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fg-carpet {
  0% { background-position: 0 0; }
  100% { background-position: 20% 0; }
}
@keyframes fg-chandelier {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes fg-dust {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(5px) translateY(-3px); }
  66% { transform: translateX(-5px) translateY(2px); }
  100% { transform: translateX(0) translateY(0); }
}

.scn-camillo-advice {
  background:
    linear-gradient(180deg, #8fa8b0 0%, #d4c4a0 50%, #e8d8b4 100%),
    radial-gradient(ellipse at 50% 30%, #f0e4c8 0%, transparent 60%);
}
.scn-camillo-advice .wall {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a88a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-camillo-advice .window {
  position:absolute; top:15%; left:20%; width:40%; height:50%;
  background: linear-gradient(180deg, #f0f8ff 0%, #d0e0f0 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px #fff, 0 0 40px rgba(255,255,220,0.3);
}
.scn-camillo-advice .sunbeam {
  position:absolute; top:0; left:22%; width:36%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,230,0.3) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: ca-beam 8s ease-in-out infinite alternate;
}
.scn-camillo-advice .figure-left {
  position:absolute; bottom:15%; left:15%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: ca-figure-l 6s ease-in-out infinite;
}
.scn-camillo-advice .figure-right {
  position:absolute; bottom:15%; right:20%; width:25px; height:55px;
  background: linear-gradient(180deg, #2e2e2e 0%, #0e0e0e 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-8deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: ca-figure-r 5s ease-in-out infinite;
}
.scn-camillo-advice .floor-shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.1) 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(4px);
}
@keyframes ca-beam {
  0% { opacity:0.6; transform: skewX(-2deg); }
  50% { opacity:1; transform: skewX(0deg); }
  100% { opacity:0.7; transform: skewX(2deg); }
}
@keyframes ca-figure-l {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes ca-figure-r {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

.scn-florizel-vow {
  background:
    linear-gradient(180deg, #4a7a9a 0%, #8aafc0 30%, #c8d8e8 60%, #f0e8c0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%);
}
.scn-florizel-vow .sky {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #8ab0c8 0%, #d0e4f0 70%);
  animation: fv-sky 15s ease-in-out infinite alternate;
}
.scn-florizel-vow .sun {
  position:absolute; top:10%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, #fff8d0 0%, #ffe070 40%, #ffcc40 70%, transparent 100%);
  transform: translateX(-50%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(255,224,100,0.5);
  animation: fv-sun 4s ease-in-out infinite alternate;
}
.scn-florizel-vow .ray-1 {
  position:absolute; top:0; left:40%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  animation: fv-ray1 6s ease-in-out infinite;
}
.scn-florizel-vow .ray-2 {
  position:absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.5) 0%, transparent 70%);
  clip-path: polygon(10% 0, 90% 0, 60% 100%, 40% 100%);
  animation: fv-ray2 8s ease-in-out infinite reverse;
}
.scn-florizel-vow .figure {
  position:absolute; bottom:18%; left:50%; width:32px; height:70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: fv-figure 3s ease-in-out infinite;
}
.scn-florizel-vow .ground {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-florizel-vow .shrub {
  position:absolute; bottom:20%; right:15%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0;
  animation: fv-shrub 20s ease-in-out infinite;
}
@keyframes fv-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes fv-sun {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 30px rgba(255,224,100,0.4); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 100px 50px rgba(255,224,100,0.7); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 80px 40px rgba(255,224,100,0.5); }
}
@keyframes fv-ray1 {
  0% { opacity:0.3; transform: skewX(-2deg); }
  50% { opacity:0.7; transform: skewX(1deg); }
  100% { opacity:0.4; transform: skewX(-1deg); }
}
@keyframes fv-ray2 {
  0% { opacity:0.5; transform: skewX(3deg); }
  50% { opacity:0.9; transform: skewX(-1deg); }
  100% { opacity:0.6; transform: skewX(2deg); }
}
@keyframes fv-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes fv-shrub {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); }
}

.scn-camillo-plan {
  background:
    linear-gradient(180deg, #d4b88a 0%, #e8d4a0 30%, #f0e0b0 70%, #f8ecc0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 80%);
}
.scn-camillo-plan .wall {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #e8d4a0 0%, #d0b888 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08);
}
.scn-camillo-plan .window {
  position:absolute; top:10%; right:15%; width:35%; height:45%;
  background: linear-gradient(180deg, #f8f0d0 0%, #e0d0a0 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.8);
}
.scn-camillo-plan .sunbeam {
  position:absolute; top:0; left:45%; width:35%; height:100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%);
  animation: cp-beam 12s ease-in-out infinite alternate;
}
.scn-camillo-plan .desk {
  position:absolute; bottom:15%; left:15%; width:55%; height:8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cp-desk 10s ease-in-out infinite;
}
.scn-camillo-plan .scroll {
  position:absolute; bottom:23%; left:35%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, #d0b070 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  box-shadow: 1px 2px 6px rgba(0,0,0,0.15);
  animation: cp-scroll 8s ease-in-out infinite alternate;
}
.scn-camillo-plan .figure {
  position:absolute; bottom:15%; right:20%; width:30px; height:65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: cp-figure 5s ease-in-out infinite;
}
.scn-camillo-plan .chair {
  position:absolute; bottom:15%; right:24%; width:20px; height:30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(-3deg);
  animation: cp-chair 7s ease-in-out infinite alternate;
}
@keyframes cp-beam {
  0% { opacity:0.4; transform: skewX(-1deg); }
  50% { opacity:0.8; transform: skewX(2deg); }
  100% { opacity:0.5; transform: skewX(0deg); }
}
@keyframes cp-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cp-scroll {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-13deg) scale(1.03); }
  100% { transform: rotate(-17deg) scale(0.98); }
}
@keyframes cp-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-1deg) translateY(-1px); }
  75% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes cp-chair {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(1px); }
}

.scn-camillo-proposal {
  background:
    linear-gradient(180deg, #c8b08a 0%, #e0c8a0 40%, #f0d8b0 70%, #f8e8c8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%);
}
.scn-camillo-proposal .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-camillo-proposal .column-left {
  position:absolute; bottom:25%; left:12%; width:20px; height:60%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: cpr-col-l 15s ease-in-out infinite;
}
.scn-camillo-proposal .column-right {
  position:absolute; bottom:25%; right:12%; width:20px; height:60%;
  background: linear-gradient(180deg, #c8b898 0%, #a89078 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: cpr-col-r 18s ease-in-out infinite alternate;
}
.scn-camillo-proposal .sunbeam {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  animation: cpr-beam 10s ease-in-out infinite alternate;
}
.scn-camillo-proposal .figure-a {
  position:absolute; bottom:20%; left:25%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: cpr-fig-a 4s ease-in-out infinite;
}
.scn-camillo-proposal .figure-b {
  position:absolute; bottom:20%; right:25%; width:26px; height:58px;
  background: linear-gradient(180deg, #2e2212 0%, #0e0a06 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-2deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: cpr-fig-b 6s ease-in-out infinite alternate;
}
.scn-camillo-proposal .arch {
  position:absolute; top:0; left:8%; width:84%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #d8c8a8 0%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  animation: cpr-arch 20s ease-in-out infinite;
}
@keyframes cpr-col-l {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes cpr-col-r {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.995); }
  100% { transform: scaleY(1.005); }
}
@keyframes cpr-beam {
  0% { opacity:0.3; transform: skewX(-2deg); }
  50% { opacity:0.8; transform: skewX(3deg); }
  100% { opacity:0.4; transform: skewX(-1deg); }
}
@keyframes cpr-fig-a {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes cpr-fig-b {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes cpr-arch {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}

/* Scene: paulina-rebukes-leontes (prl) */
.scn-paulina-rebukes-leontes {
  background: linear-gradient(180deg, #2c2a3e 0%, #3a2e2a 30%, #4a3a2a 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-paulina-rebukes-leontes .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-bottom: 2px solid #2a1a0a;
}
.scn-paulina-rebukes-leontes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-paulina-rebukes-leontes .fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px #1a0a0a;
}
.scn-paulina-rebukes-leontes .fire {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #b05020 40%, #a04010 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: prl-fire 1.5s ease-in-out infinite alternate;
}
.scn-paulina-rebukes-leontes .figure-paulina {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prl-paulina 4s ease-in-out infinite;
}
.scn-paulina-rebukes-leontes .figure-leontes {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: prl-leontes 6s ease-in-out infinite;
}
.scn-paulina-rebukes-leontes .glow {
  position: absolute; inset: 0; opacity: 0.2;
  background: radial-gradient(ellipse at 50% 50%, #d08030 0%, transparent 60%);
  animation: prl-glow 2s ease-in-out infinite alternate;
}
.scn-paulina-rebukes-leontes .shadow {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: prl-shadow 4s ease-in-out infinite;
}
@keyframes prl-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.9); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); opacity: 0.85; }
}
@keyframes prl-paulina {
  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 prl-leontes {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(1deg); }
  66% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes prl-glow {
  0% { opacity: 0.15; }
  50% { opacity: 0.3; }
  100% { opacity: 0.2; }
}
@keyframes prl-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* Scene: paulina-argues-against-remarriage (par) */
.scn-paulina-argues-against-remarriage {
  background: linear-gradient(135deg, #2a2a3e 0%, #3a2a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 70%);
}
.scn-paulina-argues-against-remarriage .arch-back {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
}
.scn-paulina-argues-against-remarriage .floor-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
}
.scn-paulina-argues-against-remarriage .column-left {
  position: absolute; bottom: 30%; left: 22%; width: 12px; height: 70px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
}
.scn-paulina-argues-against-remarriage .column-right {
  position: absolute; bottom: 30%; right: 22%; width: 12px; height: 70px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-paulina-argues-against-remarriage .paulina-standing {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: par-stance 5s ease-in-out infinite;
}
.scn-paulina-argues-against-remarriage .scroll {
  position: absolute; bottom: 42%; left: 52%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #d0b080 0%, #b09060 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: par-scroll 6s ease-in-out infinite;
}
.scn-paulina-argues-against-remarriage .light-cast {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 40%, rgba(180,140,80,0.15) 0%, transparent 70%);
  animation: par-light 3s ease-in-out infinite alternate;
}
@keyframes par-stance {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes par-scroll {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes par-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* Scene: paulina-defies-counsel (pdc) */
.scn-paulina-defies-counsel {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-paulina-defies-counsel .tabletop {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 16px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-paulina-defies-counsel .candle {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px;
}
.scn-paulina-defies-counsel .flame {
  position: absolute; bottom: 44%; left: 50%; width: 12px; height: 18px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #d08030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  animation: pdc-flame 1.6s ease-in-out infinite alternate;
}
.scn-paulina-defies-counsel .counselor-1 {
  position: absolute; bottom: 33%; left: 15%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pdc-counsel 8s ease-in-out infinite;
}
.scn-paulina-defies-counsel .counselor-2 {
  position: absolute; bottom: 33%; left: 27%; width: 14px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pdc-counsel 8s ease-in-out infinite 2s;
}
.scn-paulina-defies-counsel .counselor-3 {
  position: absolute; bottom: 33%; left: 38%; width: 15px; height: 52px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pdc-counsel 8s ease-in-out infinite 4s;
}
.scn-paulina-defies-counsel .paulina-defiant {
  position: absolute; bottom: 32%; left: 62%; width: 22px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pdc-defiant 6s ease-in-out infinite;
}
.scn-paulina-defies-counsel .chandelier {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, rgba(180,140,80,0.3) 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(6px);
  animation: pdc-chandelier 5s ease-in-out infinite alternate;
}
@keyframes pdc-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.2) scaleX(0.8); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1.1); opacity: 0.85; }
}
@keyframes pdc-counsel {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(2deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pdc-defiant {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pdc-chandelier {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

/* Scene: leontes-swears-no-wife (lsn) */
.scn-leontes-swears-no-wife {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a0a0a 50%, #0a0000 100%), radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 80%);
}
.scn-leontes-swears-no-wife .throne-back {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.7);
}
.scn-leontes-swears-no-wife .throne-arm {
  position: absolute; bottom: 35%; left: 36%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-leontes-swears-no-wife .leontes-figure {
  position: absolute; bottom: 28%; left: 47%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lsn-leontes 7s ease-in-out infinite;
}
.scn-leontes-swears-no-wife .crown {
  position: absolute; bottom: 52%; left: 47%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%);
  animation: lsn-crown 10s ease-in-out infinite;
}
.scn-leontes-swears-no-wife .candle-flame {
  position: absolute; bottom: 30%; left: 65%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d07020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: lsn-flame 2.4s ease-in-out infinite alternate;
}
.scn-leontes-swears-no-wife .pool-light {
  position: absolute; bottom: 25%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,140,80,0.15) 0%, transparent 60%);
  border-radius: 50%;
  animation: lsn-pool 3s ease-in-out infinite alternate;
}
.scn-leontes-swears-no-wife .shadow-drape {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: lsn-drape 8s ease-in-out infinite alternate;
}
@keyframes lsn-leontes {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes lsn-crown {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lsn-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(0.7); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1.1); opacity: 0.9; }
}
@keyframes lsn-pool {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.2); }
  100% { opacity: 0.15; transform: scale(0.9); }
}
@keyframes lsn-drape {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-camillo-rejects-accusation {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #d4b88a 30%, #c4a070 60%, #a08050 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%),
    linear-gradient(90deg, #b09070 0%, #d4b88a 50%, #b09070 100%);
}
.scn-camillo-rejects-accusation .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b88a 40%, #c8a878 100%);
  animation: cra-wall 15s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08050 0%, #806040 50%, #604830 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: cra-floor 8s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .figure-camillo {
  position: absolute; bottom: 18%; left: 35%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -12px 0 20px rgba(0,0,0,.4);
  animation: cra-figure 6s ease-in-out infinite;
}
.scn-camillo-rejects-accusation .arm-reject {
  position: absolute; bottom: 60%; left: 48%; width: 40px; height: 14px;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 60% 40% 0;
  transform-origin: left center;
  box-shadow: 4px 2px 8px rgba(0,0,0,.3);
  animation: cra-arm 4s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .shadow-fall {
  position: absolute; bottom: 15%; left: 28%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cra-shadow 7s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .light-patch {
  position: absolute; bottom: 40%; left: 20%; width: 140px; height: 100px;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,230,180,.25) 0%, transparent 70%);
  filter: blur(12px);
  animation: cra-light 10s ease-in-out infinite alternate;
}
.scn-camillo-rejects-accusation .drapery {
  position: absolute; top: 0; right: 0; width: 80px; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 40%, #3a1a0a 100%);
  border-radius: 0 0 0 40%;
  box-shadow: -6px 0 12px rgba(0,0,0,.3);
  animation: cra-drape 12s ease-in-out infinite alternate;
}
@keyframes cra-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes cra-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(.98); } 100% { transform: scaleY(1); } }
@keyframes cra-figure { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1.5deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cra-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes cra-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.15); } 100% { opacity: .5; transform: scaleX(1); } }
@keyframes cra-light { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes cra-drape { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }

.scn-leontes-defends-jealousy {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 20%, #1a1a2e 50%, #0a0a1e 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%),
    linear-gradient(45deg, #0a0a1e 0%, #1a1a2e 50%, #0a0a1e 100%);
}
.scn-leontes-defends-jealousy .chamber-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2a4e 40%, #1a1a2e 100%);
  animation: ldf-chamber 20s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .torch-glow {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,180,80,.3) 0%, rgba(255,150,50,.1) 40%, transparent 80%);
  filter: blur(16px);
  animation: ldf-torch 3s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .figure-leontes {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #050510 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  box-shadow: 0 0 30px rgba(255,150,50,.15), inset 0 -20px 40px rgba(0,0,0,.5);
  animation: ldf-figure 5s ease-in-out infinite;
}
.scn-leontes-defends-jealousy .fist-clench {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: ldf-fist 2s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .shadow-twist {
  position: absolute; bottom: 0; left: 30%; width: 160px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: ldf-shadow 8s ease-in-out infinite alternate;
}
.scn-leontes-defends-jealousy .wall-crack {
  position: absolute; top: 20%; right: 15%; width: 6px; height: 90px;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  animation: ldf-crack 14s ease-in-out infinite;
}
.scn-leontes-defends-jealousy .dust-motes {
  position: absolute; top: 30%; left: 20%; width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,180,150,.08) 0%, transparent 70%);
  filter: blur(4px);
  animation: ldf-dust 12s linear infinite;
}
@keyframes ldf-chamber { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .85; } }
@keyframes ldf-torch { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: .7; transform: scale(.95); } }
@keyframes ldf-figure { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 30% { transform: translateX(-50%) rotate(1.5deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 100% { transform: translateX(-50%) rotate(0) translateY(0); } }
@keyframes ldf-fist { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(.95); } }
@keyframes ldf-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.2); } 100% { opacity: .6; transform: scaleX(1); } }
@keyframes ldf-crack { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ldf-dust { 0% { transform: translate(0, 0) rotate(0); } 25% { transform: translate(10px, -8px) rotate(5deg); } 50% { transform: translate(-5px, -15px) rotate(-3deg); } 75% { transform: translate(8px, -4px) rotate(7deg); } 100% { transform: translate(0, 0) rotate(0); } }

.scn-item-poison-cup {
  background:
    linear-gradient(180deg, #d4b88a 0%, #c4a070 30%, #b09060 60%, #8a7050 100%),
    radial-gradient(ellipse at 50% 40%, #e8d0a0 0%, transparent 70%),
    linear-gradient(90deg, #b09060 0%, #d4b88a 50%, #b09060 100%);
}
.scn-item-poison-cup .tabletop {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #705a3a 40%, #5a4a2a 100%);
  border-radius: 50% 50% 4px 4px / 30% 30% 4px 4px;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
  animation: ipc-table 20s ease-in-out infinite alternate;
}
.scn-item-poison-cup .cup-base {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806030 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ipc-base 5s ease-in-out infinite;
}
.scn-item-poison-cup .cup-bowl {
  position: absolute; bottom: 46%; left: 50%; width: 44px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d8b878 0%, #b89858 40%, #987840 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.25), inset 0 -8px 16px rgba(0,0,0,.2);
  animation: ipc-bowl 4s ease-in-out infinite alternate;
}
.scn-item-poison-cup .liquid-poison {
  position: absolute; bottom: 52%; left: 50%; width: 32px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 60%, #2a1a00 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: inset 0 2px 4px rgba(100,60,20,.3), 0 0 8px rgba(60,30,10,.2);
  animation: ipc-liquid 6s ease-in-out infinite alternate;
}
.scn-item-poison-cup .vapor-wisp {
  position: absolute; bottom: 58%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, rgba(80,60,40,.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: ipc-vapor 7s ease-in-out infinite;
}
.scn-item-poison-cup .shadow-cup {
  position: absolute; bottom: 38%; left: 44%; width: 70px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 80%);
  filter: blur(6px);
  animation: ipc-shadow 5s ease-in-out infinite alternate;
}
.scn-item-poison-cup .highlight-gleam {
  position: absolute; bottom: 54%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, rgba(255,230,180,.6) 0%, transparent 100%);
  border-radius: 4px;
  filter: blur(1px);
  animation: ipc-gleam 3s ease-in-out infinite alternate;
}
.scn-item-poison-cup .table-grain {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(60,40,20,.08) 30%, rgba(60,40,20,.12) 50%, rgba(60,40,20,.08) 70%, transparent 100%);
  filter: blur(2px);
  animation: ipc-grain 25s linear infinite;
}
@keyframes ipc-table { 0% { opacity: .95; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ipc-base { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ipc-bowl { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ipc-liquid { 0% { transform: translateX(-50%) scaleX(1); opacity: .8; } 50% { transform: translateX(-50%) scaleX(1.05); opacity: 1; } 100% { transform: translateX(-50%) scaleX(.98); opacity: .85; } }
@keyframes ipc-vapor { 0% { transform: translate(0, 0) scale(1); opacity: .4; } 25% { transform: translate(4px, -8px) scale(1.2); opacity: .6; } 50% { transform: translate(-2px, -18px) scale(.8); opacity: .3; } 75% { transform: translate(6px, -26px) scale(1.1); opacity: .5; } 100% { transform: translate(0, 0) scale(1); opacity: .4; } }
@keyframes ipc-shadow { 0% { opacity: .4; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.1); } 100% { opacity: .5; transform: scaleX(1); } }
@keyframes ipc-gleam { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .8; transform: translateY(-2px); } 100% { opacity: .4; transform: translateY(0); } }
@keyframes ipc-grain { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }

.scn-camillo-agrees-to-plot {
  background:
    linear-gradient(180deg, #c8a878 0%, #b89868 25%, #a08050 50%, #886840 100%),
    radial-gradient(ellipse at 40% 50%, #d8b888 0%, transparent 60%),
    linear-gradient(45deg, #a08050 0%, #c8a878 50%, #a08050 100%);
}
.scn-camillo-agrees-to-plot .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8a878 0%, #b89868 40%, #a08050 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.15);
  animation: cap-wall 18s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #6a4a2a 50%, #5a3a1a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: cap-floor 10s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .figure-camillo-plot {
  position: absolute; bottom: 18%; left: 38%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -8px 0 16px rgba(0,0,0,.35);
  animation: cap-figure-a 6s ease-in-out infinite;
}
.scn-camillo-agrees-to-plot .figure-leontes-plot {
  position: absolute; bottom: 18%; left: 52%; width: 60px; height: 115px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 40%, #0a0010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 8px 0 16px rgba(0,0,0,.35);
  animation: cap-figure-b 7s ease-in-out infinite;
}
.scn-camillo-agrees-to-plot .handshake-shadow {
  position: absolute; bottom: 30%; left: 44%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 80%);
  filter: blur(6px);
  animation: cap-hand 4s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .map-scroll {
  position: absolute; bottom: 28%; left: 48%; width: 70px; height: 12px;
  background: linear-gradient(180deg, #d4b88a 0%, #b89868 50%, #a08050 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: cap-scroll 12s ease-in-out infinite alternate;
}
.scn-camillo-agrees-to-plot .candle-flame {
  position: absolute; top: 30%; right: 20%; width: 16px; height: 22px;
  background: radial-gradient(ellipse at 50% 40%, #ffe080 0%, #f0a040 40%, #d07020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,160,64,.3), 0 0 60px 16px rgba(240,160,64,.15);
  animation: cap-candle 2s ease-in-out infinite alternate;
}
@keyframes cap-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; } }
@keyframes cap-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(.97); } 100% { transform: scaleY(1); } }
@keyframes cap-figure-a { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1.5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cap-figure-b { 0% { transform: rotate(1deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-1.5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cap-hand { 0% { opacity: .3; transform: scaleX(.8); } 50% { opacity: .7; transform: scaleX(1.2); } 100% { opacity: .4; transform: scaleX(.9); } }
@keyframes cap-scroll { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes cap-candle { 0% { transform: scale(1) rotate(-3deg); opacity: .8; } 25% { transform: scale(1.06) rotate(2deg); opacity: 1; } 50% { transform: scale(.97) rotate(-2deg); opacity: .9; } 75% { transform: scale(1.04) rotate(3deg); opacity: 1; } 100% { transform: scale(1) rotate(-3deg); opacity: .8; } }

/* leontes-oath */
.scn-leontes-oath {
  background: 
    linear-gradient(180deg, #1a1015 0%, #2a1a1a 40%, #3a2020 100%),
    radial-gradient(ellipse at 20% 80%, #4a2520 0%, transparent 60%);
}
.scn-leontes-oath .bg-deep { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 70%, #2a1510 0%, transparent 80%); animation: lo-bg 12s ease-in-out infinite alternate; }
.scn-leontes-oath .wall { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background:linear-gradient(180deg, #3a2520 0%, #2a1a15 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.6); }
.scn-leontes-oath .candle-flame { position:absolute; bottom:30%; left:38%; width:8px; height:20px; background:linear-gradient(180deg, #ffd080 0%, #ff6020 50%, #401000 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ff8020, 0 0 40px 12px rgba(255,128,32,.4); animation: lo-flame 1.5s ease-in-out infinite; }
.scn-leontes-oath .figure-oath { position:absolute; bottom:18%; left:45%; width:28px; height:60px; background:linear-gradient(180deg, #1a0a0a 0%, #0a0500 100%); border-radius:45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lo-oath-body 6s ease-in-out infinite; }
.scn-leontes-oath .hand-raised { position:absolute; bottom:50%; left:48%; width:12px; height:18px; background:#0a0500; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: lo-hand 4s ease-in-out infinite; }
.scn-leontes-oath .witness-left { position:absolute; bottom:20%; left:20%; width:24px; height:50px; background:linear-gradient(180deg, #2a1510 0%, #0a0500 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: lo-witness 8s ease-in-out infinite; }
.scn-leontes-oath .witness-right { position:absolute; bottom:20%; right:22%; width:24px; height:50px; background:linear-gradient(180deg, #2a1510 0%, #0a0500 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: lo-witness 9s ease-in-out infinite reverse; }
.scn-leontes-oath .star-point { position:absolute; top:15%; left:60%; width:4px; height:4px; background:radial-gradient(circle, #fffac0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,250,192,.5); animation: lo-star 3s ease-in-out infinite alternate; }
@keyframes lo-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lo-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:.85 } }
@keyframes lo-oath-body { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lo-hand { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(-15deg) translateY(-4px) } 60% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes lo-witness { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lo-star { 0% { transform: scale(1) opacity:.4 } 50% { transform: scale(1.5) opacity:.8 } 100% { transform: scale(0.8) opacity:.6 } }

/* paulina-conditions */
.scn-paulina-conditions {
  background:
    linear-gradient(180deg, #1a1020 0%, #251530 40%, #2a1a3a 100%),
    radial-gradient(ellipse at 50% 90%, #3a2040 0%, transparent 70%);
}
.scn-paulina-conditions .bg-dark { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, #201030 0%, transparent 80%); animation: pc-bg 15s ease-in-out infinite alternate; }
.scn-paulina-conditions .curtain { position:absolute; top:5%; left:5%; right:5%; height:70%; background:linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 100%); border-radius:0 0 30% 30%; box-shadow: inset 0 -8px 30px rgba(0,0,0,.7); animation: pc-curtain 20s ease-in-out infinite; }
.scn-paulina-conditions .paul-fig { position:absolute; bottom:22%; left:35%; width:22px; height:55px; background:linear-gradient(180deg, #1a0a1a 0%, #0a0010 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: pc-paul 7s ease-in-out infinite; }
.scn-paulina-conditions .leontes-fig { position:absolute; bottom:20%; left:55%; width:28px; height:60px; background:linear-gradient(180deg, #1a0a10 0%, #050010 100%); border-radius:45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pc-leontes 9s ease-in-out infinite; }
.scn-paulina-conditions .ghost-hermione { position:absolute; bottom:25%; left:45%; width:26px; height:58px; background:linear-gradient(180deg, rgba(200,180,220,0.25) 0%, rgba(150,130,180,0.05) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(3px); animation: pc-ghost 8s ease-in-out infinite alternate; }
.scn-paulina-conditions .small-lamp { position:absolute; bottom:30%; left:48%; width:6px; height:10px; background:radial-gradient(circle, #ffc080 0%, #a05020 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 16px 4px #ffa050; animation: pc-lamp 2s ease-in-out infinite; }
.scn-paulina-conditions .floor-line { position:absolute; bottom:15%; left:10%; right:10%; height:3px; background:linear-gradient(90deg, transparent 0%, #3a2030 30%, #3a2030 70%, transparent 100%); animation: pc-floor 12s ease-in-out infinite; }
@keyframes pc-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes pc-curtain { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes pc-paul { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(1deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pc-leontes { 0% { transform: translateX(0) rotate(1deg) } 40% { transform: translateX(-4px) rotate(-2deg) } 80% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes pc-ghost { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-8px) scale(1.05); opacity:.5 } 100% { transform: translateY(4px) scale(0.95); opacity:.25 } }
@keyframes pc-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.9) } }
@keyframes pc-floor { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }

/* gentleman-announces-florizel */
.scn-gentleman-announces-florizel {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 50%, #b09870 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-gentleman-announces-florizel .bg-bright { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); animation: gf-bg 18s ease-in-out infinite alternate; }
.scn-gentleman-announces-florizel .column-left { position:absolute; bottom:0; left:10%; width:8%; height:80%; background:linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius:2% 2% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.15); animation: gf-column 25s ease-in-out infinite; }
.scn-gentleman-announces-florizel .column-right { position:absolute; bottom:0; right:10%; width:8%; height:80%; background:linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius:2% 2% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.15); animation: gf-column 30s ease-in-out infinite reverse; }
.scn-gentleman-announces-florizel .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #b09870 0%, #807050 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-gentleman-announces-florizel .announcer { position:absolute; bottom:10%; left:22%; width:18px; height:45px; background:linear-gradient(180deg, #705030 0%, #402810 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: gf-announcer 6s ease-in-out infinite; }
.scn-gentleman-announces-florizel .florizel { position:absolute; bottom:12%; left:45%; width:24px; height:55px; background:linear-gradient(180deg, #8a6040 0%, #503020 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: gf-florizel 8s ease-in-out infinite; }
.scn-gentleman-announces-florizel .princess { position:absolute; bottom:10%; left:58%; width:22px; height:50px; background:linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: gf-princess 9s ease-in-out infinite reverse; }
.scn-gentleman-announces-florizel .doorway-arch { position:absolute; bottom:20%; left:35%; right:35%; height:60%; border:4px solid #b09870; border-bottom:none; border-radius:50% 50% 0 0; background:transparent; box-shadow: 0 0 30px rgba(200,180,140,.3); animation: gf-arch 15s ease-in-out infinite; }
@keyframes gf-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gf-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes gf-announcer { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gf-florizel { 0% { transform: translateY(0) rotate(1deg) } 40% { transform: translateY(-4px) rotate(-1deg) } 80% { transform: translateY(2px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes gf-princess { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gf-arch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }

/* leontes-compares-to-hermione */
.scn-leontes-compares-to-hermione {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a08868 100%),
    radial-gradient(ellipse at 50% 30%, #f0e4c8 0%, transparent 70%);
}
.scn-leontes-compares-to-hermione .bg-light { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 80%); animation: lh-bg 20s ease-in-out infinite alternate; }
.scn-leontes-compares-to-hermione .pedestal { position:absolute; bottom:25%; left:50%; width:40px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #b09878 0%, #806850 100%); border-radius:4%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-leontes-compares-to-hermione .statue-hermione { position:absolute; bottom:35%; left:50%; width:30px; height:55px; transform:translateX(-50%); background:linear-gradient(180deg, #d0c0a8 0%, #b09880 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; box-shadow: 0 0 20px rgba(200,180,160,.4); animation: lh-statue 7s ease-in-out infinite; }
.scn-leontes-compares-to-hermione .leontes-figure { position:absolute; bottom:18%; left:30%; width:26px; height:58px; background:linear-gradient(180deg, #705030 0%, #402810 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation: lh-leontes 6s ease-in-out infinite; }
.scn-leontes-compares-to-hermione .drape { position:absolute; bottom:20%; left:42%; right:45%; height:70%; background:linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius:0 0 40% 40%; clip-path:polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: lh-drape 15s ease-in-out infinite; }
.scn-leontes-compares-to-hermione .glow-spot { position:absolute; top:20%; left:45%; width:60px; height:60px; background:radial-gradient(circle, rgba(255,240,200,0.3) 0%, transparent 100%); border-radius:50%; animation: lh-glow 5s ease-in-out infinite alternate; }
.scn-leontes-compares-to-hermione .shadow-floor { position:absolute; bottom:10%; left:30%; right:30%; height:10%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.15) 70%, transparent 100%); animation: lh-shadow 12s ease-in-out infinite; }
@keyframes lh-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lh-statue { 0% { transform: translateX(-50%) translateY(0) } 30% { transform: translateX(-50%) translateY(-3px) } 70% { transform: translateX(-50%) translateY(2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes lh-leontes { 0% { transform: translateX(0) rotate(0) } 40% { transform: translateX(4px) rotate(2deg) } 80% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lh-drape { 0% { transform: rotate(0) skewX(0) } 50% { transform: rotate(1deg) skewX(1deg) } 100% { transform: rotate(-1deg) skewX(-1deg) } }
@keyframes lh-glow { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.2); opacity:.5 } 100% { transform: scale(0.9); opacity:.4 } }
@keyframes lh-shadow { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }

/* shepherd-flowers – warm sunlit field */
.scn-shepherd-flowers {
  background:
    linear-gradient(180deg, #87ceeb 0%, #fdf5e6 50%, #ffe4b5 100%),
    radial-gradient(ellipse at 60% 20%, #fff8dc 0%, rgba(255,248,220,0) 40%);
}
.scn-shepherd-flowers .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%);
  animation: sf-sky 10s ease-in-out infinite alternate;
}
.scn-shepherd-flowers .sun-glow {
  position: absolute; top: 8%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  animation: sf-sun 6s ease-in-out infinite alternate;
}
.scn-shepherd-flowers .hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
  animation: sf-hills 14s ease-in-out infinite alternate;
}
.scn-shepherd-flowers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #c8b56c 0%, #8b7d3c 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-shepherd-flowers .flowers {
  position: absolute; bottom: 18%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffb6c1 0%, #ff69b4 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-shepherd-flowers .flowers-a {
  left: 25%; animation: sf-flower 4s ease-in-out infinite;
}
.scn-shepherd-flowers .flowers-b {
  left: 70%; width: 28px; height: 28px; bottom: 22%;
  animation: sf-flower 5s ease-in-out infinite reverse;
}
.scn-shepherd-flowers .shepherd {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-figure 6s ease-in-out infinite;
}
.scn-shepherd-flowers .crook {
  position: absolute; bottom: 24%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8b5e3c 0%, #6b3e1c 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: sf-crook 6s ease-in-out infinite;
}
@keyframes sf-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sf-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.15) translate(4px,-4px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes sf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sf-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(15deg) translateY(-2px); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sf-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sf-crook { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }

/* servant-praises-pedlar – sunlit market stall */
.scn-servant-praises-pedlar {
  background:
    linear-gradient(180deg, #f0e68c 0%, #deb887 100%),
    radial-gradient(ellipse at 80% 30%, #fff8dc 0%, transparent 50%);
}
.scn-servant-praises-pedlar .bg-wall {
  position: absolute; inset: 10% 15% 20% 15%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-servant-praises-pedlar .stall-canopy {
  position: absolute; top: 5%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(135deg, #8b4513 0%, #d2691e 50%, #8b4513 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: sp-canopy 8s ease-in-out infinite alternate;
}
.scn-servant-praises-pedlar .stall-table {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #c4a882 0%, #8b6f47 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-servant-praises-pedlar .wares {
  position: absolute; bottom: 32%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #ff7f50 0%, #a0522d 80%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-servant-praises-pedlar .wares-a { left: 38%; animation: sp-wares 3s ease-in-out infinite; }
.scn-servant-praises-pedlar .wares-b { left: 52%; width: 20px; height: 20px; background: radial-gradient(circle, #f4a460 0%, #cd853f 80%); animation: sp-wares 3.5s ease-in-out infinite reverse; }
.scn-servant-praises-pedlar .pedlar {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #2e1a0c 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-pedlar 6s ease-in-out infinite;
}
.scn-servant-praises-pedlar .servant {
  position: absolute; bottom: 24%; right: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-servant 5s ease-in-out infinite;
}
.scn-servant-praises-pedlar .coin {
  position: absolute; bottom: 26%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 80%);
  border-radius: 50%;
  animation: sp-coin 2s ease-in-out infinite alternate;
}
@keyframes sp-canopy { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } 100% { transform: scaleY(1); } }
@keyframes sp-wares { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes sp-pedlar { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes sp-servant { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(-2px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes sp-coin { 0% { opacity: 0.7; } 100% { opacity: 1; transform: scale(1.2); } }

/* autolycus-song-entrance – funny, bright stage scene */
.scn-autolycus-song-entrance {
  background:
    linear-gradient(180deg, #ffdab9 0%, #f0e68c 50%, #ffe4b5 100%),
    radial-gradient(circle at 50% 80%, #fff8dc 0%, transparent 60%);
}
.scn-autolycus-song-entrance .stage-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 100%);
  animation: as-sky 12s ease-in-out infinite alternate;
}
.scn-autolycus-song-entrance .stage-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #cd853f 0%, #8b5e3c 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-autolycus-song-entrance .autolycus {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-walk 3s ease-in-out infinite;
}
.scn-autolycus-song-entrance .hat {
  position: absolute; bottom: 68%; left: 43%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #d2691e 0%, #8b4513 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-5deg);
  animation: as-hat 3s ease-in-out infinite;
}
.scn-autolycus-song-entrance .bag {
  position: absolute; bottom: 32%; left: 35%; width: 18px; height: 20px;
  background: linear-gradient(180deg, #6b3e1c 0%, #3a2010 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(10deg);
  animation: as-bag 3s ease-in-out infinite alternate;
}
.scn-autolycus-song-entrance .guitar {
  position: absolute; bottom: 22%; left: 52%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #a0522d 100%);
  border-radius: 4px;
  transform: rotate(20deg);
  animation: as-guitar 4s ease-in-out infinite;
}
.scn-autolycus-song-entrance .note {
  position: absolute; top: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ff8c00 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-autolycus-song-entrance .note-a { left: 30%; animation: as-note 2s ease-in-out infinite; }
.scn-autolycus-song-entrance .note-b { left: 60%; width: 12px; height: 12px; animation: as-note 2.5s ease-in-out infinite reverse; }
@keyframes as-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes as-walk { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(16px) rotate(-3deg); } }
@keyframes as-hat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes as-bag { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes as-guitar { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes as-note { 0% { transform: translate(0,0) scale(0.8); opacity: 0.6; } 50% { transform: translate(-10px,-20px) scale(1.2); opacity: 1; } 100% { transform: translate(-20px,-40px) scale(0.8); opacity: 0.4; } }

/* mopsa-dorcas-banter – funny, sunlit barn scene */
.scn-mopsa-dorcas-banter {
  background:
    linear-gradient(180deg, #f0e68c 0%, #deb887 60%),
    radial-gradient(ellipse at 20% 40%, #fff8dc 0%, transparent 60%);
}
.scn-mopsa-dorcas-banter .barn-wall {
  position: absolute; inset: 10% 10% 15% 10%;
  background: linear-gradient(180deg, #bc8f8f 0%, #a0522d 100%);
  border-radius: 8px;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.4);
}
.scn-mopsa-dorcas-banter .barn-roof {
  position: absolute; top: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(135deg, #8b4513 0%, #d2691e 50%, #8b4513 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: md-roof 10s ease-in-out infinite alternate;
}
.scn-mopsa-dorcas-banter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c4a882 0%, #8b7d3c 100%);
}
.scn-mopsa-dorcas-banter .milk-pail {
  position: absolute; bottom: 15%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-mopsa-dorcas-banter .milk-pail-1 { left: 30%; animation: md-pail 4s ease-in-out infinite; }
.scn-mopsa-dorcas-banter .milk-pail-2 { right: 30%; animation: md-pail 4.5s ease-in-out infinite reverse; }
.scn-mopsa-dorcas-banter .mopsa {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-mopsa 3s ease-in-out infinite;
}
.scn-mopsa-dorcas-banter .dorcas {
  position: absolute; bottom: 24%; right: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2518 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-dorcas 3.2s ease-in-out infinite alternate;
}
.scn-mopsa-dorcas-banter .speech-bubble {
  position: absolute; top: 20%; left: 35%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #fff8dc 0%, #f0e68c 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: md-bubble 2s ease-in-out infinite alternate;
}
@keyframes md-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes md-pail { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes md-mopsa { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes md-dorcas { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes md-bubble { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }

/* Scene 1: leontes-servant-messenger – tense, dim interior */
.scn-leontes-servant-messenger {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a2a1c 70%, #1e1410 100%),
    radial-gradient(ellipse at 30% 80%, #4a3420 0%, transparent 70%);
}
.scn-leontes-servant-messenger .room-bg {
  position: absolute; inset: 0; background: rgba(20,14,10,0.6);
  animation: slm1-room 12s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, rgba(10,8,5,0.8) 0%, transparent 100%);
  animation: slm1-floor 8s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .doorway {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0805 0%, #150f0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 8px 20px rgba(0,0,0,0.6);
  animation: slm1-door 5s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .messenger {
  position: absolute; bottom: 25%; left: 35%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: slm1-messenger 4s ease-in-out infinite;
}
.scn-leontes-servant-messenger .lantern-glow {
  position: absolute; bottom: 40%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c87a3a 0%, #8a4e22 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #a06030, 0 0 60px 20px rgba(160,96,48,0.3);
  animation: slm1-lantern 3s ease-in-out infinite alternate;
}
.scn-leontes-servant-messenger .message-roll {
  position: absolute; bottom: 32%; left: 38%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #d4b878 0%, #a88450 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-20deg);
  animation: slm1-roll 4s ease-in-out infinite;
}
@keyframes slm1-room {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes slm1-floor {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes slm1-door {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.8), 0 0 10px rgba(200,120,50,0.2); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
}
@keyframes slm1-messenger {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes slm1-lantern {
  0% { box-shadow: 0 0 20px 4px #a06030; opacity: 0.8; transform: rotate(-5deg); }
  50% { box-shadow: 0 0 40px 12px #c87a3a; opacity: 1; transform: rotate(5deg); }
  100% { box-shadow: 0 0 25px 6px #a06030; opacity: 0.9; transform: rotate(-2deg); }
}
@keyframes slm1-roll {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

/* Scene 2: leontes-arraignment – dark, dim interior */
.scn-leontes-arraignment {
  background: 
    linear-gradient(180deg, #100a14 0%, #1a1220 30%, #241830 60%, #100a14 100%),
    radial-gradient(ellipse at 50% 80%, #2a1c38 0%, transparent 80%);
}
.scn-leontes-arraignment .dark-chamber {
  position: absolute; inset: 0; background: rgba(8,5,10,0.5);
  animation: la2-chamber 15s ease-in-out infinite alternate;
}
.scn-leontes-arraignment .throne-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1c38 0%, #140e1e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8), 0 10px 20px rgba(0,0,0,0.5);
  animation: la2-throne 7s ease-in-out infinite alternate;
}
.scn-leontes-arraignment .figure-kneeling {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a44 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: center bottom;
  animation: la2-kneel 5s ease-in-out infinite;
}
.scn-leontes-arraignment .torch-glow {
  position: absolute; bottom: 50%; left: 15%; width: 12px; height: 18px;
  background: radial-gradient(circle, #b86a30 0%, #6a3a1a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #8a4a22, 0 0 80px 30px rgba(138,74,34,0.3);
  animation: la2-torch 3s ease-in-out infinite alternate;
}
.scn-leontes-arraignment .chain-links {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 18px;
  background: repeating-linear-gradient(90deg, #4a3a4a 0px, #4a3a4a 4px, transparent 4px, transparent 8px);
  border-radius: 4px;
  transform: rotate(20deg);
  animation: la2-chain 4s ease-in-out infinite;
}
.scn-leontes-arraignment .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #241830 0%, transparent 100%);
  animation: la2-floor 10s ease-in-out infinite alternate;
}
@keyframes la2-chamber {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes la2-throne {
  0% { transform: translateX(-50%) scale(1); box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8); }
  50% { transform: translateX(-50%) scale(1.02); box-shadow: inset 0 -10px 40px rgba(0,0,0,0.9); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8); }
}
@keyframes la2-kneel {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(0) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(2px) rotate(0deg) translateY(0); }
  75% { transform: translateX(-2px) rotate(-2deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes la2-torch {
  0% { box-shadow: 0 0 30px 6px #8a4a22; opacity: 0.85; }
  50% { box-shadow: 0 0 50px 12px #b86a30; opacity: 1; }
  100% { box-shadow: 0 0 35px 8px #8a4a22; opacity: 0.9; }
}
@keyframes la2-chain {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(3px); }
  100% { transform: rotate(18deg) translateX(0); }
}
@keyframes la2-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

/* Scene 3: cleomenes-dion-oracle – calm, overcast */
.scn-cleomenes-dion-oracle {
  background: 
    linear-gradient(180deg, #9aaea8 0%, #7f948c 30%, #6a7e74 60%, #4a5e54 100%),
    radial-gradient(ellipse at 50% 0%, #bac8c2 0%, transparent 70%);
}
.scn-cleomenes-dion-oracle .sea-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #bac8c2 0%, #7f948c 100%);
  animation: cdo3-sky 20s ease-in-out infinite alternate;
}
.scn-cleomenes-dion-oracle .temple-columns {
  position: absolute; bottom: 25%; left: 50%; width: 90px; height: 100px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg, #a0aaa4 0px, #a0aaa4 12px, transparent 12px, transparent 18px, #a0aaa4 18px, #a0aaa4 30px, transparent 30px, transparent 36px, #a0aaa4 36px, #a0aaa4 48px, transparent 48px, transparent 54px, #a0aaa4 54px, #a0aaa4 66px, transparent 66px, transparent 72px, #a0aaa4 72px, #a0aaa4 84px, transparent 84px, transparent 90px);
  background-size: cover;
  border-radius: 4px;
  animation: cdo3-columns 30s ease-in-out infinite alternate;
}
.scn-cleomenes-dion-oracle .figures {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a5e54 0%, #2a3a32 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: cdo3-figures 8s ease-in-out infinite;
}
.scn-cleomenes-dion-oracle .wave-left {
  position: absolute; bottom: 0; left: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #6a7e74 40%, #4a5e54 100%);
  border-radius: 0 60% 0 0;
  animation: cdo3-wave-l 12s ease-in-out infinite alternate;
}
.scn-cleomenes-dion-oracle .wave-right {
  position: absolute; bottom: 0; right: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #6a7e74 40%, #4a5e54 100%);
  border-radius: 60% 0 0 0;
  animation: cdo3-wave-r 14s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-cleomenes-dion-oracle .cloud-overcast {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(186,200,194,0.8) 0%, rgba(127,148,140,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cdo3-cloud 40s linear infinite;
}
@keyframes cdo3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cdo3-columns {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes cdo3-figures {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cdo3-wave-l {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(0.95); }
}
@keyframes cdo3-wave-r {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.03); }
  100% { transform: translateY(0) scaleX(0.97); }
}
@keyframes cdo3-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

/* Scene 4: court-of-justice – tense, bright interior */
.scn-court-of-justice {
  background: 
    linear-gradient(180deg, #e8dad0 0%, #c8b8aa 40%, #a08878 70%, #6a5a4a 100%),
    radial-gradient(ellipse at 80% 20%, #f0e6da 0%, transparent 60%);
}
.scn-court-of-justice .court-window {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #f0e6da 0%, #c8b8aa 100%);
  border-right: 4px solid #6a5a4a;
  border-bottom: 4px solid #6a5a4a;
  animation: cj4-window 8s ease-in-out infinite alternate;
}
.scn-court-of-justice .window-light {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(135deg, rgba(240,230,218,0.6) 0%, transparent 100%);
  box-shadow: inset 0 0 40px rgba(240,230,218,0.3);
  animation: cj4-light 5s ease-in-out infinite alternate;
}
.scn-court-of-justice .judge-throne {
  position: absolute; bottom: 20%; left: 50%; width: 90px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.3), inset 0 10px 20px rgba(0,0,0,0.4);
  animation: cj4-throne 6s ease-in-out infinite alternate;
}
.scn-court-of-justice .accused {
  position: absolute; bottom: 15%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cj4-accused 4s ease-in-out infinite;
}
.scn-court-of-justice .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(40,30,20,0.6) 0%, transparent 100%);
  animation: cj4-stripe 10s ease-in-out infinite alternate;
}
.scn-court-of-justice .gavel-glow {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 14px;
  background: radial-gradient(circle, #c8a87a 0%, #a08060 50%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #b09070, 0 0 40px 12px rgba(176,144,112,0.4);
  animation: cj4-gavel 3s ease-in-out infinite alternate;
}
@keyframes cj4-window {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes cj4-light {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cj4-throne {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }
  50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 -10px 40px rgba(0,0,0,0.4); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }
}
@keyframes cj4-accused {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(0) rotate(3deg); }
  50% { transform: translateX(4px) rotate(0deg); }
  75% { transform: translateX(0) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cj4-stripe {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes cj4-gavel {
  0% { box-shadow: 0 0 10px 2px #b09070; opacity: 0.8; transform: rotate(-10deg); }
  50% { box-shadow: 0 0 25px 8px #c8a87a; opacity: 1; transform: rotate(10deg); }
  100% { box-shadow: 0 0 15px 4px #b09070; opacity: 0.9; transform: rotate(-5deg); }
}

/* Scene: lord-reports-camillo-betrayal */
.scn-lord-reports-camillo-betrayal {
  background:
    linear-gradient(180deg, #d4b48c 0%, #b89a7a 40%, #8a6e52 100%),
    radial-gradient(ellipse at 50% 30%, #f5e0c0 0%, transparent 70%);
}
.scn-lord-reports-camillo-betrayal .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, #b89a7a 0%, #c8a88a 50%, #b89a7a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-lord-reports-camillo-betrayal .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3a2e 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-lord-reports-camillo-betrayal .throne {
  position:absolute; bottom:25%; left:50%; width:80px; height:100px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #8a6e52 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-lord-reports-camillo-betrayal .figure-reporter {
  position:absolute; bottom:30%; left:30%; width:28px; height:60px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrcb-bow 2s ease-in-out infinite;
}
.scn-lord-reports-camillo-betrayal .figure-leontes {
  position:absolute; bottom:28%; left:55%; width:32px; height:70px;
  background: linear-gradient(180deg, #704020 0%, #4a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrcb-sit 3s ease-in-out infinite;
}
.scn-lord-reports-camillo-betrayal .candle {
  position:absolute; bottom:38%; left:40%; width:6px; height:14px;
  background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 16px 8px rgba(255,208,96,0.6), 0 0 32px 16px rgba(255,208,96,0.3);
  animation: lrcb-flicker 2s ease-in-out infinite;
}
.scn-lord-reports-camillo-betrayal .shadow-overlay {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.4) 100%);
  animation: lrcb-shadow-pulse 4s ease-in-out infinite;
}
@keyframes lrcb-bow {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lrcb-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lrcb-flicker {
  0% { opacity:0.8; box-shadow: 0 0 12px 6px rgba(255,208,96,0.4); }
  50% { opacity:1; box-shadow: 0 0 24px 12px rgba(255,208,96,0.7); }
  100% { opacity:0.85; box-shadow: 0 0 16px 8px rgba(255,208,96,0.5); }
}
@keyframes lrcb-shadow-pulse {
  0%,100% { opacity:0.8; }
  50% { opacity:1; }
}

/* Scene: florizel-fears */
.scn-florizel-fears {
  background:
    linear-gradient(180deg, #0f0c1a 0%, #1a1426 50%, #0f0c1a 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e3a 0%, transparent 80%);
}
.scn-florizel-fears .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0812 0%, #1a1426 100%);
}
.scn-florizel-fears .light-circle {
  position:absolute; bottom:30%; left:50%; width:120px; height:120px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(240,200,120,0.15) 0%, transparent 70%);
  border-radius:50%;
  animation: flf-breath 3s ease-in-out infinite alternate;
}
.scn-florizel-fears .figure-florizel {
  position:absolute; bottom:25%; left:50%; width:30px; height:65px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1222 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flf-tremble 1.6s ease-in-out infinite;
}
.scn-florizel-fears .shadow-florizel {
  position:absolute; bottom:20%; left:48%; width:40px; height:15px;
  background: rgba(0,0,0,0.6);
  border-radius:50%;
  filter: blur(4px);
  animation: flf-shadow-move 2s ease-in-out infinite;
}
.scn-florizel-fears .doorway {
  position:absolute; bottom:15%; left:20%; width:50px; height:80px;
  background: linear-gradient(180deg, #2a203a 0%, #0a0812 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: flf-door-sway 4s ease-in-out infinite;
}
.scn-florizel-fears .hand-clutching {
  position:absolute; bottom:30%; left:55%; width:12px; height:18px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: flf-clutch 1.5s ease-in-out infinite;
}
.scn-florizel-fears .dust-motes {
  position:absolute; top:20%; left:30%; width:4px; height:4px;
  background: rgba(255,255,255,0.2);
  border-radius:50%;
  box-shadow: 20px 30px 0 rgba(255,255,255,0.1), -10px 50px 0 rgba(255,255,255,0.15);
  animation: flf-drift 12s linear infinite;
}
@keyframes flf-breath {
  0% { transform: translateX(-50%) scale(0.95); opacity:0.6; }
  50% { transform: translateX(-50%) scale(1.05); opacity:0.9; }
  100% { transform: translateX(-50%) scale(0.98); opacity:0.7; }
}
@keyframes flf-tremble {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes flf-shadow-move {
  0%,100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(0.9); }
}
@keyframes flf-door-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes flf-clutch {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes flf-drift {
  0% { transform: translateY(0); opacity:0.2; }
  50% { transform: translateY(30px); opacity:0.6; }
  100% { transform: translateY(60px); opacity:0.1; }
}

/* Scene: leontes-advises */
.scn-leontes-advises {
  background:
    linear-gradient(135deg, #e8c8a8 0%, #d4a878 50%, #c09868 100%),
    radial-gradient(ellipse at 70% 20%, #f5dcc0 0%, transparent 60%);
}
.scn-leontes-advises .bg-warm-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d4b898 0%, #e0c8a8 100%);
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.1);
}
.scn-leontes-advises .floor-warm {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-leontes-advises .figure-leontes-advising {
  position:absolute; bottom:28%; left:45%; width:34px; height:72px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ladv-breathe 4s ease-in-out infinite;
}
.scn-leontes-advises .figure-lady {
  position:absolute; bottom:30%; left:55%; width:28px; height:60px;
  background: linear-gradient(180deg, #c09070 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ladv-look-up 3s ease-in-out infinite;
}
.scn-leontes-advises .window-light {
  position:absolute; top:10%; left:70%; width:60px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,160,0.6) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  animation: ladv-window 8s ease-in-out infinite alternate;
}
.scn-leontes-advises .gentle-glow {
  position:absolute; bottom:35%; left:50%; width:100px; height:80px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,200,150,0.2) 0%, transparent 70%);
  border-radius:50%;
  animation: ladv-glow-pulse 5s ease-in-out infinite;
}
@keyframes ladv-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ladv-look-up {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ladv-window {
  0% { opacity:0.5; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.6; transform: scale(0.98); }
}
@keyframes ladv-glow-pulse {
  0%,100% { opacity:0.3; transform: translateX(-50%) scale(1); }
  50% { opacity:0.6; transform: translateX(-50%) scale(1.1); }
}

/* Scene: paulina-warning-leontes */
.scn-paulina-warning-leontes {
  background:
    linear-gradient(180deg, #d4a87a 0%, #b88868 40%, #9a7050 100%),
    radial-gradient(ellipse at 50% 20%, #e8c8a0 0%, transparent 70%);
}
.scn-paulina-warning-leontes .bg-court {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #c8a080 0%, #b09070 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
}
.scn-paulina-warning-leontes .floor-court {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%);
  border-radius: 0 0 15% 15% / 0 0 10% 10%;
}
.scn-paulina-warning-leontes .throne-court {
  position:absolute; bottom:25%; left:50%; width:80px; height:95px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #8a6a52 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-paulina-warning-leontes .figure-paulina {
  position:absolute; bottom:28%; left:30%; width:26px; height:58px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwl-point 1.5s ease-in-out infinite;
}
.scn-paulina-warning-leontes .figure-leontes-court {
  position:absolute; bottom:26%; left:55%; width:34px; height:70px;
  background: linear-gradient(180deg, #704020 0%, #4a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwl-recoil 2s ease-in-out infinite;
}
.scn-paulina-warning-leontes .torch {
  position:absolute; bottom:38%; left:60%; width:6px; height:16px;
  background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #c06020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(255,160,64,0.5), 0 0 40px 20px rgba(255,160,64,0.2);
  animation: pwl-torch-flicker 2.4s ease-in-out infinite;
}
.scn-paulina-warning-leontes .shadow-court {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 50%, transparent 20%, rgba(0,0,0,0.5) 100%);
  animation: pwl-shadow-strech 3s ease-in-out infinite;
}
.scn-paulina-warning-leontes .scroll {
  position:absolute; bottom:30%; left:35%; width:14px; height:20px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b898 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pwl-scroll-drop 4s ease-in-out infinite;
}
@keyframes pwl-point {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-10deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-15deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pwl-recoil {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(5deg); }
}
@keyframes pwl-torch-flicker {
  0% { opacity:0.8; box-shadow: 0 0 15px 8px rgba(255,160,64,0.4); }
  50% { opacity:1; box-shadow: 0 0 25px 12px rgba(255,160,64,0.7); }
  100% { opacity:0.9; box-shadow: 0 0 18px 10px rgba(255,160,64,0.5); }
}
@keyframes pwl-shadow-strech {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
}
@keyframes pwl-scroll-drop {
  0% { transform: translateY(0) rotate(0deg); opacity:0; }
  20% { transform: translateY(0) rotate(0deg); opacity:1; }
  80% { transform: translateY(0) rotate(0deg); opacity:1; }
  100% { transform: translateY(10px) rotate(10deg); opacity:0; }
}

.scn-autolycus-soliloquy-exchange {
  background: linear-gradient(180deg, #f8f5e0 0%, #ffe8b0 30%, #ffd880 60%, #e0b060 100%),
              radial-gradient(ellipse at 70% 20%, #fff5d0 0%, transparent 60%);
}
.scn-autolycus-soliloquy-exchange .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #add8e6 0%, #b0e0e6 50%, #f0f8ff 100%); opacity:0.6; animation: au-sky 14s ease-in-out infinite alternate; }
.scn-autolycus-soliloquy-exchange .market-stall { position:absolute; bottom:25%; left:10%; right:20%; height:40%; background: linear-gradient(135deg, #d2b48c 0%, #c19a6b 50%, #a67c52 100%); border-radius: 10% 80% 0 0; box-shadow: inset 0 -8px 15px rgba(80,40,10,0.4); animation: au-stall 20s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .figure-autolycus { position:absolute; bottom:30%; left:45%; width:35px; height:70px; background: linear-gradient(180deg, #6b4c3b 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: au-figure 3s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .ear { position:absolute; bottom:55%; left:48%; width:12px; height:20px; background: radial-gradient(circle at 30% 30%, #dfc0a0 0%, #b8956a 100%); border-radius: 50% 50% 30% 30%; box-shadow: -2px 0 3px rgba(0,0,0,0.2); animation: au-ear 4s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .hand { position:absolute; bottom:35%; left:42%; width:16px; height:24px; background: linear-gradient(180deg, #c9a87c 0%, #8b6b4a 100%); border-radius: 40% 40% 20% 20%; transform-origin: 50% 100%; animation: au-hand 2.5s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .coin { position:absolute; bottom:28%; left:38%; width:14px; height:14px; background: radial-gradient(circle, #ffd700 0%, #b8860b 60%, #8b6508 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,215,0,0.6); animation: au-coin 5s ease-in-out infinite; }
.scn-autolycus-soliloquy-exchange .shadow { position:absolute; bottom:25%; left:40%; width:80px; height:8px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50%; animation: au-shadow 4s ease-in-out infinite; }
@keyframes au-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes au-stall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateX(2px) } 100% { transform: scaleY(1) } }
@keyframes au-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes au-ear { 0% { transform: scale(1) } 50% { transform: scale(1.2,0.8) } 100% { transform: scale(1) } }
@keyframes au-hand { 0% { transform: rotate(10deg) translateY(0) } 30% { transform: rotate(-5deg) translateY(-4px) } 60% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes au-coin { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-8px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }
@keyframes au-shadow { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(0.8); opacity:0.4 } 100% { transform: scaleX(1); opacity:0.6 } }

.scn-shepherd-clown-approach {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #fffacd 100%),
              radial-gradient(ellipse at 30% 80%, #ffe68f 0%, transparent 70%);
}
.scn-shepherd-clown-approach .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e68c 0%, #fff8dc 100%); opacity:0.4; animation: sca-sky 12s ease-in-out infinite alternate; }
.scn-shepherd-clown-approach .path { position:absolute; bottom:20%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #cdb38c 0%, #a08050 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: sca-path 18s ease-in-out infinite; }
.scn-shepherd-clown-approach .clown { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #ffcc99 0%, #e69966 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sca-clown 3s ease-in-out infinite; }
.scn-shepherd-clown-approach .hat { position:absolute; bottom:68%; left:33%; width:44px; height:18px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0c 100%); border-radius: 60% 60% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: sca-hat 5s ease-in-out infinite; }
.scn-shepherd-clown-approach .shop { position:absolute; bottom:30%; right:10%; width:60px; height:50px; background: linear-gradient(135deg, #d2691e 0%, #a0522d 50%, #8b4513 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); animation: sca-shop 15s ease-in-out infinite; }
.scn-shepherd-clown-approach .sign { position:absolute; bottom:45%; right:18%; width:20px; height:8px; background: #f5deb3; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sca-sign 7s ease-in-out infinite; }
.scn-shepherd-clown-approach .shadow-clown { position:absolute; bottom:20%; left:30%; width:60px; height:6px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50%; animation: sca-shadow 4s ease-in-out infinite; }
@keyframes sca-sky { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes sca-path { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sca-clown { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sca-hat { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes sca-shop { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes sca-sign { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes sca-shadow { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(0.9); opacity:0.3 } 100% { transform: scaleX(1); opacity:0.5 } }

.scn-shepherd-clown-plot {
  background: linear-gradient(180deg, #ffff99 0%, #ffeb3b 40%, #ffc107 100%),
              radial-gradient(ellipse at 50% 100%, #ff9800 0%, transparent 60%);
  filter: contrast(1.1);
}
.scn-shepherd-clown-plot .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffdd57 0%, #ffe082 100%); opacity:0.7; animation: scp-sky 8s ease-in-out infinite alternate; }
.scn-shepherd-clown-plot .ground-plot { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c8a96e 0%, #8b6f47 100%); box-shadow: inset 0 10px 25px rgba(0,0,0,0.5); animation: scp-ground 12s ease infinite; }
.scn-shepherd-clown-plot .figure-left { position:absolute; bottom:25%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #4a2e2a 0%, #2d1b1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scp-fig-left 3s ease-in-out infinite; }
.scn-shepherd-clown-plot .figure-right { position:absolute; bottom:25%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #5a3e2e 0%, #3a2620 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scp-fig-right 3s ease-in-out infinite; }
.scn-shepherd-clown-plot .bundle { position:absolute; bottom:30%; left:45%; width:20px; height:18px; background: linear-gradient(135deg, #9e7c53 0%, #6b502e 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 0 10px 2px rgba(255,215,0,0.3); animation: scp-bundle 6s ease-in-out infinite; }
.scn-shepherd-clown-plot .secret-shadow { position:absolute; bottom:20%; left:30%; right:30%; height:10px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, transparent 100%); animation: scp-shadow 4s ease-in-out infinite; }
.scn-shepherd-clown-plot .eye-watch { position:absolute; top:20%; right:15%; width:10px; height:10px; background: radial-gradient(circle, #fff 0%, #000 80%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(255,255,255,0.5); animation: scp-eye 4s ease-in-out infinite; }
@keyframes scp-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes scp-ground { 0% { background-position:0 0 } 50% { background-position:5px 0 } 100% { background-position:0 0 } }
@keyframes scp-fig-left { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(-2deg) } 60% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes scp-fig-right { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes scp-bundle { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes scp-shadow { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(0.8); opacity:0.2 } 100% { transform: scaleX(1); opacity:0.4 } }
@keyframes scp-eye { 0% { transform: scale(1); box-shadow: 0 0 8px 2px white; } 50% { transform: scale(1.5); box-shadow: 0 0 20px 6px white; } 100% { transform: scale(1); } }

.scn-clown-brother-law {
  background: linear-gradient(180deg, #f0e68c 0%, #ffd700 30%, #daa520 100%),
              radial-gradient(circle at 80% 20%, #fff8dc 0%, transparent 60%);
}
.scn-clown-brother-law .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c4de 0%, #add8e6 100%); opacity:0.5; animation: cbl-sky 20s ease-in-out infinite alternate; }
.scn-clown-brother-law .floor { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #deb887 0%, #c8a96e 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,0.3); animation: cbl-floor 10s ease infinite; }
.scn-clown-brother-law .clown-brother { position:absolute; bottom:30%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #ffcc99 0%, #e68a5e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cbl-clown 2.5s ease-in-out infinite; }
.scn-clown-brother-law .crown { position:absolute; bottom:68%; left:36%; width:28px; height:12px; background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: cbl-crown 4s ease-in-out infinite; }
.scn-clown-brother-law .puppy { position:absolute; bottom:15%; left:60%; width:20px; height:20px; background: radial-gradient(circle at 60% 30%, #f5deb3 0%, #d2b48c 60%, #a08050 100%); border-radius: 50% 50% 40% 40%; animation: cbl-puppy 3s ease-in-out infinite; }
.scn-clown-brother-law .fardel { position:absolute; bottom:28%; right:15%; width:25px; height:20px; background: linear-gradient(135deg, #8b4513 0%, #5c2e0c 100%); border-radius: 15% 15% 25% 25%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5); animation: cbl-fardel 6s ease-in-out infinite; }
.scn-clown-brother-law .bounce-shadow { position:absolute; bottom:10%; left:30%; right:30%; height:8px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%); animation: cbl-bounce 3s ease-in-out infinite; }
@keyframes cbl-sky { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes cbl-floor { 0% { background-position:0 0 } 50% { background-position:3px 0 } 100% { background-position:0 0 } }
@keyframes cbl-clown { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(4deg) } 60% { transform: translateX(-5px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cbl-crown { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes cbl-puppy { 0% { transform: translateY(0) scale(1) } 30% { transform: translateY(-6px) scale(1.1) } 60% { transform: translateY(-3px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes cbl-fardel { 0% { transform: rotate(0) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0) } }
@keyframes cbl-bounce { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(0.7); opacity:0.2 } 100% { transform: scaleX(1); opacity:0.5 } }

.scn-shepherd-clown-banter { background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 60%), radial-gradient(ellipse at 50% 80%, #ffe87c 0%, transparent 70%); }
.scn-shepherd-clown-banter .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 100%); }
.scn-shepherd-clown-banter .sun { position: absolute; top: 12%; right: 18%; width: 40px; height: 40px; background: radial-gradient(circle, #fff5b0 0%, #ffd700 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); animation: scb-sun 6s ease-in-out infinite alternate; }
.scn-shepherd-clown-banter .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6b8e23 0%, #3a5f0b 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-shepherd-clown-banter .figure.shepherd { position: absolute; bottom: 20%; left: 25%; width: 28px; height: 48px; background: linear-gradient(180deg, #a0522d 0%, #5C3A21 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scb-bob 3s ease-in-out infinite; }
.scn-shepherd-clown-banter .figure.clown { position: absolute; bottom: 20%; right: 25%; width: 30px; height: 50px; background: linear-gradient(180deg, #ff8c00 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scb-bob 3.5s ease-in-out infinite reverse; }
.scn-shepherd-clown-banter .hat { position: absolute; bottom: 46%; right: 24%; width: 20px; height: 14px; background: linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius: 50% 50% 20% 20%; animation: scb-spin 4s linear infinite; }
.scn-shepherd-clown-banter .staff { position: absolute; bottom: 20%; left: 20%; width: 4px; height: 50px; background: linear-gradient(180deg, #8b4513 0%, #5C3A21 100%); transform: rotate(-10deg); animation: scb-staff 5s ease-in-out infinite; }
.scn-shepherd-clown-banter .speech-bubble { position: absolute; top: 25%; left: 40%; width: 40px; height: 28px; background: rgba(255,255,255,0.7); border-radius: 50%; filter: blur(2px); animation: scb-bubble 2s ease-in-out infinite alternate; }
@keyframes scb-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(4px, -4px) scale(1.05); } 100% { transform: translate(-2px, 2px) scale(0.95); } }
@keyframes scb-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scb-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes scb-staff { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes scb-bubble { 0% { transform: scale(1) translate(0, 0); } 50% { transform: scale(1.1) translate(5px, -3px); } 100% { transform: scale(0.95) translate(-3px, 2px); } }

.scn-shepherd-clown-reconciliation { background: linear-gradient(180deg, #f0e68c 0%, #ffd700 40%), radial-gradient(ellipse at 50% 60%, #fff8dc 0%, transparent 70%); }
.scn-shepherd-clown-reconciliation .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a0c4ff 0%, #d4e0ff 100%); animation: scr-sky 12s ease-in-out infinite alternate; }
.scn-shepherd-clown-reconciliation .sun.warm { position: absolute; top: 8%; left: 20%; width: 50px; height: 50px; background: radial-gradient(circle, #fff7d0 0%, #ffb347 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,179,71,0.5); animation: scr-sun 8s ease-in-out infinite alternate; }
.scn-shepherd-clown-reconciliation .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-shepherd-clown-reconciliation .figure.left { position: absolute; bottom: 22%; left: 32%; width: 28px; height: 48px; background: linear-gradient(180deg, #a0522d 0%, #5C3A21 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scr-figure 4s ease-in-out infinite; }
.scn-shepherd-clown-reconciliation .figure.right { position: absolute; bottom: 22%; right: 32%; width: 28px; height: 48px; background: linear-gradient(180deg, #ff8c00 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scr-figure 4s ease-in-out infinite reverse; }
.scn-shepherd-clown-reconciliation .heart { position: absolute; top: 38%; left: 46%; width: 20px; height: 18px; background: #e65c5c; transform: rotate(-45deg); border-radius: 10px 10px 0 0; animation: scr-heart 3s ease-in-out infinite; }
.scn-shepherd-clown-reconciliation .sparkle { position: absolute; top: 30%; right: 25%; width: 6px; height: 6px; background: #fff7d0; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,247,208,0.8); animation: scr-sparkle 2s ease-in-out infinite alternate; }
@keyframes scr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes scr-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(6px, -3px) scale(1.02); } 100% { transform: translate(-4px, 2px) scale(0.98); } }
@keyframes scr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes scr-heart { 0% { transform: rotate(-45deg) scale(1); } 50% { transform: rotate(-45deg) scale(1.2); opacity: 0.8; } 100% { transform: rotate(-45deg) scale(0.95); } }
@keyframes scr-sparkle { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.5; } }

.scn-clown-oath-mockery { background: linear-gradient(180deg, #b0e0ff 0%, #87ceeb 50%), radial-gradient(ellipse at 50% 100%, #ffe87c 0%, transparent 70%); }
.scn-clown-oath-mockery .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #b0e0ff 0%, #d4f0ff 100%); }
.scn-clown-oath-mockery .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #6b8e23 0%, #3a5f0b 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-clown-oath-mockery .figure.clown { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 50px; background: linear-gradient(180deg, #ff8c00 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: com-figure 3s ease-in-out infinite; }
.scn-clown-oath-mockery .hat { position: absolute; bottom: 48%; left: 38%; width: 22px; height: 16px; background: linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius: 50% 50% 20% 20%; animation: com-hat 2.5s ease-in-out infinite; }
.scn-clown-oath-mockery .bottle { position: absolute; bottom: 28%; left: 55%; width: 10px; height: 20px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 30% 30% 10% 10%; transform: rotate(30deg); animation: com-bottle 4s ease-in-out infinite; }
.scn-clown-oath-mockery .hand { position: absolute; bottom: 24%; left: 48%; width: 12px; height: 16px; background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: com-hand 3.5s ease-in-out infinite alternate; }
.scn-clown-oath-mockery .scroll { position: absolute; top: 35%; right: 20%; width: 20px; height: 14px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 20% 20% 20% 20% / 40% 40% 40% 40%; animation: com-scroll 6s ease-in-out infinite alternate; }
@keyframes com-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(8deg); } 50% { transform: translateY(-2px) rotate(-4deg); } 75% { transform: translateY(-4px) rotate(6deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes com-hat { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(-3px, -2px) rotate(-10deg); } 50% { transform: translate(2px, -1px) rotate(15deg); } 75% { transform: translate(-1px, 2px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes com-bottle { 0% { transform: rotate(30deg) translate(0, 0); } 50% { transform: rotate(20deg) translate(4px, -2px); } 100% { transform: rotate(35deg) translate(-2px, 1px); } }
@keyframes com-hand { 0% { transform: rotate(20deg) translate(0, 0); } 50% { transform: rotate(30deg) translate(3px, -1px); } 100% { transform: rotate(15deg) translate(-2px, 2px); } }
@keyframes com-scroll { 0% { transform: scaleY(1) translate(0, 0); } 50% { transform: scaleY(1.1) translate(5px, -3px); } 100% { transform: scaleY(0.95) translate(-3px, 2px); } }

.scn-chapel-statue-revelation { background: linear-gradient(180deg, #1a1a2e 0%, #3a3a5e 50%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%); }
.scn-chapel-statue-revelation .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2c2c4a 0%, #1a1a2e 100%); }
.scn-chapel-statue-revelation .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; }
.scn-chapel-statue-revelation .window { position: absolute; top: 18%; left: 10%; width: 80px; height: 60px; background: linear-gradient(135deg, #87ceeb 0%, #b0e0ff 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(135,206,235,0.5), 0 0 40px rgba(135,206,235,0.3); animation: csr-window 8s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .statue { position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a5a7a 0%, #2a2a4a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: csr-statue 15s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .candle { position: absolute; bottom: 32%; left: 35%; width: 8px; height: 20px; background: linear-gradient(180deg, #f0c080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px rgba(240,192,128,0.6); animation: csr-candle 3s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .light-ray { position: absolute; top: 20%; left: 12%; width: 60px; height: 80px; background: radial-gradient(ellipse at top, rgba(255,255,240,0.3) 0%, transparent 60%); filter: blur(8px); animation: csr-light 10s ease-in-out infinite alternate; }
.scn-chapel-statue-revelation .figure.praying { position: absolute; bottom: 20%; left: 55%; width: 24px; height: 40px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csr-pray 4s ease-in-out infinite; }
@keyframes csr-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(135,206,235,0.5), 0 0 40px rgba(135,206,235,0.3); } 50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(135,206,235,0.7), 0 0 60px rgba(135,206,235,0.5); } 100% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(135,206,235,0.4), 0 0 30px rgba(135,206,235,0.2); } }
@keyframes csr-statue { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes csr-candle { 0% { transform: scaleY(1) translate(0, 0); opacity: 0.8; } 50% { transform: scaleY(1.05) translate(0, -2px); opacity: 1; } 100% { transform: scaleY(0.95) translate(0, 1px); opacity: 0.75; } }
@keyframes csr-light { 0% { transform: translateX(0) scaleY(1); opacity: 0.4; } 50% { transform: translateX(8px) scaleY(1.1); opacity: 0.6; } 100% { transform: translateX(-5px) scaleY(0.9); opacity: 0.3; } }
@keyframes csr-pray { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* florizel-accepts – warm sunlit outdoor dialogue */
.scn-florizel-accepts {
  background: linear-gradient(180deg, #f6d9a0 0%, #e4b97a 40%, #c88a4a 70%, #7a4a2a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-florizel-accepts .sun-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #f4ca8a 40%, #dba060 100%);
  animation: fa-sky 10s ease-in-out infinite alternate;
}
.scn-florizel-accepts .hills-bg {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9b7a4a 0%, #6b4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  transform: scale(1.02);
  animation: fa-hills 15s ease-in-out infinite alternate;
}
.scn-florizel-accepts .hill-fg {
  position: absolute; bottom: 25%; left: -5%; right: -5%; height: 28%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: fa-hillfg 12s ease-in-out infinite alternate;
}
.scn-florizel-accepts .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fa-figure1 6s ease-in-out infinite;
}
.scn-florizel-accepts .figure-right {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 35% 35% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fa-figure2 7s ease-in-out infinite;
}
.scn-florizel-accepts .cloak {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top center;
  animation: fa-cloak 4s ease-in-out infinite alternate;
}
.scn-florizel-accepts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-florizel-accepts .cloud-1 {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(255,240,210,0.6), rgba(255,240,210,0.1));
  border-radius: 50%; filter: blur(8px);
  animation: fa-drift1 40s linear infinite;
}
.scn-florizel-accepts .cloud-2 {
  position: absolute; top: 18%; right: 8%; width: 60px; height: 15px;
  background: linear-gradient(90deg, rgba(255,240,210,0.5), rgba(255,240,210,0.05));
  border-radius: 50%; filter: blur(6px);
  animation: fa-drift2 55s linear infinite reverse;
}
@keyframes fa-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fa-hills { 0% { transform: scale(1.02) translateY(0); } 50% { transform: scale(1.02) translateY(-4px); } 100% { transform: scale(1.02) translateY(0); } }
@keyframes fa-hillfg { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fa-figure1 { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(2deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fa-figure2 { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(4px) rotate(-3deg); } 70% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fa-cloak { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes fa-drift1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes fa-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* sicilia-plan – sunlit interior planning scene */
.scn-sicilia-plan {
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 40%, #a08050 80%, #605030 100%),
              radial-gradient(ellipse at 30% 40%, #fff0c0 0%, transparent 60%);
}
.scn-sicilia-plan .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-sicilia-plan .window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  margin-left: -40px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d090 100%);
  border: 8px solid #8a6a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.6);
  animation: sp-window 8s ease-in-out infinite alternate;
}
.scn-sicilia-plan .table {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-sicilia-plan .cup {
  position: absolute; bottom: 16%; left: 35%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a3a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: sp-cup 5s ease-in-out infinite alternate;
}
.scn-sicilia-plan .figure-king {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp-king 9s ease-in-out infinite;
}
.scn-sicilia-plan .figure-courtier {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #1a0a00 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp-courtier 7s ease-in-out infinite alternate;
}
.scn-sicilia-plan .scroll {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #f0d8a0 0%, #e0c080 50%, #f0d8a0 100%);
  border-radius: 4px;
  animation: sp-scroll 6s ease-in-out infinite;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-sicilia-plan .sun-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: sp-ray 12s ease-in-out infinite alternate;
}
@keyframes sp-window { 0% { opacity: 0.8; filter: brightness(0.9); } 50% { opacity: 1; filter: brightness(1); } 100% { opacity: 0.85; filter: brightness(0.95); } }
@keyframes sp-cup { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sp-king { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(2deg); } 60% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-courtier { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-scroll { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes sp-ray { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

/* florizel-questions-garb – tense, sharp shadows, sunlit */
.scn-florizel-questions-garb {
  background: linear-gradient(180deg, #fff0c0 0%, #e0b070 30%, #c08850 60%, #805030 100%),
              radial-gradient(ellipse at 40% 60%, #ffe8a0 0%, transparent 50%);
}
.scn-florizel-questions-garb .sky-tens {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c880 60%, #d0a060 100%);
  animation: fq-sky 6s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .shadow-layer {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(80,40,10,0.3) 0%, transparent 100%);
  mix-blend-mode: multiply;
  animation: fq-shadow 8s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .figure-upper {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 30% / 70% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fq-figure 5s ease-in-out infinite;
}
.scn-florizel-questions-garb .garment {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 60%, #702243 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: top center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: fq-garment 4s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .hands {
  position: absolute; bottom: 28%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  animation: fq-hands 7s ease-in-out infinite;
}
.scn-florizel-questions-garb .ground-tens {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: fq-ground 9s ease-in-out infinite alternate;
}
.scn-florizel-questions-garb .cloud-sharp {
  position: absolute; top: 12%; left: 20%; width: 100px; height: 24px;
  background: linear-gradient(90deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: fq-drift1 45s linear infinite;
}
.scn-florizel-questions-garb .cloud-soft {
  position: absolute; top: 22%; right: 10%; width: 70px; height: 18px;
  background: linear-gradient(90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(7px);
  animation: fq-drift2 60s linear infinite reverse;
}
@keyframes fq-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fq-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes fq-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-3deg); } 60% { transform: translateX(-1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fq-garment { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(8deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(0.95); } }
@keyframes fq-hands { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fq-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fq-drift1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(130vw); } }
@keyframes fq-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

/* florizel-commitment – warm close-up of clasped hands */
.scn-florizel-commitment {
  background: linear-gradient(180deg, #f5d8a0 0%, #e0b878 50%, #c09050 100%),
              radial-gradient(circle at 50% 60%, #ffe8b0 0%, transparent 70%);
}
.scn-florizel-commitment .glow-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,220,150,0.4) 0%, transparent 80%);
  animation: fc-glow 5s ease-in-out infinite alternate;
}
.scn-florizel-commitment .hand-left {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 20% 20% / 60% 40% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: fc-handl 3s ease-in-out infinite alternate;
}
.scn-florizel-commitment .hand-right {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 50% 20% 20% / 40% 60% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: fc-handr 3.5s ease-in-out infinite alternate;
}
.scn-florizel-commitment .sleeve-left {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #702243 100%);
  border-radius: 40% 20% 10% 10% / 50% 30% 10% 10%;
  animation: fc-sleevel 4s ease-in-out infinite alternate;
}
.scn-florizel-commitment .sleeve-right {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 40% 10% 10% / 30% 50% 10% 10%;
  animation: fc-sleever 4.2s ease-in-out infinite alternate;
}
.scn-florizel-commitment .light-spot {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  animation: fc-spot 2s ease-in-out infinite alternate;
}
.scn-florizel-commitment .dust {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: rgba(255,220,150,0.6);
  border-radius: 50%;
  box-shadow: 30px 40px 0 0 rgba(255,220,150,0.4), 70px 20px 0 0 rgba(255,220,150,0.3), 100px 60px 0 0 rgba(255,220,150,0.2);
  animation: fc-dust 8s ease-in-out infinite;
}
@keyframes fc-glow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes fc-handl { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes fc-handr { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes fc-sleevel { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes fc-sleever { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes fc-spot { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes fc-dust { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.9; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }

.scn-satyr-dance-arrangement {
  background: 
    linear-gradient(180deg, #7eb8da 0%, #a4d8f0 40%, #f2e8c6 70%, #c9b896 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-satyr-dance-arrangement .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #a4d8f0 0%, #d6eef5 100%); animation: sda-sky 20s ease-in-out infinite alternate; }
.scn-satyr-dance-arrangement .sun { position: absolute; top: 8%; left: 20%; width: 70px; height: 70px; background: radial-gradient(circle, #fff8d0 0%, #ffe47a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px #ffe47a; animation: sda-sun 30s ease-in-out infinite alternate; }
.scn-satyr-dance-arrangement .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8faf7a 0%, #6b8f5e 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); animation: sda-hills 15s ease-in-out infinite; }
.scn-satyr-dance-arrangement .trees-left { position: absolute; bottom: 35%; left: 8%; width: 50px; height: 100px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a25 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: sda-tree 25s ease-in-out infinite; }
.scn-satyr-dance-arrangement .trees-right { position: absolute; bottom: 35%; right: 8%; width: 60px; height: 110px; background: linear-gradient(180deg, #3a6a3a 0%, #1a4a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: sda-tree 30s ease-in-out infinite 5s; }
.scn-satyr-dance-arrangement .dancers { position: absolute; bottom: 28%; left: 35%; width: 120px; height: 60px; background: transparent; animation: sda-dancers 8s ease-in-out infinite; }
.scn-satyr-dance-arrangement .dancers::before, .scn-satyr-dance-arrangement .dancers::after { content: ''; position: absolute; bottom: 0; width: 20px; height: 40px; background: linear-gradient(180deg, #c8a882 0%, #a0805e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-satyr-dance-arrangement .dancers::before { left: 0; animation: sda-dancer-left 8s ease-in-out infinite; }
.scn-satyr-dance-arrangement .dancers::after { right: 0; animation: sda-dancer-right 8s ease-in-out infinite 2s; }
.scn-satyr-dance-arrangement .ground { position: absolute; bottom: 20%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #9ab87a 0%, #7a9a5e 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-satyr-dance-arrangement .grass { position: absolute; bottom: 18%; left: 0; right: 0; height: 8%; background: linear-gradient(90deg, #5a8a4a 0%, #6a9a5a 15%, #5a8a4a 30%, #6a9a5a 45%, #5a8a4a 60%, #6a9a5a 75%, #5a8a4a 100%); filter: blur(2px); animation: sda-grass 4s ease-in-out infinite; }
@keyframes sda-sky   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sda-sun   { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 80px 30px #ffe47a; } 50% { transform: translate(10px, -5px) scale(1.02); box-shadow: 0 0 100px 40px #ffe47a; } 100% { transform: translate(-5px, 5px) scale(0.98); box-shadow: 0 0 60px 20px #ffe47a; } }
@keyframes sda-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sda-tree  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sda-dancers { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes sda-dancer-left { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(10deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 75% { transform: translateY(-6px) rotate(8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sda-dancer-right { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-6px) rotate(-10deg) } 50% { transform: translateY(-3px) rotate(5deg) } 75% { transform: translateY(-5px) rotate(-8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sda-grass { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }

.scn-satyr-dance {
  background: 
    linear-gradient(180deg, #f7d89a 0%, #fce4b8 40%, #f2c882 100%),
    radial-gradient(ellipse at 50% 20%, #fff6d6 0%, transparent 70%);
}
.scn-satyr-dance .stage { position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #b8967a 0%, #8a705a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.2); animation: sd-stage 10s ease-in-out infinite; }
.scn-satyr-dance .backdrop { position: absolute; top: 10%; left: 15%; right: 15%; height: 50%; background: linear-gradient(180deg, #c8a882 0%, #e8c8a0 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; }
.scn-satyr-dance .satyr-left { position: absolute; bottom: 32%; left: 25%; width: 40px; height: 70px; background: linear-gradient(180deg, #a0805e 0%, #7a5e3e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sd-satyr-left 2s ease-in-out infinite; }
.scn-satyr-dance .satyr-left::before { content: ''; position: absolute; top: -20px; left: 5px; width: 30px; height: 30px; background: #a0805e; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(20deg); }
.scn-satyr-dance .satyr-left::after { content: ''; position: absolute; top: 0; right: -10px; width: 15px; height: 25px; background: #7a5e3e; border-radius: 40% 60% 30% 30% / 60% 40% 30% 30%; transform: rotate(-30deg); animation: sd-arm 1.5s ease-in-out infinite; }
.scn-satyr-dance .satyr-right { position: absolute; bottom: 32%; right: 25%; width: 40px; height: 70px; background: linear-gradient(180deg, #b0906e 0%, #8a6a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sd-satyr-right 2.5s ease-in-out infinite; }
.scn-satyr-dance .satyr-right::before { content: ''; position: absolute; top: -20px; left: 5px; width: 30px; height: 30px; background: #b0906e; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); }
.scn-satyr-dance .satyr-right::after { content: ''; position: absolute; top: 0; left: -10px; width: 15px; height: 25px; background: #8a6a4a; border-radius: 60% 40% 30% 30% / 40% 60% 30% 30%; transform: rotate(30deg); animation: sd-arm 1.8s ease-in-out infinite 0.5s; }
.scn-satyr-dance .shadow-left { position: absolute; bottom: 22%; left: 23%; width: 50px; height: 10px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px); animation: sd-shadow 2s ease-in-out infinite; }
.scn-satyr-dance .shadow-right { position: absolute; bottom: 22%; right: 23%; width: 50px; height: 10px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px); animation: sd-shadow 2.5s ease-in-out infinite 0.5s; }
.scn-satyr-dance .sunburst { position: absolute; top: 5%; left: 50%; width: 120px; height: 120px; transform: translateX(-50%); background: radial-gradient(circle, #fff8d0 0%, #ffe47a 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 100px 40px #ffe47a; animation: sd-sunburst 12s ease-in-out infinite; }
@keyframes sd-stage { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sd-satyr-left { 0% { transform: rotate(-5deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-8deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes sd-satyr-right { 0% { transform: rotate(5deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(5deg) } }
@keyframes sd-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-30deg) } }
@keyframes sd-shadow { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.2); opacity:0.3 } 100% { transform: scale(1); opacity:0.6 } }
@keyframes sd-sunburst { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7 } }

.scn-polixenes-advice-to-florizel {
  background: 
    linear-gradient(180deg, #f2d69a 0%, #fce8b8 40%, #e8c88a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-polixenes-advice-to-florizel .garden-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #b8d0a0 0%, #8ab07a 100%); }
.scn-polixenes-advice-to-florizel .arch { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 70%; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.15); animation: paf-arch 20s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .king { position: absolute; bottom: 25%; left: 30%; width: 50px; height: 90px; background: linear-gradient(180deg, #b8886a 0%, #8a604a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: paf-king 10s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .king::before { content: ''; position: absolute; top: -25px; left: 5px; width: 40px; height: 35px; background: #c8987a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; border: 3px solid #d0a080; }
.scn-polixenes-advice-to-florizel .young-man { position: absolute; bottom: 25%; right: 30%; width: 45px; height: 85px; background: linear-gradient(180deg, #d0b090 0%, #a0806a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: paf-young 12s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .young-man::before { content: ''; position: absolute; top: -22px; left: 5px; width: 35px; height: 30px; background: #e0c0a0; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-polixenes-advice-to-florizel .flowers { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%; background: repeating-linear-gradient(90deg, #c8553d 0%, #c8553d 4px, transparent 4px, transparent 20px); mask-image: radial-gradient(circle at 30% 50%, black 0%, transparent 60%); animation: paf-flowers 8s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .light-rays { position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(135deg, transparent 0%, rgba(255,255,200,0.3) 30%, transparent 60%); animation: paf-rays 15s ease-in-out infinite; }
.scn-polixenes-advice-to-florizel .shadow-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%); filter: blur(10px); }
@keyframes paf-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes paf-king { 0% { transform: translate(0, 0) rotate(-2deg) } 50% { transform: translate(2px, -3px) rotate(2deg) } 100% { transform: translate(0, 0) rotate(-2deg) } }
@keyframes paf-young { 0% { transform: translate(0, 0) rotate(2deg) } 50% { transform: translate(-2px, -4px) rotate(-2deg) } 100% { transform: translate(0, 0) rotate(2deg) } }
@keyframes paf-flowers { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes paf-rays { 0% { transform: skewX(0deg) } 50% { transform: skewX(5deg) } 100% { transform: skewX(0deg) } }

.scn-florizel-protestation {
  background: 
    linear-gradient(180deg, #d0e8f0 0%, #f0f8ff 40%, #c0d8e8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-florizel-protestation .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #8ac0e0 0%, #b8d8f0 100%); animation: fp-sky 25s ease-in-out infinite; }
.scn-florizel-protestation .sun { position: absolute; top: 5%; right: 15%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8d0 0%, #ffe47a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 100px 50px #ffe47a; animation: fp-sun 20s ease-in-out infinite; }
.scn-florizel-protestation .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #a0b87a 0%, #709060 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.15); }
.scn-florizel-protestation .hand-left { position: absolute; bottom: 35%; left: 30%; width: 50px; height: 70px; background: linear-gradient(180deg, #d0b090 0%, #a0806a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fp-hand-left 3s ease-in-out infinite; }
.scn-florizel-protestation .hand-left::before { content: ''; position: absolute; top: -20px; left: 5px; width: 40px; height: 30px; background: #d0b090; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; }
.scn-florizel-protestation .hand-right { position: absolute; bottom: 35%; right: 30%; width: 50px; height: 70px; background: linear-gradient(180deg, #c8a882 0%, #987a5e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fp-hand-right 3.5s ease-in-out infinite; }
.scn-florizel-protestation .hand-right::before { content: ''; position: absolute; top: -20px; left: 5px; width: 40px; height: 30px; background: #c8a882; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; }
.scn-florizel-protestation .light-burst { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 80px; height: 80px; background: radial-gradient(circle, #fff8d0 0%, #ffe47a 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 150px 80px #ffe47a; animation: fp-burst 4s ease-in-out infinite alternate; }
.scn-florizel-protestation .shadow-cast { position: absolute; bottom: 18%; left: 25%; right: 25%; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(8px); animation: fp-shadow 6s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fp-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes fp-hand-left { 0% { transform: translate(0, 0) rotate(-10deg) scale(1) } 25% { transform: translate(5px, -5px) rotate(-15deg) scale(1.02) } 50% { transform: translate(0, 0) rotate(5deg) scale(1) } 75% { transform: translate(-5px, 5px) rotate(-5deg) scale(0.98) } 100% { transform: translate(0, 0) rotate(-10deg) scale(1) } }
@keyframes fp-hand-right { 0% { transform: translate(0, 0) rotate(10deg) scale(1) } 25% { transform: translate(-5px, 5px) rotate(15deg) scale(1.02) } 50% { transform: translate(0, 0) rotate(-5deg) scale(1) } 75% { transform: translate(5px, -5px) rotate(5deg) scale(0.98) } 100% { transform: translate(0, 0) rotate(10deg) scale(1) } }
@keyframes fp-burst { 0% { transform: translateX(-50%) scale(0.8); opacity:0.6 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7 } }
@keyframes fp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Scene IDs: prison-paulina-first, paulina-meets-emilia, paulina-plans-advocacy, paulina-takes-baby */

/* === Scene 1: prison-paulina-first === */
.scn-prison-paulina-first {
  background:
    linear-gradient(135deg, #1a0e0a 0%, #2a1a12 40%, #0d0806 100%),
    radial-gradient(ellipse at 30% 70%, #4a2a1a 0%, transparent 60%);
}

.scn-prison-paulina-first .wall-left {
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-right: 2px solid #0d0806;
  animation: pp1-wall 14s ease-in-out infinite alternate;
}
.scn-prison-paulina-first .wall-right {
  position: absolute;
  right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  border-left: 2px solid #0d0806;
  animation: pp1-wall 14s ease-in-out infinite alternate-reverse;
}
.scn-prison-paulina-first .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: pp1-floor 18s ease-in-out infinite;
}
.scn-prison-paulina-first .window {
  position: absolute;
  top: 15%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e0a 80%);
  border: 4px solid #0d0806;
  border-radius: 8px;
  box-shadow: inset 0 0 20px #2a1a12;
  animation: pp1-window 10s ease-in-out infinite;
}
.scn-prison-paulina-first .door {
  position: absolute;
  bottom: 0; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border: 2px solid #0d0806;
  border-radius: 4px 4px 0 0;
  animation: pp1-door 20s ease-in-out infinite;
}
.scn-prison-paulina-first .figure-paulina {
  position: absolute;
  bottom: 20%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pp1-figure 4s ease-in-out infinite;
}
.scn-prison-paulina-first .figure-gaoler {
  position: absolute;
  bottom: 20%; right: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pp1-figure 4.8s ease-in-out infinite reverse;
}
.scn-prison-paulina-first .torch {
  position: absolute;
  bottom: 28%; left: 25%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #a06030 0%, #4a2a1a 100%);
  border-radius: 2px;
  animation: pp1-torch 2s ease-in-out infinite;
}
.scn-prison-paulina-first .torch-glow {
  position: absolute;
  bottom: 25%; left: 23%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,120,40,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pp1-torchglow 2s ease-in-out infinite alternate;
}

@keyframes pp1-wall { 0% { opacity: .9 } 100% { opacity: .7 } }
@keyframes pp1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pp1-window { 0% { box-shadow: inset 0 0 10px #2a1a12 } 50% { box-shadow: inset 0 0 30px #4a3a2a } 100% { box-shadow: inset 0 0 10px #2a1a12 } }
@keyframes pp1-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pp1-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 pp1-torch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.1) scaleX(0.9) } }
@keyframes pp1-torchglow { 0% { opacity: .6; transform: scale(1) } 100% { opacity: .9; transform: scale(1.2) } }

/* === Scene 2: paulina-meets-emilia === */
.scn-paulina-meets-emilia {
  background:
    linear-gradient(135deg, #0d0806 0%, #1a0e0a 40%, #0d0806 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a12 0%, transparent 70%);
}

.scn-paulina-meets-emilia .wall-back {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%);
  animation: pm2-wall 20s ease-in-out infinite alternate;
}
.scn-paulina-meets-emilia .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
  animation: pm2-floor 16s ease-in-out infinite;
}
.scn-paulina-meets-emilia .candle-stand {
  position: absolute;
  bottom: 20%; left: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 2px;
  animation: pm2-stand 8s ease-in-out infinite;
}
.scn-paulina-meets-emilia .figure-paulina {
  position: absolute;
  bottom: 20%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pm2-figure 5s ease-in-out infinite;
}
.scn-paulina-meets-emilia .figure-emilia {
  position: absolute;
  bottom: 20%; right: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pm2-figure 5.5s ease-in-out infinite reverse;
}
.scn-paulina-meets-emilia .baby-bundle {
  position: absolute;
  bottom: 24%; right: 30%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pm2-baby 3s ease-in-out infinite;
}
.scn-paulina-meets-emilia .candle-flame {
  position: absolute;
  bottom: 38%; left: 19.5%; width: 4px; height: 8px;
  background: radial-gradient(circle, #ffc060 0%, #ff8020 60%, transparent 80%);
  border-radius: 50%;
  animation: pm2-flame 1.5s ease-in-out infinite;
}
.scn-paulina-meets-emilia .candle-glow {
  position: absolute;
  bottom: 30%; left: 16%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,160,40,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pm2-glow 2s ease-in-out infinite alternate;
}

@keyframes pm2-wall { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes pm2-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pm2-stand { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes pm2-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pm2-baby { 0% { transform: scale(1) } 50% { transform: scale(0.95) } 100% { transform: scale(1) } }
@keyframes pm2-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pm2-glow { 0% { opacity: .5; transform: scale(1) } 100% { opacity: .8; transform: scale(1.3) } }

/* === Scene 3: paulina-plans-advocacy === */
.scn-paulina-plans-advocacy {
  background:
    linear-gradient(180deg, #0d0806 0%, #1a0e0a 30%, #0d0806 100%),
    radial-gradient(ellipse at 60% 50%, #2a1a12 0%, transparent 60%);
}

.scn-paulina-plans-advocacy .cell-wall {
  position: absolute;
  left: 0; top: 0; bottom: 0; width: 40%;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  border-right: 2px solid #050302;
  animation: pa3-wall 20s ease-in-out infinite alternate;
}
.scn-paulina-plans-advocacy .cell-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.7);
}
.scn-paulina-plans-advocacy .table {
  position: absolute;
  bottom: 15%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: pa3-table 12s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .figure-paulina-close {
  position: absolute;
  bottom: 20%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pa3-figure 6s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .figure-emilia-behind {
  position: absolute;
  bottom: 20%; right: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pa3-figure 7s ease-in-out infinite reverse;
}
.scn-paulina-plans-advocacy .hand-gesture {
  position: absolute;
  bottom: 28%; left: 30%; width: 14px; height: 6px;
  background: #2a1a12;
  border-radius: 50%;
  animation: pa3-hand 2s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .candle-left {
  position: absolute;
  bottom: 35%; left: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffc060 0%, #a06030 100%);
  border-radius: 2px;
  animation: pa3-candle 3s ease-in-out infinite;
}
.scn-paulina-plans-advocacy .candle-right {
  position: absolute;
  bottom: 32%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffc060 0%, #a06030 100%);
  border-radius: 2px;
  animation: pa3-candle 3.5s ease-in-out infinite reverse;
}
.scn-paulina-plans-advocacy .ambient-light {
  position: absolute;
  bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: pa3-ambient 8s ease-in-out infinite alternate;
}

@keyframes pa3-wall { 0% { opacity: .8 } 100% { opacity: .6 } }
@keyframes pa3-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pa3-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 pa3-hand { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes pa3-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pa3-ambient { 0% { opacity: .4; transform: scale(1) } 100% { opacity: .7; transform: scale(1.2) } }

/* === Scene 4: paulina-takes-baby === */
.scn-paulina-takes-baby {
  background:
    linear-gradient(180deg, #0d0806 0%, #1a0e0a 40%, #0d0806 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%);
}

.scn-paulina-takes-baby .stone-wall {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: pt4-wall 18s ease-in-out infinite alternate;
}
.scn-paulina-takes-baby .shadow-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  animation: pt4-floor 14s ease-in-out infinite;
}
.scn-paulina-takes-baby .figure-gaoler-reaches {
  position: absolute;
  bottom: 20%; left: 35%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pt4-gaoler 4.5s ease-in-out infinite;
}
.scn-paulina-takes-baby .baby-tiny {
  position: absolute;
  bottom: 26%; left: 33%; width: 14px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pt4-baby 2s ease-in-out infinite;
}
.scn-paulina-takes-baby .figure-paulina-reaches {
  position: absolute;
  bottom: 20%; right: 30%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pt4-paulina 4s ease-in-out infinite reverse;
}
.scn-paulina-takes-baby .sparkle-motion {
  position: absolute;
  bottom: 28%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffc060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pt4-sparkle 1.5s ease-in-out infinite;
}
.scn-paulina-takes-baby .torchlight {
  position: absolute;
  bottom: 40%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,120,40,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: pt4-torchlight 3s ease-in-out infinite alternate;
}

@keyframes pt4-wall { 0% { opacity: .7 } 100% { opacity: .9 } }
@keyframes pt4-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pt4-gaoler { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pt4-baby { 0% { transform: scale(1) } 50% { transform: scale(0.9) translateY(2px) } 100% { transform: scale(1) } }
@keyframes pt4-paulina { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pt4-sparkle { 0% { opacity: .3; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .3; transform: scale(0.5) } }
@keyframes pt4-torchlight { 0% { opacity: .4; transform: scale(1) } 100% { opacity: .8; transform: scale(1.3) } }

/* ── antigonus-dream ── */
.scn-antigonus-dream {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1e1e2a 50%, #141420 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-antigonus-dream .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3b3b5e 0%, #2a2a44 40%, #1e1e30 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-antigonus-dream .storm-clouds {
  position: absolute; top: 8%; left: 5%; right: 5%; height: 12%;
  background: rgba(60,60,80,0.4); border-radius: 60% 40% 50% 50%; filter: blur(10px);
  animation: ad-cloud 20s linear infinite;
}
.scn-antigonus-dream .hills-distant {
  position: absolute; bottom: 35%; left: -10%; right: -10%; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: ad-hills 12s ease-in-out infinite alternate;
}
.scn-antigonus-dream .path {
  position: absolute; bottom: 30%; left: 40%; right: 30%; height: 8%;
  background: linear-gradient(90deg, transparent, #4a3a2a 40%, #3a2a1a 60%, transparent);
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  animation: ad-path 8s ease-in-out infinite;
}
.scn-antigonus-dream .figure-antigonus {
  position: absolute; bottom: 28%; left: 45%; 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;
  animation: ad-fig 6s ease-in-out infinite;
}
.scn-antigonus-dream .baby-bundle {
  position: absolute; bottom: 26%; left: 50%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 2px rgba(200,180,150,0.3);
  animation: ad-baby 4s ease-in-out infinite alternate;
}
.scn-antigonus-dream .tears {
  position: absolute; bottom: 22%; left: 46%; width: 4px; height: 6px;
  background: radial-gradient(circle, #8ab4c8 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ad-tears 3s ease-in-out infinite;
}

@keyframes ad-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ad-cloud { 0%{transform:translateX(-20px)} 50%{transform:translateX(10px) scale(1.05)} 100%{transform:translateX(30px)} }
@keyframes ad-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(2px)} }
@keyframes ad-path { 0%{opacity:0.5; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.1)} 100%{opacity:0.5; transform:scaleY(1)} }
@keyframes ad-fig { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(8px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(0) translateY(0) rotate(0)} 75%{transform:translateX(-8px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(-2deg)} }
@keyframes ad-baby { 0%{box-shadow:0 0 6px 1px rgba(200,180,150,0.2)} 50%{box-shadow:0 0 18px 4px rgba(200,180,150,0.5)} 100%{box-shadow:0 0 8px 2px rgba(200,180,150,0.3)} }
@keyframes ad-tears { 0%{transform:translateY(0); opacity:0.8} 50%{transform:translateY(8px); opacity:0.4} 100%{transform:translateY(0); opacity:0.8} }

/* ── antigonus-baby-left ── */
.scn-antigonus-baby-left {
  background:
    linear-gradient(180deg, #2b2b40 0%, #1f1f30 50%, #121220 100%),
    radial-gradient(ellipse at 50% 100%, #1f1f30 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-antigonus-baby-left .sky-ab {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #404060 0%, #2a2a44 40%, #1a1a30 100%);
  animation: ab-sky 18s ease-in-out infinite alternate;
}
.scn-antigonus-baby-left .ground-ab {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ab-ground 20s ease-in-out infinite alternate;
}
.scn-antigonus-baby-left .baby-blossom {
  position: absolute; bottom: 25%; left: 50%; width: 18px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #e8c8a0 0%, #6a4a3a 80%);
  border-radius: 50% 50% 60% 40% / 60% 40% 60% 40%;
  box-shadow: 0 0 20px 4px rgba(220,180,140,0.3);
  animation: ab-baby 5s ease-in-out infinite alternate;
}
.scn-antigonus-baby-left .figure-departing {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-fig 8s ease-in-out infinite;
}
.scn-antigonus-baby-left .flowers {
  position: absolute; bottom: 20%; left: 30%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 20% 60%, #a07850 0%, transparent 60%),
              radial-gradient(ellipse at 60% 40%, #b08860 0%, transparent 50%),
              radial-gradient(ellipse at 80% 70%, #907050 0%, transparent 60%);
  animation: ab-flowers 6s ease-in-out infinite;
}
.scn-antigonus-baby-left .wind {
  position: absolute; top: 12%; left: -10%; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,0.3), transparent);
  filter: blur(3px);
  animation: ab-wind 15s linear infinite;
}

@keyframes ab-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ab-ground { 0%{transform:scaleY(1)} 50%{transform:scaleY(0.97)} 100%{transform:scaleY(1)} }
@keyframes ab-baby { 0%{box-shadow:0 0 10px 2px rgba(220,180,140,0.2); opacity:0.8} 50%{box-shadow:0 0 28px 6px rgba(220,180,140,0.6); opacity:1} 100%{box-shadow:0 0 12px 3px rgba(220,180,140,0.3); opacity:0.85} }
@keyframes ab-fig { 0%{transform:translateX(0) rotate(0)} 30%{transform:translateX(-18px) rotate(-4deg)} 60%{transform:translateX(-36px) rotate(-2deg)} 100%{transform:translateX(-50px) rotate(-5deg)} }
@keyframes ab-flowers { 0%{opacity:0.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:0.7; transform:scale(0.98)} }
@keyframes ab-wind { 0%{transform:translateX(0)} 100%{transform:translateX(200%)} }

/* ── shepherd-finds-babe ── */
.scn-shepherd-finds-babe {
  background:
    linear-gradient(180deg, #2f3f4f 0%, #1f2f3f 50%, #0f1f2f 100%),
    radial-gradient(ellipse at 50% 100%, #1f2f3f 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-shepherd-finds-babe .sky-sf {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%);
  animation: sf-sky 14s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .sea-sf {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: sf-sea 10s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .cliff-sf {
  position: absolute; bottom: 0; left: -10%; right: 60%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.5);
  animation: sf-cliff 24s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .shepherd {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sf-shepherd 6s ease-in-out infinite;
}
.scn-shepherd-finds-babe .baby-sf {
  position: absolute; bottom: 17%; left: 55%; width: 16px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #c8a880 0%, #7a5a3a 80%);
  border-radius: 50% 50% 60% 40% / 60% 40% 60% 40%;
  box-shadow: 0 0 14px 3px rgba(200,168,120,0.35);
  animation: sf-baby 4s ease-in-out infinite alternate;
}
.scn-shepherd-finds-babe .sheep-sf {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 20px;
  background: radial-gradient(circle, #c0c0c0 0%, #808080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: sf-sheep 22s linear infinite;
}
.scn-shepherd-finds-babe .ivy-sf {
  position: absolute; bottom: 5%; left: 5%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 30% 70%, #3a5a2a 0%, transparent 60%),
              radial-gradient(ellipse at 70% 40%, #4a6a3a 0%, transparent 50%);
  border-radius: 50%;
  animation: sf-ivy 8s ease-in-out infinite;
}

@keyframes sf-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes sf-sea { 0%{transform:scaleX(1) translateY(0)} 50%{transform:scaleX(1.02) translateY(-2px)} 100%{transform:scaleX(0.99) translateY(0)} }
@keyframes sf-cliff { 0%{transform:translateX(0)} 50%{transform:translateX(-10px)} 100%{transform:translateX(0)} }
@keyframes sf-shepherd { 0%{transform:translateX(-50%) rotate(0)} 25%{transform:translateX(-50%) rotate(3deg)} 50%{transform:translateX(-50%) rotate(0)} 75%{transform:translateX(-50%) rotate(-3deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes sf-baby { 0%{box-shadow:0 0 8px 2px rgba(200,168,120,0.2)} 50%{box-shadow:0 0 24px 6px rgba(200,168,120,0.6)} 100%{box-shadow:0 0 10px 3px rgba(200,168,120,0.3)} }
@keyframes sf-sheep { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(60px) scale(1.05)} 100%{transform:translateX(120px) scale(1)} }
@keyframes sf-ivy { 0%{transform:scale(1) rotate(-2deg)} 50%{transform:scale(1.08) rotate(4deg)} 100%{transform:scale(1) rotate(-2deg)} }

/* ── time-chorus ── */
.scn-time-chorus {
  background:
    linear-gradient(180deg, #c8c8d0 0%, #a8a8b8 40%, #8888a0 100%),
    radial-gradient(ellipse at 50% 100%, #a8a8b8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-time-chorus .sky-tc {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d0d0dd 0%, #b0b0c0 50%, #9090a8 100%);
  animation: tc-sky 20s ease-in-out infinite alternate;
}
.scn-time-chorus .clouds-tc {
  position: absolute; top: 8%; left: 5%; right: 5%; height: 14%;
  background: rgba(220,220,235,0.5); border-radius: 60% 40% 50% 50%; filter: blur(12px);
  animation: tc-cloud 30s linear infinite;
}
.scn-time-chorus .figure-time {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 4px rgba(200,200,180,0.3);
  animation: tc-fig 10s ease-in-out infinite;
}
.scn-time-chorus .hourglass-tc {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #c8b890 0%, #a09070 50%, #806850 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 40%, 100% 100%, 0% 100%, 20% 40%);
  animation: tc-hourglass 8s ease-in-out infinite;
}
.scn-time-chorus .sands-tc {
  position: absolute; bottom: 30%; left: 31%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d8c090 0%, #b09870 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: tc-sands 6s ease-in-out infinite;
}
.scn-time-chorus .wings-tc {
  position: absolute; bottom: 50%; left: 25%; width: 60px; height: 30px;
  background: rgba(220,220,230,0.4); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(6px);
  animation: tc-wings 5s ease-in-out infinite alternate;
}
.scn-time-chorus .wings-tc:nth-child(2 of .wings-tc) {
  left: 55%; animation-delay: 2.5s;
}

@keyframes tc-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes tc-cloud { 0%{transform:translateX(-40px) scale(1)} 50%{transform:translateX(20px) scale(1.05)} 100%{transform:translateX(40px) scale(1)} }
@keyframes tc-fig { 0%{transform:translateX(-50%) rotate(0) scale(1)} 30%{transform:translateX(-50%) rotate(5deg) scale(1.02)} 60%{transform:translateX(-50%) rotate(-3deg) scale(0.98)} 100%{transform:translateX(-50%) rotate(0) scale(1)} }
@keyframes tc-hourglass { 0%{transform:rotate(0)} 50%{transform:rotate(180deg)} 100%{transform:rotate(360deg)} }
@keyframes tc-sands { 0%{opacity:1; transform:translateY(0)} 50%{opacity:0.3; transform:translateY(10px)} 100%{opacity:1; transform:translateY(0)} }
@keyframes tc-wings { 0%{transform:scaleX(1) rotate(0)} 50%{transform:scaleX(1.3) rotate(10deg)} 100%{transform:scaleX(0.9) rotate(-5deg)} }

.scn-antigonus-bear-attack {
  background: 
    linear-gradient(180deg, #f4e0c0 0%, #d4b88a 30%, #b89565 70%, #8a6a40 100%),
    radial-gradient(ellipse at 30% 60%, #ffd080 0%, transparent 60%);
}
.scn-antigonus-bear-attack .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
}
.scn-antigonus-bear-attack .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-antigonus-bear-attack .window-light {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 120px;
  background: radial-gradient(circle, #ffe4a0 0%, #ffcc80 60%, transparent 100%);
  border-radius: 10%; opacity: 0.7;
  box-shadow: 0 0 60px 30px #ffcc80, 0 0 120px 60px rgba(255,204,128,0.3);
  animation: ab-window 4s ease-in-out infinite alternate;
}
.scn-antigonus-bear-attack .bear {
  position: absolute; bottom: 30%; left: 55%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-bear 1.5s ease-in-out infinite;
}
.scn-antigonus-bear-attack .man {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ab-man 2s ease-in-out infinite;
}
.scn-antigonus-bear-attack .handkerchief {
  position: absolute; bottom: 50%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4c8b0 0%, #a89880 100%);
  border-radius: 10% 80% 10% 80%;
  opacity: 0.8;
  animation: ab-hank 6s ease-in-out infinite;
}
.scn-antigonus-bear-attack .rings {
  position: absolute; bottom: 45%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c8a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #c8a050;
  animation: ab-rings 3s ease-in-out infinite alternate;
}
.scn-antigonus-bear-attack .shadow-bear {
  position: absolute; bottom: 30%; left: 55%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  transform: translateX(-10px);
  animation: ab-shadow 1.5s ease-in-out infinite;
}
.scn-antigonus-bear-attack .shadow-man {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  transform: translateX(5px);
  animation: ab-shadow 2s ease-in-out infinite;
}
@keyframes ab-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 ab-bear {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-10px) rotate(-5deg) scale(1.05); }
  50% { transform: translateY(0) rotate(5deg) scale(1); }
  75% { transform: translateY(-5px) rotate(-3deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes ab-man {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-5px) rotate(3deg); }
  60% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ab-hank {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(180deg); }
  100% { transform: translateY(0) rotate(360deg); }
}
@keyframes ab-rings {
  0% { box-shadow: 0 0 8px 2px #c8a050; opacity: 0.7; }
  50% { box-shadow: 0 0 20px 8px #ffd080; opacity: 1; }
  100% { box-shadow: 0 0 12px 4px #c8a050; opacity: 0.8; }
}
@keyframes ab-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-item-handkerchief-rings {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #c8a060 70%, #a88040 100%),
    radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-item-handkerchief-rings .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #d8b888 100%);
}
.scn-item-handkerchief-rings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a88040 0%, #886830 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-item-handkerchief-rings .window-light {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 150px;
  background: radial-gradient(circle, #ffecc0 0%, #ffd080 40%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 80px 40px #ffd080;
  animation: ir-light 6s ease-in-out infinite alternate;
}
.scn-item-handkerchief-rings .paulina {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ir-embrace 4s ease-in-out infinite;
}
.scn-item-handkerchief-rings .princess {
  position: absolute; bottom: 20%; left: 45%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ir-embrace 4s ease-in-out infinite;
}
.scn-item-handkerchief-rings .handkerchief {
  position: absolute; bottom: 55%; left: 42%; width: 24px; height: 24px;
  background: radial-gradient(circle, #e8d8c0 0%, #c8b8a0 100%);
  border-radius: 10% 80% 10% 80%;
  opacity: 0.9;
  animation: ir-hank 8s linear infinite;
}
.scn-item-handkerchief-rings .rings {
  position: absolute; bottom: 50%; left: 44%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd880 0%, #c8a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #ffd880;
  animation: ir-rings 3s ease-in-out infinite alternate;
}
.scn-item-handkerchief-rings .embrace-glow {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 100px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: ir-glow 4s ease-in-out infinite alternate;
}
@keyframes ir-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.08); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ir-embrace {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ir-hank {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-12px) rotate(180deg); opacity: 1; }
  100% { transform: translateY(0) rotate(360deg); opacity: 0.8; }
}
@keyframes ir-rings {
  0% { box-shadow: 0 0 10px 3px #c8a050; opacity: 0.6; }
  50% { box-shadow: 0 0 25px 10px #ffd880; opacity: 1; }
  100% { box-shadow: 0 0 14px 5px #c8a050; opacity: 0.8; }
}
@keyframes ir-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

.scn-queen-death-affects {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d8b890 30%, #b89870 70%, #987858 100%),
    radial-gradient(ellipse at 70% 40%, #ffe0a0 0%, transparent 50%);
}
.scn-queen-death-affects .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%);
}
.scn-queen-death-affects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #987858 0%, #786038 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-queen-death-affects .window-light {
  position: absolute; top: 20%; left: 60%; width: 80px; height: 120px;
  background: radial-gradient(circle, #ffecb0 0%, #ffd080 40%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 60px 30px #ffd080;
  animation: qd-light 7s ease-in-out infinite alternate;
}
.scn-queen-death-affects .king {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qd-king 5s ease-in-out infinite;
}
.scn-queen-death-affects .daughter {
  position: absolute; bottom: 25%; left: 40%; width: 34px; height: 78px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: qd-daughter 6s ease-in-out infinite;
}
.scn-queen-death-affects .paulina {
  position: absolute; bottom: 25%; left: 55%; width: 36px; height: 82px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: qd-paulina 4s ease-in-out infinite;
}
.scn-queen-death-affects .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px #ffc060;
  animation: qd-candle 3s ease-in-out infinite;
}
.scn-queen-death-affects .light-pool {
  position: absolute; bottom: 25%; left: 30%; width: 160px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 80%);
  border-radius: 50%;
  animation: qd-pool 5s ease-in-out infinite alternate;
}
@keyframes qd-light {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes qd-king {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  75% { transform: translateY(-5px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes qd-daughter {
  0% { transform: translateY(0) rotate(1deg); }
  30% { transform: translateY(-3px) rotate(-1deg); }
  60% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes qd-paulina {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(-2deg); }
  40% { transform: translateY(-4px) rotate(0deg); }
  60% { transform: translateY(-1px) rotate(2deg); }
  80% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qd-candle {
  0% { box-shadow: 0 0 8px 2px #ffc060; opacity: 0.8; transform: scaleY(1); }
  50% { box-shadow: 0 0 20px 8px #ffe080; opacity: 1; transform: scaleY(1.1); }
  100% { box-shadow: 0 0 10px 3px #ffc060; opacity: 0.9; transform: scaleY(1); }
}
@keyframes qd-pool {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.1); }
  100% { opacity: 0.25; transform: scale(0.95); }
}

.scn-court-query {
  background:
    linear-gradient(180deg, #f4e4c8 0%, #e0c090 30%, #c8a870 60%, #a88850 100%),
    radial-gradient(ellipse at 80% 30%, #ffe4a0 0%, transparent 50%);
}
.scn-court-query .great-hall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e8d0a8 0%, #d0b088 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.1);
}
.scn-court-query .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a88850 0%, #886838 100%);
}
.scn-court-query .light-beam {
  position: absolute; top: 5%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,228,160,0.6) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: cq-beam 8s ease-in-out infinite alternate;
}
.scn-court-query .figure-1 {
  position: absolute; bottom: 15%; left: 15%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure1 5s ease-in-out infinite;
}
.scn-court-query .figure-2 {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure2 6s ease-in-out infinite;
}
.scn-court-query .figure-3 {
  position: absolute; bottom: 15%; left: 40%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure3 4.5s ease-in-out infinite;
}
.scn-court-query .figure-4 {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure4 7s ease-in-out infinite;
}
.scn-court-query .figure-5 {
  position: absolute; bottom: 15%; left: 68%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cq-figure5 5.5s ease-in-out infinite;
}
.scn-court-query .swoon-figure {
  position: absolute; bottom: 15%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: cq-swoon 4s ease-in-out infinite;
}
@keyframes cq-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}
@keyframes cq-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cq-figure2 {
  0% { transform: translateY(0) rotate(-1deg); }
  20% { transform: translateY(-3px) rotate(2deg); }
  40% { transform: translateY(-1px) rotate(0deg); }
  60% { transform: translateY(-4px) rotate(-2deg); }
  80% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cq-figure3 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cq-figure4 {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cq-figure5 {
  0% { transform: translateY(0) rotate(-1deg); }
  35% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cq-swoon {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-10px) rotate(-20deg) scale(0.9); }
  50% { transform: translateY(-5px) rotate(-10deg) scale(0.95); }
  75% { transform: translateY(-15px) rotate(-30deg) scale(0.85); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}

/* camillo-overhears-autolycus */
.scn-camillo-overhears-autolycus {
  background: linear-gradient(180deg, #fdebb3 0%, #f5c76a 40%, #d9a15a 100%), radial-gradient(ellipse at 70% 60%, #fdebb3 0%, transparent 60%);
}
.scn-camillo-overhears-autolycus .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8fc7e2 0%, #b9d8ee 70%, transparent 100%);
  animation: coa-sky 9s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .sunray {
  position: absolute; top: 10%; left: 70%; width: 90px; height: 90px;
  background: radial-gradient(circle, #fff7cc 0%, #f5c76a99 50%, transparent 70%);
  filter: blur(8px);
  animation: coa-sunray 6s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7c9a5e 0%, #4a6b32 60%, #2f451c 100%);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
}
.scn-camillo-overhears-autolycus .tree {
  position: absolute; bottom: 45%; left: 20%; width: 16px; height: 120px;
  background: linear-gradient(180deg, #5c3a1a 0%, #3d2410 100%);
  border-radius: 4px;
  transform-origin: bottom;
  animation: coa-tree 8s ease-in-out infinite;
}
.scn-camillo-overhears-autolycus .tree::after {
  content: ''; position: absolute; top: -40px; left: -20px; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #4a7a34 0%, #2f5a1e 70%);
  border-radius: 50%;
}
.scn-camillo-overhears-autolycus .bush {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 50px;
  background: radial-gradient(ellipse, #5a7a3a 0%, #2f4a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: scaleX(1.3);
  animation: coa-bush 5s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .figure-autolycus {
  position: absolute; bottom: 38%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #a06a44 0%, #6f4521 40%, #3d2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: coa-figure1 3s ease-in-out infinite;
}
.scn-camillo-overhears-autolycus .figure-autolycus::before {
  content: ''; position: absolute; top: -10px; left: 6px; width: 16px; height: 18px;
  background: radial-gradient(ellipse, #d4a577 0%, #a06a44 100%);
  border-radius: 50%;
}
.scn-camillo-overhears-autolycus .figure-camillo {
  position: absolute; bottom: 40%; left: 62%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: coa-figure2 4s ease-in-out infinite alternate;
}
.scn-camillo-overhears-autolycus .figure-camillo::before {
  content: ''; position: absolute; top: -8px; left: 3px; width: 14px; height: 16px;
  background: radial-gradient(ellipse, #6f5540 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
}
.scn-camillo-overhears-autolycus .shadow {
  position: absolute; bottom: 38%; left: 28%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  filter: blur(4px);
  animation: coa-shadow 3s ease-in-out infinite alternate;
}
@keyframes coa-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes coa-sunray { 0% { transform: scale(1) rotate(0deg); opacity: .7; } 50% { transform: scale(1.05) rotate(3deg); opacity: .9; } 100% { transform: scale(.98) rotate(-2deg); opacity: .6; } }
@keyframes coa-tree { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes coa-bush { 0% { transform: scaleX(1.3) translateY(0); } 50% { transform: scaleX(1.25) translateY(-3px); } 100% { transform: scaleX(1.3) translateY(0); } }
@keyframes coa-figure1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes coa-figure2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes coa-shadow { 0% { transform: scaleX(1); opacity: .4; } 50% { transform: scaleX(1.2); opacity: .6; } 100% { transform: scaleX(1); opacity: .4; } }

/* garment-exchange */
.scn-garment-exchange {
  background: linear-gradient(180deg, #fdf3ce 0%, #f7d9a0 50%, #e6b86a 100%), radial-gradient(ellipse at 30% 50%, #fdf3ce 0%, transparent 50%);
}
.scn-garment-exchange .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9fd0ec 0%, #cae0f0 80%, transparent 100%);
  animation: gex-sky 12s ease-in-out infinite alternate;
}
.scn-garment-exchange .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8cf78 0%, #7fa350 60%, #4f6e2e 100%);
  border-radius: 20% 0 0 0 / 40% 0 0 0;
}
.scn-garment-exchange .figure-seller {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #b88654 0%, #7a5530 50%, #4d3219 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: gex-seller 4s ease-in-out infinite;
}
.scn-garment-exchange .figure-seller::before {
  content: ''; position: absolute; top: -12px; left: 5px; width: 18px; height: 19px;
  background: radial-gradient(ellipse, #d9a87c 0%, #b88654 100%);
  border-radius: 50%;
  transform: rotate(5deg);
}
.scn-garment-exchange .figure-buyer {
  position: absolute; bottom: 40%; left: 50%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3d5a2d 50%, #2a3f1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: gex-buyer 3.5s ease-in-out infinite reverse;
}
.scn-garment-exchange .figure-buyer::before {
  content: ''; position: absolute; top: -10px; left: 4px; width: 16px; height: 17px;
  background: radial-gradient(ellipse, #8aaa7a 0%, #5a7a4a 100%);
  border-radius: 50%;
  transform: rotate(-5deg);
}
.scn-garment-exchange .coat {
  position: absolute; bottom: 45%; left: 42%; width: 32px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8f3927 60%, #632418 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(10deg);
  animation: gex-coat 2s ease-in-out infinite;
}
.scn-garment-exchange .hat {
  position: absolute; bottom: 55%; left: 52%; width: 24px; height: 14px;
  background: linear-gradient(180deg, #c8a050 0%, #8f7030 60%, #6a5220 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-15deg);
  animation: gex-hat 2.5s ease-in-out infinite alternate;
}
.scn-garment-exchange .bag {
  position: absolute; bottom: 38%; left: 60%; width: 18px; height: 14px;
  background: #6b4a2a;
  border-radius: 10%;
  transform: skewY(-10deg);
  animation: gex-bag 3s ease-in-out infinite;
}
@keyframes gex-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gex-seller { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(2deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(-3px) rotate(1deg); } 80% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gex-buyer { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gex-coat { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes gex-hat { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes gex-bag { 0% { transform: skewY(-10deg) translateY(0); } 50% { transform: skewY(-8deg) translateY(-1px); } 100% { transform: skewY(-10deg) translateY(0); } }

/* disguise-plan */
.scn-disguise-plan {
  background: linear-gradient(180deg, #dce7f0 0%, #aecbe0 40%, #7ca5c2 100%), radial-gradient(ellipse at 80% 30%, #f9f3e0 0%, transparent 50%);
}
.scn-disguise-plan .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #aad0ee 0%, #cce2f2 70%, transparent 100%);
  animation: dpl-sky 14s ease-in-out infinite alternate;
}
.scn-disguise-plan .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1e4a6a 60%, #0f304a 100%);
  border-radius: 0 0 0 0;
  animation: dpl-sea 8s ease-in-out infinite alternate;
}
.scn-disguise-plan .ship {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 30px;
  background: linear-gradient(90deg, #5c3a1a 0%, #3d2410 50%, #5c3a1a 100%);
  border-radius: 10% 40% 40% 10% / 30% 50% 50% 30%;
  animation: dpl-ship 12s ease-in-out infinite;
}
.scn-disguise-plan .mast {
  position: absolute; bottom: 45%; left: 65%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3d2010 100%);
  transform-origin: bottom;
  animation: dpl-mast 16s linear infinite;
}
.scn-disguise-plan .figure-camillo {
  position: absolute; bottom: 35%; left: 25%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 60%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: dpl-camillo 3s ease-in-out infinite;
}
.scn-disguise-plan .figure-camillo::before {
  content: ''; position: absolute; top: -10px; left: 4px; width: 16px; height: 17px;
  background: radial-gradient(ellipse, #6f5540 0%, #4a3a2a 100%);
  border-radius: 50%;
}
.scn-disguise-plan .figure-polonius {
  position: absolute; bottom: 35%; left: 40%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #a06a44 0%, #6f4521 50%, #3d2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: dpl-polonius 4s ease-in-out infinite alternate;
}
.scn-disguise-plan .figure-polonius::before {
  content: ''; position: absolute; top: -9px; left: 3px; width: 15px; height: 16px;
  background: radial-gradient(ellipse, #d4a577 0%, #a06a44 100%);
  border-radius: 50%;
  transform: rotate(-5deg);
}
.scn-disguise-plan .cloak {
  position: absolute; bottom: 36%; left: 23%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3d0e10 100%);
  border-radius: 10% 50% 30% 10% / 20% 60% 40% 20%;
  transform: rotate(15deg);
  animation: dpl-cloak 5s ease-in-out infinite;
}
@keyframes dpl-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes dpl-sea { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes dpl-ship { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(1px) rotate(0.5deg); } 60% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dpl-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes dpl-camillo { 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 dpl-polonius { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dpl-cloak { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }

/* camillo-aside-plot */
.scn-camillo-aside-plot {
  background: linear-gradient(180deg, #f8e6c0 0%, #e4c79a 40%, #c6a070 100%), radial-gradient(ellipse at 90% 50%, #c6a070 0%, transparent 60%);
}
.scn-camillo-aside-plot .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9fc8e0 0%, #cde3f0 70%, transparent 100%);
  animation: cap-sky 15s ease-in-out infinite alternate;
}
.scn-camillo-aside-plot .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2e5e7a 0%, #1a3e56 60%, #0a1f30 100%);
  animation: cap-sea 10s ease-in-out infinite alternate;
}
.scn-camillo-aside-plot .cliff {
  position: absolute; bottom: 35%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #a08860 0%, #6f583a 60%, #4a3820 100%);
  border-radius: 30% 10% 0 0 / 50% 20% 0 0;
  transform-origin: bottom left;
  animation: cap-cliff 20s ease-in-out infinite;
}
.scn-camillo-aside-plot .ship {
  position: absolute; bottom: 40%; right: 10%; width: 90px; height: 35px;
  background: linear-gradient(90deg, #4a2a10 0%, #2a1408 50%, #4a2a10 100%);
  border-radius: 10% 50% 50% 10% / 30% 40% 40% 30%;
  animation: cap-ship 18s ease-in-out infinite;
}
.scn-camillo-aside-plot .figure-camillo {
  position: absolute; bottom: 38%; left: 20%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 60%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: cap-camillo 4s ease-in-out infinite;
}
.scn-camillo-aside-plot .figure-camillo::before {
  content: ''; position: absolute; top: -11px; left: 5px; width: 17px; height: 18px;
  background: radial-gradient(ellipse, #6f5540 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform: rotate(10deg);
}
.scn-camillo-aside-plot .staff {
  position: absolute; bottom: 37%; left: 19%; width: 6px; height: 55px;
  background: linear-gradient(180deg, #6f5a3a 0%, #3d2e1a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: cap-staff 3s ease-in-out infinite alternate;
}
.scn-camillo-aside-plot .sail {
  position: absolute; bottom: 45%; right: 12%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b89a 60%, #a08a70 100%);
  clip-path: polygon(0 0, 100% 50%, 100% 100%, 0 100%);
  animation: cap-sail 8s ease-in-out infinite;
}
@keyframes cap-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes cap-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes cap-cliff { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.01) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes cap-ship { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(0.3deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 75% { transform: translateY(1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cap-camillo { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cap-staff { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(17deg) scaleY(1.01); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes cap-sail { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* Scene: perdita-faith */
.scn-perdita-faith {
  background: linear-gradient(180deg, #f9e8c0 0%, #e8d0a0 40%, #b09070 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-perdita-faith .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e8f4 0%, #a0c8e8 100%);
  animation: pf-sky 15s ease-in-out infinite alternate;
}
.scn-perdita-faith .sun {
  position: absolute; top: 12%; left: 28%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff3c0 0%, #f0d080 80%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,208,128,0.4);
  animation: pf-sun 12s ease-in-out infinite;
}
.scn-perdita-faith .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8ba87a 0%, #5c7a4c 100%);
  border-radius: 60% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: pf-hills 20s ease-in-out infinite alternate;
}
.scn-perdita-faith .house {
  position: absolute; bottom: 28%; left: 45%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #c8a878 0%, #9a7850 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: pf-house 9s ease-in-out infinite;
}
.scn-perdita-faith .tree-a {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pf-tree 8s ease-in-out infinite alternate;
}
.scn-perdita-faith .tree-b {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a30 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pf-tree 10s ease-in-out infinite alternate;
}
.scn-perdita-faith .figure {
  position: absolute; bottom: 27%; left: 52%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #a08070 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figure 5s ease-in-out infinite;
}
.scn-perdita-faith .path {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 4px;
  background: #c8b898;
  border-radius: 50%;
  animation: pf-path 7s ease-in-out infinite;
}
.scn-perdita-faith .cloud-c {
  position: absolute; top: 8%; right: 10%; width: 70px; height: 16px;
  background: rgba(255,255,255,0.6); border-radius: 50%;
  filter: blur(5px);
  animation: pf-cloud 40s linear infinite;
}
@keyframes pf-sky    { 0% { opacity:0.9; background-position:0 0; } 50% { opacity:1; background-position:0 10px; } 100% { opacity:0.8; background-position:0 0; } }
@keyframes pf-sun    { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 20px rgba(240,208,128,0.2); } 50% { transform: scale(1.05) rotate(5deg); box-shadow:0 0 60px 30px rgba(240,208,128,0.5); } 100% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 20px rgba(240,208,128,0.2); } }
@keyframes pf-hills  { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pf-house  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pf-tree   { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes pf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes pf-path   { 0% { opacity:0.8; width:30%; } 50% { opacity:1; width:35%; } 100% { opacity:0.8; width:30%; } }
@keyframes pf-cloud  { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* Scene: camillo-assures */
.scn-camillo-assures {
  background: linear-gradient(180deg, #f5e6c8 0%, #dccba8 40%, #a08060 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 50%);
}
.scn-camillo-assures .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #88b8e0 100%);
  animation: ca-sky 18s ease-in-out infinite alternate;
}
.scn-camillo-assures .sun {
  position: absolute; top: 10%; left: 55%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff0b0 0%, #e8c880 80%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(232,200,128,0.3);
  animation: ca-sun 14s ease-in-out infinite;
}
.scn-camillo-assures .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 70% 30% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: ca-hills 22s ease-in-out infinite alternate;
}
.scn-camillo-assures .path {
  position: absolute; bottom: 14%; left: 20%; width: 60%; height: 5px;
  background: #c8b898; border-radius: 50%;
  animation: ca-path 10s ease-in-out infinite;
}
.scn-camillo-assures .figure-camillo {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ca-fig1 6s ease-in-out infinite;
}
.scn-camillo-assures .figure-perdita {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #b09070 0%, #705040 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ca-fig2 6s ease-in-out infinite 1s;
}
.scn-camillo-assures .tree-c {
  position: absolute; bottom: 22%; right: 25%; width: 45px; height: 130px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: ca-tree 9s ease-in-out infinite alternate;
}
.scn-camillo-assures .rock {
  position: absolute; bottom: 16%; left: 55%; width: 30px; height: 20px;
  background: #8a7a6a; border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.2);
  animation: ca-rock 12s ease-in-out infinite;
}
@keyframes ca-sky   { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ca-sun   { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 15px rgba(232,200,128,0.2); } 50% { transform: scale(1.06) rotate(3deg); box-shadow:0 0 60px 25px rgba(232,200,128,0.4); } 100% { transform: scale(1) rotate(0deg); box-shadow:0 0 40px 15px rgba(232,200,128,0.2); } }
@keyframes ca-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ca-path  { 0% { width:60%; opacity:0.8; } 50% { width:65%; opacity:1; } 100% { width:60%; opacity:0.8; } }
@keyframes ca-fig1  { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-2deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes ca-fig2  { 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 ca-tree  { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes ca-rock  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene: autolycus-soliloquy-purse */
.scn-autolycus-soliloquy-purse {
  background: linear-gradient(180deg, #f0e6c0 0%, #dcc890 40%, #a08050 100%),
              radial-gradient(ellipse at 80% 30%, #fff8d0 0%, transparent 50%);
}
.scn-autolycus-soliloquy-purse .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #78b0d8 100%);
  animation: as-sky 16s ease-in-out infinite alternate;
}
.scn-autolycus-soliloquy-purse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c8b888 0%, #a89870 100%);
  border-radius: 20% 30% 0 0 / 10% 20% 0 0;
  animation: as-ground 20s ease-in-out infinite alternate;
}
.scn-autolycus-soliloquy-purse .figure {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: as-figure 4s ease-in-out infinite;
}
.scn-autolycus-soliloquy-purse .hat {
  position: absolute; bottom: 68%; left: 35%; width: 40px; height: 30px;
  background: #6a5a3a; border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: as-hat 3s ease-in-out infinite alternate;
}
.scn-autolycus-soliloquy-purse .purse {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 18px;
  background: #b88860; border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: as-purse 5s ease-in-out infinite;
}
.scn-autolycus-soliloquy-purse .coin-a {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 8px;
  background: #e0d080; border-radius: 50%;
  animation: as-coin 3s ease-in-out infinite 0.2s;
}
.scn-autolycus-soliloquy-purse .coin-b {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 8px;
  background: #e0d080; border-radius: 50%;
  animation: as-coin 3s ease-in-out infinite 0.8s;
}
.scn-autolycus-soliloquy-purse .coin-c {
  position: absolute; bottom: 26%; left: 50%; width: 8px; height: 8px;
  background: #e0d080; border-radius: 50%;
  animation: as-coin 3s ease-in-out infinite 1.5s;
}
@keyframes as-sky    { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes as-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes as-figure { 0% { transform: translateX(0) rotate(-2deg) translateY(0); } 20% { transform: translateX(10px) rotate(2deg) translateY(-2px); } 40% { transform: translateX(20px) rotate(-2deg) translateY(0); } 60% { transform: translateX(30px) rotate(2deg) translateY(-2px); } 80% { transform: translateX(40px) rotate(-2deg) translateY(0); } 100% { transform: translateX(50px) rotate(0deg) translateY(0); } }
@keyframes as-hat   { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes as-purse  { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes as-coin   { 0% { transform: scale(1) translateY(0) rotate(0deg); opacity:1; } 50% { transform: scale(1.5) translateY(-8px) rotate(180deg); opacity:0.6; } 100% { transform: scale(1) translateY(0) rotate(360deg); opacity:1; } }

/* Scene: autolycus-pickpockets */
.scn-autolycus-pickpockets {
  background: linear-gradient(180deg, #f5e8c0 0%, #d8c090 40%, #a08050 100%),
              radial-gradient(ellipse at 60% 40%, #fff8d0 0%, transparent 50%);
}
.scn-autolycus-pickpockets .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #78b0d8 100%);
  animation: ap-sky 14s ease-in-out infinite alternate;
}
.scn-autolycus-pickpockets .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c8b888 0%, #a89870 100%);
  border-radius: 30% 20% 0 0 / 20% 15% 0 0;
  animation: ap-ground 18s ease-in-out infinite alternate;
}
.scn-autolycus-pickpockets .autolycus {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ap-autolycus 5s ease-in-out infinite;
}
.scn-autolycus-pickpockets .clown {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-clown 5s ease-in-out infinite 1s;
}
.scn-autolycus-pickpockets .purse {
  position: absolute; bottom: 15%; left: 38%; width: 20px; height: 15px;
  background: #b88860; border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200,160,80,0.4);
  animation: ap-purse 4s ease-in-out infinite;
}
.scn-autolycus-pickpockets .bag {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 25px;
  background: #7a6a4a; border-radius: 20% 20% 30% 30%;
  animation: ap-bag 6s ease-in-out infinite;
}
.scn-autolycus-pickpockets .post {
  position: absolute; bottom: 20%; right: 20%; width: 8px; height: 100px;
  background: #5a4a30; border-radius: 20%;
  animation: ap-post 10s ease-in-out infinite alternate;
}
.scn-autolycus-pickpockets .cloud-d {
  position: absolute; top: 8%; left: 15%; width: 60px; height: 14px;
  background: rgba(255,255,255,0.5); border-radius: 50%;
  filter: blur(4px);
  animation: ap-cloud 45s linear infinite;
}
@keyframes ap-sky        { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ap-ground     { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ap-autolycus  { 0% { transform: translateX(0) rotate(-1deg) translateY(0); } 25% { transform: translateX(8px) rotate(2deg) translateY(-2px); } 50% { transform: translateX(16px) rotate(-1deg) translateY(0); } 75% { transform: translateX(24px) rotate(2deg) translateY(-2px); } 100% { transform: translateX(32px) rotate(0deg) translateY(0); } }
@keyframes ap-clown      { 0% { transform: translateX(0) rotate(1deg) translateY(0); } 25% { transform: translateX(-6px) rotate(-2deg) translateY(-1px); } 50% { transform: translateX(-12px) rotate(1deg) translateY(0); } 75% { transform: translateX(-18px) rotate(-2deg) translateY(-1px); } 100% { transform: translateX(-24px) rotate(0deg) translateY(0); } }
@keyframes ap-purse      { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes ap-bag        { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ap-post       { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ap-cloud      { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-polixenes-shocked {
  background: 
    linear-gradient(180deg, #2c1f1a 0%, #4a3028 40%, #3d2620 100%),
    radial-gradient(ellipse at 60% 30%, #c8945a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-polixenes-shocked .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #4a3028 0%, #2c1f1a 100%);
  opacity: 0.7;
}
.scn-polixenes-shocked .window-stars {
  position: absolute; top: 8%; left: 55%; width: 35%; height: 40%; 
  background: 
    linear-gradient(180deg, #0e1626 0%, #1a2750 100%),
    radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 50% 10%, #fff 0%, transparent 100%),
    radial-gradient(2px 2px at 70% 50%, #fff 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 85% 20%, #fff 0%, transparent 100%),
    radial-gradient(1px 1px at 40% 70%, #fff 0%, transparent 100%);
  border: 3px solid #6a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.15);
  animation: polx-stars 6s ease-in-out infinite alternate;
}
.scn-polixenes-shocked .desk {
  position: absolute; bottom: 18%; left: 30%; width: 45%; height: 8%; 
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-polixenes-shocked .lamp-glow {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 30px; 
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%; 
  box-shadow: 0 0 40px 16px #c08040, 0 0 80px 30px rgba(192,128,64,0.3);
  animation: polx-lamp 2s ease-in-out infinite alternate;
}
.scn-polixenes-shocked .figure-shock {
  position: absolute; bottom: 20%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a14 0%, #120a08 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: polx-shiver 1.6s ease-in-out infinite alternate;
}
.scn-polixenes-shocked .chair {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 35px;
  background: linear-gradient(135deg, #4a3025 0%, #2a1a15 100%);
  border-radius: 8% 8% 5% 5%; box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
}
@keyframes polx-stars {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes polx-lamp {
  0% { box-shadow: 0 0 30px 12px #c08040, 0 0 60px 20px rgba(192,128,64,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 18px #ffd080, 0 0 90px 30px rgba(255,208,128,0.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px #c08040, 0 0 65px 22px rgba(192,128,64,0.25); opacity: 0.85; }
}
@keyframes polx-shiver {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

.scn-escape-plan {
  background: 
    linear-gradient(180deg, #2a2a2a 0%, #3a3030 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 30% 80%, #5a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-escape-plan .stone-wall {
  position: absolute; inset: 0;
  background: 
    linear-gradient(135deg, #4a4040 0%, #303030 50%, #2a2220 100%);
  background-size: 20px 20px, 30px 30px;
  opacity: 0.9;
}
.scn-escape-plan .archway {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 70%;
  background: radial-gradient(ellipse at 50% 0%, transparent 50%, #2a2220 51%);
  border: 2px solid #3a3028;
  border-bottom: none;
}
.scn-escape-plan .door {
  position: absolute; bottom: 5%; left: 25%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  border: 2px solid #4a3020;
  transform-origin: left center;
  animation: esc-door 3s ease-in-out infinite alternate;
}
.scn-escape-plan .figure-whisperer {
  position: absolute; bottom: 10%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: esc-lean 4s ease-in-out infinite;
}
.scn-escape-plan .figure-listener {
  position: absolute; bottom: 10%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: esc-tilt 4s ease-in-out infinite reverse;
}
.scn-escape-plan .torch-glow {
  position: absolute; bottom: 38%; left: 15%; width: 16px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #ff9040 0%, #c86020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c86020, 0 0 60px 20px rgba(200,96,32,0.3);
  animation: esc-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes esc-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes esc-lean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes esc-tilt {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes esc-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 25px 8px #c86020, 0 0 50px 15px rgba(200,96,32,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 14px #ff9040, 0 0 80px 25px rgba(255,144,64,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 10px #c86020, 0 0 55px 18px rgba(200,96,32,0.25); }
}

.scn-queen-and-mamillius {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a88c 100%),
    radial-gradient(ellipse at 30% 40%, #f0e4d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-queen-and-mamillius .palace-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88c 100%);
  opacity: 0.6;
}
.scn-queen-and-mamillius .window-curtain {
  position: absolute; top: 5%; left: 70%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 4px;
  clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
  animation: qm-curtain 12s ease-in-out infinite alternate;
}
.scn-queen-and-mamillius .throne {
  position: absolute; bottom: 10%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-queen-and-mamillius .queen-figure {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: qm-rock 8s ease-in-out infinite alternate;
}
.scn-queen-and-mamillius .mamillius-figure {
  position: absolute; bottom: 15%; left: 60%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: qm-bounce 4s ease-in-out infinite;
}
.scn-queen-and-mamillius .toy-block {
  position: absolute; bottom: 12%; left: 55%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #c86030 0%, #a04020 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: qm-roll 6s ease-in-out infinite;
}
@keyframes qm-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.95); }
}
@keyframes qm-rock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes qm-bounce {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes qm-roll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(180deg); }
  100% { transform: translateX(0) rotate(360deg); }
}

.scn-sad-tale-winter {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #3a2210 40%, #2a1808 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a20 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-sad-tale-winter .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2210 0%, #2a1808 100%);
  opacity: 0.8;
}
.scn-sad-tale-winter .hearth {
  position: absolute; bottom: 8%; left: 10%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
}
.scn-sad-tale-winter .fire-glow {
  position: absolute; bottom: 15%; left: 15%; width: 22%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #ff8040 0%, #c04020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #c04020, 0 0 100px 40px rgba(192,64,32,0.3);
  animation: stw-fire 2s ease-in-out infinite alternate;
}
.scn-sad-tale-winter .queen-sitting {
  position: absolute; bottom: 12%; left: 50%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: stw-story 10s ease-in-out infinite alternate;
}
.scn-sad-tale-winter .mamillius-lying {
  position: absolute; bottom: 8%; left: 65%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: stw-listen 8s ease-in-out infinite;
}
.scn-sad-tale-winter .winter-window {
  position: absolute; top: 5%; right: 5%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border: 3px solid #2a1a0a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.05);
}
.scn-sad-tale-winter .shadow-goblin {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 35px;
  background: radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.4;
  animation: stw-shadow 6s ease-in-out infinite alternate;
}
@keyframes stw-fire {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 40px 15px #c04020, 0 0 80px 30px rgba(192,64,32,0.2); }
  50% { transform: scale(1.08); opacity: 1; box-shadow: 0 0 70px 25px #ff8040, 0 0 120px 40px rgba(255,128,64,0.3); }
  100% { transform: scale(0.95); opacity: 0.9; box-shadow: 0 0 50px 18px #c04020, 0 0 90px 35px rgba(192,64,32,0.25); }
}
@keyframes stw-story {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}
@keyframes stw-listen {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-12deg); }
}
@keyframes stw-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* Scene: polixenes-camillo-discuss — bright interior, calm */
.scn-polixenes-camillo-discuss {
  background:
    linear-gradient(180deg, #f2e8d5 0%, #dcc8a8 50%, #c4a87a 100%),
    radial-gradient(ellipse at 70% 30%, #e8dcc0 0%, transparent 60%);
}
.scn-polixenes-camillo-discuss .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dac4 0%, #d4c0a8 100%);
  animation: pc-wall 12s ease-in-out infinite alternate;
}
.scn-polixenes-camillo-discuss .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7250 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-polixenes-camillo-discuss .pillar-left {
  position: absolute; bottom: 28%; left: 12%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c0a880 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-polixenes-camillo-discuss .pillar-right {
  position: absolute; bottom: 28%; right: 12%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c0a880 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-polixenes-camillo-discuss .arch-window {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #a8d8e8 0%, #80c0d0 60%, #b0d8e0 100%);
  border-radius: 50% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 30px rgba(160,200,220,0.4);
  animation: pc-window 6s ease-in-out infinite alternate;
}
.scn-polixenes-camillo-discuss .table {
  position: absolute; bottom: 28%; left: 50%; width: 30%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6030 0%, #604020 100%);
  border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
}
.scn-polixenes-camillo-discuss .polixenes {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pc-figure1 8s ease-in-out infinite;
}
.scn-polixenes-camillo-discuss .camillo {
  position: absolute; bottom: 30%; right: 38%; width: 9%; height: 36%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pc-figure2 9s ease-in-out infinite;
}
.scn-polixenes-camillo-discuss .candle {
  position: absolute; bottom: 34%; left: 50%; width: 2%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #e8a040 100%);
  border-radius: 50% 50% 2px 2px / 30% 30% 2px 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.5);
  animation: pc-candle 3s ease-in-out infinite alternate;
}
@keyframes pc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pc-window { 0% { background: radial-gradient(ellipse at 50% 30%, #a8d8e8 0%, #80c0d0 60%, #b0d8e0 100%); } 50% { background: radial-gradient(ellipse at 50% 30%, #c0e8f0 0%, #90d0e0 60%, #b8dce8 100%); } 100% { background: radial-gradient(ellipse at 50% 30%, #a8d8e8 0%, #80c0d0 60%, #b0d8e0 100%); } }
@keyframes pc-figure1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-figure2 { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-1%) rotate(-1deg); } 40% { transform: translateX(1%) rotate(1deg); } 60% { transform: translateX(-2%) rotate(-1deg); } 80% { transform: translateX(1%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-candle { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); transform: scaleY(0.95); } 50% { box-shadow: 0 0 25px 8px rgba(255,200,100,0.7); transform: scaleY(1.05); } 100% { box-shadow: 0 0 18px 5px rgba(255,200,100,0.4); transform: scaleY(0.98); } }

/* Scene: autolycus-singing — sunny road, funny */
.scn-autolycus-singing {
  background:
    linear-gradient(180deg, #5b8fb0 0%, #8fc8e8 40%, #b0d8f0 70%, #e0f0ff 100%);
}
.scn-autolycus-singing .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7ab8d8 0%, #b0d8f0 100%);
  animation: au-sky 10s ease-in-out infinite alternate;
}
.scn-autolycus-singing .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.2);
}
.scn-autolycus-singing .hedge {
  position: absolute; bottom: 45%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: au-hedge 15s ease-in-out infinite;
}
.scn-autolycus-singing .daffodils {
  position: absolute; bottom: 48%; left: 20%; width: 30%; height: 10%;
  background:
    radial-gradient(ellipse at 20% 80%, #f0e040 10%, transparent 25%),
    radial-gradient(ellipse at 40% 70%, #f0e040 10%, transparent 25%),
    radial-gradient(ellipse at 60% 90%, #f0e040 10%, transparent 25%);
  background-size: 100% 100%, 100% 100%, 100% 100%;
  animation: au-flowers 4s ease-in-out infinite;
}
.scn-autolycus-singing .autolycus {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: au-dance 2s ease-in-out infinite;
}
.scn-autolycus-singing .lute {
  position: absolute; bottom: 30%; left: 52%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  animation: au-lute 3s ease-in-out infinite;
}
.scn-autolycus-singing .notes {
  position: absolute; bottom: 60%; left: 55%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d0b0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: au-note 5s linear infinite;
}
@keyframes au-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes au-hedge { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes au-flowers { 0% { transform: scale(0.9) rotate(-2deg); } 50% { transform: scale(1.1) rotate(2deg); } 100% { transform: scale(0.9) rotate(-2deg); } }
@keyframes au-dance { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(4%) rotate(3deg) scale(1.05); } 50% { transform: translateX(0) rotate(-2deg) scale(0.95); } 75% { transform: translateX(-3%) rotate(2deg) scale(1.02); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes au-lute { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes au-note { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.7; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* Scene: autolycus-cheats-clown — sunny roadside, comic */
.scn-autolycus-cheats-clown {
  background:
    linear-gradient(180deg, #6ba0c0 0%, #a0d0e8 50%, #c8e8f8 100%);
}
.scn-autolycus-cheats-clown .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8cc0d8 0%, #b8e0f0 100%);
  animation: ac-sky 14s ease-in-out infinite alternate;
}
.scn-autolycus-cheats-clown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b0a070 0%, #807040 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-autolycus-cheats-clown .clown {
  position: absolute; bottom: 15%; left: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ac-clown 6s ease-in-out infinite;
}
.scn-autolycus-cheats-clown .autolycus {
  position: absolute; bottom: 18%; right: 25%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a4a2a 0%, #2a2a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ac-thief 3s ease-in-out infinite;
}
.scn-autolycus-cheats-clown .coin-pouch {
  position: absolute; bottom: 20%; right: 30%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #b08040 0%, #8a6020 100%);
  border-radius: 50%;
  animation: ac-pouch 4s ease-in-out infinite;
}
.scn-autolycus-cheats-clown .coin {
  position: absolute; bottom: 22%; left: 35%; width: 3%; height: 3%;
  background: radial-gradient(circle, #f0d080 0%, #c09030 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,208,128,0.5);
  animation: ac-coin 5s linear infinite;
}
@keyframes ac-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ac-clown { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(4%) rotate(0deg); } 75% { transform: translateX(2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ac-thief { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-3%) rotate(-5deg) scale(0.9); } 50% { transform: translateX(0) rotate(2deg) scale(1.05); } 75% { transform: translateX(2%) rotate(-3deg) scale(0.95); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes ac-pouch { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes ac-coin { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 50% { transform: translate(20px, -10px) rotate(180deg); opacity: 0.8; } 100% { transform: translate(40px, -20px) rotate(360deg); opacity: 0; } }

/* Scene: shepherd-sheep-shearing — warm pastoral */
.scn-shepherd-sheep-shearing {
  background:
    linear-gradient(180deg, #7fc0d8 0%, #a0d8e8 30%, #c8e8f0 60%, #e8f8e0 100%);
}
.scn-shepherd-sheep-shearing .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90c8e0 0%, #b8dff0 100%);
  animation: ss-sky 16s ease-in-out infinite alternate;
}
.scn-shepherd-sheep-shearing .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a9a4a 0%, #5a8a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: ss-hills 20s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7aaa4a 0%, #5a8a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-shepherd-sheep-shearing .cottage {
  position: absolute; bottom: 18%; left: 15%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #c8a880 0%, #a08050 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ss-cottage 8s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .sheep {
  position: absolute; bottom: 12%; left: 40%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #f0f0e8 0%, #d0d0c0 100%);
  border-radius: 50%;
  animation: ss-sheep 10s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .florizel {
  position: absolute; bottom: 5%; left: 50%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ss-figure1 7s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .perdita {
  position: absolute; bottom: 5%; right: 40%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ss-figure2 9s ease-in-out infinite;
}
.scn-shepherd-sheep-shearing .garland {
  position: absolute; bottom: 27%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #e0b080 0%, #c09060 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,100,0.4);
  animation: ss-garland 6s ease-in-out infinite;
}
@keyframes ss-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ss-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ss-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ss-sheep { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(5%) scale(1.05); } 50% { transform: translateX(10%) scale(0.95); } 75% { transform: translateX(5%) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes ss-figure1 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.03); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ss-figure2 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ss-garland { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }

/* leontes-grateful */
.scn-leontes-grateful {
  background:
    linear-gradient(180deg, #fbe9d7 0%, #e8cba5 40%, #c9a06a 100%),
    radial-gradient(ellipse at 50% 65%, #fce5c0 0%, transparent 70%);
}
.scn-leontes-grateful .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #f2dcc0 0%, #dbb88a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.08); }
.scn-leontes-grateful .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f4a 0%, #5a4228 100%); border-radius: 10% 10% 0 0; }
.scn-leontes-grateful .window { position:absolute; top:10%; right:25%; width:120px; height:150px; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border:6px solid #6a4e2e; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 20px #87ceeb; animation: lg-window 8s ease-in-out infinite alternate; }
.scn-leontes-grateful .figure-left { position:absolute; bottom:26%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #3a2f22 0%, #1e160b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lg-figure 6s ease-in-out infinite; }
.scn-leontes-grateful .figure-right { position:absolute; bottom:26%; right:30%; width:24px; height:48px; background: linear-gradient(180deg, #4d3c2a 0%, #2a1f12 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lg-figure 6s ease-in-out infinite reverse; }
.scn-leontes-grateful .fireglow { position:absolute; bottom:20%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #ffc080 0%, #f08030 40%, transparent 70%); border-radius:50%; animation: lg-fireglow 4s ease-in-out infinite alternate; }
.scn-leontes-grateful .vase { position:absolute; bottom:30%; left:65%; width:20px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; animation: lg-sway 5s ease-in-out infinite; }
.scn-leontes-grateful .cloud { position:absolute; top:12%; right:28%; width:70px; height:15px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(5px); animation: lg-drift 30s linear infinite; }
@keyframes lg-window { 0% { box-shadow: inset 0 0 20px #87ceeb, 0 0 10px rgba(135,206,235,0.3); } 50% { box-shadow: inset 0 0 40px #a0d8ef, 0 0 20px rgba(135,206,235,0.5); } 100% { box-shadow: inset 0 0 25px #87ceeb, 0 0 12px rgba(135,206,235,0.35); } }
@keyframes lg-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lg-fireglow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes lg-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes lg-drift { 0% { transform: translateX(-10px); } 100% { transform: translateX(100vw); } }

/* florizel-libya-story */
.scn-florizel-libya-story {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e3cfb0 30%, #c4a57a 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-florizel-libya-story .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a3845a 0%, #6b4e2c 100%); border-radius: 15% 15% 0 0; }
.scn-florizel-libya-story .throne { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #d4a85c 0%, #a67c3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: fl-throne 12s ease-in-out infinite; }
.scn-florizel-libya-story .figure { position:absolute; bottom:22%; left:32%; width:22px; height:46px; background: linear-gradient(180deg, #2c1f10 0%, #140a04 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: fl-figure 5s ease-in-out infinite; }
.scn-florizel-libya-story .listener { position:absolute; bottom:22%; right:30%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: fl-listener 6s ease-in-out infinite; }
.scn-florizel-libya-story .column-left { position:absolute; top:5%; left:10%; width:20px; height:90%; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius: 10%; box-shadow: 2px 0 8px rgba(0,0,0,0.1); }
.scn-florizel-libya-story .column-right { position:absolute; top:5%; right:10%; width:20px; height:90%; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius: 10%; box-shadow: -2px 0 8px rgba(0,0,0,0.1); }
.scn-florizel-libya-story .banner { position:absolute; top:5%; left:50%; width:100px; height:30px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #702243 100%); border-radius: 4px; transform: translateX(-50%); animation: fl-banner 4s ease-in-out infinite; }
.scn-florizel-libya-story .scroll { position:absolute; bottom:30%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: fl-scroll 8s ease-in-out infinite; }
.scn-florizel-libya-story .lightbeam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,245,224,0.3) 0%, transparent 80%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); animation: fl-beam 6s ease-in-out infinite alternate; }
@keyframes fl-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fl-figure { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes fl-listener { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fl-banner { 0% { transform: translateX(-50%) skewX(0); } 50% { transform: translateX(-50%) skewX(5deg); } 100% { transform: translateX(-50%) skewX(0); } }
@keyframes fl-scroll { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes fl-beam { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.05); } 100% { opacity:0.5; transform: scaleY(0.98); } }

/* leontes-blessing */
.scn-leontes-blessing {
  background:
    linear-gradient(180deg, #f7e0c0 0%, #d4b080 30%, #8c6a44 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e7 0%, #c9a06a 40%, transparent 70%);
}
.scn-leontes-blessing .altar { position:absolute; bottom:20%; left:38%; width:80px; height:50px; background: linear-gradient(180deg, #b8945a 0%, #7a5a32 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-leontes-blessing .cross { position:absolute; bottom:35%; left:50%; width:12px; height:70px; background: #6a4a2a; transform: translateX(-50%); border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: lb-cross 10s ease-in-out infinite; }
.scn-leontes-blessing .cross::before { content:''; position:absolute; top:30%; left:-20px; width:52px; height:12px; background: #6a4a2a; border-radius: 4px; }
.scn-leontes-blessing .figure-kneeling { position:absolute; bottom:18%; left:25%; width:22px; height:40px; background: linear-gradient(180deg, #2a1f12 0%, #0e0a04 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lb-kneel 7s ease-in-out infinite; }
.scn-leontes-blessing .figure-holy { position:absolute; bottom:18%; right:25%; width:24px; height:48px; background: linear-gradient(180deg, #4d3a20 0%, #1e160b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lb-holy 7s ease-in-out infinite; }
.scn-leontes-blessing .stained-glass { position:absolute; top:5%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #b87878 0%, #c8553d 30%, #5e1a1d 60%, #702243 100%); border:6px solid #4a2a1a; border-radius: 10% 10% 5% 5%; filter: drop-shadow(0 0 20px rgba(200,80,60,0.5)); animation: lb-glass 8s ease-in-out infinite alternate; }
.scn-leontes-blessing .pew { position:absolute; bottom:20%; left:10%; width:30%; height:20px; background: #5a4228; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-leontes-blessing .candle { position:absolute; bottom:35%; left:48%; width:6px; height:18px; background: #f0e0c0; border-radius: 2px; animation: lb-candle 3s ease-in-out infinite; }
.scn-leontes-blessing .lightray { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,248,230,0.4) 0%, transparent 80%); clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%); animation: lb-ray 6s ease-in-out infinite alternate; }
@keyframes lb-cross { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes lb-kneel { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lb-holy { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(0) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lb-glass { 0% { opacity:0.7; filter: drop-shadow(0 0 15px rgba(200,80,60,0.4)); } 50% { opacity:1; filter: drop-shadow(0 0 30px rgba(200,80,60,0.8)); } 100% { opacity:0.8; filter: drop-shadow(0 0 20px rgba(200,80,60,0.5)); } }
@keyframes lb-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes lb-ray { 0% { opacity:0.3; transform: scaleY(0.95); } 50% { opacity:0.6; transform: scaleY(1.05); } 100% { opacity:0.4; transform: scaleY(1); } }

/* lord-reports-polixenes */
.scn-lord-reports-polixenes {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #d5bfa0 30%, #8a7555 100%),
    radial-gradient(ellipse at 50% 50%, #fff5e0 0%, #d5bfa0 30%, transparent 70%);
}
.scn-lord-reports-polixenes .table { position:absolute; bottom:15%; left:30%; width:200px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2e16 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-lord-reports-polixenes .chair { position:absolute; bottom:25%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: lr-chair 8s ease-in-out infinite; }
.scn-lord-reports-polixenes .figure-standing { position:absolute; bottom:20%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #1e160b 0%, #0a0602 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lr-tremble 2s ease-in-out infinite; }
.scn-lord-reports-polixenes .curtain-left { position:absolute; top:0; left:0; width:80px; height:100%; background: linear-gradient(180deg, #702243 0%, #4a162a 40%, #2a0a18 100%); border-radius: 0 60% 60% 0 / 0 50% 50% 0; animation: lr-curtain 5s ease-in-out infinite alternate; }
.scn-lord-reports-polixenes .curtain-right { position:absolute; top:0; right:0; width:80px; height:100%; background: linear-gradient(180deg, #702243 0%, #4a162a 40%, #2a0a18 100%); border-radius: 60% 0 0 60% / 50% 0 0 50%; animation: lr-curtain 5s ease-in-out infinite alternate-reverse; }
.scn-lord-reports-polixenes .document { position:absolute; bottom:25%; left:45%; width:40px; height:30px; background: #f0e0c0; border-radius: 4px; transform: rotate(-5deg); animation: lr-document 3s ease-in-out infinite; }
.scn-lord-reports-polixenes .shadow { position:absolute; bottom:15%; left:20%; width:200px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: lr-shadow 4s ease-in-out infinite alternate; }
@keyframes lr-chair { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lr-tremble { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(-1px); } 75% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes lr-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes lr-document { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes lr-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-autolycus-threats {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #4a3a1e 50%, #7a5a2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff3c0 0%, transparent 70%);
}
.scn-autolycus-threats .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #5a3a1a 60%, transparent 100%);
  animation: at-sky 15s ease-in-out infinite alternate;
}
.scn-autolycus-threats .ground {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #1a2a0e 0%, #0e1a06 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: at-ground 20s ease-in-out infinite alternate;
}
.scn-autolycus-threats .throne {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,200,100,.1);
  animation: at-throne 6s ease-in-out infinite;
}
.scn-autolycus-threats .figure {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-fig 3s ease-in-out infinite;
}
.scn-autolycus-threats .sheep {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 12px;
  background: radial-gradient(ellipse, #1a1a1a 60%, #0a0a0a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: at-sheep 4s ease-in-out infinite alternate;
}
.scn-autolycus-threats .rays {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,243,192,.4) 0%, transparent 70%);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: at-rays 8s ease-in-out infinite alternate;
}
.scn-autolycus-threats .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: at-shadow 2s ease-in-out infinite alternate;
}

@keyframes at-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes at-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes at-throne { 0%,100% { transform: translateX(-50%); } 25% { transform: translateX(-50%) rotateZ(-1deg); } 75% { transform: translateX(-50%) rotateZ(1deg); } }
@keyframes at-fig { 0%,100% { transform: translateX(0) rotateZ(0); } 25% { transform: translateX(2px) rotateZ(3deg); } 75% { transform: translateX(-1px) rotateZ(-2deg); } }
@keyframes at-sheep { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes at-rays { 0% { opacity: .3; transform: rotate(15deg) scale(1); } 50% { opacity: .8; transform: rotate(25deg) scale(1.2); } 100% { opacity: .5; transform: rotate(10deg) scale(.9); } }
@keyframes at-shadow { 0% { opacity: .5; } 100% { opacity: .8; } }

/* Shepherd gives gold */
.scn-shepherd-gives-gold {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #ffd700 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-shepherd-gives-gold .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #ffeb99 100%);
  animation: sgg-sky 12s ease-in-out infinite alternate;
}
.scn-shepherd-gives-gold .ground {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-shepherd-gives-gold .hand-left {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #d4a574 0%, #b08060 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom right;
  animation: sgg-hand-left 2s ease-in-out infinite;
}
.scn-shepherd-gives-gold .hand-right {
  position: absolute; bottom: 30%; right: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #c09470 0%, #a07050 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom left;
  animation: sgg-hand-right 2s ease-in-out infinite alternate;
}
.scn-shepherd-gives-gold .purse {
  position: absolute; bottom: 37%; left: 37%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #b8860b 0%, #8b6508 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sgg-purse 3s ease-in-out infinite;
}
.scn-shepherd-gives-gold .coin {
  position: absolute; bottom: 42%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(255,215,0,.6);
  animation: sgg-coin 1.5s ease-in-out infinite;
}
.scn-shepherd-gives-gold .coin.second {
  left: 50%; animation-delay: .5s;
  width: 8px; height: 8px;
}
.scn-shepherd-gives-gold .sunlight {
  position: absolute; top: 0; right: 0; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: sgg-sunlight 6s ease-in-out infinite alternate;
}

@keyframes sgg-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes sgg-hand-left { 0%,100% { transform: translateX(0) rotateZ(0); } 50% { transform: translateX(8px) rotateZ(5deg); } }
@keyframes sgg-hand-right { 0% { transform: translateX(0) rotateZ(0); } 100% { transform: translateX(-6px) rotateZ(-3deg); } }
@keyframes sgg-purse { 0%,100% { transform: translateY(0) rotateZ(0); } 50% { transform: translateY(-3px) rotateZ(5deg); } }
@keyframes sgg-coin { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-8px) scale(1.2); opacity: .8; } 100% { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes sgg-sunlight { 0% { opacity: .3; } 100% { opacity: .7; } }

/* Autolycus takes gold */
.scn-autolycus-takes-gold {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #ffeb99 40%, #ffd700 70%),
    radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 50%);
}
.scn-autolycus-takes-gold .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #fff5cc 100%);
  animation: atg-sky 10s ease-in-out infinite alternate;
}
.scn-autolycus-takes-gold .ground {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #cd853f 0%, #8b6914 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-autolycus-takes-gold .figure {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: atg-fig 2.5s ease-in-out infinite;
}
.scn-autolycus-takes-gold .purse {
  position: absolute; bottom: 35%; left: 40%; width: 35px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, #d4af37 0%, #b8860b 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: atg-purse 3s ease-in-out infinite;
}
.scn-autolycus-takes-gold .sparkle {
  position: absolute; top: 20%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffffff 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  animation: atg-sparkle 2s ease-in-out infinite;
}
.scn-autolycus-takes-gold .sparkle.two {
  left: 55%; top: 15%; width: 8px; height: 8px;
  animation-delay: .7s;
}
.scn-autolycus-takes-gold .star {
  position: absolute; bottom: 45%; left: 50%; width: 16px; height: 16px;
  background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: atg-star 4s ease-in-out infinite;
}

@keyframes atg-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes atg-fig { 0%,100% { transform: translateY(0) rotateZ(0); } 25% { transform: translateY(-4px) rotateZ(5deg); } 75% { transform: translateY(-2px) rotateZ(-4deg); } }
@keyframes atg-purse { 0%,100% { transform: translateY(0) rotateZ(0); } 50% { transform: translateY(-5px) rotateZ(10deg); } }
@keyframes atg-sparkle { 0%,100% { opacity: 0; transform: scale(.5); } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes atg-star { 0%,100% { transform: scale(1) rotate(0); opacity: .6; } 50% { transform: scale(1.3) rotate(180deg); opacity: 1; } }

/* Autolycus sends them on */
.scn-autolycus-sends-them-on {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 40%);
}
.scn-autolycus-sends-them-on .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #ffe4b5 100%);
  animation: asto-sky 14s ease-in-out infinite alternate;
}
.scn-autolycus-sends-them-on .ground {
  position: absolute; inset: 35% 0 0 0;
  background: linear-gradient(180deg, #7b68ee 0%, #6a5acd 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-autolycus-sends-them-on .figure-aut {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asto-aut 3s ease-in-out infinite;
}
.scn-autolycus-sends-them-on .figure-walk {
  position: absolute; bottom: 22%; right: 20%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asto-walk 4s ease-in-out infinite;
}
.scn-autolycus-sends-them-on .hedge {
  position: absolute; bottom: 30%; left: 50%; width: 90px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #2e8b57 0%, #006400 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  filter: blur(2px);
  animation: asto-hedge 8s ease-in-out infinite alternate;
}
.scn-autolycus-sends-them-on .glint {
  position: absolute; top: 8%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: asto-glint 4s ease-in-out infinite;
}

@keyframes asto-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes asto-aut { 0%,100% { transform: translateX(0) rotateZ(0); } 25% { transform: translateX(4px) rotateZ(5deg); } 75% { transform: translateX(2px) rotateZ(-3deg); } }
@keyframes asto-walk { 0% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(-15px); opacity: .7; } 100% { transform: translateX(-30px); opacity: .4; } }
@keyframes asto-hedge { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(.95); } }
@keyframes asto-glint { 0%,100% { opacity: .3; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.3); } }

.scn-leontes-wonder { background: linear-gradient(180deg, #1a1410 0%, #2a1e15 40%, #3d291a 100%), radial-gradient(ellipse at 50% 80%, #3d291a 0%, transparent 60%); }
.scn-leontes-wonder .room-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0805 0%, transparent 50%); animation: lw-ambient 20s ease-in-out infinite alternate; }
.scn-leontes-wonder .candle-glow { position: absolute; bottom: 40%; left: 55%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #b08040 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: lw-flicker 3s ease-in-out infinite alternate; }
.scn-leontes-wonder .statue-base { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px; transform: translateX(-50%); background: linear-gradient(90deg, #3a2a1a, #5a4030, #3a2a1a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-leontes-wonder .statue-form { position: absolute; bottom: 32%; left: 50%; width: 70px; height: 110px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1e14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: lw-breathe 12s ease-in-out infinite alternate; }
.scn-leontes-wonder .hand { position: absolute; bottom: 38%; left: 48%; width: 30px; height: 20px; background: linear-gradient(180deg, #8a6a50, #5a4030); border-radius: 60% 40% 50% 50% / 70% 60% 40% 40%; transform: rotate(20deg); animation: lw-reach 8s ease-in-out infinite alternate; }
.scn-leontes-wonder .dust { position: absolute; width: 4px; height: 4px; background: rgba(255,200,150,.4); border-radius: 50%; filter: blur(1px); animation: lw-drift 30s linear infinite; top: 30%; left: 30%; box-shadow: 8px 40px 0 2px rgba(255,200,150,.3), -20px 70px 0 1px rgba(255,200,150,.2); }
.scn-leontes-wonder .shadow { position: absolute; inset: 0 0 0 45%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.6) 60%, rgba(0,0,0,.8) 100%); pointer-events: none; }
@keyframes lw-ambient { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lw-flicker { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05) translateY(-2px); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes lw-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes lw-reach { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } 100% { transform: rotate(22deg) translateX(-2px); } }
@keyframes lw-drift { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-80vh) rotate(180deg); } }

.scn-paulina-intervention { background: linear-gradient(180deg, #1a1210 0%, #2a1c14 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #3a2820 0%, transparent 70%); }
.scn-paulina-intervention .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #0a0805 0%, transparent 30%, transparent 70%, #0a0805 100%); }
.scn-paulina-intervention .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1c14, #1a1210); border-radius: 10% 10% 0 0; }
.scn-paulina-intervention .wall-shadow { position: absolute; left: 60%; right: 0; top: 0; bottom: 25%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.5) 40%, rgba(0,0,0,.7) 100%); animation: pi-shadow 6s ease-in-out infinite alternate; }
.scn-paulina-intervention .paulina { position: absolute; bottom: 25%; left: 65%; width: 40px; height: 90px; background: linear-gradient(180deg, #2a1a12, #140e08); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pi-paulina 8s ease-in-out infinite alternate; }
.scn-paulina-intervention .leontes { position: absolute; bottom: 25%; left: 40%; width: 50px; height: 60px; background: linear-gradient(180deg, #1a1210, #0a0605); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pi-leontes 4s ease-in-out infinite alternate; }
.scn-paulina-intervention .statue { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: pi-statue-shimmer 10s ease-in-out infinite alternate; }
.scn-paulina-intervention .candle { position: absolute; bottom: 30%; left: 35%; width: 8px; height: 30px; background: linear-gradient(180deg, #b07040, #804020); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(255,160,80,.5); animation: pi-candle 3s ease-in-out infinite alternate; }
@keyframes pi-shadow { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(5px); } }
@keyframes pi-paulina { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg); } }
@keyframes pi-leontes { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(1deg) scale(1.01); } }
@keyframes pi-statue-shimmer { 0% { opacity: 0.9; box-shadow: inset 0 0 10px rgba(0,0,0,.4); } 50% { opacity: 1; box-shadow: inset 0 0 20px rgba(0,0,0,.2), 0 0 10px rgba(180,140,100,.2); } 100% { opacity: 0.95; box-shadow: inset 0 0 10px rgba(0,0,0,.4); } }
@keyframes pi-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.7; } }

.scn-leontes-sorrow { background: linear-gradient(180deg, #0a0808 0%, #1a1212 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1212 0%, transparent 60%); }
.scn-leontes-sorrow .bg-deep { position: absolute; inset: 0; background: linear-gradient(180deg, #050303 0%, transparent 60%); animation: ls-darken 25s ease-in-out infinite alternate; }
.scn-leontes-sorrow .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1212, #0a0606); border-radius: 20% 20% 0 0; }
.scn-leontes-sorrow .statue-pedestal { position: absolute; bottom: 20%; left: 50%; width: 100px; height: 15px; transform: translateX(-50%); background: linear-gradient(90deg, #2a1a1a, #3a2a2a, #2a1a1a); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-leontes-sorrow .statue { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-leontes-sorrow .leontes-form { position: absolute; bottom: 22%; left: 45%; width: 70px; height: 50px; background: linear-gradient(180deg, #1a1212, #0a0606); border-radius: 70% 70% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ls-heave 15s ease-in-out infinite alternate; }
.scn-leontes-sorrow .tears { position: absolute; top: 45%; left: 48%; width: 6px; height: 6px; background: radial-gradient(circle, rgba(200,180,180,.6), transparent); border-radius: 50%; animation: ls-tears 10s ease-in infinite; box-shadow: 10px 20px 0 2px rgba(200,180,180,.2), -15px 40px 0 1px rgba(200,180,180,.15); }
.scn-leontes-sorrow .shadow-tendrils { position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.4) 20%, transparent 60%), radial-gradient(ellipse at 60% 40%, rgba(0,0,0,.3) 30%, transparent 70%); animation: ls-tendrils 20s linear infinite alternate; pointer-events: none; }
@keyframes ls-darken { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ls-heave { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg) translateY(-1px); } 100% { transform: scale(1) rotate(-0.5deg); } }
@keyframes ls-tears { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(40px); opacity: 0; } }
@keyframes ls-tendrils { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-paulina-warning { background: linear-gradient(180deg, #1a1210 0%, #2a1c14 40%, #3a2820 100%), radial-gradient(ellipse at 50% 80%, #3a2820 0%, transparent 60%); }
.scn-paulina-warning .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #0a0805 0%, transparent 50%, #0a0805 100%); }
.scn-paulina-warning .curtain-left { position: absolute; left: 0; top: 0; bottom: 0; width: 35%; background: linear-gradient(90deg, #5e1a1d 0%, #3a0d0f 50%, #2a080a 100%); border-radius: 0 50% 50% 0 / 0 20% 20% 0; filter: blur(2px); animation: pw-curtain 8s ease-in-out infinite alternate; }
.scn-paulina-warning .curtain-right { position: absolute; right: 0; top: 0; bottom: 0; width: 35%; background: linear-gradient(270deg, #5e1a1d 0%, #3a0d0f 50%, #2a080a 100%); border-radius: 50% 0 0 50% / 20% 0 0 20%; filter: blur(2px); animation: pw-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-paulina-warning .statue { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: pw-breathe 6s ease-in-out infinite alternate; }
.scn-paulina-warning .paulina-arm { position: absolute; bottom: 40%; left: 55%; width: 25px; height: 15px; background: linear-gradient(90deg, #2a1a12, #140e08); border-radius: 50% 20% 20% 50% / 50% 30% 30% 50%; transform: rotate(-30deg); animation: pw-arm 4s ease-in-out infinite alternate; }
.scn-paulina-warning .vein-glow { position: absolute; bottom: 32%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(220,180,140,.3) 0%, transparent 50%), radial-gradient(ellipse at 50% 70%, rgba(220,180,140,.2) 0%, transparent 50%); animation: pw-glow 5s ease-in-out infinite alternate; }
.scn-paulina-warning .sparkle { position: absolute; width: 3px; height: 3px; background: rgba(255,200,150,.6); border-radius: 50%; filter: blur(1px); animation: pw-sparkle 3s ease-in-out infinite; top: 40%; left: 50%; box-shadow: 10px 20px 0 1px rgba(255,200,150,.4), -15px -10px 0 2px rgba(255,200,150,.3), 5px -30px 0 1px rgba(255,200,150,.2); }
@keyframes pw-curtain { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(3px); filter: blur(3px); } 100% { transform: scaleX(0.98) translateX(-2px); filter: blur(1px); } }
@keyframes pw-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes pw-arm { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(5px); } 100% { transform: rotate(-35deg) translateX(-3px); } }
@keyframes pw-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes pw-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }

/* antechamber-camillo-archidamus */
.scn-antechamber-camillo-archidamus {
  background: linear-gradient(180deg, #f5e6d0 0%, #ecd5b8 100%), radial-gradient(ellipse at 50% 100%, #f0d0a0 0%, transparent 70%);
}
.scn-antechamber-camillo-archidamus .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #d4b896 0%, #c8a680 50%, #d4b896 100%);
  animation: am1-wall 20s ease-in-out infinite alternate;
}
.scn-antechamber-camillo-archidamus .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b89a6e 0%, #8c7450 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: am1-floor 30s ease-in-out infinite alternate;
}
.scn-antechamber-camillo-archidamus .window-arch {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #a4c8e8 0%, #7ba0c8 50%, #5a7ea8 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: am1-window 35s linear infinite;
}
.scn-antechamber-camillo-archidamus .column-left {
  position: absolute; top: 8%; left: 10%; bottom: 25%; width: 6%;
  background: linear-gradient(90deg, #a88c6a 0%, #c8ab84 30%, #a88c6a 100%);
  border-radius: 4% 50% 50% 4%;
  box-shadow: 8px 0 15px rgba(0,0,0,0.2);
  animation: am1-column 15s ease-in-out infinite alternate;
}
.scn-antechamber-camillo-archidamus .column-right {
  position: absolute; top: 8%; right: 10%; bottom: 25%; width: 6%;
  background: linear-gradient(90deg, #a88c6a 0%, #c8ab84 30%, #a88c6a 100%);
  border-radius: 50% 4% 4% 50%;
  box-shadow: -8px 0 15px rgba(0,0,0,0.2);
  animation: am1-column 15s ease-in-out infinite alternate-reverse;
}
.scn-antechamber-camillo-archidamus .figure-camillo {
  position: absolute; bottom: 25%; left: 38%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #d4a070 0%, #8c5834 40%, #4a2a18 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: am1-figure 6s ease-in-out infinite;
}
.scn-antechamber-camillo-archidamus .figure-archidamus {
  position: absolute; bottom: 25%; right: 38%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #b8885a 0%, #7a4a2a 40%, #3a2010 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: am1-figure 6s ease-in-out infinite 2s;
}
@keyframes am1-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes am1-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes am1-window {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: 0 0; }
}
@keyframes am1-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes am1-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* bohemia-sicilia-friendship */
.scn-bohemia-sicilia-friendship {
  background: linear-gradient(180deg, #d9e4d0 0%, #c4d4b8 100%), radial-gradient(ellipse at 50% 0%, #b0c8a0 0%, transparent 70%);
}
.scn-bohemia-sicilia-friendship .bg-left {
  position: absolute; inset: 0 50% 20% 0;
  background: linear-gradient(135deg, #b0c0a0 0%, #8ca87c 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
  animation: bs2-bg-left 40s ease-in-out infinite alternate;
}
.scn-bohemia-sicilia-friendship .bg-right {
  position: absolute; inset: 0 0 20% 50%;
  background: linear-gradient(225deg, #c0b8a0 0%, #a09880 100%);
  clip-path: polygon(15% 0, 100% 0, 100% 100%, 0 100%);
  animation: bs2-bg-right 40s ease-in-out infinite alternate-reverse;
}
.scn-bohemia-sicilia-friendship .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8c9a7a 0%, #6a7a5a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: bs2-floor 25s ease-in-out infinite alternate;
}
.scn-bohemia-sicilia-friendship .figure-bohemia {
  position: absolute; bottom: 22%; left: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #b8a080 0%, #786050 100%);
  border-radius: 45% 40% 30% 35% / 60% 55% 30% 35%;
  transform-origin: bottom center;
  animation: bs2-figure 8s ease-in-out infinite;
}
.scn-bohemia-sicilia-friendship .figure-sicilia {
  position: absolute; bottom: 22%; right: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #a89070 0%, #685040 100%);
  border-radius: 40% 45% 35% 30% / 55% 60% 35% 30%;
  transform-origin: bottom center;
  animation: bs2-figure 8s ease-in-out infinite 1s;
}
.scn-bohemia-sicilia-friendship .handshake-emblem {
  position: absolute; bottom: 48%; left: 50%; width: 20%; height: 15%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #a88040 50%, #785828 100%);
  border-radius: 50%;
  box-shadow: 0 4px 20px rgba(168, 128, 64, 0.5);
  animation: bs2-emblem 6s ease-in-out infinite alternate;
}
@keyframes bs2-bg-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes bs2-bg-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes bs2-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98) translateY(2px); }
  100% { transform: scaleY(1); }
}
@keyframes bs2-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs2-emblem {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 20px rgba(168,128,64,0.4); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 6px 30px rgba(168,128,64,0.7); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 20px rgba(168,128,64,0.4); }
}

/* praise-mamillius */
.scn-praise-mamillius {
  background: linear-gradient(180deg, #ffeac0 0%, #f5d8a0 100%), radial-gradient(ellipse at 50% 80%, #ffd88a 0%, transparent 70%);
}
.scn-praise-mamillius .bg-panel {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(135deg, #d4b080 0%, #c09868 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: pm3-panel 30s ease-in-out infinite alternate;
}
.scn-praise-mamillius .throne {
  position: absolute; bottom: 18%; left: 42%; right: 42%; height: 25%;
  background: linear-gradient(180deg, #b08858 0%, #88683a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: pm3-throne 12s ease-in-out infinite alternate;
}
.scn-praise-mamillius .figure-king {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #d0b090 0%, #8a684a 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 30% 30%;
  transform-origin: bottom center;
  animation: pm3-figure 8s ease-in-out infinite;
}
.scn-praise-mamillius .figure-queen {
  position: absolute; bottom: 22%; right: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #c8a880 0%, #785840 100%);
  border-radius: 40% 45% 30% 30% / 55% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pm3-figure 8s ease-in-out infinite 1.5s;
}
.scn-praise-mamillius .figure-mamillius {
  position: absolute; bottom: 18%; left: 48%; right: 48%; height: 18%;
  width: 4%; left: auto; right: auto; transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d8b0 0%, #b89870 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: pm3-mamillius 6s ease-in-out infinite;
}
.scn-praise-mamillius .crown {
  position: absolute; bottom: 42%; left: 49%; right: 49%; height: 5%; width: 6%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, #c89030 50%, #a06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(255, 208, 96, 0.6);
  animation: pm3-crown 3s ease-in-out infinite alternate;
}
.scn-praise-mamillius .light-ray {
  position: absolute; top: 0; left: 45%; right: 45%; bottom: 80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, transparent 100%);
  clip-path: polygon(50% 0, 100% 60%, 0 60%);
  animation: pm3-light 10s ease-in-out infinite alternate;
}
@keyframes pm3-panel {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pm3-throne {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes pm3-figure {
  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 pm3-mamillius {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(3deg); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pm3-crown {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 4px rgba(255,208,96,0.5); }
  50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 30px 8px rgba(255,208,96,0.8); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 4px rgba(255,208,96,0.5); }
}
@keyframes pm3-light {
  0% { opacity: 0.6; transform: rotate(-2deg); }
  50% { opacity: 0.9; transform: rotate(2deg); }
  100% { opacity: 0.6; transform: rotate(-2deg); }
}

/* room-of-state-welcome */
.scn-room-of-state-welcome {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4ac 100%), radial-gradient(ellipse at 50% 100%, #d0b898 0%, transparent 70%);
}
.scn-room-of-state-welcome .wall-tapestry {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(90deg, #b8a48c 0%, #a89078 50%, #b8a48c 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: rs4-tapestry 45s ease-in-out infinite alternate;
}
.scn-room-of-state-welcome .dais {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #a08868 0%, #806850 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
  animation: rs4-dais 20s ease-in-out infinite alternate;
}
.scn-room-of-state-welcome .throne-main {
  position: absolute; bottom: 26%; left: 38%; right: 38%; height: 20%;
  background: linear-gradient(180deg, #c09868 0%, #987848 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 8px 25px rgba(0,0,0,0.3);
  animation: rs4-throne 15s ease-in-out infinite alternate;
}
.scn-room-of-state-welcome .figure-leontes {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #c8a880 0%, #785030 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 30% 30%;
  transform-origin: bottom center;
  animation: rs4-figure 8s ease-in-out infinite;
}
.scn-room-of-state-welcome .figure-hermione {
  position: absolute; bottom: 20%; left: 42%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #d0b090 0%, #886040 100%);
  border-radius: 40% 45% 30% 30% / 55% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rs4-figure 8s ease-in-out infinite 1s;
}
.scn-room-of-state-welcome .figure-polixenes {
  position: absolute; bottom: 20%; right: 30%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #b89878 0%, #6a5030 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 30% 30%;
  transform-origin: bottom center;
  animation: rs4-figure 8s ease-in-out infinite 2s;
}
.scn-room-of-state-welcome .attendants-left {
  position: absolute; bottom: 18%; left: 10%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #a08060 0%, #604820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: rs4-attendant 10s ease-in-out infinite;
}
.scn-room-of-state-welcome .attendants-right {
  position: absolute; bottom: 18%; right: 10%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #a08060 0%, #604820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: rs4-attendant 10s ease-in-out infinite 3s;
}
@keyframes rs4-tapestry {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes rs4-dais {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes rs4-throne {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes rs4-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 rs4-attendant {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-polixenes-departure {
  background: linear-gradient(180deg, #5b7a9a 0%, #e8c29a 50%, #d49a6a 100%),
              radial-gradient(ellipse at 70% 20%, #ffeda8 0%, transparent 60%);
}
.scn-polixenes-departure .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a9ab8 0%, #c8a878 100%);
  animation: po-sky 12s ease-in-out infinite alternate;
}
.scn-polixenes-departure .sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8a0 0%, #d4a050 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,232,160,0.5);
  animation: po-sun 8s ease-in-out infinite alternate;
}
.scn-polixenes-departure .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b7a4a 0%, #4a5a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: po-hills 18s ease-in-out infinite alternate;
}
.scn-polixenes-departure .field {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  animation: po-field 14s ease-in-out infinite alternate;
}
.scn-polixenes-departure .figure {
  position: absolute; bottom: 10%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center;
  animation: po-figure 6s ease-in-out infinite;
}
.scn-polixenes-departure .cloak {
  position: absolute; bottom: 14%; left: 39%; width: 28px; height: 28px;
  background: linear-gradient(135deg, #3a2e2a 0%, #1a1614 100%);
  border-radius: 0 60% 0 60% / 0 50% 0 50%; transform-origin: top left;
  animation: po-cloak 3s ease-in-out infinite alternate;
}
.scn-polixenes-departure .dust {
  position: absolute; bottom: 8%; left: 45%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,140,0.4) 0%, transparent 70%);
  filter: blur(4px); animation: po-dust 4s ease-in-out infinite alternate;
}
@keyframes po-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes po-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 50px 15px rgba(255,232,160,0.4) } 50% { transform: translateX(5px) scale(1.05); box-shadow: 0 0 70px 25px rgba(255,232,160,0.7) } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 50px 15px rgba(255,232,160,0.4) } }
@keyframes po-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes po-field { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes po-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes po-cloak { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes po-dust { 0% { transform: translateX(0) scale(1); opacity: 0.5 } 50% { transform: translateX(8px) scale(1.3); opacity: 0.8 } 100% { transform: translateX(0) scale(1); opacity: 0.5 } }

.scn-perdita-resolve {
  background: linear-gradient(180deg, #8aaccc 0%, #ecc89a 60%, #d4a878 100%),
              radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-perdita-resolve .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #9abcda 0%, #d4b080 100%);
  animation: pe-sky 10s ease-in-out infinite alternate;
}
.scn-perdita-resolve .clouds {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 24px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  border-radius: 50%; filter: blur(6px); animation: pe-clouds 30s linear infinite;
}
.scn-perdita-resolve .cottage {
  position: absolute; bottom: 20%; left: 45%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6a4a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pe-cottage 8s ease-in-out infinite alternate;
}
.scn-perdita-resolve .roof {
  position: absolute; bottom: 48%; left: 43%; width: 100px; height: 30px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0; clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: pe-roof 6s ease-in-out infinite alternate;
}
.scn-perdita-resolve .door {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0; transform: translateX(-50%);
  animation: pe-door 4s ease-in-out infinite alternate;
}
.scn-perdita-resolve .figure {
  position: absolute; bottom: 19%; left: 36%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1a1410 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center;
  animation: pe-figure 2s ease-in-out infinite;
}
.scn-perdita-resolve .path {
  position: absolute; bottom: 5%; left: 38%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #b8a070 0%, #9a885a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); opacity: 0.7;
  animation: pe-path 5s ease-in-out infinite alternate;
}
.scn-perdita-resolve .flowers {
  position: absolute; bottom: 15%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d89070 0%, #b06850 70%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(180,104,80,0.5);
  animation: pe-flowers 3s ease-in-out infinite alternate;
}
@keyframes pe-sky { 0% { opacity: 0.75 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pe-clouds { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes pe-cottage { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pe-roof { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes pe-door { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes pe-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pe-path { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes pe-flowers { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(0deg) scale(1) } }

.scn-shepherd-lament {
  background: linear-gradient(180deg, #6a7a7a 0%, #b8a080 40%, #8a6a50 100%),
              radial-gradient(ellipse at 50% 30%, #d0b890 0%, transparent 70%);
}
.scn-shepherd-lament .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #c8b090 100%);
  animation: sh-sky 15s ease-in-out infinite alternate;
}
.scn-shepherd-lament .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: sh-ground 20s ease-in-out infinite alternate;
}
.scn-shepherd-lament .mound {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%); box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: sh-mound 8s ease-in-out infinite alternate;
}
.scn-shepherd-lament .cross-v {
  position: absolute; bottom: 52%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  transform: translateX(-50%); border-radius: 2px;
  animation: sh-cross 6s ease-in-out infinite alternate;
}
.scn-shepherd-lament .cross-h {
  position: absolute; bottom: 62%; left: 50%; width: 24px; height: 6px;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a3020 100%);
  transform: translateX(-50%); border-radius: 2px;
  animation: sh-cross 6s ease-in-out infinite alternate;
}
.scn-shepherd-lament .figure {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2218 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sh-figure 7s ease-in-out infinite;
}
.scn-shepherd-lament .hands {
  position: absolute; bottom: 18%; left: 42%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-10deg);
  animation: sh-hands 4s ease-in-out infinite alternate;
}
@keyframes sh-sky { 0% { opacity: 0.6 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes sh-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sh-mound { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes sh-cross { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes sh-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sh-hands { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.2) } 100% { transform: rotate(-15deg) scaleY(1) } }

.scn-florizel-steadfast {
  background: linear-gradient(180deg, #8aaccc 0%, #e8c89a 40%, #d4a070 100%),
              radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-florizel-steadfast .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9abcd4 0%, #d4b080 100%);
  animation: fl-sky 12s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .sun {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffeca8 0%, #d4a858 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,236,168,0.6);
  animation: fl-sun 8s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .wall {
  position: absolute; bottom: 30%; left: 40%; width: 25%; height: 60%;
  background: linear-gradient(90deg, #7a6a5a 0%, #a08a70 30%, #6a5a4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: fl-wall 10s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 80% 20% 0 0 / 40% 10% 0 0;
  animation: fl-ground 14s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .figure {
  position: absolute; bottom: 22%; left: 46%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2220 0%, #0e0c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center;
  animation: fl-figure 2s ease-in-out infinite;
}
.scn-florizel-steadfast .cloak {
  position: absolute; bottom: 26%; left: 44%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #3a2e2a 0%, #1a1614 100%);
  border-radius: 0 60% 0 60% / 0 50% 0 50%; transform-origin: bottom left;
  animation: fl-cloak 1.5s ease-in-out infinite alternate;
}
.scn-florizel-steadfast .chain {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 4px;
  background: linear-gradient(90deg, #7a7050 0%, #b8a878 50%, #7a7050 100%);
  border-radius: 2px; animation: fl-chain 1.6s ease-in-out infinite alternate;
}
@keyframes fl-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fl-sun { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px 15px rgba(255,236,168,0.4) } 50% { transform: scale(1.08) rotate(5deg); box-shadow: 0 0 60px 25px rgba(255,236,168,0.7) } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px 15px rgba(255,236,168,0.4) } }
@keyframes fl-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } 100% { transform: scaleX(1) } }
@keyframes fl-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fl-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fl-cloak { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes fl-chain { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

/* leontes-orders-baby-burnt */
.scn-leontes-orders-baby-burnt {
  background: linear-gradient(180deg, #5a3230 0%, #3a1c1a 60%, #1a0e0c 100%),
              radial-gradient(ellipse at 40% 60%, #c87a4a 0%, transparent 50%);
}
.scn-leontes-orders-baby-burnt .lo1-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a2a28, #2a1412 60%, #1a0a08);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  border-radius: 0 0 30% 30% / 10% 10%;
}
.scn-leontes-orders-baby-burnt .lo1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a1a18, #1a0e0c);
  box-shadow: inset 0 8px 12px rgba(200,80,40,0.2);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-leontes-orders-baby-burnt .lo1-hearth {
  position: absolute; bottom: 22%; right: 18%; width: 80px; height: 70px;
  background: linear-gradient(90deg, #3a1c18, #2a120e);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -8px 20px #1a0c08;
}
.scn-leontes-orders-baby-burnt .lo1-fire {
  position: absolute; bottom: 28%; right: 22%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #f0a040 0%, #d06020 30%, #a03010 70%, transparent);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: lo1-fire 2.4s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px #d06020, 0 0 60px 20px rgba(200,80,30,0.4);
}
@keyframes lo1-fire {
  0% { transform: scaleY(1) scaleX(0.9) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.15) scaleX(1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.85) translateY(0); opacity: 0.85; }
}
.scn-leontes-orders-baby-burnt .lo1-leontes {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo1-figure 3s ease-in-out infinite;
}
@keyframes lo1-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-2px); }
  50% { transform: rotate(-4deg) translateY(1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
.scn-leontes-orders-baby-burnt .lo1-servant {
  position: absolute; bottom: 20%; right: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 40% 40% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lo1-servant 4s ease-in-out infinite;
}
@keyframes lo1-servant {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-leontes-orders-baby-burnt .lo1-baby {
  position: absolute; bottom: 30%; right: 32%; width: 20px; height: 25px;
  background: radial-gradient(ellipse at 50% 60%, #d0b0a0 0%, #8a6050 60%, #4a2a20 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lo1-baby 2s ease-in-out infinite;
}
@keyframes lo1-baby {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
.scn-leontes-orders-baby-burnt .lo1-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 40%, rgba(0,0,0,0.3) 80%);
  pointer-events: none;
  animation: lo1-shadow 8s ease-in-out infinite alternate;
}
@keyframes lo1-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* paulina-defies-king */
.scn-paulina-defies-king {
  background: linear-gradient(180deg, #6a4440 0%, #4a2a26 60%, #2a1612 100%),
              radial-gradient(ellipse at 50% 20%, #f0d0a0 0%, transparent 60%);
}
.scn-paulina-defies-king .pd-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2220, #1a0e0c 60%, #0a0605);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-paulina-defies-king .pd-pillar-l {
  position: absolute; top: 5%; left: 10%; width: 20px; height: 90%;
  background: linear-gradient(180deg, #5a3a30, #3a1e18);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
}
.scn-paulina-defies-king .pd-pillar-r {
  position: absolute; top: 5%; right: 10%; width: 20px; height: 90%;
  background: linear-gradient(180deg, #5a3a30, #3a1e18);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
}
.scn-paulina-defies-king .pd-throne {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a2e22, #2a1810);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-paulina-defies-king .pd-leontes {
  position: absolute; bottom: 18%; left: 40%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #1a120e 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-leontes 4s ease-in-out infinite;
}
@keyframes pd-leontes {
  0% { transform: rotate(0) translateY(0); }
  30% { transform: rotate(2deg) translateY(-2px); }
  60% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0) translateY(0); }
}
.scn-paulina-defies-king .pd-paulina {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  border-radius: 45% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pd-paulina 3.5s ease-in-out infinite;
}
@keyframes pd-paulina {
  0% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(4deg) translateY(-3px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
.scn-paulina-defies-king .pd-arm {
  position: absolute; bottom: 65%; left: 58%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a1a16, #1a0e0a);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pd-arm 2s ease-in-out infinite;
}
@keyframes pd-arm {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.1); }
  100% { transform: rotate(0deg) scaleY(1); }
}
.scn-paulina-defies-king .pd-candle {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #f0d0a0, #d0a070);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #f0d0a0, 0 0 40px 12px rgba(240,208,160,0.4);
  animation: pd-candle 1.8s ease-in-out infinite alternate;
}
@keyframes pd-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: scaleY(1.08) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(1.02); opacity: 0.85; }
}

/* item-newborn-princess */
.scn-item-newborn-princess {
  background: linear-gradient(180deg, #7a5a48 0%, #5a3a2e 50%, #3a2018 100%),
              radial-gradient(ellipse at 50% 30%, #f0d8b8 0%, transparent 70%);
}
.scn-item-newborn-princess .np-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3028, #2a1a14 60%, #1a0e0a);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-item-newborn-princess .np-hands-l {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #c8a898 0%, #8a6a5a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(-20deg);
  animation: np-hand-l 3s ease-in-out infinite;
}
@keyframes np-hand-l {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
.scn-item-newborn-princess .np-hands-r {
  position: absolute; bottom: 20%; right: 25%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #c8a898 0%, #8a6a5a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform: rotate(20deg);
  animation: np-hand-r 3s ease-in-out infinite;
}
@keyframes np-hand-r {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
.scn-item-newborn-princess .np-bundle {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 40px; height: 45px;
  background: radial-gradient(ellipse at 50% 50%, #e0c8b8 0%, #b09888 50%, #7a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: np-bundle 4s ease-in-out infinite;
}
@keyframes np-bundle {
  0% { transform: translateX(-50%) scale(1) rotate(0); }
  25% { transform: translateX(-50%) scale(1.02) rotate(2deg); }
  50% { transform: translateX(-50%) scale(0.98) rotate(-1deg); }
  75% { transform: translateX(-50%) scale(1.01) rotate(1deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0); }
}
.scn-item-newborn-princess .np-cloth {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%); width: 60px; height: 20px;
  background: linear-gradient(180deg, #e8d0b8 0%, #c0a890 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  opacity: 0.8;
  animation: np-cloth 5s ease-in-out infinite alternate;
}
@keyframes np-cloth {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); }
  50% { transform: translateX(-50%) scaleX(1.05) scaleY(0.95); }
  100% { transform: translateX(-50%) scaleX(0.95) scaleY(1.02); }
}
.scn-item-newborn-princess .np-seal {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%); width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c868 0%, #c89030 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #f0c868, 0 0 24px 8px rgba(240,200,104,0.3);
  animation: np-seal 2s ease-in-out infinite alternate;
}
@keyframes np-seal {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}
.scn-item-newborn-princess .np-sparkle {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%); width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: np-sparkle 3s ease-in-out infinite;
}
@keyframes np-sparkle {
  0% { transform: translateX(-50%) scale(0.8); opacity: 0.3; }
  50% { transform: translateX(-50%) scale(1.5); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(0.8); opacity: 0.3; }
}

/* leontes-outburst */
.scn-leontes-outburst {
  background: linear-gradient(180deg, #5a3028 0%, #3a1c16 50%, #1a0c08 100%),
              radial-gradient(ellipse at 30% 40%, #d08858 0%, transparent 60%);
}
.scn-leontes-outburst .lo2-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1612, #1a0c08 60%, #0a0402);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.8);
}
.scn-leontes-outburst .lo2-col-l {
  position: absolute; top: 0; left: 5%; width: 16px; height: 100%;
  background: linear-gradient(180deg, #3a221e, #1a0e0a);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
}
.scn-leontes-outburst .lo2-col-r {
  position: absolute; top: 0; right: 5%; width: 16px; height: 100%;
  background: linear-gradient(180deg, #3a221e, #1a0e0a);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
}
.scn-leontes-outburst .lo2-leontes {
  position: absolute; bottom: 20%; left: 30%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #1a100c 0%, #0c0806 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-leontes 2.5s ease-in-out infinite;
}
@keyframes lo2-leontes {
  0% { transform: rotate(-3deg) translateY(0); }
  20% { transform: rotate(5deg) translateY(-2px); }
  40% { transform: rotate(-4deg) translateY(1px); }
  60% { transform: rotate(6deg) translateY(-3px); }
  80% { transform: rotate(-2deg) translateY(0); }
  100% { transform: rotate(-3deg) translateY(0); }
}
.scn-leontes-outburst .lo2-guard-l {
  position: absolute; bottom: 20%; left: 12%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 40% 45% 40% 40% / 50% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-guard 3s ease-in-out infinite;
}
@keyframes lo2-guard {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-leontes-outburst .lo2-guard-r {
  position: absolute; bottom: 20%; right: 12%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 45% 40% 40% 40% / 55% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-guard 3.5s ease-in-out infinite reverse;
}
.scn-leontes-outburst .lo2-paulina {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0a 100%);
  border-radius: 45% 50% 35% 40% / 50% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lo2-paulina 4s ease-in-out infinite;
}
@keyframes lo2-paulina {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-4px) rotate(-3deg); }
  60% { transform: translateX(-8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-leontes-outburst .lo2-torch {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0b060 0%, #d08030 40%, #a04010 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #f0b060, 0 0 60px 20px rgba(240,176,96,0.4);
  animation: lo2-torch 1.5s ease-in-out infinite alternate;
}
@keyframes lo2-torch {
  0% { transform: translateX(-50%) scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(0.85); opacity: 0.8; }
}

.scn-autolycus-soliloquy-double-occasion { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #fff5ee 100%), radial-gradient(ellipse at 30% 20%, #f0e68c 0%, transparent 60%); }
.scn-autolycus-soliloquy-double-occasion .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb, #b0e0e6); animation: a1-sky 15s ease-in-out infinite alternate; }
.scn-autolycus-soliloquy-double-occasion .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #c8a86e 100%); border-radius: 20% 20% 0 0; animation: a1-ground 8s ease-in-out infinite alternate; }
.scn-autolycus-soliloquy-double-occasion .figure { position:absolute; bottom:30%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: a1-figure 2s ease-in-out infinite; }
.scn-autolycus-soliloquy-double-occasion .coin { position:absolute; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: a1-coin 3s ease-in-out infinite; }
.scn-autolycus-soliloquy-double-occasion .coin-1 { left:40%; top:50%; animation-delay: 0s; }
.scn-autolycus-soliloquy-double-occasion .coin-2 { left:50%; top:45%; animation-delay: -1s; }
.scn-autolycus-soliloquy-double-occasion .coin-3 { left:60%; top:55%; animation-delay: -2s; }
.scn-autolycus-soliloquy-double-occasion .purse { position:absolute; bottom:28%; left:45%; width:16px; height:12px; background: #8b4513; border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: a1-purse 4s ease-in-out infinite; }
@keyframes a1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes a1-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes a1-figure { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } }
@keyframes a1-coin { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 50% { transform: translateY(-15px) rotate(180deg); opacity:0.8 } 100% { transform: translateY(0) rotate(360deg); opacity:1 } }
@keyframes a1-purse { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-autolycus-exit { background: linear-gradient(180deg, #ffebcd 0%, #f5deb3 50%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #ffdead 0%, transparent 70%); }
.scn-autolycus-exit .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4de 0%, #e0ffff 100%); animation: a2-sky 20s ease-in-out infinite alternate; }
.scn-autolycus-exit .hills { position:absolute; bottom:35%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0; animation: a2-hills 18s ease-in-out infinite alternate; }
.scn-autolycus-exit .path { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #c8a86e 0%, #8b7355 100%); border-radius: 20% 20% 0 0; animation: a2-path 12s ease-in-out infinite alternate; }
.scn-autolycus-exit .figure { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a2-figure 3s ease-in-out infinite; }
.scn-autolycus-exit .bundle { position:absolute; bottom:27%; left:33%; width:10px; height:8px; background: #8b4513; border-radius: 30%; animation: a2-bundle 3s ease-in-out infinite; }
.scn-autolycus-exit .tree { position:absolute; bottom:25%; right:20%; width:8px; height:40px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 10% 10% 20% 20%; animation: a2-tree 9s ease-in-out infinite alternate; }
@keyframes a2-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes a2-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes a2-path { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes a2-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes a2-bundle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes a2-tree { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) } }

.scn-leontes-palace-paulina { background: linear-gradient(135deg, #f5f5dc 0%, #faf0e6 50%, #e6d3b8 100%), radial-gradient(ellipse at 30% 40%, #fffacd 0%, transparent 70%); }
.scn-leontes-palace-paulina .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5f5dc 0%, #e6d3b8 100%); animation: a3-wall 20s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d2b48c 0%, #c8a86e 100%); border-radius: 10% 10% 0 0; animation: a3-floor 15s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .window { position:absolute; top:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border: 2px solid #8b5a2b; box-shadow: inset 0 0 10px rgba(0,0,0,.2); border-radius: 5px; animation: a3-window 12s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .light-ray { position:absolute; top:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, rgba(255,255,224,0.4) 0%, transparent 100%); transform: skewX(-10deg); animation: a3-light 8s ease-in-out infinite alternate; }
.scn-leontes-palace-paulina .figure { position:absolute; bottom:18%; left:50%; width:25px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: a3-figure 6s ease-in-out infinite; }
.scn-leontes-palace-paulina .column { position:absolute; bottom:0; left:15%; width:10px; height:50%; background: linear-gradient(180deg, #d3c9b8 0%, #b8a88a 100%); border-radius: 10% 10% 0 0; animation: a3-column 18s ease-in-out infinite alternate; }
@keyframes a3-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes a3-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes a3-window { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 0 } 50% { box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 20px #fffacd } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 0 } }
@keyframes a3-light { 0% { opacity:0.3; transform: skewX(-10deg) translateX(0) } 50% { opacity:0.6; transform: skewX(-10deg) translateX(2px) } 100% { opacity:0.3; transform: skewX(-10deg) translateX(0) } }
@keyframes a3-figure { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes a3-column { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }

.scn-leontes-remembers-hermione { background: linear-gradient(180deg, #1a1a2e 0%, #2c2250 50%, #0d0d1a 100%), radial-gradient(ellipse at 50% 60%, #4a3a6e 0%, transparent 70%); }
.scn-leontes-remembers-hermione .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #1a1a2e 100%); animation: a4-bg 30s ease-in-out infinite alternate; }
.scn-leontes-remembers-hermione .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); animation: a4-wall 20s ease-in-out infinite alternate; }
.scn-leontes-remembers-hermione .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 10% 10% 0 0; animation: a4-floor 15s ease-in-out infinite alternate; }
.scn-leontes-remembers-hermione .figure-leontes { position:absolute; bottom:20%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a4-leontes 4s ease-in-out infinite; }
.scn-leontes-remembers-hermione .figure-hermione { position:absolute; bottom:25%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, rgba(200,200,230,0.3) 0%, rgba(150,150,200,0.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: a4-hermione 7s ease-in-out infinite; }
.scn-leontes-remembers-hermione .candle { position:absolute; bottom:22%; left:50%; width:6px; height:15px; background: linear-gradient(180deg, #ffd700 0%, #ff8c00 100%); border-radius: 30% 30% 10% 10%; animation: a4-candle 3s ease-in-out infinite; }
.scn-leontes-remembers-hermione .glow { position:absolute; bottom:20%; left:48%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,140,0,0.4) 0%, transparent 60%); border-radius:50%; animation: a4-glow 3s ease-in-out infinite alternate; }
@keyframes a4-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes a4-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes a4-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes a4-leontes { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) translateY(-3px) rotate(2deg) } }
@keyframes a4-hermione { 0%,100% { opacity:0.2; filter: blur(3px) } 50% { opacity:0.5; filter: blur(1px) } }
@keyframes a4-candle { 0% { transform: scaleY(1); opacity:1 } 50% { transform: scaleY(0.9); opacity:0.8 } 100% { transform: scaleY(1); opacity:1 } }
@keyframes a4-glow { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.4 } }

.scn-leontes-persuades-stay { background: linear-gradient(135deg, #d4c5a9 0%, #b8a78a 50%, #9c8b6e 100%), radial-gradient(ellipse at 30% 40%, #f5e6d0 0%, transparent 60%); }
.scn-leontes-persuades-stay .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); }
.scn-leontes-persuades-stay .window-frames { position:absolute; top:15%; left:20%; width:40%; height:50%; background: linear-gradient(135deg, #7f8c8d 0%, #b0bec5 100%); border: 8px solid #6b5b4e; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,.3); animation: lp-window 8s ease-in-out infinite alternate; }
.scn-leontes-persuades-stay .table { position:absolute; bottom:25%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #8b7355 0%, #5c4a36 100%); border-radius: 10px 10px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-leontes-persuades-stay .figure-left { position:absolute; bottom:28%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2e 30%, #2c1f16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure-left 6s ease-in-out infinite; }
.scn-leontes-persuades-stay .figure-right { position:absolute; bottom:28%; right:25%; width:30px; height:72px; background: linear-gradient(180deg, #3a4a5a 30%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure-right 5s ease-in-out infinite; }
.scn-leontes-persuades-stay .warm-glow { position:absolute; bottom:30%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); animation: lp-glow 4s ease-in-out infinite alternate; }
.scn-leontes-persuades-stay .curtain-left { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 0 20px 20px 0; filter: drop-shadow(4px 0 5px rgba(0,0,0,.3)); animation: lp-curtain 7s ease-in-out infinite; }
.scn-leontes-persuades-stay .curtain-right { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 20px 0 0 20px; filter: drop-shadow(-4px 0 5px rgba(0,0,0,.3)); animation: lp-curtain 7s ease-in-out infinite reverse; }
@keyframes lp-window { 0% { opacity:.8; } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,200,.5); } 100% { opacity:.9; } }
@keyframes lp-figure-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lp-figure-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lp-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }
@keyframes lp-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-hermoine-entreats { background: linear-gradient(180deg, #f2e6d3 0%, #dcc4a8 40%, #b89674 100%), radial-gradient(ellipse at 50% 70%, #ffdd99 0%, transparent 60%); }
.scn-hermoine-entreats .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #f5ede0 0%, #d9c4ab 50%, #b59a7a 100%); }
.scn-hermoine-entreats .throne { position:absolute; bottom:20%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #cba870 0%, #8b6e44 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-hermoine-entreats .figure-hermoine { position:absolute; bottom:22%; left:48%; width:35px; height:80px; background: linear-gradient(180deg, #e8d4b8 30%, #b69678 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-figure 5s ease-in-out infinite; }
.scn-hermoine-entreats .candle { position:absolute; bottom:30%; left:35%; width:8px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #d2ab7a 100%); border-radius: 50% 50% 20% 20%; }
.scn-hermoine-entreats .candle-glow { position:absolute; bottom:30%; left:34%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%); animation: he-candle 3s ease-in-out infinite alternate; }
.scn-hermoine-entreats .ornament-left { position:absolute; bottom:25%; left:25%; width:20px; height:20px; background: radial-gradient(circle, #d4a373 0%, #a67c52 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: he-ornament 7s ease-in-out infinite; }
.scn-hermoine-entreats .ornament-right { position:absolute; bottom:25%; right:25%; width:20px; height:20px; background: radial-gradient(circle, #d4a373 0%, #a67c52 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: he-ornament 7s ease-in-out infinite reverse; }
.scn-hermoine-entreats .light-ray { position:absolute; top:10%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, rgba(255,220,150,.1) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: he-light 15s linear infinite; }
@keyframes he-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes he-candle { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.9; transform: scale(1); } }
@keyframes he-ornament { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes he-light { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; transform: translateX(20px); } 100% { opacity:.3; transform: translateX(40px); } }

.scn-hermoine-teasing { background: linear-gradient(180deg, #f7e7ce 0%, #e0c9a6 40%, #c4a77a 100%), radial-gradient(ellipse at 30% 60%, #fce4b3 0%, transparent 60%); }
.scn-hermoine-teasing .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #faefd8 0%, #e8d4b7 50%, #cbaf8a 100%); }
.scn-hermoine-teasing .figure-left-ht { position:absolute; bottom:25%; left:30%; width:28px; height:65px; background: linear-gradient(180deg, #5a6a4a 30%, #3a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-left 4s ease-in-out infinite; }
.scn-hermoine-teasing .figure-right-ht { position:absolute; bottom:25%; right:30%; width:28px; height:68px; background: linear-gradient(180deg, #6a5a4a 30%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-right 3.5s ease-in-out infinite; }
.scn-hermoine-teasing .play-table { position:absolute; bottom:20%; left:40%; width:50px; height:10px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 5px rgba(0,0,0,.3); }
.scn-hermoine-teasing .lamp { position:absolute; bottom:45%; left:45%; width:12px; height:25px; background: radial-gradient(circle, #f5d78a 0%, #d4a66a 100%); border-radius: 50% 50% 20% 20%; }
.scn-hermoine-teasing .lamp-glow { position:absolute; bottom:42%; left:42%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,100,.4) 0%, transparent 70%); animation: ht-glow 3s ease-in-out infinite alternate; }
.scn-hermoine-teasing .petals { position:absolute; top:20%; left:10%; width:100%; height:60%; background: radial-gradient(circle at 20% 30%, rgba(255,200,150,.15) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(255,200,150,.1) 0%, transparent 50%); filter: blur(4px); animation: ht-petals 8s ease-in-out infinite; }
@keyframes ht-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ht-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ht-glow { 0% { opacity:.7; transform: scale(1) ; } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1); } }
@keyframes ht-petals { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.6; transform: translateY(-10px); } 100% { opacity:.3; transform: translateY(0); } }

.scn-childhood-innocence { background: linear-gradient(180deg, #f2e3d0 0%, #dcc1a8 40%, #b6987a 100%), radial-gradient(ellipse at 50% 80%, #fce8c8 0%, transparent 60%); }
.scn-childhood-innocence .bg-soft { position:absolute; inset:0; background: linear-gradient(180deg, #f9ede0 0%, #e6d2bd 50%, #c8af99 100%); }
.scn-childhood-innocence .mother-figure { position:absolute; bottom:20%; left:35%; width:35px; height:85px; background: linear-gradient(180deg, #d4b89a 30%, #a88668 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-mother 6s ease-in-out infinite; }
.scn-childhood-innocence .child-figure { position:absolute; bottom:20%; left:50%; width:25px; height:55px; background: linear-gradient(180deg, #e8cdb0 30%, #c0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-child 4s ease-in-out infinite; }
.scn-childhood-innocence .hearth { position:absolute; bottom:15%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #a08060 0%, #604830 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(255,100,50,.3); }
.scn-childhood-innocence .hearth-glow { position:absolute; bottom:15%; left:18%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(255,150,60,.3) 0%, transparent 70%); animation: ci-glow 3s ease-in-out infinite alternate; }
.scn-childhood-innocence .rugged-edge { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 0 0; }
.scn-childhood-innocence .distant-window { position:absolute; top:15%; left:60%; width:30px; height:40px; background: linear-gradient(135deg, #a0b8c0 0%, #c8d8e0 100%); border: 4px solid #6b5b4e; border-radius: 4px; box-shadow: inset 0 0 15px rgba(255,255,200,.2); animation: ci-window 10s ease-in-out infinite alternate; }
@keyframes ci-mother { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-child { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-glow { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.8; transform: scale(1); } }
@keyframes ci-window { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-leontes-restless { background: radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 50%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%), linear-gradient(180deg, #1a0a00 0%, #3a2a1a 40%, #5a4a3a 70%, #6a5a4a 100%); }
.scn-leontes-restless .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); transform: perspective(800px) rotateX(2deg); animation: lr-floor 12s ease-in-out infinite alternate; }
.scn-leontes-restless .wall { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 60%, #4a3a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.3); animation: lr-wall 18s ease-in-out infinite; }
.scn-leontes-restless .column-l { position:absolute; top:5%; left:12%; width:8%; height:55%; background: linear-gradient(90deg, #4a3a2a 0%, #7a6a5a 30%, #5a4a3a 70%, #3a2a1a 100%); border-radius:6px; box-shadow: 4px 0 12px rgba(0,0,0,0.5), -2px 0 8px rgba(255,255,200,0.1); animation: lr-column 20s ease-in-out infinite alternate; }
.scn-leontes-restless .column-r { position:absolute; top:5%; right:12%; width:8%; height:55%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a5a 70%, #4a3a2a 100%); border-radius:6px; box-shadow: -4px 0 12px rgba(0,0,0,0.5), 2px 0 8px rgba(255,255,200,0.1); animation: lr-column 20s ease-in-out infinite alternate-reverse; }
.scn-leontes-restless .figure { position:absolute; bottom:15%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #05050a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: lr-restless 3s ease-in-out infinite; }
.scn-leontes-restless .candle { position:absolute; bottom:38%; left:38%; width:8px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,200,100,0.6), 0 0 48px 16px rgba(255,200,100,0.3), 0 0 80px 24px rgba(200,150,80,0.15); animation: lr-candle 2s ease-in-out infinite alternate; }
.scn-leontes-restless .shadow { position:absolute; bottom:15%; left:30%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(6px); transform-origin: bottom center; animation: lr-shadow 3s ease-in-out infinite; }
.scn-leontes-restless .window { position:absolute; top:18%; right:18%; width:50px; height:60px; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 4px 4px 12px rgba(0,0,0,0.4); animation: lr-window 25s ease-in-out infinite alternate; }
@keyframes lr-floor { 0% { transform: perspective(800px) rotateX(2deg) translateY(0); } 50% { transform: perspective(800px) rotateX(2.5deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(1.8deg) translateY(0); } }
@keyframes lr-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lr-column { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes lr-restless { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes lr-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; box-shadow: 0 0 30px 10px rgba(255,220,140,0.7), 0 0 60px 20px rgba(255,200,100,0.35); } 100% { transform: scaleY(0.95) rotate(2deg); opacity:0.85; box-shadow: 0 0 22px 7px rgba(255,200,100,0.55), 0 0 44px 14px rgba(255,200,100,0.28); } }
@keyframes lr-shadow { 0% { transform: translateX(0) scaleX(1) rotate(0deg); opacity:0.4; } 25% { transform: translateX(8px) scaleX(1.1) rotate(2deg); opacity:0.5; } 50% { transform: translateX(16px) scaleX(0.95) rotate(-1deg); opacity:0.3; } 75% { transform: translateX(24px) scaleX(1.05) rotate(1deg); opacity:0.45; } 100% { transform: translateX(32px) scaleX(1) rotate(0deg); opacity:0.35; } }
@keyframes lr-window { 0% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); } 50% { background: linear-gradient(180deg, #0a0a3a 0%, #1a1a4a 50%, #2a2a5a 100%); } 100% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); } }

.scn-paulina-enters-with-baby { background: radial-gradient(ellipse at 40% 50%, #6a5a4a 0%, transparent 50%), radial-gradient(ellipse at 60% 70%, #5a4a3a 0%, transparent 60%), linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 70%, #6a5a4a 100%); }
.scn-paulina-enters-with-baby .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); animation: pe-floor 15s ease-in-out infinite alternate; }
.scn-paulina-enters-with-baby .wall { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #7a6a5a 0%, #6a5a4a 50%, #5a4a3a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.2); animation: pe-wall 20s ease-in-out infinite; }
.scn-paulina-enters-with-baby .doorway { position:absolute; bottom:20%; left:50%; width:30%; height:55%; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; transform: translateX(-50%); box-shadow: inset 0 0 30px rgba(0,0,0,0.6), 0 0 20px rgba(0,0,0,0.3); animation: pe-doorway 25s ease-in-out infinite alternate; }
.scn-paulina-enters-with-baby .figure-paulina { position:absolute; bottom:15%; left:38%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 45% 40% 30% 35% / 60% 55% 45% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pe-paulina 4s ease-in-out infinite; }
.scn-paulina-enters-with-baby .figure-baby { position:absolute; bottom:28%; left:42%; width:14px; height:18px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: pe-baby 4s ease-in-out infinite; }
.scn-paulina-enters-with-baby .guard { position:absolute; bottom:15%; right:25%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pe-guard 5s ease-in-out infinite; }
.scn-paulina-enters-with-baby .torch { position:absolute; bottom:35%; right:15%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); animation: pe-torch 2.5s ease-in-out infinite alternate; }
@keyframes pe-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pe-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes pe-doorway { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(0.95); } }
@keyframes pe-paulina { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(4px) translateY(-2px) rotate(0deg); } 60% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(12px) translateY(0) rotate(-1deg); } }
@keyframes pe-baby { 0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } 30% { transform: translateX(4px) translateY(-1px) rotate(-2deg) scale(1.05); } 60% { transform: translateX(8px) translateY(-1px) rotate(1deg) scale(0.98); } 100% { transform: translateX(12px) translateY(0) rotate(0deg) scale(1); } }
@keyframes pe-guard { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pe-torch { 0% { transform: scaleY(1) rotate(-3deg); opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4), 0 0 32px 8px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.2) rotate(0deg); opacity:1; box-shadow: 0 0 26px 8px rgba(255,220,140,0.6), 0 0 52px 16px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.9) rotate(3deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.45), 0 0 36px 10px rgba(255,200,100,0.22); } }

.scn-paulina-confronts-king { background: radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, transparent 50%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%), linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 70%, #7a6a5a 100%); }
.scn-paulina-confronts-king .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); transform: perspective(800px) rotateX(3deg); animation: pk-floor 18s ease-in-out infinite alternate; }
.scn-paulina-confronts-king .wall { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #8a7a6a 0%, #7a6a5a 50%, #6a5a4a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.25); animation: pk-wall 22s ease-in-out infinite; }
.scn-paulina-confronts-king .dais { position:absolute; bottom:20%; left:50%; width:40%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%); transform: translateX(-50%) perspective(600px) rotateX(-2deg); border-radius: 4px; box-shadow: 0 -6px 20px rgba(0,0,0,0.4), inset 0 4px 10px rgba(255,255,200,0.1); animation: pk-dais 25s ease-in-out infinite alternate; }
.scn-paulina-confronts-king .figure-king { position:absolute; bottom:28%; left:50%; width:28px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: pk-king 6s ease-in-out infinite; }
.scn-paulina-confronts-king .figure-paulina { position:absolute; bottom:15%; left:25%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 45% 40% 30% 35% / 60% 55% 45% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pk-paulina 4s ease-in-out infinite; }
.scn-paulina-confronts-king .guard-l { position:absolute; bottom:15%; left:5%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pk-guard-l 7s ease-in-out infinite; }
.scn-paulina-confronts-king .guard-r { position:absolute; bottom:15%; right:5%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pk-guard-r 7s ease-in-out infinite reverse; }
.scn-paulina-confronts-king .torch-l { position:absolute; bottom:35%; left:8%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); animation: pk-torch-l 2.8s ease-in-out infinite alternate; }
.scn-paulina-confronts-king .torch-r { position:absolute; bottom:35%; right:8%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.25); animation: pk-torch-r 2.8s ease-in-out infinite alternate-reverse; }
@keyframes pk-floor { 0% { transform: perspective(800px) rotateX(3deg) translateY(0); } 50% { transform: perspective(800px) rotateX(3.5deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(2.8deg) translateY(0); } }
@keyframes pk-wall { 0% { opacity:0.88; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes pk-dais { 0% { transform: translateX(-50%) perspective(600px) rotateX(-2deg) translateY(0); } 50% { transform: translateX(-50%) perspective(600px) rotateX(-2.5deg) translateY(-3px); } 100% { transform: translateX(-50%) perspective(600px) rotateX(-1.8deg) translateY(0); } }
@keyframes pk-king { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 30% { transform: translateX(-50%) translateY(-3px) rotate(0deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes pk-paulina { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(8px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes pk-guard-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pk-guard-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pk-torch-l { 0% { transform: scaleY(1) rotate(-3deg); opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4), 0 0 32px 8px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; box-shadow: 0 0 28px 8px rgba(255,220,140,0.6), 0 0 56px 16px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.95) rotate(3deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.45), 0 0 36px 10px rgba(255,200,100,0.22); } }
@keyframes pk-torch-r { 0% { transform: scaleY(1) rotate(3deg); opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4), 0 0 32px 8px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; box-shadow: 0 0 28px 8px rgba(255,220,140,0.6), 0 0 56px 16px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.95) rotate(-3deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.45), 0 0 36px 10px rgba(255,200,100,0.22); } }

.scn-paulina-lays-babe { background: radial-gradient(ellipse at 40% 60%, #6a5a4a 0%, transparent 50%), radial-gradient(ellipse at 60% 40%, #5a4a3a 0%, transparent 55%), linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 70%, #6a5a4a 100%); }
.scn-paulina-lays-babe .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); animation: pl-floor 16s ease-in-out infinite alternate; }
.scn-paulina-lays-babe .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #7a6a5a 0%, #6a5a4a 50%, #5a4a3a 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.2); animation: pl-wall 24s ease-in-out infinite; }
.scn-paulina-lays-babe .table { position:absolute; bottom:20%; left:50%; width:60%; height:16%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%); transform: translateX(-50%) perspective(600px) rotateX(-3deg); border-radius: 6px; box-shadow: 0 -4px 20px rgba(0,0,0,0.4), inset 0 4px 12px rgba(255,255,200,0.1); animation: pl-table 20s ease-in-out infinite alternate; }
.scn-paulina-lays-babe .figure-paulina { position:absolute; bottom:18%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a050a 100%); border-radius: 45% 40% 30% 35% / 60% 55% 45% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: pl-paulina 5s ease-in-out infinite; }
.scn-paulina-lays-babe .figure-babe { position:absolute; bottom:26%; left:50%; width:16px; height:20px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 12px rgba(0,0,0,0.25); animation: pl-babe 5s ease-in-out infinite; }
.scn-paulina-lays-babe .cloth { position:absolute; bottom:22%; left:44%; width:30%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 40%, #4a3a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: top center; box-shadow: 0 2px 10px rgba(0,0,0,0.3); animation: pl-cloth 7s ease-in-out infinite; }
.scn-paulina-lays-babe .candle { position:absolute; bottom:30%; left:25%; width:8px; height:14px; background: linear-gradient(180deg, #ffd080 0%, #c08040 50%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,200,100,0.5), 0 0 48px 16px rgba(255,200,100,0.25), 0 0 80px 24px rgba(200,150,80,0.12); animation: pl-candle 2.2s ease-in-out infinite alternate; }
@keyframes pl-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pl-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.93; } }
@keyframes pl-table { 0% { transform: translateX(-50%) perspective(600px) rotateX(-3deg) translateY(0); } 50% { transform: translateX(-50%) perspective(600px) rotateX(-3.5deg) translateY(-3px); } 100% { transform: translateX(-50%) perspective(600px) rotateX(-2.8deg) translateY(0); } }
@keyframes pl-paulina { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-4px) rotate(0deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 75% { transform: translateX(12px) translateY(-3px) rotate(0deg); } 100% { transform: translateX(16px) translateY(0) rotate(-2deg); } }
@keyframes pl-babe { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) scale(1.03); } 50% { transform: translateX(-50%) translateY(-1px) rotate(0deg) scale(0.98); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); } }
@keyframes pl-cloth { 0% { transform: rotateX(0deg) translateY(0); } 50% { transform: rotateX(5deg) translateY(-2px); } 100% { transform: rotateX(0deg) translateY(0); } }
@keyframes pl-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 18px 6px rgba(255,200,100,0.4), 0 0 36px 12px rgba(255,200,100,0.2); } 50% { transform: scaleY(1.2) rotate(0deg); opacity:1; box-shadow: 0 0 30px 10px rgba(255,220,140,0.6), 0 0 60px 20px rgba(255,200,100,0.3); } 100% { transform: scaleY(0.92) rotate(2deg); opacity:0.85; box-shadow: 0 0 20px 7px rgba(255,200,100,0.45), 0 0 40px 14px rgba(255,200,100,0.22); } }

/* autolycus-disguise-fardel — funny sunlit wide horizon */
.scn-autolycus-disguise-fardel {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%);
}
.scn-autolycus-disguise-fardel .au1-sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%);
  animation: au1-sky 15s ease-in-out infinite alternate;
}
.scn-autolycus-disguise-fardel .au1-sun {
  position:absolute; top:8%; left:75%; width:70px; height:70px;
  background: radial-gradient(circle, #FFFACD 0%, #FFD700 70%, transparent 100%); border-radius:50%;
  box-shadow: 0 0 50px 25px rgba(255,215,0,0.5);
  animation: au1-sun 10s ease-in-out infinite;
}
.scn-autolycus-disguise-fardel .au1-hills {
  position:absolute; bottom:28%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 40% 70% 0 0 / 50% 50% 0 0;
  animation: au1-hills 20s ease-in-out infinite alternate;
}
.scn-autolycus-disguise-fardel .au1-figure {
  position:absolute; bottom:24%; left:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #3B2F2F 0%, #1A1110 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au1-walk 4s ease-in-out infinite;
}
.scn-autolycus-disguise-fardel .au1-fardel {
  position:absolute; bottom:28%; left:24%; width:36px; height:36px;
  background: radial-gradient(circle at 40% 40%, #8B4513 0%, #5C4033 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: au1-sway 4s ease-in-out infinite;
}
.scn-autolycus-disguise-fardel .au1-rustic1 {
  position:absolute; bottom:24%; right:30%; width:28px; height:65px;
  background: linear-gradient(180deg, #5C4033 0%, #2B1A10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au1-walk 4.5s ease-in-out infinite -1s;
}
.scn-autolycus-disguise-fardel .au1-rustic2 {
  position:absolute; bottom:24%; right:15%; width:25px; height:60px;
  background: linear-gradient(180deg, #556B2F 0%, #2E3B1F 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au1-walk 5s ease-in-out infinite -2s;
}
.scn-autolycus-disguise-fardel .au1-staff {
  position:absolute; bottom:24%; left:22%; width:4px; height:80px;
  background: linear-gradient(180deg, #8B4513 0%, #3B2F2F 100%); border-radius:2px;
  transform-origin: bottom center; transform: rotate(-10deg);
  animation: au1-staff 4s ease-in-out infinite;
}
@keyframes au1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes au1-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes au1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes au1-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(-2deg) } 75% { transform: translateX(18px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes au1-sway { 0% { transform: translateX(0) rotate(-4deg) } 50% { transform: translateX(3px) rotate(4deg) } 100% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes au1-staff { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-5deg) } }

/* autolycus-courtier-pretence — funny sunlit interior cutaway */
.scn-autolycus-courtier-pretence {
  background: linear-gradient(180deg, #F5F5DC 0%, #E6E6FA 50%, #D8BFD8 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}
.scn-autolycus-courtier-pretence .au2-window {
  position:absolute; top:0; left:50%; width:70%; height:100%;
  background: radial-gradient(ellipse at 50% 20%, #87CEEB 0%, #B0E0E6 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  transform: translateX(-50%); box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: au2-window 12s ease-in-out infinite alternate;
}
.scn-autolycus-courtier-pretence .au2-beam {
  position:absolute; top:0; left:25%; width:50%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,224,0.5) 0%, transparent 100%);
  transform: skewX(-8deg);
  animation: au2-beam 8s ease-in-out infinite alternate;
}
.scn-autolycus-courtier-pretence .au2-figure {
  position:absolute; bottom:18%; left:50%; width:40px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4A3B32 0%, #2B1D14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au2-bow 6s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-cloak {
  position:absolute; bottom:18%; left:50%; width:80px; height:85px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4B0082 0%, #2E0854 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: au2-flourish 6s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-hat {
  position:absolute; bottom:78%; left:50%; width:60px; height:25px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #1A1110 0%, #3B2F2F 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: au2-hat 6s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-feather {
  position:absolute; bottom:85%; left:55%; width:8px; height:30px;
  background: linear-gradient(180deg, #C8553D 0%, #8B3A2A 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: bottom center;
  animation: au2-feather 3s ease-in-out infinite;
}
.scn-autolycus-courtier-pretence .au2-purse {
  position:absolute; bottom:30%; right:22%; width:22px; height:28px;
  background: radial-gradient(circle at 40% 40%, #DAA520 0%, #B8860B 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: au2-jingle 4s ease-in-out infinite;
}
@keyframes au2-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes au2-beam { 0% { opacity:.3; transform: skewX(-8deg) translateX(-10px) } 50% { opacity:.6; transform: skewX(-5deg) translateX(10px) } 100% { opacity:.4; transform: skewX(-10deg) translateX(-5px) } }
@keyframes au2-bow { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(15deg) } 60% { transform: translateX(-50%) rotate(-10deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes au2-flourish { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(20deg) } 60% { transform: translateX(-50%) rotate(-15deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes au2-hat { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(8deg) } 60% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes au2-feather { 0% { transform: rotate(0deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(15deg) } }
@keyframes au2-jingle { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

/* fardel-secrets — tense sunlit close-up */
.scn-fardel-secrets {
  background: linear-gradient(180deg, #F5DEB3 0%, #8B4513 100%), radial-gradient(ellipse at 50% 50%, #F5DEB3 0%, transparent 70%);
}
.scn-fardel-secrets .au3-window {
  position:absolute; top:5%; left:20%; width:60%; height:35%;
  background: radial-gradient(ellipse at 50% 50%, #FFF8DC 0%, #87CEEB 100%);
  border: 8px solid #3B2F2F; border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: au3-light 5s ease-in-out infinite alternate;
}
.scn-fardel-secrets .au3-table {
  position:absolute; bottom:15%; left:5%; width:90%; height:25%;
  background: linear-gradient(180deg, #5C4033 0%, #3B2F2F 100%);
  border-radius: 6px; box-shadow: 0 -6px 15px rgba(0,0,0,0.6);
}
.scn-fardel-secrets .au3-fardel {
  position:absolute; bottom:28%; left:25%; width:80px; height:65px;
  background: radial-gradient(circle at 30% 30%, #6B4226 0%, #2B1A10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8);
  animation: au3-tremble 3s ease-in-out infinite;
}
.scn-fardel-secrets .au3-box {
  position:absolute; bottom:32%; right:22%; width:55px; height:55px;
  background: linear-gradient(135deg, #4A3B32 0%, #1A1110 100%);
  border: 4px solid #B8860B; border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: au3-tremble 3.5s ease-in-out infinite -0.5s;
}
.scn-fardel-secrets .au3-lock {
  position:absolute; bottom:46%; right:33%; width:12px; height:16px;
  background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(218,165,32,0.9);
  animation: au3-pulse 2s ease-in-out infinite alternate;
}
.scn-fardel-secrets .au3-hand {
  position:absolute; bottom:30%; left:12%; width:40px; height:55px;
  background: linear-gradient(180deg, #E8C39E 0%, #C58B59 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: au3-grasp 4s ease-in-out infinite;
}
.scn-fardel-secrets .au3-dust {
  position:absolute; top:15%; left:10%; width:4px; height:4px;
  background: rgba(255,255,224,0.9); border-radius:50%;
  box-shadow: 15px 25px 6px rgba(255,255,224,0.7), 40px 50px 10px rgba(255,255,224,0.5), 70px 15px 4px rgba(255,255,224,0.8);
  animation: au3-dust 8s linear infinite;
}
@keyframes au3-light { 0% { opacity:.6; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.2) } 100% { opacity:.7; filter:brightness(.9) } }
@keyframes au3-tremble { 0% { transform: translateX(0) } 20% { transform: translateX(-2px) } 40% { transform: translateX(2px) } 60% { transform: translateX(-1px) } 80% { transform: translateX(1px) } 100% { transform: translateX(0) } }
@keyframes au3-pulse { 0% { box-shadow: 0 0 10px rgba(218,165,32,0.6); } 100% { box-shadow: 0 0 25px rgba(218,165,32,1); } }
@keyframes au3-grasp { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(15px) rotate(10deg) } 60% { transform: translateX(10px) rotate(5deg) } 100% { transform: translateX(-5px) rotate(-2deg) } }
@keyframes au3-dust { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-30px) translateX(20px) } 100% { transform: translateY(-60px) translateX(40px) } }

/* autolycus-deception-king-grief — dark sunlit silhouette */
.scn-autolycus-deception-king-grief {
  background: linear-gradient(180deg, #F0E68C 0%, #BDB76B 50%, #8B8378 100%), radial-gradient(ellipse at 50% 0%, #FFFACD 0%, transparent 70%);
}
.scn-autolycus-deception-king-grief .au4-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #FFFACD 0%, #F0E68C 100%);
  animation: au4-heat 10s ease-in-out infinite alternate;
}
.scn-autolycus-deception-king-grief .au4-sun {
  position:absolute; top:2%; left:50%; width:120px; height:120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #FFFFFF 0%, #FFFACD 40%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(255,255,255,0.7);
  animation: au4-glare 8s ease-in-out infinite;
}
.scn-autolycus-deception-king-grief .au4-ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #BDB76B 0%, #8B8378 100%);
  border-radius: 20% 60% 0 0 / 10% 30% 0 0;
  animation: au4-ground 15s ease-in-out infinite alternate;
}
.scn-autolycus-deception-king-grief .au4-crack {
  position:absolute; bottom:20%; left:10%; width:80%; height:3px;
  background: #5C4033; border-radius:2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(-2deg);
}
.scn-autolycus-deception-king-grief .au4-king {
  position:absolute; bottom:30%; right:22%; width:40px; height:85px;
  background: #1A1110;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -25px 15px 20px rgba(0,0,0,0.6);
  animation: au4-grieve 6s ease-in-out infinite;
}
.scn-autolycus-deception-king-grief .au4-autolycus {
  position:absolute; bottom:30%; left:18%; width:35px; height:80px;
  background: #2B1D14;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 25px 15px 20px rgba(0,0,0,0.6);
  animation: au4-cower 6s ease-in-out infinite -3s;
}
.scn-autolycus-deception-king-grief .au4-shadow {
  position:absolute; bottom:0; left:5%; width:45%; height:35%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  border-radius: 0 80% 0 0 / 0 100% 0 0;
  transform: skewX(-25deg);
  animation: au4-shadow 12s ease-in-out infinite alternate;
}
@keyframes au4-heat { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes au4-glare { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.08) } 100% { transform: translateX(-50%) scale(.95) } }
@keyframes au4-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes au4-grieve { 0% { transform: rotate(0deg) } 30% { transform: rotate(-5deg) translateY(-3px) } 60% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes au4-cower { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(-1px) } }
@keyframes au4-shadow { 0% { opacity:.4; transform: skewX(-25deg) translateX(0) } 100% { opacity:.9; transform: skewX(-30deg) translateX(-20px) } }

.scn-autolycus-gentlemen-conversation { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #a8856a 100%), radial-gradient(ellipse at 50% 0%, #f5e6d0 0%, transparent 70%); }
.scn-autolycus-gentlemen-conversation .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0cdb0, #c4a788); animation: au-wall 20s ease-in-out infinite alternate; }
.scn-autolycus-gentlemen-conversation .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a8856a, #7a5d45); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.3); animation: au-floor 15s ease-in-out infinite; }
.scn-autolycus-gentlemen-conversation .window { position:absolute; top:15%; left:30%; width:60px; height:80px; background: linear-gradient(135deg, #87ceeb, #b0e0e6); border:4px solid #7a5d45; border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,200,0.5); animation: au-window 8s ease-in-out infinite alternate; }
.scn-autolycus-gentlemen-conversation .sunbeam { position:absolute; top:15%; left:30%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,255,200,0.4), transparent); clip-path:polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: au-sunbeam 12s ease-in-out infinite alternate; }
.scn-autolycus-gentlemen-conversation .fardel { position:absolute; bottom:30%; left:45%; width:40px; height:30px; background: linear-gradient(135deg, #8b6914, #5c4410); border-radius:20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,0.4); animation: au-fardel 6s ease-in-out infinite; }
.scn-autolycus-gentlemen-conversation .figure-left { position:absolute; bottom:30%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: au-figure 5s ease-in-out infinite; }
.scn-autolycus-gentlemen-conversation .figure-right { position:absolute; bottom:30%; right:25%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: au-figure2 5s ease-in-out infinite; }
@keyframes au-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes au-floor { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes au-window { 0% { box-shadow:inset 0 0 20px rgba(255,255,200,0.5); } 50% { box-shadow:inset 0 0 40px rgba(255,255,200,0.8); } 100% { box-shadow:inset 0 0 20px rgba(255,255,200,0.5); } }
@keyframes au-sunbeam { 0% { opacity:0.6; transform:translateX(-10px) scaleX(0.9); } 50% { opacity:1; transform:translateX(0) scaleX(1); } 100% { opacity:0.7; transform:translateX(10px) scaleX(0.95); } }
@keyframes au-fardel { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(-3px) rotate(-1deg); } 75% { transform:translateY(-1px) rotate(1deg); } }
@keyframes au-figure { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes au-figure2 { 0%,100% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-2px) rotate(-1deg); } }

.scn-gentlemen-narrate-discovery { background: linear-gradient(180deg, #ffe4b5 0%, #ffd39b 50%, #e8a15a 100%), radial-gradient(ellipse at 50% 100%, #e8a15a 0%, transparent 70%); }
.scn-gentlemen-narrate-discovery .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f4d03f 100%); animation: gn-sky 25s ease-in-out infinite alternate; }
.scn-gentlemen-narrate-discovery .bg-horizon { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #d4a76a, #b8860b); border-radius:30% 70% 0 0 / 50% 50% 0 0; animation: gn-horizon 18s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .figure-speaker { position:absolute; bottom:20%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #4a3728, #2c1e14); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gn-speaker 4s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .figure-audience-1 { position:absolute; bottom:22%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gn-audience1 6s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .figure-audience-2 { position:absolute; bottom:25%; left:58%; width:30px; height:65px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gn-audience2 6s ease-in-out infinite 2s; }
.scn-gentlemen-narrate-discovery .gesture-hand { position:absolute; bottom:35%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #4a3728, #2c1e14); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin:bottom left; animation: gn-hand 3s ease-in-out infinite; }
.scn-gentlemen-narrate-discovery .scroll { position:absolute; bottom:15%; left:42%; width:15px; height:10px; background: linear-gradient(135deg, #f5e6c8, #d4b896); border-radius:10% 10% 20% 20%; box-shadow:0 2px 4px rgba(0,0,0,0.3); animation: gn-scroll 8s ease-in-out infinite alternate; }
@keyframes gn-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gn-horizon { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes gn-speaker { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(-2deg); } 50% { transform:translateY(-5px) rotate(0deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes gn-audience1 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } }
@keyframes gn-audience2 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(-2deg); } }
@keyframes gn-hand { 0% { transform:rotate(-30deg) scale(1); } 25% { transform:rotate(0deg) scale(1.1); } 50% { transform:rotate(20deg) scale(1); } 75% { transform:rotate(0deg) scale(0.9); } 100% { transform:rotate(-30deg) scale(1); } }
@keyframes gn-scroll { 0% { transform:translateY(0) rotate(-5deg); opacity:0.7; } 50% { transform:translateY(-3px) rotate(0deg); opacity:1; } 100% { transform:translateY(0) rotate(5deg); opacity:0.8; } }

.scn-rogero-bonfires { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #cd853f 100%), radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 60%); }
.scn-rogero-bonfires .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb, #b0e0e6); animation: rb-sky 30s ease-in-out infinite alternate; }
.scn-rogero-bonfires .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #cd853f, #8b4513); border-radius:20% 80% 0 0 / 30% 70% 0 0; animation: rb-ground 20s ease-in-out infinite; }
.scn-rogero-bonfires .bonfire { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff4500 0%, #ff8c00 40%, #ffd700 70%, transparent 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow:0 0 40px 10px rgba(255,140,0,0.5); animation: rb-bonfire 5s ease-in-out infinite; }
.scn-rogero-bonfires .flame-1 { position:absolute; bottom:40%; left:44%; width:20px; height:30px; background: linear-gradient(180deg, #ff4500, #ff8c00, transparent); border-radius:50% 50% 0 0; animation: rb-flame1 2s ease-in-out infinite alternate; }
.scn-rogero-bonfires .flame-2 { position:absolute; bottom:40%; left:54%; width:18px; height:25px; background: linear-gradient(180deg, #ff6347, #ffa500, transparent); border-radius:50% 50% 0 0; animation: rb-flame2 1.8s ease-in-out infinite alternate 0.5s; }
.scn-rogero-bonfires .figure-1 { position:absolute; bottom:30%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-fig1 4s ease-in-out infinite; }
.scn-rogero-bonfires .figure-2 { position:absolute; bottom:30%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-fig2 4s ease-in-out infinite 1s; }
.scn-rogero-bonfires .torch { position:absolute; bottom:40%; left:60%; width:10px; height:20px; background: #4a3728; border-radius:10% 10% 20% 20%; box-shadow:0 0 10px 5px #ff8c00; animation: rb-torch 3s ease-in-out infinite; }
@keyframes rb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rb-ground { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes rb-bonfire { 0%,100% { transform:translateX(-50%) scale(1); opacity:0.9; } 50% { transform:translateX(-50%) scale(1.1); opacity:1; } }
@keyframes rb-flame1 { 0% { transform:translateY(0) scaleX(1) rotate(0deg); } 50% { transform:translateY(-5px) scaleX(1.2) rotate(5deg); } 100% { transform:translateY(-2px) scaleX(0.9) rotate(-5deg); } }
@keyframes rb-flame2 { 0% { transform:translateY(0) scaleX(1) rotate(0deg); } 50% { transform:translateY(-4px) scaleX(1.1) rotate(-6deg); } 100% { transform:translateY(-1px) scaleX(0.8) rotate(4deg); } }
@keyframes rb-fig1 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes rb-fig2 { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-1deg); } }
@keyframes rb-torch { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(10deg); } }

.scn-gentlemen-reunion-talk { background: linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #8b7355 100%), radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 70%); }
.scn-gentlemen-reunion-talk .hall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f5deb3, #deb887, #8b7355); border-radius:10% 10% 0 0 / 20% 20% 0 0; box-shadow:inset 0 10px 50px rgba(0,0,0,0.3); animation: gr-hall 30s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .window-arch { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:100px; height:150px; background: linear-gradient(135deg, #87ceeb, #b0e0e6, #f0e68c); background-size:200% 200%; border-radius:50% 50% 10% 10% / 60% 60% 10% 10%; border:4px solid #8b7355; box-shadow:inset 0 0 30px rgba(255,255,200,0.6); animation: gr-window 12s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .light-rays { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:120px; height:80px; background: linear-gradient(180deg, rgba(255,255,200,0.5), transparent); clip-path:polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%); animation: gr-rays 15s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .king-left { position:absolute; bottom:20%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #2c1e14, #1a0e0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gr-kingL 6s ease-in-out infinite; }
.scn-gentlemen-reunion-talk .king-right { position:absolute; bottom:20%; right:30%; width:40px; height:90px; background: linear-gradient(180deg, #2c1e14, #1a0e0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gr-kingR 6s ease-in-out infinite 1s; }
.scn-gentlemen-reunion-talk .crown-left { position:absolute; top:10%; left:32%; width:30px; height:15px; background: linear-gradient(135deg, #ffd700, #b8860b); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow:0 0 10px 3px #ffd700; animation: gr-crownL 4s ease-in-out infinite alternate; }
.scn-gentlemen-reunion-talk .crown-right { position:absolute; top:10%; right:32%; width:30px; height:15px; background: linear-gradient(135deg, #ffd700, #b8860b); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow:0 0 10px 3px #ffd700; animation: gr-crownR 4s ease-in-out infinite alternate 0.5s; }
.scn-gentlemen-reunion-talk .onlookers { position:absolute; bottom:18%; left:15%; right:15%; height:30px; background: linear-gradient(180deg, #2c1e14, transparent); border-radius:50% 50% 0 0 / 100% 100% 0 0; filter:blur(2px); animation: gr-onlookers 20s ease-in-out infinite; }
@keyframes gr-hall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gr-window { 0% { background-position:0% 0%; } 100% { background-position:100% 100%; } }
@keyframes gr-rays { 0% { opacity:0.5; transform:translateX(-10px) scaleX(0.9); } 50% { opacity:1; transform:translateX(0) scaleX(1); } 100% { opacity:0.6; transform:translateX(10px) scaleX(0.95); } }
@keyframes gr-kingL { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1deg); } }
@keyframes gr-kingR { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(-1deg); } }
@keyframes gr-crownL { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-2px) rotate(0deg); } 100% { transform:translateY(0) rotate(3deg); } }
@keyframes gr-crownR { 0% { transform:translateY(0) rotate(3deg); } 50% { transform:translateY(-2px) rotate(0deg); } 100% { transform:translateY(0) rotate(-3deg); } }
@keyframes gr-onlookers { 0%,100% { transform:scaleY(1); opacity:0.8; } 50% { transform:scaleY(1.05); opacity:1; } }
/* end per-scene blocks */

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-hermione-resurrected { background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #1a120a 80%), radial-gradient(ellipse at 50% 40%, #c08040 0%, transparent 60%); }
.scn-hermione-resurrected .column-l { position:absolute; top:0; left:5%; width:60px; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:8px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5); }
.scn-hermione-resurrected .column-r { position:absolute; top:0; right:5%; width:60px; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:8px; box-shadow: inset 4px 0 8px rgba(0,0,0,0.5); }
.scn-hermione-resurrected .arch { position:absolute; top:10%; left:20%; right:20%; height:100px; background: linear-gradient(180deg, #4a3520 0%, #2a1e14 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: hr-arch-sway 12s ease-in-out infinite alternate; }
.scn-hermione-resurrected .pedestal { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:140px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-hermione-resurrected .statue-h { position:absolute; bottom:calc(20% + 30px); left:50%; transform:translateX(-50%); width:60px; height:120px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: hr-descend 8s ease-out forwards, hr-sway 10s ease-in-out 2s infinite alternate; }
.scn-hermione-resurrected .leontes { position:absolute; bottom:20%; left:25%; width:50px; height:130px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-embrace 6s ease-in-out infinite alternate; }
.scn-hermione-resurrected .perdita { position:absolute; bottom:20%; right:30%; width:40px; height:90px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hr-kneel 8s ease-in-out infinite alternate; }
.scn-hermione-resurrected .warm-glow { position:absolute; bottom:calc(20% + 60px); left:50%; transform:translateX(-50%); width:200px; height:200px; background: radial-gradient(circle, rgba(200,120,50,0.4) 0%, transparent 70%); border-radius:50%; animation: hr-glow 4s ease-in-out infinite alternate; pointer-events:none; }
.scn-hermione-resurrected .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }

@keyframes hr-arch-sway { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes hr-descend { 0% { transform: translateX(-50%) translateY(-100px) scale(0.8); opacity:0; } 50% { transform: translateX(-50%) translateY(-20px) scale(1); opacity:0.8; } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity:1; } }
@keyframes hr-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hr-embrace { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(15px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hr-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hr-glow { 0% { box-shadow: 0 0 30px 10px rgba(200,120,50,0.2); opacity:0.6; } 50% { box-shadow: 0 0 60px 20px rgba(200,120,50,0.5); opacity:1; } 100% { box-shadow: 0 0 30px 10px rgba(200,120,50,0.2); opacity:0.6; } }

/* ---- scene: item-perditas-flowers (warm, sunlit) ---- */
.scn-item-perditas-flowers {
  background: linear-gradient(180deg, #f7e9d0 0%, #eedbba 40%, #dac29c 100%), radial-gradient(ellipse at 40% 30%, #fff5d0 0%, transparent 70%);
}
.scn-item-perditas-flowers .field-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8d4a0 0%, #8db56f 50%, #5a7c3e 100%);
  border-radius: 0 0 60% 40% / 0 0 20% 30%;
  animation: per-field-fade 12s ease-in-out infinite alternate;
}
.scn-item-perditas-flowers .sunlight {
  position: absolute; top: 0; left: 25%; width: 50%; height: 60%;
  background: radial-gradient(ellipse at center, rgba(255,240,200,.6) 0%, transparent 80%);
  filter: blur(12px);
  animation: per-sun-pulse 6s ease-in-out infinite alternate;
}
.scn-item-perditas-flowers .hand {
  position: absolute; bottom: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #caa67c 0%, #b28a60 40%, #9a7050 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-item-perditas-flowers .left-hand {
  left: 38%; transform: rotate(5deg) scale(1.05);
  animation: per-hand-left 4s ease-in-out infinite;
}
.scn-item-perditas-flowers .right-hand {
  left: 52%; transform: rotate(-5deg) scale(0.95);
  animation: per-hand-right 4s ease-in-out infinite;
}
.scn-item-perditas-flowers .flower-stem {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6b8c42 0%, #4a6a2e 100%);
  transform-origin: bottom center;
  border-radius: 50%;
  animation: per-stem-sway 5s ease-in-out infinite;
}
.scn-item-perditas-flowers .flower-head {
  position: absolute; bottom: 72%; left: 46%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #f7d94e 0%, #d4a839 60%, #b8892a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(215,170,50,.3);
  animation: per-flower-glow 7s ease-in-out infinite alternate;
}
.scn-item-perditas-flowers .petal-slip {
  position: absolute; bottom: 60%; left: 44%; width: 18px; height: 18px;
  background: linear-gradient(135deg, #f5ebc0 0%, #e0c890 100%);
  border-radius: 60% 40% 50% 50%;
  transform: rotate(-20deg);
  animation: per-petal-drift 9s ease-in-out infinite;
}
.scn-item-perditas-flowers .warm-glint {
  position: absolute; top: 14%; left: 70%; width: 10px; height: 10px;
  background: #fff7bf;
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,247,191,.3);
  animation: per-glint-blink 3s ease-in-out infinite alternate;
}
.scn-item-perditas-flowers .ground-blur {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #7a9a5e 0%, transparent 100%);
  filter: blur(10px);
}

@keyframes per-field-fade {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes per-sun-pulse {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .8; transform: scale(0.95); }
}
@keyframes per-hand-left {
  0% { transform: rotate(5deg) scale(1.05) translateY(0); }
  50% { transform: rotate(7deg) scale(1.08) translateY(-3px); }
  100% { transform: rotate(5deg) scale(1.05) translateY(0); }
}
@keyframes per-hand-right {
  0% { transform: rotate(-5deg) scale(0.95) translateY(0); }
  50% { transform: rotate(-3deg) scale(0.98) translateY(-2px); }
  100% { transform: rotate(-5deg) scale(0.95) translateY(0); }
}
@keyframes per-stem-sway {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(4deg); }
  60% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes per-flower-glow {
  0% { box-shadow: 0 0 15px 4px rgba(215,170,50,.2); }
  50% { box-shadow: 0 0 35px 12px rgba(240,200,60,.5); }
  100% { box-shadow: 0 0 20px 6px rgba(215,170,50,.3); }
}
@keyframes per-petal-drift {
  0% { transform: rotate(-20deg) translateX(0); opacity: .8; }
  50% { transform: rotate(-15deg) translateX(8px); opacity: .5; }
  100% { transform: rotate(-20deg) translateX(0); opacity: .8; }
}
@keyframes per-glint-blink {
  0% { opacity: .3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .4; transform: scale(0.9); }
}

/* ---- scene: feast-dancing-autolycus (warm, sunlit, festive) ---- */
.scn-feast-dancing-autolycus {
  background: linear-gradient(180deg, #faeacb 0%, #f0d8a8 40%, #d4b87a 100%), radial-gradient(ellipse at 50% -10%, #fff8e0 0%, transparent 60%);
}
.scn-feast-dancing-autolycus .feast-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #b6935e 0%, #d4b87a 50%, transparent 100%);
  border-radius: 60% 60% 0 0 / 30% 30% 0 0;
  animation: feast-floor-warm 10s ease-in-out infinite alternate;
}
.scn-feast-dancing-autolycus .dancer {
  position: absolute; bottom: 28%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-feast-dancing-autolycus .dancer-a {
  left: 25%; animation: feast-dance-a 4s ease-in-out infinite;
}
.scn-feast-dancing-autolycus .dancer-b {
  left: 45%; width: 28px; height: 65px; background: linear-gradient(180deg, #6a3a2a 0%, #3a221a 100%);
  animation: feast-dance-b 3.6s ease-in-out infinite;
}
.scn-feast-dancing-autolycus .dancer-c {
  left: 62%; width: 26px; height: 72px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
  animation: feast-dance-c 4.4s ease-in-out infinite;
}
.scn-feast-dancing-autolycus .ribbon {
  position: absolute; height: 8px; background: linear-gradient(90deg, #d46b4a, #f0b060, #d46b4a);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-feast-dancing-autolycus .ribbon-a {
  top: 40%; left: 20%; width: 60px; transform: rotate(-20deg);
  animation: feast-ribbon-a 6s ease-in-out infinite alternate;
}
.scn-feast-dancing-autolycus .ribbon-b {
  top: 50%; right: 20%; width: 50px; transform: rotate(15deg);
  animation: feast-ribbon-b 7s ease-in-out infinite alternate;
}
.scn-feast-dancing-autolycus .sparkle-group {
  position: absolute; top: 15%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #fff8d0 0%, transparent 60%);
  filter: blur(4px);
  animation: feast-sparkle-pulse 3s ease-in-out infinite alternate;
}
.scn-feast-dancing-autolycus .music-note {
  position: absolute; top: 22%; left: 55%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: feast-note-fly 5s ease-in-out infinite;
}

@keyframes feast-floor-warm {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes feast-dance-a {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-4px); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  75% { transform: rotate(8deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes feast-dance-b {
  0% { transform: rotate(8deg) translateY(0); }
  30% { transform: rotate(-5deg) translateY(-3px); }
  60% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes feast-dance-c {
  0% { transform: rotate(-5deg) translateY(0) scaleX(1); }
  40% { transform: rotate(6deg) translateY(-5px) scaleX(1.1); }
  70% { transform: rotate(-8deg) translateY(-2px) scaleX(0.9); }
  100% { transform: rotate(-5deg) translateY(0) scaleX(1); }
}
@keyframes feast-ribbon-a {
  0% { transform: rotate(-20deg) translateX(0); opacity: .7; }
  50% { transform: rotate(-15deg) translateX(20px); opacity: 1; }
  100% { transform: rotate(-20deg) translateX(0); opacity: .7; }
}
@keyframes feast-ribbon-b {
  0% { transform: rotate(15deg) translateX(0); opacity: .6; }
  50% { transform: rotate(10deg) translateX(-15px); opacity: 1; }
  100% { transform: rotate(15deg) translateX(0); opacity: .6; }
}
@keyframes feast-sparkle-pulse {
  0% { opacity: .3; transform: scale(0.8); }
  50% { opacity: .8; transform: scale(1.2); }
  100% { opacity: .4; transform: scale(0.9); }
}
@keyframes feast-note-fly {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: .9; }
  30% { transform: translate(15px, -25px) rotate(15deg) scale(1.2); opacity: .7; }
  60% { transform: translate(-10px, -10px) rotate(-10deg) scale(0.8); opacity: .5; }
  100% { transform: translate(0, -30px) rotate(5deg) scale(0.6); opacity: 0; }
}

/* ---- scene: polixenes-revealed-rage (tense, bright interior) ---- */
.scn-polixenes-revealed-rage {
  background: linear-gradient(135deg, #d4c4a0 0%, #bfac84 40%, #9a876a 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%);
}
.scn-polixenes-revealed-rage .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ded1b8 0%, #c5b494 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 60px 20px rgba(0,0,0,.2);
}
.scn-polixenes-revealed-rage .shard-light {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(255,230,180,.6), transparent);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: pol-light-flicker 2s ease-in-out infinite alternate;
}
.scn-polixenes-revealed-rage .figure-punisher {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -8px 0 20px 5px rgba(0,0,0,.5);
  animation: pol-rage-lunge 3s ease-in-out infinite;
}
.scn-polixenes-revealed-rage .figure-cowering {
  position: absolute; bottom: 18%; right: 28%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.9) rotate(-10deg);
  animation: pol-cower-shake 1.8s ease-in-out infinite;
}
.scn-polixenes-revealed-rage .crack-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0600 0%, transparent 100%);
  filter: blur(6px);
  animation: pol-shadow-pulse 4s ease-in-out infinite alternate;
}
.scn-polixenes-revealed-rage .rage-tremor {
  position: absolute; top: 45%; left: 35%; width: 30%; height: 4px;
  background: linear-gradient(90deg, transparent, #4a2a1a, transparent);
  filter: blur(3px);
  animation: pol-tremor-line 2.5s ease-in-out infinite alternate;
}
.scn-polixenes-revealed-rage .dust-mote {
  position: absolute; top: 30%; left: 60%; width: 6px; height: 6px;
  background: rgba(180,160,130,.6);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(180,160,130,.3);
  animation: pol-dust-drift 15s linear infinite;
}

@keyframes pol-light-flicker {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .6; transform: scaleY(0.95); }
}
@keyframes pol-rage-lunge {
  0% { transform: rotate(-5deg) translateX(0); }
  20% { transform: rotate(3deg) translateX(10px); }
  40% { transform: rotate(-2deg) translateX(-5px); }
  60% { transform: rotate(4deg) translateX(8px); }
  80% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes pol-cower-shake {
  0% { transform: scale(0.9) rotate(-10deg) translateY(0); }
  25% { transform: scale(0.88) rotate(-12deg) translateY(2px); }
  50% { transform: scale(0.9) rotate(-10deg) translateY(0); }
  75% { transform: scale(0.92) rotate(-8deg) translateY(-1px); }
  100% { transform: scale(0.9) rotate(-10deg) translateY(0); }
}
@keyframes pol-shadow-pulse {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .4; }
}
@keyframes pol-tremor-line {
  0% { transform: translateX(0) scaleY(1); opacity: .3; }
  50% { transform: translateX(-10px) scaleY(2); opacity: .8; }
  100% { transform: translateX(5px) scaleY(0.5); opacity: .2; }
}
@keyframes pol-dust-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: .6; }
  90% { opacity: .4; }
  100% { transform: translate(-30px, 40px) scale(0.5); opacity: 0; }
}

/* ---- scene: escape-plan-disguise (tense, dim interior) ---- */
.scn-escape-plan-disguise {
  background: linear-gradient(135deg, #2a2218 0%, #1a140e 50%, #0e0a06 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 80%);
}
.scn-escape-plan-disguise .dim-walls {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3026 0%, #1a140e 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 80px 30px rgba(0,0,0,.8);
}
.scn-escape-plan-disguise .candle-glow {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffda80 0%, #a07030 40%, transparent 80%);
  filter: blur(6px);
  animation: esc-candle-flicker 2.5s ease-in-out infinite alternate;
}
.scn-escape-plan-disguise .whisper-figure {
  position: absolute; bottom: 15%; left: 32%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esc-figure-stealth 6s ease-in-out infinite;
}
.scn-escape-plan-disguise .shadow-cloak {
  position: absolute; bottom: 15%; left: 28%; width: 60px; height: 70px;
  background: linear-gradient(135deg, rgba(10,8,6,.8) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(8px);
  animation: esc-cloak-shift 8s ease-in-out infinite alternate;
}
.scn-escape-plan-disguise .map-scroll {
  position: absolute; bottom: 35%; left: 48%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  box-shadow: 0 0 4px 1px rgba(100,80,50,.3);
  animation: esc-map-unroll 10s ease-in-out infinite alternate;
}
.scn-escape-plan-disguise .escape-door {
  position: absolute; bottom: 10%; right: 12%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 2% 2%;
  border-left: 3px solid #7a6a4a;
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
  animation: esc-door-creak 12s ease-in-out infinite;
}
.scn-escape-plan-disguise .stepping-foot {
  position: absolute; bottom: 10%; left: 38%; width: 14px; height: 8px;
  background: #1a1410;
  border-radius: 60% 60% 40% 40%;
  animation: esc-foot-step 2s ease-in-out infinite;
}
.scn-escape-plan-disguise .breath-haze {
  position: absolute; top: 45%; left: 36%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: esc-breath 5s ease-in-out infinite;
}

@keyframes esc-candle-flicker {
  0% { opacity: .7; transform: scale(1); }
  30% { opacity: .9; transform: scale(1.03); }
  60% { opacity: .6; transform: scale(0.96); }
  100% { opacity: .8; transform: scale(1.01); }
}
@keyframes esc-figure-stealth {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) rotate(2deg); }
  40% { transform: translateX(-3px) rotate(-1deg); }
  60% { transform: translateX(8px) rotate(1deg); }
  80% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes esc-cloak-shift {
  0% { transform: scaleX(1) translateX(0); opacity: .6; }
  50% { transform: scaleX(1.1) translateX(10px); opacity: .8; }
  100% { transform: scaleX(0.9) translateX(-5px); opacity: .5; }
}
@keyframes esc-map-unroll {
  0% { transform: rotate(15deg) scaleY(0.6); opacity: .4; }
  50% { transform: rotate(10deg) scaleY(1); opacity: .9; }
  100% { transform: rotate(15deg) scaleY(0.6); opacity: .4; }
}
@keyframes esc-door-creak {
  0% { transform: translateX(0); }
  30% { transform: translateX(-3px); box-shadow: -6px 0 10px rgba(0,0,0,.6); }
  60% { transform: translateX(0); }
  80% { transform: translateX(1px); box-shadow: -2px 0 10px rgba(0,0,0,.4); }
  100% { transform: translateX(0); }
}
@keyframes esc-foot-step {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(4px) scaleY(0.8); }
  50% { transform: translateX(8px) scaleY(1); }
  75% { transform: translateX(4px) scaleY(0.9); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes esc-breath {
  0% { transform: scale(0.8) translate(0, 0); opacity: .2; }
  50% { transform: scale(1.2) translate(-2px, -4px); opacity: .5; }
  100% { transform: scale(0.8) translate(0, 0); opacity: .2; }
}

.scn-antechamber-introduction {
  background:
    linear-gradient(180deg, #f5e5c8 0%, #e3ceaa 40%, #c8b48e 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-antechamber-introduction .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d4c4a4, #e8d8b8 50%, #d0be9a);
  animation: ant-wall-glow 12s ease-in-out infinite alternate;
}
.scn-antechamber-introduction .window {
  position: absolute; top: 12%; left: 38%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #b3d9ff 0%, #7fa8cc 60%, #4d6f8a 100%);
  border: 6px solid #8b7355;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.3), 0 0 40px rgba(179,217,255,0.2);
  animation: ant-window 8s ease-in-out infinite alternate;
}
.scn-antechamber-introduction .column-left {
  position: absolute; bottom: 30%; left: 12%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #a09070, #c8b898 40%, #b8a88a);
  border-radius: 6px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.15);
}
.scn-antechamber-introduction .column-right {
  position: absolute; bottom: 30%; right: 12%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b8a88a, #c8b898 40%, #a09070);
  border-radius: 6px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.15);
}
.scn-antechamber-introduction .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 14%; height: 50%;
  background: radial-gradient(ellipse 120% 60% at 30% 100%, #5a4a3a 0%, #2a221a 80%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: 50% 100%;
  animation: ant-figure 10s ease-in-out infinite alternate;
}
.scn-antechamber-introduction .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 14%; height: 50%;
  background: radial-gradient(ellipse 120% 60% at 70% 100%, #5a4a3a 0%, #2a221a 80%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: 50% 100%;
  animation: ant-figure 10s ease-in-out infinite alternate-reverse;
}
.scn-antechamber-introduction .floor-rug {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(135deg, #6a5030 0%, #8a6848 30%, #5a3e1e 70%, #7a5c3c 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: ant-rug 18s ease-in-out infinite alternate;
}
@keyframes ant-wall-glow {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ant-window {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,240,0.2); }
  50% { transform: scaleY(1.02); opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,240,0.4); }
  100% { transform: scaleY(0.98); opacity: 0.85; box-shadow: inset 0 0 30px rgba(255,255,240,0.3); }
}
@keyframes ant-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-1px) rotate(0deg); }
  60% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ant-rug {
  0% { transform: perspective(400px) rotateX(3deg); }
  50% { transform: perspective(400px) rotateX(-2deg); }
  100% { transform: perspective(400px) rotateX(0deg); }
}

.scn-room-of-state-jealousy-begins {
  background:
    linear-gradient(180deg, #d8c8b0 0%, #c0aa88 40%, #a88860 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c8 0%, transparent 70%);
}
.scn-room-of-state-jealousy-begins .bg-state {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8b498, #b09a7a);
  animation: ros-bg 6s ease-in-out infinite alternate;
}
.scn-room-of-state-jealousy-begins .throne {
  position: absolute; bottom: 35%; left: 45%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3e22 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 8px 0 20px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: ros-throne 4s ease-in-out infinite;
}
.scn-room-of-state-jealousy-begins .king {
  position: absolute; bottom: 38%; left: 47%; width: 14%; height: 50%;
  background: radial-gradient(ellipse 100% 60% at 50% 100%, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ros-king 3s ease-in-out infinite;
}
.scn-room-of-state-jealousy-begins .queen {
  position: absolute; bottom: 32%; left: 38%; width: 15%; height: 48%;
  background: radial-gradient(ellipse 120% 60% at 50% 100%, #6a382a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ros-queen 5s ease-in-out infinite alternate;
}
.scn-room-of-state-jealousy-begins .guest {
  position: absolute; bottom: 34%; right: 30%; width: 14%; height: 50%;
  background: radial-gradient(ellipse 100% 60% at 50% 100%, #4a3a2a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ros-guest 6s ease-in-out infinite;
}
.scn-room-of-state-jealousy-begins .floor-tile {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 27%;
  background: repeating-conic-gradient(#b09878 0% 25%, transparent 0% 50%) 0 0 / 12% 12%;
  background-color: #c8b090;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: ros-floor 10s linear infinite;
}
.scn-room-of-state-jealousy-begins .chandelier {
  position: absolute; top: 6%; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #b09850 0%, #806828 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ros-chandelier 8s ease-in-out infinite alternate;
}
@keyframes ros-bg {
  0% { opacity: 0.85; }
  100% { opacity: 1; }
}
@keyframes ros-throne {
  0% { transform: translateY(0); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0); }
}
@keyframes ros-king {
  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 ros-queen {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ros-guest {
  0% { transform: scaleX(1) rotate(0deg); }
  33% { transform: scaleX(1.02) rotate(2deg); }
  66% { transform: scaleX(0.98) rotate(-2deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes ros-floor {
  0% { background-position: 0 0; }
  100% { background-position: 12% 12%; }
}
@keyframes ros-chandelier {
  0% { transform: rotate(-3deg); opacity: 0.8; }
  50% { transform: rotate(3deg); opacity: 1; }
  100% { transform: rotate(-1deg); opacity: 0.9; }
}

.scn-leontes-spiraling-suspicion {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #1e1410 40%, #2a1a14 100%),
    radial-gradient(ellipse at 50% 30%, #4a3222 0%, transparent 70%);
}
.scn-leontes-spiraling-suspicion .bg-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e1e14, #1e120a);
  animation: lsp-bg 2s ease-in-out infinite alternate;
}
.scn-leontes-spiraling-suspicion .king-figure {
  position: absolute; bottom: 35%; left: 38%; width: 24%; height: 60%;
  background: radial-gradient(ellipse 100% 60% at 50% 100%, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(60,40,20,0.6);
  animation: lsp-king 1.5s ease-in-out infinite;
}
.scn-leontes-spiraling-suspicion .shadow-pair {
  position: absolute; bottom: 32%; width: 18%; height: 45%;
  background: rgba(20,10,5,0.8);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: lsp-shadow 3s ease-in-out infinite;
}
.scn-leontes-spiraling-suspicion .shadow-pair:first-of-type {
  left: 20%;
  animation-delay: 0s;
}
.scn-leontes-spiraling-suspicion .shadow-pair:last-of-type {
  right: 20%;
  animation-delay: 0.5s;
}
.scn-leontes-spiraling-suspicion .floor-line {
  position: absolute; bottom: 18%; left: 5%; width: 90%; height: 2px;
  background: linear-gradient(90deg, transparent, #4a2a12 50%, transparent);
  box-shadow: 0 0 12px #6a3a1a;
  animation: lsp-floor 2s ease-in-out infinite alternate;
}
.scn-leontes-spiraling-suspicion .wall-crack {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #3a2a1a, transparent 40%, #2a1a0e 80%);
  clip-path: polygon(0 10%, 30% 0, 60% 15%, 80% 0, 100% 20%, 85% 50%, 100% 80%, 70% 100%, 40% 85%, 15% 100%, 0 70%);
  animation: lsp-crack 4s ease-in-out infinite alternate;
}
@keyframes lsp-bg {
  0% { opacity: 0.6; filter: brightness(1.2); }
  100% { opacity: 1; filter: brightness(0.8); }
}
@keyframes lsp-king {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  20% { transform: translateY(-2px) rotate(-3deg) scaleX(1.05); }
  40% { transform: translateY(0) rotate(0deg) scaleX(1); }
  60% { transform: translateY(-1px) rotate(2deg) scaleX(0.95); }
  80% { transform: translateY(0) rotate(-1deg) scaleX(1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes lsp-shadow {
  0% { transform: translateX(0) scaleY(1); opacity: 0.4; }
  50% { transform: translateX(8px) scaleY(0.8); opacity: 0.8; }
  100% { transform: translateX(-4px) scaleY(1.2); opacity: 0.3; }
}
@keyframes lsp-floor {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(1.3); opacity: 0.2; }
}
@keyframes lsp-crack {
  0% { transform: rotate(-5deg); opacity: 0.5; }
  50% { transform: rotate(5deg); opacity: 0.9; }
  100% { transform: rotate(-2deg); opacity: 0.6; }
}

.scn-flight-plan {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #1e1410 50%, #120c08 100%),
    radial-gradient(ellipse at 50% 80%, #8a6a30 0%, transparent 60%);
}
.scn-flight-plan .bg-night {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #1a100a, #0e0804);
  animation: flp-bg 15s linear infinite alternate;
}
.scn-flight-plan .table {
  position: absolute; bottom: 28%; left: 22%; width: 56%; height: 28%;
  background: linear-gradient(180deg, #5a3a22, #3a2212);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 6px 30px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: flp-table 8s ease-in-out infinite alternate;
}
.scn-flight-plan .map {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 16%;
  background: linear-gradient(135deg, #c8b48a, #b09870);
  border-radius: 4px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(15deg);
  animation: flp-map 6s ease-in-out infinite;
}
.scn-flight-plan .candle {
  position: absolute; bottom: 44%; left: 32%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0a060, #c08040);
  border-radius: 2px;
  box-shadow: 0 0 30px 8px #ffb060, 0 0 60px 16px rgba(255,176,96,0.3);
  animation: flp-candle 2s ease-in-out infinite alternate;
}
.scn-flight-plan .figure-camillo {
  position: absolute; bottom: 30%; left: 18%; width: 16%; height: 45%;
  background: radial-gradient(ellipse 100% 60% at 50% 100%, #1e120a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: flp-figure-c 4s ease-in-out infinite alternate;
}
.scn-flight-plan .figure-polixenes {
  position: absolute; bottom: 30%; right: 18%; width: 16%; height: 45%;
  background: radial-gradient(ellipse 100% 60% at 50% 100%, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: flp-figure-p 5s ease-in-out infinite alternate;
}
.scn-flight-plan .window-night {
  position: absolute; top: 12%; left: 5%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #1a2a3a 0%, #0a1218 80%, transparent 100%);
  border: 4px solid #2a1a0e;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 6px rgba(100,130,160,0.2);
  animation: flp-window 12s linear infinite;
}
@keyframes flp-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}
@keyframes flp-table {
  0% { transform: perspective(200px) rotateX(3deg); }
  50% { transform: perspective(200px) rotateX(-2deg); }
  100% { transform: perspective(200px) rotateX(0deg); }
}
@keyframes flp-map {
  0% { transform: perspective(200px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(18deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(12deg) translateY(0); }
}
@keyframes flp-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 1; }
  30% { transform: translateY(-1px) scaleY(1.1); opacity: 0.85; }
  70% { transform: translateY(1px) scaleY(0.9); opacity: 0.9; }
  100% { transform: translateY(0) scaleY(1); opacity: 1; }
}
@keyframes flp-figure-c {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes flp-figure-p {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes flp-window {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 6px rgba(100,130,160,0.2); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 10px rgba(100,130,160,0.4); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 6px rgba(100,130,160,0.2); }
}

.scn-hermione-mamillius-play { background: linear-gradient(180deg, #f5e6ca 0%, #e0c9a0 40%, #c8a87a 100%), radial-gradient(ellipse at 70% 40%, #ffe0b0 0%, transparent 60%); }
.scn-hermione-mamillius-play .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a67c52 0%, #806040 100%); border-radius:0 0 10% 10%; }
.scn-hermione-mamillius-play .backwall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #d4bb8a 0%, #e8d0a0 50%, #d4bb8a 100%); }
.scn-hermione-mamillius-play .window { position:absolute; top:10%; left:60%; width:25%; height:35%; background: linear-gradient(180deg, #a0c8e0 0%, #b0d8f0 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,200,0.3); animation:hm1-light 6s ease-in-out infinite alternate; }
.scn-hermione-mamillius-play .throne { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(135deg, #b8860b 0%, #8b6508 100%); border-radius:30% 30% 10% 10%; box-shadow:0 4px 10px rgba(0,0,0,0.3); }
.scn-hermione-mamillius-play .queen { position:absolute; bottom:30%; left:45%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #e6c9a0 0%, #c8a87a 40%, #806040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,0.2); animation:hm1-breathe 4s ease-in-out infinite; }
.scn-hermione-mamillius-play .child { position:absolute; bottom:22%; left:55%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #e0b080 0%, #b08050 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation:hm1-fidget 3s ease-in-out infinite; }
.scn-hermione-mamillius-play .lady { position:absolute; bottom:24%; left:25%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:hm1-lady 5s ease-in-out infinite alternate; }
@keyframes hm1-light { 0%{box-shadow:inset 0 0 20px rgba(255,255,200,0.3);} 50%{box-shadow:inset 0 0 35px rgba(255,255,200,0.5);} 100%{box-shadow:inset 0 0 20px rgba(255,255,200,0.3);} }
@keyframes hm1-breathe { 0%,100%{transform:translateX(-50%) translateY(0) scale(1);} 50%{transform:translateX(-50%) translateY(-2px) scale(1.02);} }
@keyframes hm1-fidget { 0%,100%{transform:translateX(-50%) rotate(0deg);} 25%{transform:translateX(-50%) rotate(5deg);} 75%{transform:translateX(-50%) rotate(-3deg);} }
@keyframes hm1-lady { 0%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(-2px);} 100%{transform:translateX(-50%) translateY(0);} }

.scn-hermione-accused { background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 60%, #b8a080 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%); }
.scn-hermione-accused .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #8a7050 0%, #a08060 50%, #8a7050 100%); }
.scn-hermione-accused .backwall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #c8b090 0%, #d8c0a0 50%, #c8b090 100%); box-shadow:inset 0 20px 40px rgba(0,0,0,0.1); }
.scn-hermione-accused .throne { position:absolute; bottom:15%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #8b6508 0%, #6b4d06 100%); border-radius:20% 20% 10% 10%; box-shadow:0 6px 15px rgba(0,0,0,0.4); }
.scn-hermione-accused .king { position:absolute; bottom:20%; left:42%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #a04040 0%, #602020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 10px rgba(0,0,0,0.5); animation:hm2-king 2s ease-in-out infinite alternate; }
.scn-hermione-accused .queen { position:absolute; bottom:18%; left:58%; width:50px; height:85px; transform:translateX(-50%); background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 60%, #806040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,0.2); animation:hm2-queen 4s ease-in-out infinite; }
.scn-hermione-accused .lord1 { position:absolute; bottom:16%; left:20%; width:35px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #b09070 0%, #907050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:hm2-lord 6s ease-in-out infinite alternate; }
.scn-hermione-accused .lord2 { position:absolute; bottom:16%; left:80%; width:35px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #b09070 0%, #907050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:hm2-lord 6s ease-in-out infinite alternate 3s; }
@keyframes hm2-king { 0%{transform:translateX(-50%) rotate(-2deg);} 50%{transform:translateX(-50%) rotate(2deg) scale(1.02);} 100%{transform:translateX(-50%) rotate(-1deg);} }
@keyframes hm2-queen { 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(-2px);} }
@keyframes hm2-lord { 0%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(-1px);} 100%{transform:translateX(-50%) translateY(0);} }

.scn-prison-visit-birth { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%), radial-gradient(ellipse at 30% 60%, #4a4a6a 0%, transparent 80%); }
.scn-prison-visit-birth .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-prison-visit-birth .wall { position:absolute; inset:0 0 10% 0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); box-shadow:inset 0 0 40px rgba(0,0,0,0.8); }
.scn-prison-visit-birth .bars { position:absolute; top:5%; left:5%; right:5%; bottom:12%; background:repeating-linear-gradient(0deg, transparent 0px, transparent 15px, #4a4a5a 15px, #4a4a5a 17px, transparent 17px, transparent 30px); opacity:0.6; }
.scn-prison-visit-birth .candle { position:absolute; bottom:25%; left:30%; width:8px; height:12px; background:radial-gradient(circle, #ffd080 0%, #b08040 80%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 5px rgba(255,200,100,0.5), 0 0 40px 10px rgba(255,200,100,0.2); animation:pv-flicker 1.5s ease-in-out infinite alternate; }
.scn-prison-visit-birth .prisoner { position:absolute; bottom:12%; left:45%; width:40px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 10px rgba(0,0,0,0.5); animation:pv-prisoner 5s ease-in-out infinite alternate; }
.scn-prison-visit-birth .visitor { position:absolute; bottom:14%; left:60%; width:35px; height:65px; transform:translateX(-50%); background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 10px rgba(0,0,0,0.4); animation:pv-visitor 7s ease-in-out infinite; }
.scn-prison-visit-birth .shadow { position:absolute; bottom:12%; left:70%; width:50px; height:80px; transform:translateX(-50%); background:rgba(0,0,0,0.4); border-radius:30% 30% 20% 20%; filter:blur(10px); animation:pv-shadow 8s ease-in-out infinite alternate; }
@keyframes pv-flicker { 0%{transform:scale(1); opacity:0.8; box-shadow:0 0 20px 5px rgba(255,200,100,0.5);} 50%{transform:scale(1.1); opacity:1; box-shadow:0 0 30px 8px rgba(255,200,100,0.7);} 100%{transform:scale(0.95); opacity:0.7; box-shadow:0 0 15px 3px rgba(255,200,100,0.4);} }
@keyframes pv-prisoner { 0%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(-2px);} 100%{transform:translateX(-50%) translateY(0);} }
@keyframes pv-visitor { 0%{transform:translateX(-50%) rotate(0deg);} 50%{transform:translateX(-50%) rotate(2deg);} 100%{transform:translateX(-50%) rotate(0deg);} }
@keyframes pv-shadow { 0%{transform:translateX(-50%) scale(1); opacity:0.4;} 50%{transform:translateX(-50%) scale(1.05); opacity:0.5;} 100%{transform:translateX(-50%) scale(1.1); opacity:0.6;} }

.scn-newborn-threatened { background: linear-gradient(180deg, #d4a878 0%, #b88850 40%, #905a30 100%), radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 70%); }
.scn-newborn-threatened .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #6a4030 0%, #805040 50%, #6a4030 100%); }
.scn-newborn-threatened .wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #c09870 0%, #d0a880 50%, #c09870 100%); box-shadow:inset 0 0 30px rgba(0,0,0,0.2); }
.scn-newborn-threatened .fireplace { position:absolute; bottom:15%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 10% 10%; box-shadow:0 0 40px 10px rgba(255,150,50,0.3); animation:nt-fire 3s ease-in-out infinite alternate; }
.scn-newborn-threatened .king { position:absolute; bottom:18%; left:35%; width:55px; height:85px; transform:translateX(-50%); background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 10px rgba(0,0,0,0.6); animation:nt-king 1.5s ease-in-out infinite alternate; }
.scn-newborn-threatened .paulina { position:absolute; bottom:20%; left:60%; width:40px; height:75px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a080 0%, #a07050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:nt-paulina 4s ease-in-out infinite; }
.scn-newborn-threatened .baby { position:absolute; bottom:35%; left:60%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #f0d0b0 0%, #d0a080 100%); border-radius:50%; box-shadow:0 0 10px 2px rgba(255,200,150,0.3); animation:nt-baby 3s ease-in-out infinite alternate; }
.scn-newborn-threatened .lord { position:absolute; bottom:16%; left:75%; width:35px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:nt-lord 6s ease-in-out infinite alternate 2s; }
@keyframes nt-fire { 0%{box-shadow:0 0 40px 10px rgba(255,150,50,0.3);} 50%{box-shadow:0 0 60px 15px rgba(255,150,50,0.5);} 100%{box-shadow:0 0 30px 8px rgba(255,150,50,0.2);} }
@keyframes nt-king { 0%{transform:translateX(-50%) rotate(-3deg) scale(1);} 50%{transform:translateX(-50%) rotate(2deg) scale(1.05);} 100%{transform:translateX(-50%) rotate(-1deg) scale(0.98);} }
@keyframes nt-paulina { 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(-2px);} }
@keyframes nt-baby { 0%{transform:translateX(-50%) scale(1); opacity:0.9;} 50%{transform:translateX(-50%) scale(1.05); opacity:1;} 100%{transform:translateX(-50%) scale(1.1); opacity:0.95;} }
@keyframes nt-lord { 0%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(-1px);} 100%{transform:translateX(-50%) translateY(0);} }

/* scene: item-sealed-oracle (tense / bright-interior) */
.scn-item-sealed-oracle {
  background: linear-gradient(180deg, #4a3000 0%, #7a5a2a 30%, #c8a86a 70%, #e0c090 100%),
              radial-gradient(ellipse at 70% 40%, rgba(255,200,100,0.3) 0%, transparent 60%);
}
.scn-item-sealed-oracle .temple-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #8b6914 0%, #c8a86a 50%, #e0c090 100%);
  opacity:0.6;
  animation: so-bgbreath 8s ease-in-out infinite;
}
.scn-item-sealed-oracle .altar {
  position:absolute; bottom:30%; left:50%; width:120px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #8b7355 0%, #5a4a30 100%);
  border-radius:4px;
  box-shadow:0 4px 8px rgba(0,0,0,0.5);
}
.scn-item-sealed-oracle .scroll-glow {
  position:absolute; bottom:30%; left:50%; width:12px; height:30px;
  transform:translateX(-50%) translateY(-25px);
  background: radial-gradient(ellipse, #ffe080 0%, #d4a040 70%);
  border-radius:2px;
  box-shadow:0 0 20px #ffe080, 0 0 40px rgba(255,224,128,0.5);
  animation: so-scrollpulse 2s ease-in-out infinite;
}
.scn-item-sealed-oracle .figure-left {
  position:absolute; bottom:20%; left:30%; width:20px; height:60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom;
  animation: so-figure 3s ease-in-out infinite;
}
.scn-item-sealed-oracle .figure-right {
  position:absolute; bottom:20%; right:30%; width:20px; height:60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom;
  animation: so-figure 3s ease-in-out infinite reverse;
}
.scn-item-sealed-oracle .flame {
  position:absolute; bottom:30%; left:50%; width:10px; height:20px;
  transform:translateX(-50%) translateY(-35px);
  background: radial-gradient(circle, #ffd080 0%, #ff8040 100%);
  border-radius:50%;
  box-shadow:0 0 20px #ff8040, 0 0 40px rgba(255,128,64,0.4);
  animation: so-flame 1.5s ease-in-out infinite alternate;
}

@keyframes so-bgbreath {
  0% { opacity:0.6; }
  50% { opacity:0.7; }
  100% { opacity:0.6; }
}
@keyframes so-scrollpulse {
  0% { opacity:0.8; transform:translateX(-50%) translateY(-25px) scale(1); }
  50% { opacity:1; transform:translateX(-50%) translateY(-25px) scale(1.05); }
  100% { opacity:0.8; transform:translateX(-50%) translateY(-25px) scale(1); }
}
@keyframes so-figure {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(-2deg); }
  100% { transform:rotate(0deg); }
}
@keyframes so-flame {
  0% { transform:translateX(-50%) translateY(-35px) scale(1) rotate(0deg); }
  50% { transform:translateX(-50%) translateY(-35px) scale(1.1) rotate(5deg); }
  100% { transform:translateX(-50%) translateY(-35px) scale(0.95) rotate(-3deg); }
}

/* scene: hermione-trial-death (dark / overcast) */
.scn-hermione-trial-death {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-hermione-trial-death .court-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
}
.scn-hermione-trial-death .window-light {
  position:absolute; top:10%; left:40%; width:50px; height:70px;
  background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%);
  border-radius:2px;
  box-shadow:0 0 10px #5a5a6a;
  animation: ht-window 10s ease-in-out infinite;
}
.scn-hermione-trial-death .prisoner-figure {
  position:absolute; bottom:30%; left:50%; width:24px; height:70px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ht-prisoner 5s ease-in-out infinite;
}
.scn-hermione-trial-death .judges-silhouette {
  position:absolute; bottom:35%; left:25%; width:30px; height:40px;
  background:#1a1a2a;
  border-radius:20% 20% 10% 10%;
  box-shadow:40px 0 #1a1a2a;
  animation: ht-judges 8s linear infinite;
}
.scn-hermione-trial-death .oracle-scroll {
  position:absolute; bottom:28%; left:50%; width:10px; height:20px;
  background:#d0b080;
  border-radius:2px;
  box-shadow:0 0 8px #b09060;
  animation: ht-scroll 4s ease-in-out infinite;
}
.scn-hermione-trial-death .shadow-fall {
  position:absolute; inset:0;
  background:rgba(0,0,0,0.2);
  animation: ht-shadow 12s linear infinite;
}

@keyframes ht-window {
  0% { opacity:0.6; }
  50% { opacity:0.8; }
  100% { opacity:0.6; }
}
@keyframes ht-prisoner {
  0% { transform:translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform:translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform:translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes ht-judges {
  0% { filter:brightness(0.8); }
  50% { filter:brightness(1); }
  100% { filter:brightness(0.8); }
}
@keyframes ht-scroll {
  0% { opacity:0.7; transform:translateX(-50%) rotate(0deg); }
  50% { opacity:1; transform:translateX(-50%) rotate(10deg); }
  100% { opacity:0.7; transform:translateX(-50%) rotate(0deg); }
}
@keyframes ht-shadow {
  0% { opacity:0.1; }
  50% { opacity:0.3; }
  100% { opacity:0.1; }
}

/* scene: item-bundle-of-tokens (dark / overcast) */
.scn-item-bundle-of-tokens {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 80%);
}
.scn-item-bundle-of-tokens .storm-sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(0,0,0,0.3) 100%);
  animation: bt-sky 15s ease-in-out infinite;
}
.scn-item-bundle-of-tokens .shore-ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius:20% 20% 0 0 / 10% 10% 0 0;
}
.scn-item-bundle-of-tokens .rock {
  position:absolute; bottom:10%; left:20%; width:80px; height:30px;
  background:#3a4a3a;
  border-radius:40% 60% 30% 70% / 50% 50% 50% 50%;
  transform:rotate(-5deg);
}
.scn-item-bundle-of-tokens .bundle-glow {
  position:absolute; bottom:20%; left:40%; width:14px; height:10px;
  background: radial-gradient(circle, #f0d080 0%, #b09050 70%);
  border-radius:30%;
  box-shadow:0 0 20px #f0d080, 0 0 40px rgba(240,208,128,0.5);
  animation: bt-bundle 4s ease-in-out infinite;
}
.scn-item-bundle-of-tokens .bear-silhouette {
  position:absolute; bottom:15%; right:10%; width:60px; height:80px;
  background:#1a2a1a;
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bt-bear 6s ease-in-out infinite;
}
.scn-item-bundle-of-tokens .shepherd-figure {
  position:absolute; bottom:12%; left:30%; width:18px; height:50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bt-shepherd 8s ease-in-out infinite;
}
.scn-item-bundle-of-tokens .rain-drops {
  position:absolute; inset:0;
  background: repeating-linear-gradient(180deg, rgba(200,220,255,0.1) 0px, rgba(200,220,255,0.1) 2px, transparent 2px, transparent 8px);
  animation: bt-rain 2s linear infinite;
}

@keyframes bt-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes bt-bundle {
  0% { transform:translateY(0); opacity:0.8; }
  50% { transform:translateY(-2px); opacity:1; }
  100% { transform:translateY(0); opacity:0.8; }
}
@keyframes bt-bear {
  0% { transform:scale(1) translateX(0); }
  50% { transform:scale(1.05) translateX(5px); }
  100% { transform:scale(1) translateX(0); }
}
@keyframes bt-shepherd {
  0% { transform:translateX(0); }
  50% { transform:translateX(10px); }
  100% { transform:translateX(0); }
}
@keyframes bt-rain {
  0% { background-position: 0 0; }
  50% { background-position: 0 10px; }
  100% { background-position: 0 20px; }
}

/* scene: time-gap-autolycus (funny / sunlit) */
.scn-time-gap-autolycus {
  background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 40%, #f0e68c 100%),
              radial-gradient(ellipse at 60% 60%, #ffcc00 0%, transparent 70%);
}
.scn-time-gap-autolycus .bright-sky {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #b0e0e6 0%, #fffacd 100%);
  opacity:0.5;
  animation: ta-sky 20s ease-in-out infinite;
}
.scn-time-gap-autolycus .sun {
  position:absolute; top:10%; right:30%; width:40px; height:40px;
  background: radial-gradient(circle, #ffff00 0%, #ffcc00 50%, transparent 100%);
  border-radius:50%;
  box-shadow:0 0 40px #ffcc00;
  animation: ta-sun 10s ease-in-out infinite;
}
.scn-time-gap-autolycus .green-hills {
  position:absolute; bottom:40%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 100%);
  border-radius:30% 70% 0 0 / 50% 50% 0 0;
  animation: ta-hills 15s ease-in-out infinite;
}
.scn-time-gap-autolycus .road {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius:5% 5% 0 0 / 10% 10% 0 0;
}
.scn-time-gap-autolycus .autolycus {
  position:absolute; bottom:20%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #8b4513 0%, #3b2f2f 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin:bottom;
  animation: ta-autolycus 2s ease-in-out infinite;
}
.scn-time-gap-autolycus .sack {
  position:absolute; bottom:25%; left:38%; width:14px; height:16px;
  background:#c0a060;
  border-radius:30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ta-sack 2s ease-in-out infinite;
}
.scn-time-gap-autolycus .bird {
  position:absolute; top:30%; left:60%; width:10px; height:6px;
  background:transparent;
  border-top:3px solid #8b7355;
  border-left:3px solid transparent;
  border-right:3px solid transparent;
  transform:rotate(30deg);
  animation: ta-bird 3s ease-in-out infinite;
}

@keyframes ta-sky {
  0% { opacity:0.5; }
  50% { opacity:0.7; }
  100% { opacity:0.5; }
}
@keyframes ta-sun {
  0% { transform:scale(1); }
  50% { transform:scale(1.05); }
  100% { transform:scale(1); }
}
@keyframes ta-hills {
  0% { transform:translateY(0); }
  50% { transform:translateY(-3px); }
  100% { transform:translateY(0); }
}
@keyframes ta-autolycus {
  0% { transform:translateY(0) rotate(0deg); }
  25% { transform:translateY(-5px) rotate(5deg); }
  50% { transform:translateY(0) rotate(0deg); }
  75% { transform:translateY(-5px) rotate(-5deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes ta-sack {
  0% { transform:translate(0,0) rotate(0deg); }
  25% { transform:translate(2px,-3px) rotate(5deg); }
  50% { transform:translate(0,0) rotate(0deg); }
  75% { transform:translate(-2px,-3px) rotate(-5deg); }
  100% { transform:translate(0,0) rotate(0deg); }
}
@keyframes ta-bird {
  0% { transform:translate(0,0) rotate(30deg); }
  50% { transform:translate(10px,-5px) rotate(20deg); }
  100% { transform:translate(20px,0) rotate(30deg); }
}

.scn-autolycus-tricks-shepherds { background: linear-gradient(180deg, #87CEEB 0%, #fdf5e6 60%, #c8b28b 100%), radial-gradient(ellipse at 50% 100%, #e0d5c1 0%, transparent 70%); }
.scn-autolycus-tricks-shepherds .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a8d8ea 0%, #fdf5e6 100%); animation: at1-sky 6s ease-in-out infinite alternate; }
.scn-autolycus-tricks-shepherds .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b28b 0%, #a89a7a 100%); border-radius: 30% 70% 0 0; }
.scn-autolycus-tricks-shepherds .autolycus { position:absolute; bottom:20%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: at1-autolycus 1.6s ease-in-out infinite alternate; }
.scn-autolycus-tricks-shepherds .shepherd   { position:absolute; bottom:20%; left:55%; width:28px; height:45px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: at1-shepherd 2.4s ease-in-out infinite alternate; }
.scn-autolycus-tricks-shepherds .clown      { position:absolute; bottom:20%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #8a7a3a 0%, #5a4a1a 100%); border-radius: 50% 50% 40% 40%; animation: at1-clown 1.5s ease-in-out infinite alternate; }
.scn-autolycus-tricks-shepherds .coin       { position:absolute; bottom:40%; left:48%; width:12px; height:6px; background: radial-gradient(circle, #ffd700 0%, #daa520 100%); border-radius: 50%; animation: at1-coin 1.8s ease-in-out infinite alternate; }
.scn-autolycus-tricks-shepherds .shadow-a   { position:absolute; bottom:19%; left:34%; width:20px; height:4px; background: rgba(0,0,0,0.15); border-radius: 50%; animation: at1-shadow 2.1s ease-in-out infinite alternate; }
.scn-autolycus-tricks-shepherds .shadow-b   { position:absolute; bottom:19%; left:54%; width:24px; height:4px; background: rgba(0,0,0,0.15); border-radius: 50%; animation: at1-shadow 2.2s ease-in-out infinite alternate-reverse; }
@keyframes at1-sky       { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes at1-autolycus { 0% { transform: translateX(0) rotate(-5deg) scaleY(1); } 50% { transform: translateX(3px) rotate(5deg) scaleY(0.95); } 100% { transform: translateX(-2px) rotate(-3deg) scaleY(1); } }
@keyframes at1-shepherd  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-2deg); } }
@keyframes at1-clown     { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(-1px) rotate(1deg); } }
@keyframes at1-coin      { 0% { transform: translateY(0) rotate(-10deg) scale(1); opacity: 0.8; } 50% { transform: translateY(-8px) rotate(0deg) scale(1.1); opacity: 1; } 100% { transform: translateY(0) rotate(10deg) scale(1); opacity: 0.9; } }
@keyframes at1-shadow    { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(0.8); opacity: 0.4; } 100% { transform: scaleX(1.1); opacity: 0.2; } }

.scn-reunion-sicilia-revelation { background: linear-gradient(180deg, #8a7a5a 0%, #c8b28b 40%, #e8d8c8 100%), radial-gradient(ellipse at 50% 0%, #fdf5e6 0%, transparent 50%); }
.scn-reunion-sicilia-revelation .wall       { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #b8a88a 0%, #d8c8b0 50%, #b8a88a 100%); }
.scn-reunion-sicilia-revelation .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); }
.scn-reunion-sicilia-revelation .window     { position:absolute; top:15%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #fdf5e6 0%, #e8d8c8 100%); border:6px solid #8a7a5a; border-radius:40% 40% 10% 10%; animation: rs2-window 4s ease-in-out infinite alternate; }
.scn-reunion-sicilia-revelation .light-beam { position:absolute; top:15%; left:50%; width:60px; height:55%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(253,245,230,0.6) 0%, rgba(253,245,230,0) 100%); animation: rs2-light 5s ease-in-out infinite alternate; }
.scn-reunion-sicilia-revelation .throne     { position:absolute; bottom:15%; left:55%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:20% 20% 10% 10%; }
.scn-reunion-sicilia-revelation .leontes    { position:absolute; bottom:25%; left:55%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a5a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rs2-leontes 3s ease-in-out infinite alternate; }
.scn-reunion-sicilia-revelation .paulina    { position:absolute; bottom:15%; left:45%; width:28px; height:55px; background: linear-gradient(180deg, #5a3a4a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40%; animation: rs2-paulina 4s ease-in-out infinite alternate; }
.scn-reunion-sicilia-revelation .florizel   { position:absolute; bottom:15%; left:35%; width:26px; height:50px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rs2-florizel 2.5s ease-in-out infinite alternate; }
@keyframes rs2-window   { 0% { box-shadow: inset 0 0 20px rgba(253,245,230,0.6); } 50% { box-shadow: inset 0 0 40px rgba(253,245,230,1); } 100% { box-shadow: inset 0 0 30px rgba(253,245,230,0.8); } }
@keyframes rs2-light    { 0% { opacity:0.4; transform: translateX(-50%) skewX(0deg); } 50% { opacity:0.8; transform: translateX(-50%) skewX(2deg); } 100% { opacity:0.6; transform: translateX(-50%) skewX(-2deg); } }
@keyframes rs2-leontes  { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(2deg) scaleY(1); } }
@keyframes rs2-paulina  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes rs2-florizel { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(0) rotate(0deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }

.scn-reconciliation-statue { background: linear-gradient(180deg, #1a1a2a 0%, #4a3a5a 50%, #8a7a6a 100%), radial-gradient(ellipse at 50% 20%, #fdf5e6 0%, transparent 60%); }
.scn-reconciliation-statue .pedestal    { position:absolute; bottom:25%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%); border-radius:10% 10% 5% 5%; }
.scn-reconciliation-statue .statue      { position:absolute; bottom:35%; left:50%; width:34px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #e8d8c8 0%, #b8a88a 100%); border-radius:50% 50% 40% 40%; box-shadow:0 0 40px rgba(253,245,230,0.5); animation: rc3-statue 8s ease-in-out infinite alternate; }
.scn-reconciliation-statue .leontes     { position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rc3-leontes 3s ease-in-out infinite alternate; }
.scn-reconciliation-statue .paulina     { position:absolute; bottom:20%; left:55%; width:26px; height:48px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40%; animation: rc3-paulina 3.5s ease-in-out infinite alternate; }
.scn-reconciliation-statue .perdita     { position:absolute; bottom:20%; left:48%; width:22px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40%; animation: rc3-perdita 4s ease-in-out infinite alternate; }
.scn-reconciliation-statue .spotlight   { position:absolute; top:0; left:30%; width:40%; height:70%; background: radial-gradient(ellipse at 50% 0%, rgba(253,245,230,0.3) 0%, transparent 70%); animation: rc3-spotlight 6s ease-in-out infinite alternate; }
.scn-reconciliation-statue .curtain-l   { position:absolute; top:0; left:0; width:18%; height:100%; background: linear-gradient(180deg, #702243 0%, #3a101a 100%); border-radius:0 40% 40% 0; animation: rc3-curtain 5s ease-in-out infinite alternate; }
.scn-reconciliation-statue .curtain-r   { position:absolute; top:0; right:0; width:18%; height:100%; background: linear-gradient(180deg, #702243 0%, #3a101a 100%); border-radius:40% 0 0 40%; animation: rc3-curtain 5s ease-in-out infinite alternate-reverse; }
@keyframes rc3-statue    { 0% { opacity:0.6; transform: translateX(-50%) scale(0.98); } 50% { opacity:1; transform: translateX(-50%) scale(1); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.99); } }
@keyframes rc3-leontes   { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-5px) rotate(-5deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes rc3-paulina   { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rc3-perdita   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rc3-spotlight { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes rc3-curtain   { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }

.scn-item-hermione-statue { background: linear-gradient(180deg, #1a1010 0%, #3a2a1a 50%, #1a1010 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%); }
.scn-item-hermione-statue .alcove    { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius:50% 50% 20% 20%; box-shadow:inset 0 0 40px #0a0a0a; }
.scn-item-hermione-statue .frame     { position:absolute; top:15%; left:35%; width:30%; height:50%; border:8px solid #c08040; border-radius:10% 10% 5% 5%; background:transparent; animation: ih4-frame 4s ease-in-out infinite alternate; }
.scn-item-hermione-statue .portrait  { position:absolute; top:18%; left:37%; width:26%; height:44%; background: radial-gradient(ellipse at 50% 40%, #e8d8c8 0%, #c8b8a0 60%, #8a7a6a 100%); border-radius:5% 5% 2% 2%; animation: ih4-portrait 3s ease-in-out infinite alternate; }
.scn-item-hermione-statue .candle    { position:absolute; bottom:35%; right:25%; width:4px; height:15px; background: linear-gradient(180deg, #ffd700 0%, #ff8c00 50%, #4a2a1a 100%); border-radius:2px; animation: ih4-candle 1.5s ease-in-out infinite alternate; }
.scn-item-hermione-statue .autolycus { position:absolute; bottom:15%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: ih4-autolycus 2s ease-in-out infinite alternate; }
.scn-item-hermione-statue .shepherd  { position:absolute; bottom:15%; left:45%; width:24px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40%; animation: ih4-shepherd 2.5s ease-in-out infinite alternate; }
.scn-item-hermione-statue .clown     { position:absolute; bottom:15%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40%; animation: ih4-clown 1.8s ease-in-out infinite alternate; }
.scn-item-hermione-statue .shadow    { position:absolute; bottom:14%; left:20%; width:60%; height:4px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(2px); animation: ih4-shadow 3s ease-in-out infinite alternate; }
@keyframes ih4-frame     { 0% { box-shadow:0 0 20px rgba(192,128,64,0.3); } 50% { box-shadow:0 0 40px rgba(192,128,64,0.7); } 100% { box-shadow:0 0 30px rgba(192,128,64,0.4); } }
@keyframes ih4-portrait  { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ih4-candle    { 0% { transform: scaleY(1) scaleX(1); opacity:0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity:1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.9; } }
@keyframes ih4-autolycus { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(2px) rotate(3deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes ih4-shepherd  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes ih4-clown     { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(0) rotate(0deg) scaleY(0.9); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes ih4-shadow    { 0% { transform: scaleX(1); opacity:0.2; } 50% { transform: scaleX(0.9); opacity:0.4; } 100% { transform: scaleX(1.1); opacity:0.3; } }
/* end per-scene blocks */
