/* 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) */
/* scene: final-blessing-and-exit */
.scn-final-blessing-and-exit {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 40%, #3d2314 70%, #1f0f08 100%),
              radial-gradient(ellipse at 50% 70%, #3d2314 0%, transparent 60%);
}
.scn-final-blessing-and-exit .bg-wood {
  position: absolute; inset: 0 0 30% 0;
  background: 
    linear-gradient(90deg, transparent 10%, #2a1a10 10%, #2a1a10 12%, transparent 12%),
    linear-gradient(90deg, transparent 70%, #3d2314 70%, #3d2314 72%, transparent 72%),
    linear-gradient(90deg, transparent 40%, #1f0f08 40%, #1f0f08 42%, transparent 42%);
  background-size: 100% 100%, 100% 100%, 100% 100%;
  filter: blur(2px);
  animation: fb-trees 8s ease-in-out infinite alternate;
}
.scn-final-blessing-and-exit .path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3d2314 0%, #1f0f08 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-final-blessing-and-exit .fire {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: radial-gradient(circle, #ff7a33 0%, #c8553d 40%, #5e1a1d 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 15px #c8553d, 0 0 60px 30px rgba(200,85,61,0.4);
  animation: fb-fire 1.5s ease-in-out infinite alternate;
}
.scn-final-blessing-and-exit .glow {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff7a33 0%, transparent 70%);
  mix-blend-mode: screen;
  opacity: 0.3;
  animation: fb-glow 2s ease-in-out infinite alternate;
}
.scn-final-blessing-and-exit .figure-left {
  position: absolute; bottom: 26%; left: 35%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fb-walk-left 4s ease-in-out infinite;
}
.scn-final-blessing-and-exit .figure-right {
  position: absolute; bottom: 26%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fb-walk-right 4.5s ease-in-out infinite;
}
.scn-final-blessing-and-exit .smoke-1 {
  position: absolute; bottom: 50%; left: 46%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,85,61,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: fb-smoke-up 6s ease-out infinite;
}
.scn-final-blessing-and-exit .smoke-2 {
  position: absolute; bottom: 55%; left: 52%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,85,61,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fb-smoke-up 8s ease-out infinite 2s;
}
@keyframes fb-trees {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes fb-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.9; }
}
@keyframes fb-glow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes fb-walk-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0deg); }
  75% { transform: translateX(30px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}
@keyframes fb-walk-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-10px) translateY(-2px) rotate(-2deg); }
  50% { transform: translateX(-20px) translateY(0) rotate(0deg); }
  75% { transform: translateX(-30px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-40px) translateY(0) rotate(0deg); }
}
@keyframes fb-smoke-up {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-40px) scale(2); opacity: 0.3; }
  100% { transform: translateY(-80px) scale(3); opacity: 0; }
}

/* scene: puck-epilogue */
.scn-puck-epilogue {
  background: linear-gradient(180deg, #0f0a07 0%, #1f140e 40%, #2a1d15 70%, #0f0a07 100%),
              radial-gradient(ellipse at 50% 60%, #3d261b 0%, transparent 70%);
}
.scn-puck-epilogue .stage-bg {
  position: absolute; inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 50% 30%, #2a1d15 0%, #0f0a07 100%);
}
.scn-puck-epilogue .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3d261b 0%, #1f140e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-puck-epilogue .curtain-left {
  position: absolute; top: 0; bottom: 20%; left: 0; width: 25%;
  background: linear-gradient(90deg, #5e1a1d 0%, #702243 40%, #5e1a1d 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: pe-curtain-sway 6s ease-in-out infinite alternate;
}
.scn-puck-epilogue .curtain-right {
  position: absolute; top: 0; bottom: 20%; right: 0; width: 25%;
  background: linear-gradient(90deg, #5e1a1d 0%, #702243 40%, #5e1a1d 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: pe-curtain-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-puck-epilogue .puck-silhouette {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #0f0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 5px rgba(200,85,61,0.3);
  animation: pe-puck-bow 4s ease-in-out infinite;
}
.scn-puck-epilogue .lantern {
  position: absolute; bottom: 30%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ff7a33 0%, #c8553d 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c8553d, 0 0 40px 16px rgba(200,85,61,0.5);
  animation: pe-lantern-swing 3s ease-in-out infinite;
}
.scn-puck-epilogue .lantern-halo {
  position: absolute; bottom: 25%; left: 40%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff7a33 0%, transparent 70%);
  mix-blend-mode: screen;
  opacity: 0.2;
  animation: pe-lantern-halo 2s ease-in-out infinite alternate;
}
.scn-puck-epilogue .sparkle-1 {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffd080;
  animation: pe-sparkle 4s ease-in-out infinite;
}
.scn-puck-epilogue .sparkle-2 {
  position: absolute; top: 30%; right: 25%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #ffd080;
  animation: pe-sparkle 4s ease-in-out infinite 2s;
}
@keyframes pe-curtain-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pe-puck-bow {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(10deg); }
  50% { transform: translateX(-50%) rotate(0deg) scaleY(0.95); }
  75% { transform: translateX(-50%) rotate(-5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes pe-lantern-swing {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(3px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes pe-lantern-halo {
  0% { opacity: 0.15; transform: scale(1); }
  50% { opacity: 0.25; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.95); }
}
@keyframes pe-sparkle {
  0% { opacity: 0; transform: scale(0) rotate(0deg); }
  50% { opacity: 1; transform: scale(1) rotate(180deg); }
  100% { opacity: 0; transform: scale(0) rotate(360deg); }
}

.scn-hermia-helena-quarrel {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-hermia-helena-quarrel .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation:hh-sky 12s ease-in-out infinite alternate; }
.scn-hermia-helena-quarrel .moon { position:absolute; top:10%; left:70%; width:50px; height:50px; background:radial-gradient(circle, #d0d8f0 0%, #8088a8 70%); border-radius:50%; box-shadow:0 0 40px 10px rgba(200,210,240,0.3); animation:hh-moon 20s ease-in-out infinite alternate; }
.scn-hermia-helena-quarrel .tree-left { position:absolute; bottom:30%; left:5%; width:30px; height:60%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin:bottom center; animation:hh-tree 8s ease-in-out infinite; }
.scn-hermia-helena-quarrel .tree-right { position:absolute; bottom:30%; right:5%; width:30px; height:60%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin:bottom center; animation:hh-tree 8s ease-in-out infinite reverse; }
.scn-hermia-helena-quarrel .figure-left { position:absolute; bottom:32%; left:35%; width:24px; height:60px; background:linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:hh-fig-left 3s ease-in-out infinite; }
.scn-hermia-helena-quarrel .figure-right { position:absolute; bottom:32%; right:35%; width:24px; height:60px; background:linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:hh-fig-right 3.5s ease-in-out infinite; }
.scn-hermia-helena-quarrel .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:30% 70% 0 0 / 60% 80% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-hermia-helena-quarrel .shadow { position:absolute; bottom:30%; left:25%; right:25%; height:10px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation:hh-shadow 3s ease-in-out infinite; }

@keyframes hh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hh-moon { 0% { transform:translateY(0); opacity:0.9 } 50% { transform:translateY(4px); opacity:1 } 100% { transform:translateY(-2px); opacity:0.85 } }
@keyframes hh-tree { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes hh-fig-left { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-4px) rotate(-3deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(4px) rotate(3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes hh-fig-right { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(4px) rotate(3deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-4px) rotate(-3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes hh-shadow { 0%,100% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.5; transform:scaleX(1.1) } }

.scn-oberon-rebukes-puck {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 30% 80%, #3a3a6e 0%, transparent 60%);
}
.scn-oberon-rebukes-puck .sky { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation:or-sky 15s ease-in-out infinite alternate; }
.scn-oberon-rebukes-puck .moon { position:absolute; top:8%; left:65%; width:45px; height:45px; background:radial-gradient(circle, #d0d8f0 0%, #8088a8 70%); border-radius:50%; box-shadow:0 0 35px 8px rgba(200,210,240,0.3); animation:or-moon 25s ease-in-out infinite alternate; }
.scn-oberon-rebukes-puck .tree-left { position:absolute; bottom:25%; left:3%; width:25px; height:50%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin:bottom center; animation:or-tree 10s ease-in-out infinite; }
.scn-oberon-rebukes-puck .tree-right { position:absolute; bottom:25%; right:3%; width:25px; height:50%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin:bottom center; animation:or-tree 10s ease-in-out infinite reverse; }
.scn-oberon-rebukes-puck .oberon { position:absolute; bottom:28%; left:25%; width:30px; height:70px; background:linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:or-oberon 4s ease-in-out infinite; }
.scn-oberon-rebukes-puck .puck { position:absolute; bottom:26%; right:30%; width:22px; height:50px; background:linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:or-puck 3s ease-in-out infinite; }
.scn-oberon-rebukes-puck .staff-glow { position:absolute; bottom:32%; left:28%; width:6px; height:15px; background:radial-gradient(ellipse, #80b0ff 0%, transparent 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(128,176,255,0.5); animation:or-staff 2s ease-in-out infinite alternate; }

@keyframes or-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes or-moon { 0% { transform:translateY(0); opacity:0.9 } 50% { transform:translateY(3px); opacity:1 } 100% { transform:translateY(-2px); opacity:0.85 } }
@keyframes or-tree { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes or-oberon { 0% { transform:rotate(0deg) } 25% { transform:rotate(-5deg) translateX(2px) } 50% { transform:rotate(0deg) } 75% { transform:rotate(5deg) translateX(-2px) } 100% { transform:rotate(0deg) } }
@keyframes or-puck { 0% { transform:scaleY(1) translateX(0) } 50% { transform:scaleY(0.95) translateX(3px) } 100% { transform:scaleY(1) translateX(0) } }
@keyframes or-staff { 0% { opacity:0.6; transform:scaleY(1) } 100% { opacity:1; transform:scaleY(1.2) } }

.scn-puck-leads-lovers {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 70% 90%, #3a3a6e 0%, transparent 60%);
}
.scn-puck-leads-lovers .sky { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation:pl-sky 14s ease-in-out infinite alternate; }
.scn-puck-leads-lovers .moon { position:absolute; top:12%; left:55%; width:40px; height:40px; background:radial-gradient(circle, #d0d8f0 0%, #8088a8 70%); border-radius:50%; box-shadow:0 0 30px 6px rgba(200,210,240,0.3); animation:pl-moon 22s ease-in-out infinite alternate; }
.scn-puck-leads-lovers .bush-left { position:absolute; bottom:25%; left:2%; width:35px; height:30px; background:radial-gradient(ellipse, #3a4a3a 0%, #1a2a1a 100%); border-radius:50%; filter:blur(2px); animation:pl-bush 9s ease-in-out infinite; }
.scn-puck-leads-lovers .bush-right { position:absolute; bottom:25%; right:2%; width:35px; height:30px; background:radial-gradient(ellipse, #3a4a3a 0%, #1a2a1a 100%); border-radius:50%; filter:blur(2px); animation:pl-bush 9s ease-in-out infinite reverse; }
.scn-puck-leads-lovers .path { position:absolute; bottom:20%; left:30%; right:30%; height:8%; background:linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:50% 50% 0 0; box-shadow:inset 0 4px 8px rgba(0,0,0,0.3); animation:pl-path 6s ease-in-out infinite; }
.scn-puck-leads-lovers .puck-figure { position:absolute; bottom:30%; left:40%; width:20px; height:45px; background:linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pl-puck 3s ease-in-out infinite; }
.scn-puck-leads-lovers .lysander { position:absolute; bottom:30%; left:60%; width:22px; height:55px; background:linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pl-lys 4s ease-in-out infinite; }
.scn-puck-leads-lovers .hat { position:absolute; bottom:42%; left:62%; width:16px; height:10px; background:#4a4a6a; border-radius:50% 50% 0 0; transform-origin:bottom center; animation:pl-hat 4s ease-in-out infinite; }

@keyframes pl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pl-moon { 0% { transform:translateY(0); opacity:0.9 } 50% { transform:translateY(3px); opacity:1 } 100% { transform:translateY(-2px); opacity:0.85 } }
@keyframes pl-bush { 0%,100% { transform:scale(1) } 50% { transform:scale(1.05) } }
@keyframes pl-path { 0% { opacity:0.6; transform:scaleY(1) } 50% { opacity:0.8; transform:scaleY(1.1) } 100% { opacity:0.6; transform:scaleY(1) } }
@keyframes pl-puck { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(6px) rotate(5deg) } 50% { transform:translateX(12px) rotate(0deg) } 75% { transform:translateX(6px) rotate(-5deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes pl-lys { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-4px) rotate(-2deg) } 50% { transform:translateX(-8px) rotate(0deg) } 75% { transform:translateX(-4px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes pl-hat { 0% { transform:translateY(0) translateX(0) rotate(0deg) } 50% { transform:translateY(-3px) translateX(-2px) rotate(5deg) } 100% { transform:translateY(0) translateX(0) rotate(0deg) } }

.scn-titania-bottom-idyll {
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 40%, #5a4a7e 100%), radial-gradient(ellipse at 50% 100%, #6a5a8e 0%, transparent 70%);
}
.scn-titania-bottom-idyll .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #3a3a5e 0%, transparent 100%); animation:tb-sky 18s ease-in-out infinite alternate; }
.scn-titania-bottom-idyll .moon { position:absolute; top:8%; left:75%; width:50px; height:50px; background:radial-gradient(circle, #f0e8a0 0%, #c0b860 70%); border-radius:50%; box-shadow:0 0 40px 10px rgba(240,232,160,0.4); animation:tb-moon 30s ease-in-out infinite alternate; }
.scn-titania-bottom-idyll .tree { position:absolute; bottom:25%; left:5%; width:40px; height:60%; background:linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin:bottom center; animation:tb-tree 12s ease-in-out infinite; }
.scn-titania-bottom-idyll .bottom-figure { position:absolute; bottom:20%; left:40%; width:40px; height:55px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:tb-bottom 5s ease-in-out infinite; }
.scn-titania-bottom-idyll .cobweb { position:absolute; bottom:30%; left:52%; width:12px; height:25px; background:linear-gradient(180deg, #8a8aaa 0%, #6a6a8a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:tb-cobweb 7s ease-in-out infinite; }
.scn-titania-bottom-idyll .honey-bag { position:absolute; bottom:25%; left:48%; width:10px; height:12px; background:radial-gradient(circle, #f0c060 0%, #c08030 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(240,192,96,0.6); animation:tb-honey 4s ease-in-out infinite alternate; }
.scn-titania-bottom-idyll .flowers { position:absolute; bottom:15%; left:0; right:0; height:10%; background:radial-gradient(ellipse at 20% 100%, #6a5a3a 0%, transparent 50%), radial-gradient(ellipse at 80% 100%, #6a5a3a 0%, transparent 50%); filter:blur(2px); animation:tb-flowers 8s ease-in-out infinite; }

@keyframes tb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tb-moon { 0% { transform:translateY(0); opacity:0.9 } 50% { transform:translateY(4px); opacity:1 } 100% { transform:translateY(-2px); opacity:0.85 } }
@keyframes tb-tree { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } }
@keyframes tb-bottom { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes tb-cobweb { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(5px) scaleY(0.9) } 100% { transform:translateX(0) scaleY(1) } }
@keyframes tb-honey { 0% { opacity:0.7; transform:scale(1) } 100% { opacity:1; transform:scale(1.2) } }
@keyframes tb-flowers { 0% { opacity:0.5; transform:translateY(0) } 50% { opacity:0.8; transform:translateY(-2px) } 100% { opacity:0.5; transform:translateY(0) } }

/* SCENE: puck-fairy-night */
.scn-puck-fairy-night {
  background: linear-gradient(180deg, #0b0b1e 0%, #1a1a3a 40%, #2a2a4e 100%),
              radial-gradient(ellipse at 70% 20%, #4a5a8e 0%, transparent 60%);
}
.scn-puck-fairy-night .sky-grave {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0d0d28 0%, #141434 50%, #1e1e3e 100%);
  animation: pf-sky 20s ease-in-out infinite alternate;
}
.scn-puck-fairy-night .moon {
  position: absolute; top: 6%; left: 68%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #d0d8f0 0%, #a0b0d0 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,176,208,0.4);
  animation: pf-moon 12s ease-in-out infinite;
}
.scn-puck-fairy-night .tombstone {
  position: absolute; bottom: 18%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
}
.scn-puck-fairy-night .tombstone.left { left: 38%; }
.scn-puck-fairy-night .tombstone.right { left: 52%; height: 42px; bottom: 22%; }
.scn-puck-fairy-night .church-spire {
  position: absolute; bottom: 30%; left: 20%;
  width: 0; height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 60px solid #1e1e2e;
  filter: drop-shadow(0 0 8px #2a2a3e);
  animation: pf-spire 8s ease-in-out infinite alternate;
}
.scn-puck-fairy-night .sprite {
  position: absolute; bottom: 32%; left: 55%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #8a9ac8 0%, #5a6a9e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-sprite 6s ease-in-out infinite;
}
.scn-puck-fairy-night .owl {
  position: absolute; top: 15%; right: 12%;
  width: 24px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px #1a1a2a;
  animation: pf-owl 4s ease-in-out infinite alternate;
}
.scn-puck-fairy-night .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(30,30,50,0.7) 0%, transparent 100%);
  filter: blur(8px);
  animation: pf-mist 15s ease-in-out infinite;
}
@keyframes pf-sky { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes pf-moon { 0%,100% { transform: translateY(0); box-shadow: 0 0 30px 10px rgba(160,176,208,0.3); } 50% { transform: translateY(-4px); box-shadow: 0 0 50px 20px rgba(160,176,208,0.5); } }
@keyframes pf-spire { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(0); opacity:0.9; } }
@keyframes pf-sprite { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-4px) rotate(2deg); } 50% { transform: translateX(16px) translateY(-8px) rotate(0deg); } 75% { transform: translateX(24px) translateY(-4px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(0) rotate(1deg); } }
@keyframes pf-owl { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 100% { transform: scaleY(1) rotate(-5deg); } }
@keyframes pf-mist { 0%,100% { opacity:0.4; } 50% { opacity:0.7; } }

/* SCENE: item-broom */
.scn-item-broom {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 50%, #8a4a2a 0%, transparent 70%);
}
.scn-item-broom .wall {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 6px);
  opacity: 0.3;
  animation: ib-wall 10s linear infinite;
}
.scn-item-broom .fireplace {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-item-broom .fire-glow {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse, #ffaa44 0%, #cc6600 50%, #8a4400 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ib-fire 3s ease-in-out infinite alternate;
}
.scn-item-broom .broom {
  position: absolute; bottom: 7%; left: 25%;
  width: 8px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  animation: ib-broom 5s ease-in-out infinite;
}
.scn-item-broom .broom-head {
  position: absolute; bottom: 5%; left: 24%;
  width: 24px; height: 18px;
  background: linear-gradient(180deg, #b08050 0%, #8a6020 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ib-broom-head 5s ease-in-out infinite;
}
.scn-item-broom .fairy {
  position: absolute; bottom: 35%; left: 15%;
  width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #ffdd88 0%, #ccaa44 100%);
  border-radius: 50%;
  animation: ib-fairy 4s ease-in-out infinite;
}
.scn-item-broom .fairy.right {
  left: auto; right: 18%;
  animation-delay: -2s;
}
.scn-item-broom .shadow-beam {
  position: absolute; bottom: 15%; left: 30%;
  width: 60%; height: 6px;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: ib-beam 8s ease-in-out infinite alternate;
}
@keyframes ib-wall { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes ib-fire { 0% { transform: translateX(-50%) scale(0.9); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:0.9; } }
@keyframes ib-broom { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } }
@keyframes ib-broom-head { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } }
@keyframes ib-fairy { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.2); } 100% { transform: translateY(0) scale(1); } }
@keyframes ib-beam { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.2); } 100% { opacity:0.4; transform: scaleX(0.9); } }

/* SCENE: song-and-dance-blessing */
.scn-song-and-dance-blessing {
  background: linear-gradient(180deg, #3a2a2a 0%, #5a3a2a 40%, #7a4a2a 100%),
              radial-gradient(ellipse at 50% 60%, #c08040 0%, transparent 80%);
}
.scn-song-and-dance-blessing .chamber-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 60%);
  animation: sdb-chamber 20s ease-in-out infinite alternate;
}
.scn-song-and-dance-blessing .bed-curtain {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 50px;
  background: linear-gradient(180deg, #8a5a3a 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
  animation: sdb-curtain 15s ease-in-out infinite;
}
.scn-song-and-dance-blessing .bride-bed {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #9a6a4a 0%, #7a4a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-song-and-dance-blessing .dancer {
  position: absolute; bottom: 25%;
  width: 14px; height: 32px;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdb-dancer 6s ease-in-out infinite;
}
.scn-song-and-dance-blessing .dancer.left { left: 28%; animation-delay: -2s; }
.scn-song-and-dance-blessing .dancer.right { left: 60%; animation-delay: -4s; }
.scn-song-and-dance-blessing .dancer.center { left: 44%; height: 36px; width: 12px; animation-delay: -3s; }
.scn-song-and-dance-blessing .sparkles {
  position: absolute; top: 20%; left: 10%; right: 10%; bottom: 40%;
  background-image: radial-gradient(2px 2px at 20% 30%, #ffdd88, transparent),
                    radial-gradient(2px 2px at 70% 50%, #ffdd88, transparent),
                    radial-gradient(2px 2px at 40% 80%, #ffcc44, transparent),
                    radial-gradient(2px 2px at 90% 20%, #ffcc44, transparent);
  background-size: 100% 100%;
  animation: sdb-sparkle 8s ease-in-out infinite;
}
.scn-song-and-dance-blessing .warm-glow {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(200,100,40,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: sdb-glow 5s ease-in-out infinite alternate;
}
@keyframes sdb-chamber { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes sdb-curtain { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } }
@keyframes sdb-dancer { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-6px) rotate(3deg); } 50% { transform: translateY(-10px) rotate(0deg); } 75% { transform: translateY(-6px) rotate(-3deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes sdb-sparkle { 0%,100% { opacity:0.5; } 50% { opacity:1; } }
@keyframes sdb-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

/* SCENE: blessing-continued */
.scn-blessing-continued {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a1a 40%, #8a4a2a 100%),
              radial-gradient(ellipse at 50% 70%, #c07030 0%, transparent 70%);
}
.scn-blessing-continued .altar-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #7a4a2a 100%);
  animation: bc-altar 30s ease-in-out infinite;
}
.scn-blessing-continued .couple {
  position: absolute; bottom: 12%;
  width: 24px; height: 40px;
  background: linear-gradient(180deg, #b08860 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-couple 8s ease-in-out infinite;
}
.scn-blessing-continued .couple.left { left: 30%; animation-delay: -1s; }
.scn-blessing-continued .couple.right { left: 58%; animation-delay: -3s; }
.scn-blessing-continued .couple.center { left: 44%; width: 20px; height: 44px; animation-delay: -2s; }
.scn-blessing-continued .dew-drops {
  position: absolute; top: 50%; left: 20%; right: 20%; height: 8px;
  background-image: radial-gradient(circle, #90c080 2px, transparent 2px);
  background-size: 20px 20px;
  animation: bc-dew 12s linear infinite;
}
.scn-blessing-continued .fairy-dust {
  position: absolute; top: 15%; left: 0; right: 0; height: 60%;
  background-image: radial-gradient(2px 2px at 15% 40%, #ffeeaa, transparent),
                    radial-gradient(2px 2px at 60% 70%, #ffeeaa, transparent),
                    radial-gradient(2px 2px at 80% 20%, #ffeeaa, transparent);
  background-size: 100% 100%;
  animation: bc-dust 10s ease-in-out infinite alternate;
}
.scn-blessing-continued .light-ray {
  position: absolute; top: -10%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 80%;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: bc-ray 7s ease-in-out infinite;
}
.scn-blessing-continued .blessed-aura {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.3) 0%, transparent 70%);
  animation: bc-aura 15s ease-in-out infinite alternate;
}
@keyframes bc-altar { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes bc-couple { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-8px) rotate(0deg); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes bc-dew { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes bc-dust { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes bc-ray { 0%,100% { opacity:0.3; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.6; transform: translateX(-50%) scaleX(1.2); } }
@keyframes bc-aura { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-oberon-titania-quarrel {
  background: linear-gradient(180deg, #0f1926 0%, #1b2a3d 40%, #2a3e5c 100%), radial-gradient(ellipse at 70% 20%, #a0b8d4 0%, #2a3e5c 60%, transparent 90%);
  position: relative; overflow: hidden;
}
.scn-oberon-titania-quarrel .moon {
  position: absolute; top: 12%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0e8f2 0%, #b0c4de 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(176,196,222,0.3);
  animation: moon-glow-otq 6s ease-in-out infinite alternate;
}
.scn-oberon-titania-quarrel .tree-left {
  position: absolute; left: 10%; bottom: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #1a2e3d 60%, #121e2a 100%);
  clip-path: polygon(0 0, 30% 0, 25% 100%, 0 100%);
  filter: blur(2px);
}
.scn-oberon-titania-quarrel .tree-right {
  position: absolute; right: 10%; bottom: 0; width: 35%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #1f2f3e 50%, #141f2a 100%);
  clip-path: polygon(100% 0, 70% 0, 75% 100%, 100% 100%);
  filter: blur(3px);
}
.scn-oberon-titania-quarrel .oberon-figure {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a4050 0%, #0d1a26 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-stand-otq 8s ease-in-out infinite;
}
.scn-oberon-titania-quarrel .titania-figure {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #3a5a6e 0%, #1a3040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-stand-otq 8s ease-in-out infinite reverse;
}
.scn-oberon-titania-quarrel .train-oberon {
  position: absolute; bottom: 25%; left: 32%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #2a4050 0%, transparent 80%);
  filter: blur(4px);
  animation: train-drift-otq 10s linear infinite;
}
.scn-oberon-titania-quarrel .train-titania {
  position: absolute; bottom: 25%; right: 32%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #3a5a6e 0%, transparent 80%);
  filter: blur(4px);
  animation: train-drift-otq 12s linear infinite reverse;
}
.scn-oberon-titania-quarrel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1d2c3a 0%, #0e1a26 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
@keyframes moon-glow-otq {
  0%, 100% { box-shadow: 0 0 40px 15px rgba(176,196,222,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 60px 25px rgba(176,196,222,0.5); opacity: 1; }
}
@keyframes figure-stand-otq {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(-5px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes train-drift-otq {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}

/* Scene 2 */
.scn-oberon-counter-accusation {
  background: linear-gradient(180deg, #141e2e 0%, #1f3044 40%, #2e4460 100%), radial-gradient(ellipse at 60% 15%, #98b0cc 0%, #2e4460 70%, transparent 90%);
  position: relative; overflow: hidden;
}
.scn-oberon-counter-accusation .moon {
  position: absolute; top: 8%; left: 60%; width: 55px; height: 55px;
  background: radial-gradient(circle, #d0dce8 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 35px 12px rgba(160,184,208,0.4);
  animation: moon-glow-oca 7s ease-in-out infinite alternate;
}
.scn-oberon-counter-accusation .tree-left {
  position: absolute; left: 5%; bottom: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #1a2a38 50%, #0f1a26 100%);
  clip-path: polygon(0 0, 35% 0, 30% 100%, 0 100%);
  filter: blur(2px);
}
.scn-oberon-counter-accusation .tree-right {
  position: absolute; right: 8%; bottom: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #1c2c3c 50%, #101c28 100%);
  clip-path: polygon(100% 0, 65% 0, 70% 100%, 100% 100%);
  filter: blur(3px);
}
.scn-oberon-counter-accusation .oberon-figure {
  position: absolute; bottom: 26%; left: 36%; width: 24px; height: 62px;
  background: linear-gradient(180deg, #2a4050 0%, #0d1a26 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-turn-oca 6s ease-in-out infinite;
}
.scn-oberon-counter-accusation .titania-figure {
  position: absolute; bottom: 26%; left: 54%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #3a5a6e 0%, #1a3040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-turn-oca 6s ease-in-out infinite reverse;
}
.scn-oberon-counter-accusation .arm-point {
  position: absolute; bottom: 44%; left: 42%; width: 18px; height: 4px;
  background: #1f2e3a;
  transform-origin: left center;
  border-radius: 50%;
  animation: point-acc-oca 4s ease-in-out infinite;
}
.scn-oberon-counter-accusation .train-oberon {
  position: absolute; bottom: 22%; left: 28%; width: 50px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #2a4050 0%, transparent 80%);
  filter: blur(5px);
  animation: train-move-oca 12s linear infinite;
}
.scn-oberon-counter-accusation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #182836 0%, #0e1a24 100%);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
}
@keyframes moon-glow-oca {
  0% { box-shadow: 0 0 35px 12px rgba(160,184,208,0.4); opacity: 0.85; }
  50% { box-shadow: 0 0 55px 20px rgba(160,184,208,0.6); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px rgba(160,184,208,0.5); opacity: 0.9; }
}
@keyframes figure-turn-oca {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-3deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes point-acc-oca {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-20deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(20deg); }
}
@keyframes train-move-oca {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(-10px) scale(1.1); opacity: 0.8; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}

/* Scene 3 */
.scn-oberon-demands-child {
  background: linear-gradient(180deg, #121c2a 0%, #1e2e40 40%, #2e4460 100%), radial-gradient(ellipse at 65% 25%, #8aa8c4 0%, #2e4460 70%, transparent 85%);
  position: relative; overflow: hidden;
}
.scn-oberon-demands-child .moon {
  position: absolute; top: 15%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d4def0 0%, #a8bcd4 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(168,188,212,0.5);
  animation: moon-glow-odc 6s ease-in-out infinite alternate;
}
.scn-oberon-demands-child .tree-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, transparent 0%, #1a2834 60%, #0e1a24 100%);
  clip-path: polygon(0 0, 20% 0, 25% 100%, 0 100%);
  filter: blur(4px);
}
.scn-oberon-demands-child .oberon-figure {
  position: absolute; bottom: 30%; left: 35%; width: 26px; height: 64px;
  background: linear-gradient(180deg, #2a4050 0%, #0d1a26 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-lean-odc 5s ease-in-out infinite;
}
.scn-oberon-demands-child .titania-figure {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a5a6e 0%, #1a3040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-recoil-odc 5s ease-in-out infinite;
}
.scn-oberon-demands-child .changeling-shadow {
  position: absolute; bottom: 28%; left: 44%; width: 14px; height: 30px;
  background: #1a2a36;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  opacity: 0.6;
  animation: shadow-flicker-odc 7s ease-in-out infinite;
}
.scn-oberon-demands-child .hand-reach {
  position: absolute; bottom: 46%; left: 41%; width: 16px; height: 6px;
  background: #1a2a36;
  border-radius: 50%;
  transform-origin: left center;
  animation: reach-odc 4s ease-in-out infinite;
}
.scn-oberon-demands-child .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1d2c3a 0%, #0e1a26 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
@keyframes moon-glow-odc {
  0% { box-shadow: 0 0 30px 10px rgba(168,188,212,0.5); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 20px rgba(168,188,212,0.7); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px rgba(168,188,212,0.4); opacity: 0.85; }
}
@keyframes figure-lean-odc {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(-5deg); }
  50% { transform: translateY(-5px) rotate(-8deg); }
  75% { transform: translateY(-2px) rotate(-4deg); }
}
@keyframes figure-recoil-odc {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-2px) rotate(4deg); }
  50% { transform: translateY(-4px) rotate(6deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes shadow-flicker-odc {
  0%, 100% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
}
@keyframes reach-odc {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-15deg); }
  50% { transform: translateY(-6px) rotate(-30deg); }
  75% { transform: translateY(-2px) rotate(-10deg); }
}

/* Scene 4 */
.scn-titania-threatens-leave {
  background: linear-gradient(180deg, #111b28 0%, #1c2c3e 40%, #2a4058 100%), radial-gradient(ellipse at 80% 30%, #90aac4 0%, #2a4058 60%, transparent 85%);
  position: relative; overflow: hidden;
}
.scn-titania-threatens-leave .moon {
  position: absolute; top: 10%; right: 15%; width: 58px; height: 58px;
  background: radial-gradient(circle, #ced9ec 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 45px 18px rgba(160,184,208,0.4);
  animation: moon-glow-ttl 8s ease-in-out infinite alternate;
}
.scn-titania-threatens-leave .tree-left {
  position: absolute; left: 2%; bottom: 0; width: 35%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #182634 50%, #0e1824 100%);
  clip-path: polygon(0 0, 30% 0, 25% 100%, 0 100%);
  filter: blur(3px);
}
.scn-titania-threatens-leave .tree-right {
  position: absolute; right: 5%; bottom: 0; width: 35%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #1a2a38 50%, #0f1a26 100%);
  clip-path: polygon(100% 0, 70% 0, 75% 100%, 100% 100%);
  filter: blur(4px);
}
.scn-titania-threatens-leave .titania-figure {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a5a6e 0%, #1a3040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-turn-away-ttl 6s ease-in-out infinite;
}
.scn-titania-threatens-leave .train-titania {
  position: absolute; bottom: 24%; right: 30%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #3a5a6e 0%, transparent 80%);
  filter: blur(5px);
  animation: train-sweep-ttl 10s ease-in-out infinite;
}
.scn-titania-threatens-leave .gesture-hand {
  position: absolute; bottom: 44%; left: 58%; width: 14px; height: 5px;
  background: #1a2a36;
  border-radius: 50%;
  transform-origin: right center;
  animation: gesture-dismiss-ttl 4s ease-in-out infinite;
}
.scn-titania-threatens-leave .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #1c2c3a 0%, #0e1a26 100%);
  border-radius: 50% 50% 0 0 / 25% 25% 0 0;
}
@keyframes moon-glow-ttl {
  0% { box-shadow: 0 0 45px 18px rgba(160,184,208,0.4); opacity: 0.85; }
  50% { box-shadow: 0 0 65px 25px rgba(160,184,208,0.6); opacity: 1; }
  100% { box-shadow: 0 0 50px 20px rgba(160,184,208,0.5); opacity: 0.9; }
}
@keyframes figure-turn-away-ttl {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-3px) rotate(5deg); }
  50% { transform: translateY(-5px) rotate(8deg); }
  75% { transform: translateY(-2px) rotate(4deg); }
}
@keyframes train-sweep-ttl {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  25% { transform: translateX(10px) scale(1.15); opacity: 0.8; }
  50% { transform: translateX(15px) scale(1.2); opacity: 1; }
  75% { transform: translateX(5px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}
@keyframes gesture-dismiss-ttl {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(30deg); }
  50% { transform: translateY(-5px) rotate(45deg); }
  75% { transform: translateY(-2px) rotate(15deg); }
}

/* lysander-helena-wooing */
.scn-lysander-helena-wooing {
  background: linear-gradient(180deg, #2b2b5a 0%, #4a427a 60%),
              radial-gradient(ellipse at 50% 0%, #8a7ace 0%, transparent 70%);
}
.scn-lysander-helena-wooing .moon {
  position: absolute; top: 6%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #eeedd0 0%, #d0c8b0 80%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,180,150,.4);
  transform: translateX(-50%); animation: lhw-moon 8s ease-in-out infinite alternate;
}
.scn-lysander-helena-wooing .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 30% 0 0 / 20% 20% 0 0; animation: lhw-ground 12s ease-in-out infinite alternate;
}
.scn-lysander-helena-wooing .tree-left {
  position: absolute; bottom: 20%; left: 10%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom; animation: lhw-sway 6s ease-in-out infinite alternate;
}
.scn-lysander-helena-wooing .tree-right {
  position: absolute; bottom: 20%; right: 12%; width: 18px; height: 65%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom; animation: lhw-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-lysander-helena-wooing .figure-kneeling {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: lhw-kneel 4s ease-in-out infinite alternate;
}
.scn-lysander-helena-wooing .figure-standing {
  position: absolute; bottom: 28%; left: 52%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: lhw-stand 3s ease-in-out infinite alternate;
}
.scn-lysander-helena-wooing .tear-drop {
  position: absolute; bottom: 42%; left: 44%; width: 6px; height: 12px;
  background: radial-gradient(circle, #a0d0ff 0%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.6; animation: lhw-tear 2s ease-in-out infinite;
}
.scn-lysander-helena-wooing .glow-aura {
  position: absolute; top: 10%; left: 40%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, rgba(160,140,100,0.2) 0%, transparent 70%);
  animation: lhw-glow 5s ease-in-out infinite alternate;
}
@keyframes lhw-moon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes lhw-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lhw-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes lhw-kneel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lhw-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lhw-tear { 0% { transform: translateY(0); opacity: 0.4; } 50% { transform: translateY(4px); opacity: 0.8; } 100% { transform: translateY(0); opacity: 0.4; } }
@keyframes lhw-glow { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.15; } }

/* helena-accusation */
.scn-helena-accusation {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a7e 0%, transparent 60%);
}
.scn-helena-accusation .moon-dark {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #6a6a8a 0%, #4a4a6a 80%);
  border-radius: 50%; box-shadow: 0 0 20px 5px rgba(100,100,140,0.2);
  transform: translateX(-50%); animation: hac-moon 10s ease-in-out infinite alternate;
}
.scn-helena-accusation .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-helena-accusation .tree-shadow-left {
  position: absolute; bottom: 20%; left: 5%; width: 25px; height: 75%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom;
  animation: hac-sway 8s ease-in-out infinite alternate;
}
.scn-helena-accusation .tree-shadow-right {
  position: absolute; bottom: 18%; right: 8%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom;
  animation: hac-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-helena-accusation .figure-helena {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: hac-stand 4s ease-in-out infinite alternate;
}
.scn-helena-accusation .mock-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(80,80,120,0.3) 0%, transparent 70%);
  filter: blur(8px); animation: hac-mock 5s ease-in-out infinite alternate;
}
.scn-helena-accusation .thorn-branch {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #3a1a1a 0%, #2a0a0a 100%);
  border-radius: 30%; transform: rotate(20deg); transform-origin: bottom;
  animation: hac-thorn 3s ease-in-out infinite alternate;
}
@keyframes hac-moon { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes hac-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes hac-stand { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes hac-mock { 0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(0.95); } }
@keyframes hac-thorn { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.05); } 100% { transform: rotate(18deg) scaleY(1); } }

/* demetrius-changes */
.scn-demetrius-changes {
  background: linear-gradient(180deg, #3a3a6a 0%, #5a4a8a 50%, #3a3a6a 100%),
              radial-gradient(ellipse at 50% 0%, #7a6aae 0%, transparent 65%);
}
.scn-demetrius-changes .moon-warm {
  position: absolute; top: 5%; left: 30%; width: 55px; height: 55px;
  background: radial-gradient(circle, #ddd0b0 0%, #c0b090 80%);
  border-radius: 50%; box-shadow: 0 0 50px 15px rgba(180,160,130,0.3);
  transform: translateX(-30%); animation: dmc-moon 10s ease-in-out infinite alternate;
}
.scn-demetrius-changes .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 30% 0 0;
}
.scn-demetrius-changes .tree-bg {
  position: absolute; bottom: 22%; left: 5%; width: 18px; height: 65%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom;
  animation: dmc-sway 7s ease-in-out infinite alternate;
}
.scn-demetrius-changes .demetrius {
  position: absolute; bottom: 25%; left: 42%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: dmc-bow 4s ease-in-out infinite alternate;
}
.scn-demetrius-changes .helena {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #5a4a6a 0%, #4a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: dmc-stand 3s ease-in-out infinite alternate;
}
.scn-demetrius-changes .heart-glowing {
  position: absolute; bottom: 40%; left: 48%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd0a0 0%, #ffb080 60%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,176,128,0.5);
  animation: dmc-heart 2s ease-in-out infinite alternate;
}
.scn-demetrius-changes .firefly {
  position: absolute; top: 20%; left: 60%; width: 4px; height: 4px;
  background: radial-gradient(circle, #a0ffc0 0%, transparent 80%);
  border-radius: 50%; animation: dmc-fly 4s ease-in-out infinite;
}
@keyframes dmc-moon { 0% { transform: translateX(-30%) scale(1); } 50% { transform: translateX(-30%) scale(1.01); } 100% { transform: translateX(-30%) scale(0.99); } }
@keyframes dmc-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes dmc-bow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dmc-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dmc-heart { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }
@keyframes dmc-fly { 0% { transform: translate(0,0); } 25% { transform: translate(8px, -12px); } 50% { transform: translate(15px, -5px); } 75% { transform: translate(5px, -18px); } 100% { transform: translate(0,0); } }

/* hermia-arrives */
.scn-hermia-arrives {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a6e 0%, transparent 60%);
}
.scn-hermia-arrives .moon-hidden {
  position: absolute; top: 10%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a4a6a 0%, #3a3a5a 70%);
  border-radius: 50%; box-shadow: 0 0 10px 3px rgba(80,80,120,0.1);
  transform: translateX(-20%); animation: har-moon 6s ease-in-out infinite alternate;
}
.scn-hermia-arrives .forest-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
}
.scn-hermia-arrives .figure-hermia {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: har-hunt 3s ease-in-out infinite alternate;
}
.scn-hermia-arrives .ear-focus-left {
  position: absolute; top: 58%; left: 44%; width: 8px; height: 12px;
  background: radial-gradient(circle, #5a5a7a 0%, transparent 80%);
  border-radius: 50%; animation: har-ear 1.5s ease-in-out infinite alternate;
}
.scn-hermia-arrives .ear-focus-right {
  position: absolute; top: 58%; left: 56%; width: 8px; height: 12px;
  background: radial-gradient(circle, #5a5a7a 0%, transparent 80%);
  border-radius: 50%; animation: har-ear 1.5s ease-in-out infinite alternate-reverse;
}
.scn-hermia-arrives .shadow-trees {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 60%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(10,10,20,0.3) 30px, rgba(10,10,20,0.3) 32px, transparent 32px, transparent 60px);
  filter: blur(3px); animation: har-shadow 12s linear infinite alternate;
}
.scn-hermia-arrives .ground-tense {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
}
@keyframes har-moon { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes har-hunt { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes har-ear { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(1); } }
@keyframes har-shadow { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

/* All IDs must have matching rules – no extra */

.scn-lysander-plan-escape { background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, transparent 70%); }
.scn-lysander-plan-escape .room-walls { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-lysander-plan-escape .window-frame { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:140px; height:100px; border:6px solid #6a4a2a; border-radius:4px; background: radial-gradient(circle at 50% 50%, #1a1a3a 0%, #0a0a1a 80%); box-shadow: inset 0 0 20px #2a2a5a; }
.scn-lysander-plan-escape .window-light { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:130px; height:90px; background: radial-gradient(circle, #c0b070 0%, #a08040 40%, transparent 70%); opacity:.4; animation: lpe-window-shift 12s ease-in-out infinite; }
.scn-lysander-plan-escape .candle-glow { position:absolute; bottom:30%; left:40%; width:80px; height:80px; background: radial-gradient(circle, #ffd080 0%, #e0a050 30%, transparent 70%); box-shadow: 0 0 60px #e0a050; animation: lpe-candle-flick 3s ease-in-out infinite; }
.scn-lysander-plan-escape .table { position:absolute; bottom:20%; left:35%; width:120px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:4px; transform:perspective(300px) rotateX(10deg); }
.scn-lysander-plan-escape .figure-left { position:absolute; bottom:24%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: lpe-figure-left 5s ease-in-out infinite; }
.scn-lysander-plan-escape .figure-right { position:absolute; bottom:24%; right:30%; width:35px; height:75px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: lpe-figure-right 5s ease-in-out infinite 2.5s; }
.scn-lysander-plan-escape .dust { position:absolute; top:20%; left:20%; width:4px; height:4px; background:#c0a070; border-radius:50%; box-shadow: 0 0 6px #c0a070; filter: blur(2px); animation: lpe-dust 20s linear infinite; }
.scn-lysander-plan-escape .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #1a0a00 100%); }
@keyframes lpe-window-shift { 0%,100% { opacity:.3; transform:translateX(-50%) scale(1); } 50% { opacity:.6; transform:translateX(-50%) scale(1.02); } }
@keyframes lpe-candle-flick { 0%,100% { opacity:.8; transform:scale(1); } 25% { opacity:1; transform:scale(1.1) rotate(1deg); } 75% { opacity:.7; transform:scale(.95) rotate(-1deg); } }
@keyframes lpe-figure-left { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes lpe-figure-right { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(3deg); } }
@keyframes lpe-dust { 0% { opacity:0; transform: translate(0,0); } 20% { opacity:.6; } 80% { opacity:.3; } 100% { opacity:0; transform: translate(120px,-60px); } }

.scn-hermia-oath { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%); }
.scn-hermia-oath .wall { position:absolute; inset:0; background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 80%, #5a4a3a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.7); }
.scn-hermia-oath .hearth { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:180px; height:100px; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 -20px 40px #1a0a00; }
.scn-hermia-oath .flame { position:absolute; bottom:32%; left:50%; transform:translateX(-50%); width:40px; height:60px; background: radial-gradient(ellipse, #ffd080 0%, #e08030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px #e08030, 0 0 120px rgba(224,128,48,.3); animation: ho-flame 2s ease-in-out infinite; }
.scn-hermia-oath .hermia-silhouette { position:absolute; bottom:22%; left:40%; width:45px; height:90px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: ho-hermia 6s ease-in-out infinite; }
.scn-hermia-oath .hand-raised { position:absolute; bottom:50%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom; animation: ho-hand 4s ease-in-out infinite 2s; }
.scn-hermia-oath .oath-glow { position:absolute; bottom:45%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,208,128,.2) 0%, transparent 60%); animation: ho-glow 5s ease-in-out infinite alternate; }
.scn-hermia-oath .embers { position:absolute; bottom:18%; left:30%; width:10px; height:10px; background:#e08030; border-radius:50%; box-shadow: 0 0 20px #e08030; filter: blur(3px); animation: ho-ember 3s linear infinite; }
@keyframes ho-flame { 0%,100% { opacity:.8; transform:translateX(-50%) scaleY(1) rotate(-2deg); } 25% { opacity:1; transform:translateX(-50%) scaleY(1.15) rotate(2deg); } 50% { opacity:.9; transform:translateX(-50%) scaleY(.95) rotate(0); } 75% { opacity:1; transform:translateX(-50%) scaleY(1.1) rotate(-3deg); } }
@keyframes ho-hermia { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes ho-hand { 0%,100% { transform: rotate(-10deg); } 25% { transform: rotate(0); } 50% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } }
@keyframes ho-glow { 0% { opacity:.3; transform:scale(1); } 100% { opacity:.7; transform:scale(1.3); } }
@keyframes ho-ember { 0% { opacity:0; transform: translate(0,0); } 20% { opacity:.8; } 80% { opacity:.5; transform: translate(50px,-30px); } 100% { opacity:0; transform: translate(80px,-50px); } }

.scn-helena-entrance { background: linear-gradient(180deg, #2a2a3a 0%, #3a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 40% 20%, #4a3a4a 0%, transparent 70%); }
.scn-helena-entrance .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.8); }
.scn-helena-entrance .doorway { position:absolute; top:5%; left:20%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 50%, #4a3a4a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 0 40px #0a0a1a; }
.scn-helena-entrance .entering-figure { position:absolute; bottom:15%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: he-enter 8s ease-in-out infinite; }
.scn-helena-entrance .standing-figure { position:absolute; bottom:15%; left:55%; width:40px; height:85px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: he-stand 5s ease-in-out infinite; }
.scn-helena-entrance .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); }
.scn-helena-entrance .door-light { position:absolute; top:5%; left:20%; width:90px; height:130px; background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%); opacity:.6; animation: he-door-light 10s ease-in-out infinite alternate; }
.scn-helena-entrance .shadow-long { position:absolute; bottom:15%; left:20%; width:120px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); filter: blur(6px); animation: he-shadow 8s ease-in-out infinite; }
@keyframes he-enter { 0%,100% { transform: translateX(0) rotate(0); opacity:.8; } 30% { transform: translateX(30px) rotate(2deg); opacity:1; } 70% { transform: translateX(50px) rotate(-1deg); opacity:1; } }
@keyframes he-stand { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-4deg); } }
@keyframes he-door-light { 0% { opacity:.4; transform:scale(1); } 100% { opacity:.8; transform:scale(1.2); } }
@keyframes he-shadow { 0%,100% { transform: skewX(0) scaleX(1); opacity:.6; } 50% { transform: skewX(-10deg) scaleX(.8); opacity:.3; } }

.scn-helena-hermia-exchange { background: linear-gradient(180deg, #2a2a3a 0%, #3a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #4a3a4a 0%, transparent 80%); }
.scn-helena-hermia-exchange .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 60%, #1a1a2a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.9); }
.scn-helena-hermia-exchange .table-center { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:140px; height:20px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-helena-hermia-exchange .candle { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:10px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-helena-hermia-exchange .glow-aura { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:80px; height:80px; background: radial-gradient(circle, #e0a060 0%, #c08040 30%, transparent 70%); box-shadow: 0 0 80px #c08040; animation: hhe-glow 3s ease-in-out infinite; }
.scn-helena-hermia-exchange .figure-left { position:absolute; bottom:22%; left:30%; width:38px; height:82px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: hhe-left 4s ease-in-out infinite; }
.scn-helena-hermia-exchange .figure-right { position:absolute; bottom:22%; right:30%; width:38px; height:82px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: hhe-right 4s ease-in-out infinite 2s; }
.scn-helena-hermia-exchange .shadows-sharp { position:absolute; bottom:0; left:20%; width:200px; height:100px; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(2px); animation: hhe-shadow 5s ease-in-out infinite alternate; }
@keyframes hhe-glow { 0%,100% { opacity:.7; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.1) rotate(2deg); } }
@keyframes hhe-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(4deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes hhe-right { 0%,100% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-4deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes hhe-shadow { 0% { transform: skewX(0) scaleX(1); opacity:.5; } 100% { transform: skewX(15deg) scaleX(.8); opacity:.8; } }

/* lion-audience-banter – firelit stage, comedic lion actor */
.scn-lion-audience-banter {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a10 40%, #6a3a1a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #b86030 0%, transparent 60%);
}
.scn-lion-audience-banter .bg-fire {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 100%, #d07030 0%, transparent 70%);
  animation: lb-firepulse 6s ease-in-out infinite alternate;
}
.scn-lion-audience-banter .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: lb-stagesway 12s ease-in-out infinite;
}
.scn-lion-audience-banter .lion-body {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a5a30 0%, #5a3a18 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lb-bodybounce 4s ease-in-out infinite;
}
.scn-lion-audience-banter .lion-head {
  position: absolute; bottom: 68%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 40%, #aa7040 0%, #7a4a20 100%);
  border-radius: 50%; box-shadow: 0 -4px 10px rgba(0,0,0,.3);
  animation: lb-headtilt 3s ease-in-out infinite alternate;
}
.scn-lion-audience-banter .lion-mane {
  position: absolute; bottom: 64%; left: 42%; width: 60px; height: 50px;
  background: radial-gradient(circle, #c06030 0%, #8a4018 60%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: lb-manesway 5s ease-in-out infinite;
}
.scn-lion-audience-banter .fire-glow {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ff8030 0%, transparent 70%);
  border-radius: 50%;
  animation: lb-fireglowpulse 3s ease-in-out infinite alternate;
}
.scn-lion-audience-banter .flame-1 {
  position: absolute; bottom: 8%; left: 32%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #ffa040 0%, #c05000 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lb-flameflicker 1.5s ease-in-out infinite;
}
.scn-lion-audience-banter .flame-2 {
  position: absolute; bottom: 6%; left: 36%; width: 10px; height: 22px;
  background: linear-gradient(180deg, #ff9050 0%, #b04000 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lb-flameflicker 1.2s ease-in-out infinite reverse;
}
@keyframes lb-firepulse {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lb-stagesway {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes lb-bodybounce {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(-5px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes lb-headtilt {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}
@keyframes lb-manesway {
  0% { transform: rotate(-2deg) scaleX(0.9); }
  50% { transform: rotate(2deg) scaleX(1.1); }
  100% { transform: rotate(-2deg) scaleX(0.9); }
}
@keyframes lb-fireglowpulse {
  0% { opacity: 0.5; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.2); }
}
@keyframes lb-flameflicker {
  0% { transform: scaleY(1) rotate(-3deg); }
  50% { transform: scaleY(1.3) rotate(0deg); }
  100% { transform: scaleY(0.8) rotate(3deg); }
}

/* item-lanthorn – lantern and moon, comic firelight */
.scn-item-lanthorn {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a1a10 80%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 70%);
}
.scn-item-lanthorn .night-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 30%, transparent 0%, #0a0a1a 60%);
}
.scn-item-lanthorn .moon {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle at 55% 45%, #e8e0c0 0%, #c8b890 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,180,140,.3);
  animation: il-moondrift 30s linear infinite;
}
.scn-item-lanthorn .moon-halo {
  position: absolute; top: 5%; right: 12%; width: 90px; height: 90px;
  background: radial-gradient(circle, rgba(200,180,140,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: il-moonglow 6s ease-in-out infinite alternate;
}
.scn-item-lanthorn .lantern-body {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c87840 0%, #a05020 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: il-lanternsway 4s ease-in-out infinite;
}
.scn-item-lanthorn .lantern-light {
  position: absolute; bottom: 32%; left: 37%; width: 20px; height: 25px;
  background: radial-gradient(circle, #ffb060 0%, #d08020 70%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #d08020, 0 0 80px 25px rgba(200,100,20,.4);
  animation: il-lightflicker 2s ease-in-out infinite alternate;
}
.scn-item-lanthorn .lantern-handle {
  position: absolute; bottom: 68%; left: 38%; width: 4px; height: 15px;
  background: #5a3a1a; border-radius: 2px;
  animation: il-handlesway 4s ease-in-out infinite;
}
.scn-item-lanthorn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-item-lanthorn .cloud {
  position: absolute; top: 18%; left: 10%; width: 80px; height: 14px;
  background: linear-gradient(180deg, rgba(200,180,140,.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: il-clouddrift 40s linear infinite;
}
@keyframes il-moondrift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-80px); }
}
@keyframes il-moonglow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes il-lanternsway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes il-lightflicker {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes il-handlesway {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes il-clouddrift {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}

/* moon-man-speech – man in moon with thorn-bush and dog */
.scn-moon-man-speech {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a10 80%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-moon-man-speech .sky {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, #0a0a1a 100%);
  animation: mm-skydim 12s ease-in-out infinite alternate;
}
.scn-moon-man-speech .moon-disk {
  position: absolute; top: 5%; right: 20%; width: 110px; height: 110px;
  background: radial-gradient(circle at 50% 40%, #e8d0a0 0%, #c8b080 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,170,120,.3);
  animation: mm-moonpulse 8s ease-in-out infinite;
}
.scn-moon-man-speech .man-silhouette {
  position: absolute; top: 18%; right: 28%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mm-manbreath 5s ease-in-out infinite;
}
.scn-moon-man-speech .thorn-bush {
  position: absolute; top: 38%; right: 25%; width: 50px; height: 40px;
  background: radial-gradient(circle at 50% 60%, #3a2a1a 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 100% 60%, 80% 100%, 50% 80%, 20% 100%, 0 60%);
  animation: mm-bushsway 6s ease-in-out infinite;
}
.scn-moon-man-speech .dog {
  position: absolute; top: 45%; right: 35%; width: 25px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-dogjump 3s ease-in-out infinite;
}
.scn-moon-man-speech .moon-glow {
  position: absolute; top: 2%; right: 15%; width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(200,170,120,.15) 0%, transparent 60%);
  border-radius: 50%;
  animation: mm-glowpulse 4s ease-in-out infinite alternate;
}
.scn-moon-man-speech .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
}
@keyframes mm-skydim {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mm-moonpulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes mm-manbreath {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes mm-bushsway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes mm-dogjump {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-6px) rotate(0deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes mm-glowpulse {
  0% { opacity: 0.4; transform: scale(0.95); }
  100% { opacity: 0.8; transform: scale(1.05); }
}

/* item-mantle – tomb of Ninny, mantle draped, moonlit firelight */
.scn-item-mantle {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a1a10 80%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 10%, #3a2a1a 0%, transparent 70%);
}
.scn-item-mantle .night-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, transparent 0%, #0a0a1a 60%);
}
.scn-item-mantle .tombstone {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.5);
  transform: translateX(-50%);
  animation: im-tombsway 10s ease-in-out infinite;
}
.scn-item-mantle .mantle {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3820 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  clip-path: polygon(20% 0, 80% 0, 100% 70%, 70% 100%, 30% 100%, 0 70%);
  transform-origin: top center;
  animation: im-mantledrape 5s ease-in-out infinite;
}
.scn-item-mantle .shadow {
  position: absolute; bottom: 18%; left: 48%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: im-shadowpulse 4s ease-in-out infinite alternate;
}
.scn-item-mantle .moon {
  position: absolute; top: 12%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 55% 45%, #e0d0b0 0%, #b0a080 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(180,160,120,.3);
  animation: im-moondrift 25s linear infinite;
}
.scn-item-mantle .moon-halo {
  position: absolute; top: 9%; left: 17%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(180,160,120,.12) 0%, transparent 70%);
  border-radius: 50%;
  animation: im-moonhalo 6s ease-in-out infinite alternate;
}
.scn-item-mantle .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 50% 30% 0 0;
}
@keyframes im-tombsway {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes im-mantledrape {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(0.95); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes im-shadowpulse {
  0% { opacity: 0.4; transform: scaleX(0.9); }
  100% { opacity: 0.8; transform: scaleX(1.2); }
}
@keyframes im-moondrift {
  0% { transform: translateX(0); }
  100% { transform: translateX(60px); }
}
@keyframes im-moonhalo {
  0% { opacity: 0.5; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.1); }
}

/* Scene 1: theseus-advice-hermia – tense, bright interior */
.scn-theseus-advice-hermia {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #c8a87a 30%, #9a7a5a 60%, #6a4a2a 100%),
    radial-gradient(ellipse at 40% 30%, #fff4e0 0%, transparent 60%);
}
.scn-theseus-advice-hermia .bg { position:absolute; inset:0; background: linear-gradient(90deg, #b89a7a 0%, #d4bea0 40%, #b89a7a 100%); }
.scn-theseus-advice-hermia .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); animation: ta1-floor 8s ease-in-out infinite alternate; }
.scn-theseus-advice-hermia .column-left { position:absolute; left:10%; top:0; bottom:30%; width:8%; background: linear-gradient(90deg, #d4bea0 0%, #f0e4d0 30%, #d4bea0 70%, #a08060 100%); border-radius: 10% / 5%; box-shadow: 10px 0 20px rgba(0,0,0,.3); }
.scn-theseus-advice-hermia .column-right { position:absolute; right:10%; top:0; bottom:30%; width:8%; background: linear-gradient(90deg, #a08060 0%, #d4bea0 30%, #f0e4d0 70%, #d4bea0 100%); border-radius: 10% / 5%; box-shadow: -10px 0 20px rgba(0,0,0,.3); }
.scn-theseus-advice-hermia .throne { position:absolute; left:35%; bottom:30%; width:30%; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px rgba(0,0,0,.4); animation: ta1-throne 6s ease-in-out infinite; }
.scn-theseus-advice-hermia .figure-theseus { position:absolute; left:38%; bottom:45%; width:14%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ta1-theseus 4s ease-in-out infinite; }
.scn-theseus-advice-hermia .figure-hermia { position:absolute; left:55%; bottom:32%; width:8%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ta1-hermia 3.5s ease-in-out infinite; }
.scn-theseus-advice-hermia .light { position:absolute; top:10%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse, rgba(255,240,200,.5) 0%, transparent 70%); filter: blur(20px); animation: ta1-light 5s ease-in-out infinite alternate; }
.scn-theseus-advice-hermia .shadow-sharp { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: ta1-shadow 7s ease-in-out infinite; }
@keyframes ta1-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); opacity:0.9; } 100% { transform: scaleY(1); } }
@keyframes ta1-throne { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes ta1-theseus { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ta1-hermia { 0% { transform: rotate(0deg) scaleY(1); } 30% { transform: rotate(-3deg) scaleY(0.95); } 60% { transform: rotate(2deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes ta1-light { 0% { opacity:0.6; filter:blur(15px); } 50% { opacity:0.9; filter:blur(25px); } 100% { opacity:0.7; filter:blur(20px); } }
@keyframes ta1-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* Scene 2: hermia-plea – tense, bright interior, kneeling figure */
.scn-hermia-plea {
  background:
    linear-gradient(180deg, #d4c0a8 0%, #b09878 40%, #8a7050 80%, #5a4030 100%),
    radial-gradient(ellipse at 70% 50%, #fff0d0 0%, transparent 60%);
}
.scn-hermia-plea .bg-deep { position:absolute; inset:0; background: linear-gradient(90deg, #c8b098 0%, #e0d0b8 50%, #c8b098 100%); }
.scn-hermia-plea .floor-tile { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #b09878 0px, #b09878 2px, #a08868 2px, #a08868 4px); border-radius: 20% 20% 0 0; animation: hp2-floor 10s ease-in-out infinite alternate; }
.scn-hermia-plea .podium { position:absolute; left:30%; bottom:25%; width:40%; height:10%; background: linear-gradient(180deg, #c8b098 0%, #a08868 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,.3); }
.scn-hermia-plea .figure-hermia-kneel { position:absolute; left:45%; bottom:30%; width:12%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hp2-kneel 4s ease-in-out infinite; }
.scn-hermia-plea .figure-theseus-seated { position:absolute; left:35%; bottom:34%; width:18%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hp2-seated 5s ease-in-out infinite; }
.scn-hermia-plea .chain { position:absolute; left:50%; bottom:28%; width:2%; height:15%; background: linear-gradient(180deg, #a09070 0%, #6a5a4a 100%); border-radius: 30%; box-shadow: 0 0 5px rgba(0,0,0,.5); animation: hp2-chain 3s ease-in-out infinite; }
.scn-hermia-plea .shadow-cross { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(90deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.2) 100%); animation: hp2-cross 6s ease-in-out infinite; }
@keyframes hp2-floor { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0deg); } }
@keyframes hp2-kneel { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hp2-seated { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.02) rotate(1deg); } 50% { transform: scale(0.98) rotate(-1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hp2-chain { 0% { transform: rotate(0deg); opacity:0.7; } 50% { transform: rotate(5deg); opacity:1; } 100% { transform: rotate(0deg); opacity:0.7; } }
@keyframes hp2-cross { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* Scene 3: theseus-ultimatum – dark mood, bright interior harsh light */
.scn-theseus-ultimatum {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #1a1a2e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #5a5a7e 0%, transparent 60%);
}
.scn-theseus-ultimatum .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); }
.scn-theseus-ultimatum .window { position:absolute; top:10%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 10% / 20%; box-shadow: inset 0 0 30px rgba(255,255,255,.2); animation: tu3-window 12s ease-in-out infinite alternate; }
.scn-theseus-ultimatum .light-beam { position:absolute; top:0; left:42%; width:16%; height:70%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); filter: blur(15px); animation: tu3-beam 5s ease-in-out infinite; }
.scn-theseus-ultimatum .figure-theseus-standing { position:absolute; left:20%; bottom:20%; width:15%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; box-shadow: 0 0 20px rgba(0,0,0,.8); animation: tu3-theseus 6s ease-in-out infinite; }
.scn-theseus-ultimatum .figure-hermia-small { position:absolute; left:55%; bottom:25%; width:8%; height:20%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tu3-hermia 4s ease-in-out infinite; }
.scn-theseus-ultimatum .nun-veil { position:absolute; left:54%; bottom:44%; width:10%; height:8%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% / 60%; filter: blur(2px); animation: tu3-veil 7s ease-in-out infinite; }
.scn-theseus-ultimatum .shadow-harsh { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: tu3-shadow 8s ease-in-out infinite; }
@keyframes tu3-window { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes tu3-beam { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes tu3-theseus { 0% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(2deg) translateX(3px); } 40% { transform: rotate(-1deg) translateX(-2px); } 60% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes tu3-hermia { 0% { transform: scale(1) rotate(0deg); } 30% { transform: scale(0.95) rotate(-3deg); } 60% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes tu3-veil { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tu3-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* Scene 4: hermia-defiance – dark mood, bright interior with altar */
.scn-hermia-defiance {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a6e 0%, transparent 70%);
}
.scn-hermia-defiance .bg-temple { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4e 0%, #0a0a1a 100%); }
.scn-hermia-defiance .altar { position:absolute; left:30%; bottom:20%; width:40%; height:20%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px rgba(100,80,120,.5); animation: hd4-altar 10s ease-in-out infinite alternate; }
.scn-hermia-defiance .flame { position:absolute; left:47%; bottom:38%; width:6%; height:15%; background: radial-gradient(ellipse, #ffc078 0%, #ff9030 50%, transparent 100%); filter: blur(3px); animation: hd4-flame 2s ease-in-out infinite alternate; }
.scn-hermia-defiance .figure-hermia-defiant { position:absolute; left:45%; bottom:22%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hd4-hermia 5s ease-in-out infinite; }
.scn-hermia-defiance .figure-theseus-shadow { position:absolute; left:25%; bottom:20%; width:14%; height:35%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.8; animation: hd4-theseus 7s ease-in-out infinite; }
.scn-hermia-defiance .statue-diana { position:absolute; left:70%; bottom:25%; width:10%; height:40%; background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 0 30px rgba(120,100,150,.4); animation: hd4-statue 9s ease-in-out infinite; }
.scn-hermia-defiance .shadow-soft { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: hd4-shadow 6s ease-in-out infinite; }
@keyframes hd4-altar { 0% { transform: scale(1); } 50% { transform: scale(1.03) translateY(-3px); } 100% { transform: scale(1); } }
@keyframes hd4-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.2) translateY(-5px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:0.9; } }
@keyframes hd4-hermia { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(3deg) translateX(2px); } 60% { transform: rotate(-2deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hd4-theseus { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.02) rotate(2deg); } 50% { transform: scale(0.98) rotate(-2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hd4-statue { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes hd4-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-demetrius-lysander-argument {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 60%, #a08060 100%),
              radial-gradient(ellipse at 50% 80%, #e0c090 0%, transparent 50%);
}
.scn-demetrius-lysander-argument .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8b098 0%, #dcc8b0 20%, #e0d0b8 80%, #c0a888 100%);
  animation: dla-bgwall 8s ease-in-out infinite alternate;
}
.scn-demetrius-lysander-argument .window-light {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 60%, #fff8e8 0%, #f0d8b0 60%, transparent 90%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 40px 20px #f0d8b0;
  animation: dla-window 5s ease-in-out infinite;
}
.scn-demetrius-lysander-argument .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dla-figleft 3s ease-in-out infinite;
}
.scn-demetrius-lysander-argument .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 34px; height: 82px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dla-figright 2.8s ease-in-out infinite;
}
.scn-demetrius-lysander-argument .figure-center {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 74px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dla-figcenter 4s ease-in-out infinite;
}
.scn-demetrius-lysander-argument .table {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 8px;
  background: linear-gradient(90deg, #6a5030 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-demetrius-lysander-argument .shadow-accent {
  position: absolute; bottom: 22%; left: 25%; width: 150px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: dla-shadow 3.5s ease-in-out infinite alternate;
}
@keyframes dla-bgwall { 0% { opacity: 1 } 50% { opacity: 0.92 } 100% { opacity: 0.98 } }
@keyframes dla-window { 0%,100% { box-shadow: 0 0 30px 15px #f0d8b0 } 50% { box-shadow: 0 0 60px 25px #fff0c0 } }
@keyframes dla-figleft { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes dla-figright { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-10px) rotate(3deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes dla-figcenter { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes dla-shadow { 0% { opacity: 0.3 } 100% { opacity: 0.6 } }

.scn-theseus-private-counsel {
  background: linear-gradient(180deg, #e8ddd0 0%, #cfbfb0 40%, #b8a090 100%),
              radial-gradient(ellipse at 30% 60%, #f0e8d8 0%, transparent 60%);
}
.scn-theseus-private-counsel .bg-columns {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8b8a8 0%, #ded0c0 20%, #e8ddd0 40%, #ded0c0 60%, #c8b8a8 80%, #b8a898 100%);
  animation: tpc-columns 20s ease-in-out infinite alternate;
}
.scn-theseus-private-counsel .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 90px; background: linear-gradient(180deg, #9a8060 0%, #7a6040 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-theseus-private-counsel .figure-speaker {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 78px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpc-speaker 6s ease-in-out infinite;
}
.scn-theseus-private-counsel .figure-listener-1 {
  position: absolute; bottom: 30%; left: 28%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpc-listener1 7s ease-in-out infinite;
}
.scn-theseus-private-counsel .figure-listener-2 {
  position: absolute; bottom: 30%; right: 28%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpc-listener2 7s ease-in-out infinite 1s;
}
.scn-theseus-private-counsel .floor-pattern {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 40px;
  background: repeating-linear-gradient(90deg, #d0c0b0 0px, #d0c0b0 20px, #e0d0c0 20px, #e0d0c0 40px);
  transform: perspective(200px) rotateX(60deg);
  animation: tpc-floor 30s linear infinite;
}
.scn-theseus-private-counsel .light-glare {
  position: absolute; top: 25%; left: 30%; width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(255,240,220,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: tpc-glare 5s ease-in-out infinite alternate;
}
@keyframes tpc-columns { 0% { background-position-x: 0 } 100% { background-position-x: -20px } }
@keyframes tpc-speaker { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes tpc-listener1 { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } }
@keyframes tpc-listener2 { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes tpc-floor { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes tpc-glare { 0% { opacity: 0.7 } 100% { opacity: 1 } }

.scn-lysander-hermia-alone {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a2a44 100%),
              radial-gradient(ellipse at 50% 20%, #6a5a7e 0%, transparent 70%);
}
.scn-lysander-hermia-alone .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #12121e 0%, #1a1a2e 100%);
  animation: lha-dark 20s ease-in-out infinite alternate;
}
.scn-lysander-hermia-alone .moon-window {
  position: absolute; top: 10%; right: 25%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 60%, #e8e8f0 0%, #b0b0c8 60%, transparent 80%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 15px #b0b0c8;
  animation: lha-moon 6s ease-in-out infinite;
}
.scn-lysander-hermia-alone .candle-glow {
  position: absolute; bottom: 32%; left: 40%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #e0a060 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #e0a060, 0 0 80px 30px rgba(200, 100, 40, 0.4);
  animation: lha-candle 3s ease-in-out infinite alternate;
}
.scn-lysander-hermia-alone .figure-left {
  position: absolute; bottom: 28%; left: 35%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #3a2a44 0%, #1a1022 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lha-figleft 4s ease-in-out infinite;
}
.scn-lysander-hermia-alone .figure-right {
  position: absolute; bottom: 28%; right: 35%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #4a3a54 0%, #2a2034 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lha-figright 4.5s ease-in-out infinite;
}
.scn-lysander-hermia-alone .shadow-pool {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: lha-shadow 5s ease-in-out infinite alternate;
}
.scn-lysander-hermia-alone .chair {
  position: absolute; bottom: 24%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a44 0%, #1a1022 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: lha-chair 8s ease-in-out infinite;
}
@keyframes lha-dark { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes lha-moon { 0%,100% { box-shadow: 0 0 20px 10px #b0b0c8 } 50% { box-shadow: 0 0 40px 20px #c8c8e0 } }
@keyframes lha-candle { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(0.95) } }
@keyframes lha-figleft { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes lha-figright { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-6px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes lha-shadow { 0% { opacity: 0.4 } 100% { opacity: 0.8 } }
@keyframes lha-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-lysander-love-philosophy {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #4a2a0a 100%),
              radial-gradient(ellipse at 40% 30%, #c08040 0%, transparent 60%);
}
.scn-lysander-love-philosophy .bg-firelight {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 50%, #8a5a2a 0%, transparent 70%);
  animation: llp-bg 15s ease-in-out infinite alternate;
}
.scn-lysander-love-philosophy .hearth {
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 20px #6a3a1a;
}
.scn-lysander-love-philosophy .figure-sitting {
  position: absolute; bottom: 28%; left: 42%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: llp-figure 6s ease-in-out infinite;
}
.scn-lysander-love-philosophy .book {
  position: absolute; bottom: 24%; left: 46%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 5% 5% 10% 10%;
  transform: rotate(-10deg);
  animation: llp-book 3s ease-in-out infinite alternate;
}
.scn-lysander-love-philosophy .candle {
  position: absolute; bottom: 26%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #e0a050;
  animation: llp-candle 2s ease-in-out infinite alternate;
}
.scn-lysander-love-philosophy .shadow-dance {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: llp-shadow 4s ease-in-out infinite alternate;
}
.scn-lysander-love-philosophy .ember {
  position: absolute; bottom: 27%; left: 35%; width: 4px; height: 4px;
  background: #ff8040; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8040;
  animation: llp-ember 2.5s ease-in-out infinite;
}
@keyframes llp-bg { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes llp-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes llp-book { 0% { transform: rotate(-10deg) translateY(0) } 100% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes llp-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.95) } }
@keyframes llp-shadow { 0% { opacity: 0.3 } 100% { opacity: 0.7 } }
@keyframes llp-ember { 0%,100% { opacity: 1; transform: translateY(0) } 50% { opacity: 0.5; transform: translateY(-4px) } }

/* --- mechanicals-dismissal --- */
.scn-mechanicals-dismissal {
  background: linear-gradient(180deg, #2a1f0e 0%, #4f3a1e 40%, #6b4f2a 100%), radial-gradient(ellipse at 70% 30%, #8b6f3a 0%, transparent 60%);
}
.scn-mechanicals-dismissal .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a14 0%, #1a1208 100%); mix-blend-mode: multiply; }
.scn-mechanicals-dismissal .stage-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b4f2a 0%, #4a351a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-mechanicals-dismissal .table { position:absolute; bottom:18%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #7a5a2e 0%, #5a3e1e 100%); border-radius: 10% 10% 0 0; animation: md-table 6s ease-in-out infinite; }
.scn-mechanicals-dismissal .lantern { position:absolute; bottom:22%; right:25%; width:16px; height:20px; background: radial-gradient(circle, #fce0a0 0%, #d4a050 60%, #8a6020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px #d4a050; animation: md-lantern 3s ease-in-out infinite alternate; }
.scn-mechanicals-dismissal .figure { position:absolute; bottom:10%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; }
.scn-mechanicals-dismissal .figure-left { left:15%; animation: md-figure-left 5s ease-in-out infinite; }
.scn-mechanicals-dismissal .figure-right { right:15%; animation: md-figure-right 4.5s ease-in-out infinite; }
.scn-mechanicals-dismissal .figure-center { left:50%; margin-left:-11px; animation: md-figure-center 6.5s ease-in-out infinite; }
.scn-mechanicals-dismissal .script-roll { position:absolute; bottom:20%; left:42%; width:12px; height:30px; background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%); border-radius: 20% 20% 30% 30%; transform: rotate(-10deg); box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: md-roll 3s ease-in-out infinite alternate; }
@keyframes md-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes md-lantern { 0% { box-shadow: 0 0 20px 5px #d4a050; opacity:.8; } 50% { box-shadow: 0 0 40px 12px #fce0a0; opacity:1; } 100% { box-shadow: 0 0 25px 6px #d4a050; opacity:.9; } }
@keyframes md-figure-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(8px) translateY(-3px) rotate(5deg); } 60% { transform: translateX(16px) translateY(0) rotate(-2deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes md-figure-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-6px) translateY(-2px) rotate(-4deg); } 75% { transform: translateX(-14px) translateY(0) rotate(2deg); } 100% { transform: translateX(-20px) translateY(0) rotate(0deg); } }
@keyframes md-figure-center { 0%,100% { transform: translateY(0) scale(1); } 20% { transform: translateY(-4px) scale(1.05); } 40% { transform: translateY(0) scale(1); } 60% { transform: translateY(-2px) scale(0.98); } 80% { transform: translateY(0) scale(1); } }
@keyframes md-roll { 0% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(15deg) translateY(-4px); } }

/* --- wood-fairy-intro --- */
.scn-wood-fairy-intro {
  background: linear-gradient(180deg, #0b1a2e 0%, #14243e 40%, #1e3050 100%), radial-gradient(ellipse at 60% 20%, #3a5a7a 0%, transparent 60%);
}
.scn-wood-fairy-intro .sky-moonlit { position:absolute; inset:0; background: linear-gradient(180deg, #0b1a2e 0%, #14243e 60%, #1e3050 100%); animation: wf-sky 12s ease-in-out infinite alternate; }
.scn-wood-fairy-intro .moon { position:absolute; top:12%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #e8f0f8 0%, #b0c8d8 60%, #7088a8 100%); border-radius:50%; box-shadow: 0 0 30px 8px #b0c8d8, 0 0 60px 20px rgba(176,200,216,0.3); animation: wf-moon 8s ease-in-out infinite alternate; }
.scn-wood-fairy-intro .tree-left { position:absolute; left:5%; bottom:30%; width:30px; height:70%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: wf-tree-left 15s ease-in-out infinite alternate; }
.scn-wood-fairy-intro .tree-right { position:absolute; right:5%; bottom:30%; width:25px; height:75%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: wf-tree-right 18s ease-in-out infinite alternate; }
.scn-wood-fairy-intro .fairy-glow { position:absolute; top:45%; left:20%; width:18px; height:18px; background: radial-gradient(circle, #e0f8e0 0%, #80c080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #80c080; animation: wf-fairy 5s ease-in-out infinite; }
.scn-wood-fairy-intro .puck-shadow { position:absolute; top:48%; right:15%; width:24px; height:36px; background: radial-gradient(ellipse at 50% 100%, #0a1a0a 0%, transparent 70%); border-radius:50%; opacity:0.6; animation: wf-puck 6s ease-in-out infinite; }
.scn-wood-fairy-intro .ground-fade { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, transparent 0%, #0a1a0a 100%); }
.scn-wood-fairy-intro .firefly-spark { position:absolute; top:30%; left:40%; width:4px; height:4px; background: #ffe080; border-radius:50%; box-shadow: 0 0 8px 3px #ffe080; animation: wf-spark 3s ease-in-out infinite alternate; }
@keyframes wf-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes wf-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 5px #b0c8d8; } 50% { transform: translateY(-3px) scale(1.02); box-shadow: 0 0 40px 12px #c0d8e8; } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 25px 6px #b0c8d8; } }
@keyframes wf-tree-left { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateX(2px); } 100% { transform: scaleY(1); } }
@keyframes wf-tree-right { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01) translateX(-2px); } 100% { transform: scaleY(1); } }
@keyframes wf-fairy { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 30% { transform: translate(15px,-8px) scale(1.2); opacity:1; } 60% { transform: translate(30px,0) scale(1.1); opacity:0.9; } 100% { transform: translate(45px,-4px) scale(1); opacity:0.8; } }
@keyframes wf-puck { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 25% { transform: translate(-10px,2px) scale(1.05); opacity:0.6; } 50% { transform: translate(-20px,0) scale(0.95); opacity:0.5; } 75% { transform: translate(-30px,-2px) scale(1.03); opacity:0.55; } 100% { transform: translate(-40px,0) scale(1); opacity:0.5; } }
@keyframes wf-spark { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 4px 1px #ffe080; } 100% { transform: translateY(-10px) scale(1.5); box-shadow: 0 0 12px 4px #ffe080; } }

/* --- puck-description --- */
.scn-puck-description {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #3a4a5a 100%), radial-gradient(ellipse at 50% 10%, #4a6a8a 0%, transparent 70%);
}
.scn-puck-description .glade-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a3a3a 0%, #1a2a2a 100%); mix-blend-mode: multiply; }
.scn-puck-description .oberon-silhouette { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: pd-oberon 8s ease-in-out infinite; }
.scn-puck-description .titania-silhouette { position:absolute; bottom:20%; right:20%; width:28px; height:64px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: pd-titania 8s ease-in-out infinite; }
.scn-puck-description .changeling-boy { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:18px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: pd-boy 6s ease-in-out infinite; }
.scn-puck-description .moon-glow { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #d0e0f0 0%, #8098b0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #8098b0; animation: pd-moon-glow 10s ease-in-out infinite alternate; }
.scn-puck-description .flower-left { position:absolute; bottom:8%; left:10%; width:12px; height:12px; background: radial-gradient(circle, #e0a0c0 0%, #c07090 80%); border-radius:50%; animation: pd-flower 5s ease-in-out infinite alternate; }
.scn-puck-description .flower-right { position:absolute; bottom:8%; right:10%; width:10px; height:10px; background: radial-gradient(circle, #e0a0c0 0%, #c07090 80%); border-radius:50%; animation: pd-flower-right 6s ease-in-out infinite alternate; }
.scn-puck-description .mist-layer { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(160,180,200,0.15) 0%, transparent 100%); filter: blur(10px); animation: pd-mist 20s linear infinite; }
@keyframes pd-oberon { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes pd-titania { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(-7deg); } }
@keyframes pd-boy { 0% { transform: translateX(-50%) translateY(0); } 30% { transform: translateX(-50%) translateY(-2px); } 60% { transform: translateX(-50%) translateY(0); } 80% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pd-moon-glow { 0% { opacity:.8; box-shadow: 0 0 30px 10px #8098b0; } 50% { opacity:1; box-shadow: 0 0 50px 20px #a0b8d0; } 100% { opacity:.9; box-shadow: 0 0 35px 12px #8098b0; } }
@keyframes pd-flower { 0% { transform: scale(1); } 100% { transform: scale(1.2); } }
@keyframes pd-flower-right { 0% { transform: scale(1); } 100% { transform: scale(1.3); } }
@keyframes pd-mist { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }

/* --- puck-identity --- */
.scn-puck-identity {
  background: linear-gradient(180deg, #1a2238 0%, #2a3a4e 40%, #3a4a5e 100%), radial-gradient(ellipse at 30% 20%, #4a6a8a 0%, transparent 60%);
}
.scn-puck-identity .cottage-wall { position:absolute; inset:0 20% 0 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.scn-puck-identity .window-moon { position:absolute; top:15%; right:75%; width:40px; height:50px; background: #1a2a4a; border: 3px solid #3a4a5a; border-radius:10% 10% 20% 20%; overflow:hidden; }
.scn-puck-identity .window-moon::after { content:''; position:absolute; top:10%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #e0e8f0 0%, #8098b0 80%); border-radius:50%; animation: pi-moon 8s ease-in-out infinite alternate; }
.scn-puck-identity .milk-pail { position:absolute; bottom:15%; left:35%; width:20px; height:25px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: pi-pail 4s ease-in-out infinite; }
.scn-puck-identity .churn { position:absolute; bottom:15%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: pi-churn 3s ease-in-out infinite alternate; }
.scn-puck-identity .puck-figure { position:absolute; bottom:10%; left:28%; width:20px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); animation: pi-puck 5s ease-in-out infinite; }
.scn-puck-identity .housewife-figure { position:absolute; bottom:10%; right:30%; width:22px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: pi-housewife 6s ease-in-out infinite; }
.scn-puck-identity .bubbles-splash { position:absolute; bottom:20%; left:40%; width:8px; height:8px; background: radial-gradient(circle, #e0e8f0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 10px 5px rgba(224,232,240,.4); animation: pi-bubbles 2s ease-in-out infinite alternate; }
@keyframes pi-moon { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-3px) scale(1.05); } }
@keyframes pi-pail { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes pi-churn { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(-5deg); } }
@keyframes pi-puck { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-4px); } 50% { transform: rotate(15deg) translateY(-2px); } 75% { transform: rotate(8deg) translateY(0); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes pi-housewife { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(0); } 80% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pi-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.7; } 100% { transform: translateY(-8px) scale(1.5); opacity:0; } }

/* Scene: oberon-tells-cupid-story */
.scn-oberon-tells-cupid-story {
  background: linear-gradient(180deg, #0b0e2a 0%, #1a1f4a 40%, #2a2e5a 70%, #3a3250 100%),
              radial-gradient(ellipse at 70% 20%, #3a3a6a 0%, transparent 60%);
}
.scn-oberon-tells-cupid-story .sky-oc { position:absolute; inset:0; background:linear-gradient(180deg, #0a0d2a 0%, transparent 100%); animation: oc-sky 20s ease-in-out infinite alternate; }
.scn-oberon-tells-cupid-story .moon-oc { position:absolute; top:10%; right:20%; width:50px; height:50px; background:radial-gradient(circle, #f0e0c0 0%, #c8b888 70%); border-radius:50%; box-shadow:0 0 30px 10px rgba(248,232,192,0.3); animation: oc-moon 12s ease-in-out infinite; }
.scn-oberon-tells-cupid-story .cupid-sil-oc { position:absolute; bottom:35%; left:30%; width:24px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: oc-cupid 6s ease-in-out infinite; }
.scn-oberon-tells-cupid-story .bow-oc { position:absolute; bottom:40%; left:28%; width:30px; height:8px; background:#4a3a2a; border-radius:50% 50% 0 0; transform:rotate(-20deg); animation: oc-bow 6s ease-in-out infinite; }
.scn-oberon-tells-cupid-story .arrow-oc { position:absolute; bottom:42%; left:54%; width:18px; height:3px; background:#d0b060; transform:rotate(15deg); animation: oc-arrow 6s ease-in-out infinite; box-shadow:0 0 10px 2px #e0c080; }
.scn-oberon-tells-cupid-story .vestal-sil-oc { position:absolute; bottom:30%; right:25%; width:30px; height:60px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: oc-vestal 10s ease-in-out infinite; }
.scn-oberon-tells-cupid-story .cloud-oc-a { position:absolute; top:18%; left:10%; width:70px; height:16px; background:linear-gradient(180deg, rgba(160,150,180,0.3) 0%, rgba(200,190,220,0.1) 100%); border-radius:50%; filter:blur(5px); animation: oc-drift-a 40s linear infinite; }
.scn-oberon-tells-cupid-story .cloud-oc-b { position:absolute; top:28%; right:15%; width:50px; height:12px; background:linear-gradient(180deg, rgba(180,170,200,0.25) 0%, rgba(200,190,220,0.05) 100%); border-radius:50%; filter:blur(4px); animation: oc-drift-b 55s linear infinite; }
@keyframes oc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes oc-moon { 0% { transform:scale(1); box-shadow:0 0 30px 10px rgba(248,232,192,0.3) } 50% { transform:scale(1.03); box-shadow:0 0 40px 15px rgba(248,232,192,0.5) } 100% { transform:scale(0.98); box-shadow:0 0 25px 8px rgba(248,232,192,0.25) } }
@keyframes oc-cupid { 0% { transform:rotate(10deg) translateX(0) } 25% { transform:rotate(12deg) translateX(2px) } 50% { transform:rotate(8deg) translateX(-1px) } 75% { transform:rotate(14deg) translateX(3px) } 100% { transform:rotate(10deg) translateX(0) } }
@keyframes oc-bow { 0%,100% { transform:rotate(-20deg) scaleX(1) } 50% { transform:rotate(-15deg) scaleX(1.1) } }
@keyframes oc-arrow { 0%,100% { transform:rotate(15deg) translateX(0) } 50% { transform:rotate(10deg) translateX(5px) opacity:0.7 } }
@keyframes oc-vestal { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes oc-drift-a { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes oc-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* Scene: item-love-in-idleness-flower */
.scn-item-love-in-idleness-flower {
  background: linear-gradient(180deg, #0c1028 0%, #1a1f3e 30%, #2a2a4a 60%, #1e1a30 100%),
              radial-gradient(ellipse at 50% 80%, #2a4a3a 0%, transparent 60%);
}
.scn-item-love-in-idleness-flower .bg-flw { position:absolute; inset:0; background:linear-gradient(180deg, #0e1228 0%, transparent 100%); animation: flw-bg 25s ease-in-out infinite; }
.scn-item-love-in-idleness-flower .stem-flw { position:absolute; bottom:20%; left:50%; width:4px; height:40%; background:linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius:2px; transform:translateX(-50%); animation: flw-stem 10s ease-in-out infinite; }
.scn-item-love-in-idleness-flower .bloom-flw { position:absolute; bottom:55%; left:50%; width:40px; height:40px; background:radial-gradient(circle, #d0a050 0%, #b08040 40%, #6a4a2a 100%); border-radius:50%; transform:translateX(-50%); box-shadow:0 0 20px 5px rgba(192,144,64,0.4); animation: flw-bloom 8s ease-in-out infinite alternate; }
.scn-item-love-in-idleness-flower .glow-flw { position:absolute; bottom:52%; left:50%; width:60px; height:60px; background:radial-gradient(circle, rgba(232,192,128,0.3) 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation: flw-glow 5s ease-in-out infinite alternate; }
.scn-item-love-in-idleness-flower .pollen-flw { position:absolute; bottom:50%; left:50%; width:8px; height:8px; background:#f0d080; border-radius:50%; box-shadow:0 0 12px 3px #f0d080; animation: flw-pollen 4s ease-in-out infinite; }
.scn-item-love-in-idleness-flower .puck-sil-flw { position:absolute; bottom:15%; right:20%; width:28px; height:45px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: flw-puck 9s ease-in-out infinite; }
.scn-item-love-in-idleness-flower .leaf-flw { position:absolute; bottom:40%; left:46%; width:20px; height:8px; background:linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius:0 50% 0 50%; transform:rotate(-30deg); animation: flw-leaf 12s ease-in-out infinite; }
.scn-item-love-in-idleness-flower .sparkle-flw { position:absolute; bottom:48%; left:48%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow:0 0 8px 2px rgba(255,255,255,0.6); animation: flw-sparkle 2s ease-in-out infinite alternate; }
@keyframes flw-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes flw-stem { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } 100% { transform:translateX(-50%) scaleY(0.98) } }
@keyframes flw-bloom { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.05) } 100% { transform:translateX(-50%) scale(0.95) } }
@keyframes flw-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes flw-pollen { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(3px,-3px) scale(1.3) opacity:0.7 } 50% { transform:translate(-2px,2px) scale(0.8) opacity:0.5 } 75% { transform:translate(4px,1px) scale(1.2) } 100% { transform:translate(0,0) scale(1) } }
@keyframes flw-puck { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(2px) rotate(2deg) } 50% { transform:translateX(-1px) rotate(-1deg) } 75% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes flw-leaf { 0% { transform:rotate(-30deg) scaleX(1) } 50% { transform:rotate(-25deg) scaleX(1.1) } 100% { transform:rotate(-30deg) scaleX(1) } }
@keyframes flw-sparkle { 0% { opacity:0.3 } 100% { opacity:1 } }

/* Scene: demetrius-rejects-helena */
.scn-demetrius-rejects-helena {
  background: linear-gradient(180deg, #0a0c1e 0%, #181a32 40%, #22223e 70%, #1a1828 100%),
              radial-gradient(ellipse at 50% 100%, #2e3050 0%, transparent 60%);
}
.scn-demetrius-rejects-helena .bg-dmt { position:absolute; inset:0; background:linear-gradient(180deg, #0e1024 0%, transparent 100%); animation: dmt-bg 18s ease-in-out infinite; }
.scn-demetrius-rejects-helena .moon-dmt { position:absolute; top:8%; left:15%; width:45px; height:45px; background:radial-gradient(circle, #e8dcc0 0%, #b8a880 70%); border-radius:50%; box-shadow:0 0 30px 8px rgba(232,220,192,0.25); animation: dmt-moon 15s ease-in-out infinite; }
.scn-demetrius-rejects-helena .trees-dmt { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:60% 40% 0 0 / 40% 60% 0 0; animation: dmt-trees 12s ease-in-out infinite alternate; }
.scn-demetrius-rejects-helena .demetrius-dmt { position:absolute; bottom:35%; left:40%; width:22px; height:50px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: dmt-figure 4s ease-in-out infinite; }
.scn-demetrius-rejects-helena .helena-dmt { position:absolute; bottom:38%; left:55%; width:20px; height:35px; background:linear-gradient(180deg, #1a1a28 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation: dmt-helena 4s ease-in-out infinite; }
.scn-demetrius-rejects-helena .ground-dmt { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; box-shadow:inset 0 4px 10px rgba(0,0,0,0.3); }
.scn-demetrius-rejects-helena .shadow-dmt { position:absolute; bottom:35%; left:38%; width:30px; height:10px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation: dmt-shadow 4s ease-in-out infinite; }
.scn-demetrius-rejects-helena .branch-dmt { position:absolute; top:25%; right:20%; width:60px; height:4px; background:linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:2px; transform:rotate(30deg); animation: dmt-branch 8s ease-in-out infinite alternate; }
@keyframes dmt-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dmt-moon { 0% { transform:scale(1) } 50% { transform:scale(1.04) } 100% { transform:scale(0.96) } }
@keyframes dmt-trees { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes dmt-figure { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(-7deg) translateX(2px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes dmt-helena { 0% { transform:rotate(15deg) translateX(0) } 25% { transform:rotate(20deg) translateX(-3px) } 50% { transform:rotate(10deg) translateX(2px) } 75% { transform:rotate(18deg) translateX(-1px) } 100% { transform:rotate(15deg) translateX(0) } }
@keyframes dmt-shadow { 0% { transform:scaleX(1) opacity:0.3 } 50% { transform:scaleX(1.1) opacity:0.2 } 100% { transform:scaleX(1) opacity:0.3 } }
@keyframes dmt-branch { 0% { transform:rotate(30deg) scaleY(1) } 50% { transform:rotate(25deg) scaleY(0.9) } 100% { transform:rotate(30deg) scaleY(1) } }

/* Scene: helena-spaniel-plea */
.scn-helena-spaniel-plea {
  background: linear-gradient(180deg, #0a0c1e 0%, #181c32 40%, #22223e 70%, #1a1828 100%),
              radial-gradient(ellipse at 30% 50%, #2a3050 0%, transparent 60%);
}
.scn-helena-spaniel-plea .bg-hel { position:absolute; inset:0; background:linear-gradient(180deg, #0e1024 0%, transparent 100%); animation: hel-bg 20s ease-in-out infinite alternate; }
.scn-helena-spaniel-plea .moon-hel { position:absolute; top:12%; right:25%; width:40px; height:40px; background:radial-gradient(circle, #e8dcc0 0%, #a8a080 70%); border-radius:50%; box-shadow:0 0 25px 6px rgba(232,220,192,0.2); animation: hel-moon 18s ease-in-out infinite; }
.scn-helena-spaniel-plea .trees-hel { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 0 0 / 40% 60% 0 0; animation: hel-trees 15s ease-in-out infinite alternate; }
.scn-helena-spaniel-plea .helena-hel { position:absolute; bottom:35%; left:50%; width:24px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(-10deg); animation: hel-body 5s ease-in-out infinite; }
.scn-helena-spaniel-plea .arms-hel { position:absolute; bottom:42%; left:48%; width:20px; height:8px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 0 0; transform:rotate(30deg); animation: hel-arms 5s ease-in-out infinite; }
.scn-helena-spaniel-plea .ground-hel { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius:40% 60% 0 0 / 80% 20% 0 0; box-shadow:inset 0 4px 10px rgba(0,0,0,0.3); }
.scn-helena-spaniel-plea .tears-hel { position:absolute; bottom:46%; left:52%; width:4px; height:6px; background:rgba(200,200,220,0.4); border-radius:50%; box-shadow:0 8px 2px rgba(200,200,220,0.2); animation: hel-tears 3s ease-in-out infinite; }
.scn-helena-spaniel-plea .paw-hel { position:absolute; bottom:37%; left:54%; width:8px; height:6px; background:#1a1a2a; border-radius:50%; transform:rotate(15deg); animation: hel-paw 5s ease-in-out infinite; }
@keyframes hel-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes hel-moon { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes hel-trees { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes hel-body { 0% { transform:translateX(-50%) rotate(-10deg) } 25% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-50%) rotate(-15deg) } 75% { transform:translateX(-50%) rotate(-8deg) } 100% { transform:translateX(-50%) rotate(-10deg) } }
@keyframes hel-arms { 0% { transform:rotate(30deg) } 25% { transform:rotate(20deg) } 50% { transform:rotate(35deg) } 75% { transform:rotate(25deg) } 100% { transform:rotate(30deg) } }
@keyframes hel-tears { 0% { opacity:0.2; transform:translateY(0) } 50% { opacity:0.6; transform:translateY(2px) } 100% { opacity:0.2; transform:translateY(0) } }
@keyframes hel-paw { 0%,100% { transform:rotate(15deg) translateX(0) } 50% { transform:rotate(10deg) translateX(2px) } }

.scn-hermia-demetrius-confrontation {
  background: linear-gradient(180deg, #0b0b1e 0%, #141430 40%, #1c1c3a 100%), 
              radial-gradient(ellipse at 50% 0%, rgba(100,120,180,.15) 0%, transparent 70%);
}
.scn-hermia-demetrius-confrontation .moon {
  position: absolute; top: 6%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8d8e8 0%, #a0b0c8 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(160,176,200,.4);
  animation: hdc-moon 12s ease-in-out infinite alternate;
}
.scn-hermia-demetrius-confrontation .trees-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  clip-path: polygon(0% 100%, 5% 40%, 10% 100%, 20% 50%, 25% 100%, 35% 30%, 40% 100%, 50% 60%, 55% 100%, 65% 40%, 70% 100%, 80% 50%, 85% 100%, 95% 30%, 100% 100%);
  animation: hdc-trees 20s ease-in-out infinite alternate;
}
.scn-hermia-demetrius-confrontation .trees-front {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0d0d1a 0%, #050510 100%);
  clip-path: polygon(0% 100%, 8% 60%, 12% 100%, 18% 70%, 22% 100%, 30% 50%, 35% 100%, 42% 65%, 48% 100%, 55% 55%, 60% 100%, 68% 75%, 72% 100%, 80% 45%, 85% 100%, 92% 60%, 100% 100%);
  animation: hdc-trees 25s ease-in-out infinite alternate-reverse;
}
.scn-hermia-demetrius-confrontation .hermia {
  position: absolute; bottom: 25%; left: 38%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hdc-fig1 6s ease-in-out infinite;
}
.scn-hermia-demetrius-confrontation .demetrius {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2e2e42 0%, #1e1e30 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hdc-fig2 6s ease-in-out 1s infinite;
}
.scn-hermia-demetrius-confrontation .bloodpool {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, #3a1010 0%, #1a0808 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(80,20,20,.3);
  animation: hdc-blood 8s ease-in-out infinite alternate;
}
.scn-hermia-demetrius-confrontation .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  animation: hdc-shadow 14s ease-in-out infinite;
}
@keyframes hdc-moon { 0% { opacity: .6; transform: translate(0, 0) } 50% { opacity: 1; transform: translate(-2px, 2px) } 100% { opacity: .7; transform: translate(1px, -1px) } }
@keyframes hdc-trees { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hdc-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-4px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hdc-fig2 { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-4px) rotate(0) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(4px) rotate(0) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes hdc-blood { 0% { transform: scale(1); opacity: .5 } 50% { transform: scale(1.1); opacity: .8 } 100% { transform: scale(0.9); opacity: .4 } }
@keyframes hdc-shadow { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }

.scn-oberon-puck-correction {
  background: linear-gradient(180deg, #0e1a2a 0%, #162838 50%, #1a3040 100%), 
              radial-gradient(ellipse at 30% 10%, rgba(80,120,160,.2) 0%, transparent 70%);
}
.scn-oberon-puck-correction .clearing {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #1e2e3e 0%, #0a1622 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: opc-clearing 18s ease-in-out infinite alternate;
}
.scn-oberon-puck-correction .oberon {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a3a4e 0%, #1a2a38 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: opc-oberon 7s ease-in-out infinite;
}
.scn-oberon-puck-correction .puck {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1e2e3a 0%, #0e1a22 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: opc-puck 5s ease-in-out infinite;
}
.scn-oberon-puck-correction .flower {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #7a5a8a 0%, #4a2a5a 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(100,60,120,.5);
  animation: opc-flower 3s ease-in-out infinite alternate;
}
.scn-oberon-puck-correction .sparkle {
  position: absolute; bottom: 28%; left: 42%; width: 4px; height: 4px;
  background: #d0e0ff; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,200,255,.6);
  animation: opc-sparkle 2s ease-in-out infinite;
}
.scn-oberon-puck-correction .roots {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a1622 100%);
  animation: opc-roots 20s linear infinite;
}
@keyframes opc-clearing { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes opc-oberon { 0% { transform: rotate(-3deg) } 25% { transform: rotate(0) translateY(-2px) } 50% { transform: rotate(3deg) } 75% { transform: rotate(0) translateY(2px) } 100% { transform: rotate(-3deg) } }
@keyframes opc-puck { 0% { transform: translateX(0) rotate(5deg) } 25% { transform: translateX(6px) rotate(0) } 50% { transform: translateX(12px) rotate(-5deg) } 75% { transform: translateX(6px) rotate(0) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes opc-flower { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(0.8); opacity: .5 } }
@keyframes opc-sparkle { 0% { transform: scale(0) rotate(0); opacity: 0 } 50% { transform: scale(1) rotate(180deg); opacity: 1 } 100% { transform: scale(0) rotate(360deg); opacity: 0 } }
@keyframes opc-roots { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }

.scn-oberon-charms-demetrius {
  background: linear-gradient(180deg, #0c1420 0%, #141e2e 40%, #1a2840 100%), 
              radial-gradient(ellipse at 70% 30%, rgba(60,80,140,.25) 0%, transparent 60%);
}
.scn-oberon-charms-demetrius .bg-forest {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0e1a26 0%, #081014 100%);
  animation: ocd-bg 30s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .demetrius-sleep {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1822 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: ocd-sleep 8s ease-in-out infinite;
}
.scn-oberon-charms-demetrius .oberon-hand {
  position: absolute; bottom: 30%; left: 40%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a38 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ocd-hand 6s ease-in-out infinite;
}
.scn-oberon-charms-demetrius .flower-purple {
  position: absolute; bottom: 35%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #8a4a9a 0%, #5a2a6a 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 18px 6px rgba(120,60,140,.5);
  animation: ocd-flower 4s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .eye-glow {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e0c0ff 0%, #a070d0 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(160,112,208,.4);
  animation: ocd-eye 3s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .petals {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 80%;
  background: radial-gradient(circle at 50% 50%, rgba(130,80,160,.15) 0%, transparent 70%);
  animation: ocd-petals 12s linear infinite;
}
@keyframes ocd-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ocd-sleep { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes ocd-hand { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(-15deg) translateY(-4px) } 60% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ocd-flower { 0% { transform: scale(1) rotate(0); opacity: .5 } 50% { transform: scale(1.4) rotate(180deg); opacity: 1 } 100% { transform: scale(0.8) rotate(360deg); opacity: .4 } }
@keyframes ocd-eye { 0% { opacity: .3; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .4; transform: scale(0.9) } }
@keyframes ocd-petals { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

.scn-puck-observes {
  background: linear-gradient(180deg, #0f1a28 0%, #1a2a3c 50%, #223350 100%), 
              radial-gradient(ellipse at 80% 20%, rgba(100,140,200,.2) 0%, transparent 60%);
}
.scn-puck-observes .sky-moon {
  position: absolute; top: 5%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 50px 15px rgba(160,184,208,.5);
  animation: pvo-moon 15s ease-in-out infinite alternate;
}
.scn-puck-observes .tree-trunk {
  position: absolute; left: 12%; bottom: 0; width: 30px; height: 70%;
  background: linear-gradient(180deg, #1a2a32 0%, #0e1a22 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset -4px 0 8px rgba(0,0,0,.4);
  animation: pvo-tree 20s ease-in-out infinite alternate;
}
.scn-puck-observes .puck-hide {
  position: absolute; bottom: 18%; left: 8%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pvo-puck 4s ease-in-out infinite;
}
.scn-puck-observes .helena {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2e3e 0%, #1a1e2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: pvo-helena 6s ease-in-out infinite;
}
.scn-puck-observes .demetrius-puck {
  position: absolute; bottom: 22%; left: 60%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2e3244 0%, #1e2232 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: pvo-demetrius 6s ease-in-out 2s infinite;
}
.scn-puck-observes .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,.4) 0%, transparent 2%),
              radial-gradient(circle at 70% 20%, rgba(255,255,255,.3) 0%, transparent 1.5%),
              radial-gradient(circle at 50% 60%, rgba(255,255,255,.2) 0%, transparent 1%);
  animation: pvo-stars 8s ease-in-out infinite alternate;
}
@keyframes pvo-moon { 0% { transform: translate(0, 0); opacity: .7 } 50% { transform: translate(-3px, 3px); opacity: 1 } 100% { transform: translate(2px, -2px); opacity: .8 } }
@keyframes pvo-tree { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes pvo-puck { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(-5deg) } 50% { transform: translateX(10px) rotate(0) } 75% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pvo-helena { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-8px) rotate(-3deg) } 50% { transform: translateX(-16px) rotate(0) } 75% { transform: translateX(-8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pvo-demetrius { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(16px) rotate(0) } 75% { transform: translateX(8px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pvo-stars { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .6 } }

.scn-puck-mistake {
  background: linear-gradient(180deg, #0d1224 0%, #1c2a46 40%, #2e3b5c 70%, #1d2638 100%),
              radial-gradient(ellipse at 50% 0%, #2b3d66 0%, transparent 70%);
}

.scn-puck-mistake .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #141e33 0%, transparent 100%);
  animation: pm-sky 8s ease-in-out infinite alternate;
}

.scn-puck-mistake .bg-forest {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2e1a 0%, #0f1f0f 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: pm-forest 20s ease-in-out infinite alternate;
}

.scn-puck-mistake .moon {
  position: absolute; top: 8%; left: 72%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d4dfe8 0%, #8b9bb5 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(139,155,181,0.3);
  animation: pm-moon 12s ease-in-out infinite alternate;
}

.scn-puck-mistake .puck {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #0f1820 0%, #1a2530 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pm-puck 4s ease-in-out infinite;
  box-shadow: -2px 0 6px rgba(0,0,0,0.6);
}

.scn-puck-mistake .hermia {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: pm-hermia 5s ease-in-out infinite;
  box-shadow: -3px 0 8px rgba(0,0,0,0.5);
}

.scn-puck-mistake .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #141e18 0%, #0a100c 100%);
  border-radius: 90% 10% 0 0 / 80% 20% 0 0;
}

.scn-puck-mistake .shadows {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #0d1420 0%, transparent 80%);
  animation: pm-shadows 6s ease-in-out infinite alternate;
}

@keyframes pm-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes pm-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pm-moon { 0% { box-shadow: 0 0 30px 10px rgba(139,155,181,0.2); } 50% { box-shadow: 0 0 50px 20px rgba(139,155,181,0.4); } 100% { box-shadow: 0 0 35px 12px rgba(139,155,181,0.25); } }
@keyframes pm-puck { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-3deg); } }
@keyframes pm-hermia { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } }
@keyframes pm-shadows { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }

.scn-helena-chase {
  background: linear-gradient(180deg, #0b1422 0%, #1c2a44 35%, #2a3d5a 70%, #1e2c3e 100%),
              radial-gradient(ellipse at 30% 60%, #344b6e 0%, transparent 60%);
}

.scn-helena-chase .bg-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #111c30 0%, transparent 100%);
  animation: hc-sky 6s ease-in-out infinite alternate;
}

.scn-helena-chase .bg-trees {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(90deg, #0f1f0f 0%, #1a2e1a 30%, #0f1f0f 60%, #142814 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.5);
  animation: hc-trees 3s ease-in-out infinite alternate;
}

.scn-helena-chase .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #1f2c20 0%, #0e150e 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
}

.scn-helena-chase .helena {
  position: absolute; bottom: 18%; left: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a2634 0%, #0e1622 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hc-runner 1.5s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-helena-chase .demetrius {
  position: absolute; bottom: 18%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #192a3a 0%, #0c1a28 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hc-chaser 2s ease-in-out infinite;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
}

.scn-helena-chase .dust {
  position: absolute; bottom: 12%; left: 25%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: hc-dust 2s ease-in-out infinite;
}

.scn-helena-chase .leaves {
  position: absolute; top: 25%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(ellipse at 30% 80%, rgba(160,180,200,0.1) 0%, transparent 70%) no-repeat,
              radial-gradient(ellipse at 70% 60%, rgba(160,180,200,0.08) 0%, transparent 60%) no-repeat;
  animation: hc-leaves 8s linear infinite;
}

@keyframes hc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes hc-trees { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }
@keyframes hc-runner { 0%,100% { transform: translateY(0) rotate(5deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes hc-chaser { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(4deg); } }
@keyframes hc-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.6; } 50% { transform: translate(8px,-5px) scale(1.3); opacity: 0.3; } 100% { transform: translate(16px,-2px) scale(1); opacity: 0.6; } }
@keyframes hc-leaves { 0% { background-position: 0 0; } 100% { background-position: 100vw 0; } }

.scn-helena-lament {
  background: linear-gradient(180deg, #0f142a 0%, #1c2640 40%, #293450 70%, #161e2e 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a5a 0%, transparent 60%);
}

.scn-helena-lament .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #161f38 0%, transparent 100%);
  animation: hl-sky 10s ease-in-out infinite alternate;
}

.scn-helena-lament .bg-ground {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1e 0%, #0c150e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.5);
}

.scn-helena-lament .moon {
  position: absolute; top: 12%; left: 60%; width: 36px; height: 36px;
  background: radial-gradient(circle, #c4d0dc 0%, #74849e 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(116,132,158,0.3);
  animation: hl-moon 14s ease-in-out infinite alternate;
}

.scn-helena-lament .helena {
  position: absolute; bottom: 20%; left: 40%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #1c2838 0%, #0f1824 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hl-figure 5s ease-in-out infinite;
  box-shadow: -2px 0 8px rgba(0,0,0,0.6);
}

.scn-helena-lament .rock {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #1e2a2a 0%, #0e1818 100%);
  border-radius: 30% 70% 20% 80% / 50% 50% 50% 50%;
  transform: rotate(10deg);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
}

.scn-helena-lament .tear-glow {
  position: absolute; bottom: 26%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c0d0e0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(192,208,224,0.4);
  animation: hl-tears 4s ease-in-out infinite;
}

.scn-helena-lament .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 15px, rgba(0,0,10,0.15) 15px, rgba(0,0,10,0.15) 18px, transparent 18px);
  animation: hl-bars 8s linear infinite;
}

@keyframes hl-sky { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.65; } }
@keyframes hl-moon { 0% { box-shadow: 0 0 25px 8px rgba(116,132,158,0.2); } 50% { box-shadow: 0 0 45px 18px rgba(116,132,158,0.35); } 100% { box-shadow: 0 0 30px 10px rgba(116,132,158,0.25); } }
@keyframes hl-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes hl-tears { 0%,100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.5); } }
@keyframes hl-bars { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }

.scn-lysander-awakening {
  background: linear-gradient(180deg, #121932 0%, #1c2a46 40%, #2a3d5e 70%, #1e2c40 100%),
              radial-gradient(ellipse at 40% 50%, #3b5270 0%, transparent 60%);
}

.scn-lysander-awakening .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #182240 0%, transparent 100%);
  animation: la-sky 9s ease-in-out infinite alternate;
}

.scn-lysander-awakening .bg-forest {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #1a2e1e 0%, #0f1f12 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.5);
  animation: la-forest 18s ease-in-out infinite alternate;
}

.scn-lysander-awakening .moon {
  position: absolute; top: 6%; left: 30%; width: 38px; height: 38px;
  background: radial-gradient(circle, #ced8e2 0%, #7e8eaa 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px rgba(126,142,170,0.3);
  animation: la-moon 13s ease-in-out infinite alternate;
}

.scn-lysander-awakening .lysander {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1c2a3a 0%, #0e1a28 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: la-lysander 4s ease-in-out infinite;
  box-shadow: -2px 0 8px rgba(0,0,0,0.6);
}

.scn-lysander-awakening .helena {
  position: absolute; bottom: 24%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1e2e40 0%, #101e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: la-helena 5s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-lysander-awakening .aurora {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(230,200,170,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: la-aurora 7s ease-in-out infinite alternate;
}

.scn-lysander-awakening .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1c 0%, #0c140e 100%);
  border-radius: 80% 20% 0 0 / 60% 40% 0 0;
}

@keyframes la-sky { 0% { opacity: 0.65; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes la-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes la-moon { 0% { box-shadow: 0 0 30px 10px rgba(126,142,170,0.2); } 50% { box-shadow: 0 0 50px 20px rgba(126,142,170,0.4); } 100% { box-shadow: 0 0 35px 12px rgba(126,142,170,0.25); } }
@keyframes la-lysander { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes la-helena { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes la-aurora { 0% { opacity: 0.3; transform: scaleY(0.8); } 50% { opacity: 0.6; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }

.scn-helena-accusation-hermia {
  background: linear-gradient(180deg, #0b0d2a 0%, #1a1f3b 50%, #2c3a5e 100%), radial-gradient(ellipse at 50% 100%, #2c3a5e 0%, transparent 80%);
}
.scn-helena-accusation-hermia .moon {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(176,192,208,0.4);
  animation: hah-moon 12s ease-in-out infinite alternate;
}
.scn-helena-accusation-hermia .trees-back {
  position: absolute; bottom: 35%; left: -5%; right: -5%; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1520 100%);
  border-radius: 40% 50% 0 0 / 60% 70% 0 0;
  filter: blur(3px);
  animation: hah-trees 8s ease-in-out infinite alternate;
}
.scn-helena-accusation-hermia .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #121a12 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-helena-accusation-hermia .figure.left {
  position: absolute; bottom: 32%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hah-fig-left 6s ease-in-out infinite alternate;
}
.scn-helena-accusation-hermia .figure.right {
  position: absolute; bottom: 32%; right: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hah-fig-right 6s ease-in-out infinite alternate;
}
.scn-helena-accusation-hermia .arm.pointing {
  position: absolute; bottom: 38%; left: 28%; width: 30px; height: 4px;
  background: #2c3a5e;
  border-radius: 2px;
  transform-origin: left center;
  animation: hah-arm 3s ease-in-out infinite alternate;
}
.scn-helena-accusation-hermia .shadow {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
}
.scn-helena-accusation-hermia .cloud.c1 {
  position: absolute; top: 15%; left: -10%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: hah-cloud-a 40s linear infinite;
}
.scn-helena-accusation-hermia .cloud.c2 {
  position: absolute; top: 30%; right: -15%; width: 80px; height: 16px;
  background: linear-gradient(90deg, rgba(200,210,230,0.2) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: hah-cloud-b 35s linear infinite reverse;
}
@keyframes hah-moon {
  0% { transform: translate(0, 0) scale(1); opacity: 0.9; }
  50% { transform: translate(5px, -6px) scale(1.02); opacity: 1; }
  100% { transform: translate(-4px, 4px) scale(0.98); opacity: 0.85; }
}
@keyframes hah-trees {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.005); }
  100% { transform: translateY(1px) scale(0.995); }
}
@keyframes hah-fig-left {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(-2px); }
  100% { transform: rotate(2deg) translateX(1px); }
}
@keyframes hah-fig-right {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(-1px); }
}
@keyframes hah-arm {
  0% { transform: rotate(10deg); opacity: 0.7; }
  50% { transform: rotate(20deg); opacity: 1; }
  100% { transform: rotate(5deg); opacity: 0.8; }
}
@keyframes hah-cloud-a {
  0% { transform: translateX(0); }
  50% { transform: translateX(50vw); }
  100% { transform: translateX(100vw); }
}
@keyframes hah-cloud-b {
  0% { transform: translateX(0); }
  50% { transform: translateX(-40vw); }
  100% { transform: translateX(-80vw); }
}

.scn-helena-departs {
  background: linear-gradient(180deg, #0b0d2a 0%, #1a1f3b 50%, #2c3a5e 100%), radial-gradient(ellipse at 50% 50%, #2c3a5e 0%, transparent 80%);
}
.scn-helena-departs .moon {
  position: absolute; top: 8%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(176,192,208,0.4);
  animation: hd-moon 14s ease-in-out infinite alternate;
}
.scn-helena-departs .path {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
}
.scn-helena-departs .figure.walking {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-walk 4s ease-in-out infinite;
}
.scn-helena-departs .arm.reaching {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 4px;
  background: #2c3a5e;
  border-radius: 2px;
  transform-origin: right center;
  animation: hd-reach 3s ease-in-out infinite alternate;
}
.scn-helena-departs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #121a12 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-helena-departs .tree.left {
  position: absolute; bottom: 25%; left: 10%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1520 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: hd-tree 10s ease-in-out infinite alternate;
}
.scn-helena-departs .tree.right {
  position: absolute; bottom: 25%; right: 10%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1520 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: hd-tree 12s ease-in-out infinite alternate-reverse;
}
.scn-helena-departs .veil {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,210,230,0.15) 0%, transparent 100%);
  filter: blur(5px);
  animation: hd-veil 5s ease-in-out infinite alternate;
}
@keyframes hd-moon {
  0% { transform: translate(0, 0) scale(1); opacity: 0.85; }
  50% { transform: translate(-3px, 5px) scale(1.02); opacity: 1; }
  100% { transform: translate(2px, -2px) scale(0.98); opacity: 0.9; }
}
@keyframes hd-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes hd-reach {
  0% { transform: rotate(30deg); opacity: 0.6; }
  50% { transform: rotate(45deg); opacity: 1; }
  100% { transform: rotate(20deg); opacity: 0.7; }
}
@keyframes hd-tree {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(1deg) scaleY(1.005); }
  100% { transform: rotate(-1deg) scaleY(0.995); }
}
@keyframes hd-veil {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(2px, -1px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(-2px, 1px) scale(0.9); opacity: 0.4; }
}

.scn-demetrius-challenges {
  background: linear-gradient(180deg, #0b0d2a 0%, #1a1f3b 30%, #2c3a5e 70%, #1a1f3b 100%), radial-gradient(ellipse at 50% 80%, #2c3a5e 0%, transparent 70%);
}
.scn-demetrius-challenges .moon {
  position: absolute; top: 5%; left: 65%; width: 55px; height: 55px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 35px 18px rgba(176,192,208,0.4);
  animation: dc-moon 15s ease-in-out infinite alternate;
}
.scn-demetrius-challenges .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #121a12 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-demetrius-challenges .figure.left {
  position: absolute; bottom: 30%; left: 20%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-fig-left 3s ease-in-out infinite alternate;
}
.scn-demetrius-challenges .figure.right {
  position: absolute; bottom: 30%; right: 20%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-fig-right 3.2s ease-in-out infinite alternate;
}
.scn-demetrius-challenges .sword.left {
  position: absolute; bottom: 38%; left: 22%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #b0c0d0 0%, #7080a0 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dc-sword-left 2.5s ease-in-out infinite alternate;
}
.scn-demetrius-challenges .sword.right {
  position: absolute; bottom: 38%; right: 22%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #b0c0d0 0%, #7080a0 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dc-sword-right 2.7s ease-in-out infinite alternate;
}
.scn-demetrius-challenges .spark {
  position: absolute; bottom: 42%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #e0e8f0 0%, transparent 100%);
  border-radius: 50%;
  animation: dc-spark 1.5s ease-in-out infinite alternate;
}
.scn-demetrius-challenges .cloud.c1 {
  position: absolute; top: 12%; left: -20%; width: 120px; height: 24px;
  background: linear-gradient(90deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50%; filter: blur(10px);
  animation: dc-cloud-a 30s linear infinite;
}
.scn-demetrius-challenges .cloud.c2 {
  position: absolute; top: 25%; right: -25%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(200,210,230,0.2) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: dc-cloud-b 45s linear infinite reverse;
}
@keyframes dc-moon {
  0% { transform: translate(0, 0) scale(1); opacity: 0.9; }
  50% { transform: translate(6px, -8px) scale(1.03); opacity: 1; }
  100% { transform: translate(-4px, 4px) scale(0.97); opacity: 0.85; }
}
@keyframes dc-fig-left {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(-3px); }
  100% { transform: rotate(3deg) translateX(2px); }
}
@keyframes dc-fig-right {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(4deg) translateX(3px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes dc-sword-left {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(5deg); }
}
@keyframes dc-sword-right {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes dc-spark {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(0.5); opacity: 0; }
}
@keyframes dc-cloud-a {
  0% { transform: translateX(0); }
  50% { transform: translateX(60vw); }
  100% { transform: translateX(120vw); }
}
@keyframes dc-cloud-b {
  0% { transform: translateX(0); }
  50% { transform: translateX(-50vw); }
  100% { transform: translateX(-100vw); }
}

.scn-lysander-demetrius-quarrel {
  background: linear-gradient(180deg, #0b0d2a 0%, #1a1f3b 40%, #2c3a5e 80%, #1a1f3b 100%), radial-gradient(ellipse at 50% 60%, #2c3a5e 0%, transparent 70%);
}
.scn-lysander-demetrius-quarrel .moon {
  position: absolute; top: 6%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(176,192,208,0.4);
  animation: ldq-moon 16s ease-in-out infinite alternate;
}
.scn-lysander-demetrius-quarrel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #121a12 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-lysander-demetrius-quarrel .figure.tangle-bot {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldq-bot 3.5s ease-in-out infinite alternate;
}
.scn-lysander-demetrius-quarrel .figure.tangle-top {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1f3b 0%, #0b0d2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldq-top 3.8s ease-in-out infinite alternate;
}
.scn-lysander-demetrius-quarrel .arm.shake {
  position: absolute; bottom: 38%; left: 42%; width: 35px; height: 5px;
  background: #2c3a5e;
  border-radius: 2px;
  transform-origin: left center;
  animation: ldq-shake 0.8s ease-in-out infinite alternate;
}
.scn-lysander-demetrius-quarrel .serpent {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #2c3a5e 0%, #4a5a7a 50%, #2c3a5e 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ldq-serpent 2s ease-in-out infinite alternate;
}
.scn-lysander-demetrius-quarrel .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
}
.scn-lysander-demetrius-quarrel .leaf.l1 {
  position: absolute; top: 20%; left: 10%; width: 12px; height: 6px;
  background: #2a3a2a;
  border-radius: 50%;
  animation: ldq-leaf 5s linear infinite;
}
.scn-lysander-demetrius-quarrel .leaf.l2 {
  position: absolute; top: 35%; right: 15%; width: 10px; height: 5px;
  background: #2a3a2a;
  border-radius: 50%;
  animation: ldq-leaf 6s linear infinite reverse;
}
@keyframes ldq-moon {
  0% { transform: translate(0, 0) scale(1); opacity: 0.85; }
  50% { transform: translate(4px, -5px) scale(1.02); opacity: 1; }
  100% { transform: translate(-3px, 3px) scale(0.98); opacity: 0.9; }
}
@keyframes ldq-bot {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(4px); }
  100% { transform: rotate(-5deg) translateX(-4px); }
}
@keyframes ldq-top {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-6deg) translateX(-5px); }
  100% { transform: rotate(6deg) translateX(5px); }
}
@keyframes ldq-shake {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes ldq-serpent {
  0% { transform: translateX(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(10px) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-10px) scaleY(0.8); opacity: 0.7; }
}
@keyframes ldq-leaf {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(30px) rotate(180deg); }
  100% { transform: translateY(60px) rotate(360deg); }
}

.scn-thisbe-speech-part1 { background: linear-gradient(180deg, #4a2a1a 0%, #6a3a1a 30%, #3a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #ff6a2a 0%, transparent 60%); }
.scn-thisbe-speech-part1 .bg-fire { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,100,20,.15) 0%, rgba(255,60,10,.05) 50%, transparent 80%); animation: tbs1-flicker 3s ease-in-out infinite alternate; }
.scn-thisbe-speech-part1 .stage { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #2a1a0a 0%, #4a2a1a 50%, #6a3a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-thisbe-speech-part1 .wall { position:absolute; bottom:40%; left:10%; width:15%; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; box-shadow: 3px 0 6px rgba(0,0,0,.4); }
.scn-thisbe-speech-part1 .thisbe { position:absolute; bottom:30%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #7a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: tbs1-wave 4s ease-in-out infinite; }
.scn-thisbe-speech-part1 .thisbe::before { content:''; position:absolute; top:-15%; left:50%; width:28px; height:22px; background: #a05a3a; border-radius: 50% 50% 40% 40%; transform: translateX(-50%); box-shadow: 0 4px 0 #c86a4a inset; }
.scn-thisbe-speech-part1 .thisbe::after { content:''; position:absolute; top:2%; left:8px; width:14px; height:10px; background: #c87a5a; border-radius: 50%; }
.scn-thisbe-speech-part1 .pyramus { position:absolute; bottom:25%; left:35%; width:30px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); animation: tbs1-dead 6s ease-in-out infinite; }
.scn-thisbe-speech-part1 .torch { position:absolute; bottom:40%; right:18%; width:6px; height:30px; background: #2a1a0a; border-radius: 2px; }
.scn-thisbe-speech-part1 .torch::before { content:''; position:absolute; top:-20px; left:-4px; width:12px; height:16px; background: radial-gradient(ellipse, #ff6a2a 0%, #ff3a0a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,80,10,.6); animation: tbs1-flame .6s ease-in-out infinite alternate; }
.scn-thisbe-speech-part1 .glow { position:absolute; bottom:35%; left:40%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,100,20,.2) 0%, transparent 70%); pointer-events:none; }
@keyframes tbs1-flicker { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes tbs1-wave { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(3deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(4deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tbs1-dead { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(17deg) translateY(-2px); } }
@keyframes tbs1-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.2) translateY(-3px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:.9; } }

.scn-thisbe-death-and-aftermath { background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #8a3a1a 0%, transparent 70%); }
.scn-thisbe-death-and-aftermath .bg-fire { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,80,20,.1) 0%, transparent 70%); animation: tbs2-smoke 12s ease-in-out infinite alternate; }
.scn-thisbe-death-and-aftermath .stage { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #2a1a0a 0%, #5a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-thisbe-death-and-aftermath .moonshine { position:absolute; bottom:30%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom; animation: tbs2-bow 5s ease-in-out infinite; }
.scn-thisbe-death-and-aftermath .moonshine::before { content:''; position:absolute; top:5%; left:50%; width:12px; height:12px; background: #e8d080; border-radius: 50%; box-shadow: 0 0 12px 4px #e8d080; transform: translateX(-50%); }
.scn-thisbe-death-and-aftermath .lion { position:absolute; bottom:30%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: tbs2-roar 3s ease-in-out infinite; }
.scn-thisbe-death-and-aftermath .lion::before { content:''; position:absolute; top:-10%; left:30%; width:20px; height:15px; background: #5a2a0a; border-radius: 50%; }
.scn-thisbe-death-and-aftermath .lion::after { content:''; position:absolute; top:-5%; left:15%; width:10px; height:8px; background: #8a4a2a; border-radius: 50%; box-shadow: 8px 0 0 #8a4a2a; }
.scn-thisbe-death-and-aftermath .wall-actor { position:absolute; bottom:35%; left:70%; width:14%; height:40%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); border-radius: 6px; box-shadow: 3px 0 6px rgba(0,0,0,.5); }
.scn-thisbe-death-and-aftermath .thisbe-dead, .scn-thisbe-death-and-aftermath .pyramus-dead { position:absolute; bottom:20%; width:22px; height:35px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(10deg); }
.scn-thisbe-death-and-aftermath .thisbe-dead { left:38%; animation: tbs2-body 8s ease-in-out infinite; }
.scn-thisbe-death-and-aftermath .pyramus-dead { left:50%; animation: tbs2-body 10s ease-in-out infinite reverse; }
.scn-thisbe-death-and-aftermath .light-spots { position:absolute; inset:0; background: radial-gradient(circle at 25% 40%, rgba(255,120,30,.15) 0%, transparent 30%), radial-gradient(circle at 75% 50%, rgba(255,80,20,.1) 0%, transparent 40%); pointer-events:none; animation: tbs2-spark 4s ease-in-out infinite alternate; }
@keyframes tbs2-smoke { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }
@keyframes tbs2-bow { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes tbs2-roar { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px) rotate(2deg); } }
@keyframes tbs2-body { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } }
@keyframes tbs2-spark { 0% { background-position: 25% 40%, 75% 50%; } 100% { background-position: 30% 35%, 70% 55%; } }

.scn-play-conclusion-before-exit { background: linear-gradient(180deg, #4a3020 0%, #6a4a2a 30%, #3a2010 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #8a5a3a 0%, transparent 60%); }
.scn-play-conclusion-before-exit .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,150,80,.08) 0%, transparent 60%); animation: pcb-warm 14s ease-in-out infinite alternate; }
.scn-play-conclusion-before-exit .stage { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #2a1a0a 0%, #5a3a1a 80%); border-radius: 30% 30% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.4); }
.scn-play-conclusion-before-exit .bodies { position:absolute; bottom:18%; left:30%; right:30%; height:25%; background: radial-gradient(ellipse at 50% 80%, #3a2010 0%, #1a0a00 100%); border-radius: 20% 20% 5% 5%; animation: pcb-bodies 12s ease-in-out infinite; }
.scn-play-conclusion-before-exit .bodies::before, .scn-play-conclusion-before-exit .bodies::after { content:''; position:absolute; bottom:10%; width:20px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; }
.scn-play-conclusion-before-exit .bodies::before { left:15%; transform: rotate(-5deg); }
.scn-play-conclusion-before-exit .bodies::after { right:15%; transform: rotate(5deg); }
.scn-play-conclusion-before-exit .speaker { position:absolute; bottom:30%; left:55%; width:24px; height:65px; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; animation: pcb-speak 5s ease-in-out infinite; }
.scn-play-conclusion-before-exit .curtain-left, .scn-play-conclusion-before-exit .curtain-right { position:absolute; top:0; bottom:10%; width:20%; background: linear-gradient(90deg, #5a2a1a 0%, #3a1a0a 50%, #5a2a1a 100%); border-radius: 0 0 30% 30%; }
.scn-play-conclusion-before-exit .curtain-left { left:0; animation: pcb-curtain 20s ease-in-out infinite; }
.scn-play-conclusion-before-exit .curtain-right { right:0; animation: pcb-curtain 20s ease-in-out infinite reverse; }
.scn-play-conclusion-before-exit .footlights { position:absolute; bottom:0; left:20%; right:20%; height:8%; background: linear-gradient(0deg, #e8a050 0%, #a06030 60%, transparent); border-radius: 50%; filter: blur(3px); animation: pcb-foot 3s ease-in-out infinite alternate; }
@keyframes pcb-warm { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes pcb-bodies { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes pcb-speak { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pcb-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } }
@keyframes pcb-foot { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.8; transform: scaleY(1); } }

.scn-transition-to-fairy-night { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 30%, #0a0a1a 70%, #000010 100%), radial-gradient(ellipse at 50% 10%, #2a2a6a 0%, transparent 50%); }
.scn-transition-to-fairy-night .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,20,80,.2) 0%, transparent 60%); animation: tfn-night 20s ease-in-out infinite alternate; }
.scn-transition-to-fairy-night .moon { position:absolute; top:6%; right:18%; width:40px; height:40px; background: radial-gradient(circle, #e0e8ff 0%, #a0b8e0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(160,184,224,.3); animation: tfn-moon 30s ease-in-out infinite alternate; }
.scn-transition-to-fairy-night .forest-tree { position:absolute; bottom:0; width:20px; background: linear-gradient(180deg, transparent 0%, #1a2a1a 20%, #0a1a0a 100%); border-radius: 40% 40% 0 0; }
.scn-transition-to-fairy-night .tree-a { left:10%; height:80%; animation: tfn-tree 25s ease-in-out infinite; }
.scn-transition-to-fairy-night .tree-b { right:15%; height:70%; width:18px; animation: tfn-tree 30s ease-in-out infinite reverse; }
.scn-transition-to-fairy-night .puck { position:absolute; bottom:25%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a4a 0%, #0a0a2a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom; animation: tfn-puck 6s ease-in-out infinite; }
.scn-transition-to-fairy-night .puck::before { content:''; position:absolute; top:-10%; left:50%; width:12px; height:10px; background: #1a1a3a; border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 6px 2px rgba(100,150,255,.2); }
.scn-transition-to-fairy-night .willowisp { position:absolute; border-radius: 50%; pointer-events:none; }
.scn-transition-to-fairy-night .wisp-1 { top:30%; left:30%; width:8px; height:8px; background: #80d0ff; box-shadow: 0 0 16px 6px rgba(128,208,255,.4); animation: tfn-wisp 7s ease-in-out infinite; }
.scn-transition-to-fairy-night .wisp-2 { top:50%; left:70%; width:6px; height:6px; background: #a0e0ff; box-shadow: 0 0 12px 4px rgba(160,224,255,.3); animation: tfn-wisp 9s ease-in-out infinite reverse; }
.scn-transition-to-fairy-night .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(10,10,30,.5) 0%, transparent 100%); filter: blur(10px); animation: tfn-mist 15s ease-in-out infinite alternate; }
@keyframes tfn-night { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes tfn-moon { 0% { transform: translateX(-10px) scale(1); opacity:.8; } 50% { transform: translateX(5px) scale(1.02); opacity:1; } 100% { transform: translateX(-10px) scale(1); opacity:.8; } }
@keyframes tfn-tree { 0%,100% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.03); } }
@keyframes tfn-puck { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tfn-wisp { 0% { transform: translate(0,0) scale(1); opacity:.6; } 50% { transform: translate(-20px,-15px) scale(1.2); opacity:1; } 100% { transform: translate(10px,-5px) scale(.9); opacity:.5; } }
@keyframes tfn-mist { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.6; transform: translateY(-5px); } 100% { opacity:.4; transform: translateY(2px); } }

/* mechanicals-rehearsal */
.scn-mechanicals-rehearsal { background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 40%, #3a4a6e 100%), radial-gradient(ellipse at 50% 100%, #3a4a6e 0%, transparent 70%); }
.scn-mechanicals-rehearsal .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a3a5e 0%, #1a2a3e 100%); animation: mr-sky 12s ease-in-out infinite alternate; }
.scn-mechanicals-rehearsal .moon   { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #e0e8ff 0%, #c0c8e0 60%, #a0a8c0 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,210,255,.4), 0 0 80px 40px rgba(200,210,255,.15); animation: mr-moon 15s ease-in-out infinite alternate; }
.scn-mechanicals-rehearsal .trees  { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: mr-trees 20s ease-in-out infinite alternate; }
.scn-mechanicals-rehearsal .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a5a3a 0%, #1a3a2a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-mechanicals-rehearsal .stage  { position:absolute; bottom:20%; left:50%; width:140px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: mr-stage 8s ease-in-out infinite; }
.scn-mechanicals-rehearsal .figure { position:absolute; bottom:26%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 3s ease-in-out infinite; }
.scn-mechanicals-rehearsal .lantern{ position:absolute; bottom:30%; left:52%; width:8px; height:12px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 12px 4px rgba(192,160,96,.6); animation: mr-lantern 4s ease-in-out infinite; }
.scn-mechanicals-rehearsal .firefly-a, .scn-mechanicals-rehearsal .firefly-b { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius:50%; filter: blur(2px); }
.scn-mechanicals-rehearsal .firefly-a { top:30%; left:20%; animation: mr-firefly-a 6s ease-in-out infinite; }
.scn-mechanicals-rehearsal .firefly-b { top:45%; right:30%; animation: mr-firefly-b 8s ease-in-out infinite; }
@keyframes mr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mr-moon { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(200,210,255,.4); } 50% { transform: translate(4px, -2px) scale(1.02); box-shadow: 0 0 50px 25px rgba(200,210,255,.5); } 100% { transform: translate(-2px, 2px) scale(.98); box-shadow: 0 0 35px 15px rgba(200,210,255,.35); } }
@keyframes mr-trees { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-2px) skewX(1deg); } 100% { transform: translateY(1px) skewX(-1deg); } }
@keyframes mr-stage { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } }
@keyframes mr-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes mr-lantern { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes mr-firefly-a { 0% { transform: translate(0,0) scale(1); opacity:.8 } 50% { transform: translate(30px,-20px) scale(1.3); opacity:1 } 100% { transform: translate(-10px,10px) scale(.9); opacity:.6 } }
@keyframes mr-firefly-b { 0% { transform: translate(0,0) scale(1); opacity:.7 } 50% { transform: translate(-25px,-15px) scale(1.2); opacity:1 } 100% { transform: translate(20px,5px) scale(.85); opacity:.5 } }

/* item-moonshine-lanthorn */
.scn-item-moonshine-lanthorn { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #3a3a7e 100%), radial-gradient(ellipse at 50% 100%, #3a3a7e 0%, transparent 70%); }
.scn-item-moonshine-lanthorn .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%); animation: ms-sky 10s ease-in-out infinite alternate; }
.scn-item-moonshine-lanthorn .moon   { position:absolute; top:10%; left:15%; width:60px; height:60px; background: radial-gradient(circle, #d0d8ff 0%, #b0b8e0 60%, #9098c0 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(180,190,255,.3), 0 0 120px 60px rgba(180,190,255,.1); animation: ms-moon 12s ease-in-out infinite alternate; }
.scn-item-moonshine-lanthorn .figure { position:absolute; bottom:30%; left:38%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure 4s ease-in-out infinite; }
.scn-item-moonshine-lanthorn .lion-head { position:absolute; bottom:50%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); clip-path: ellipse(60% 70% at 50% 50%); animation: ms-lion 5s ease-in-out infinite; }
.scn-item-moonshine-lanthorn .lantern{ position:absolute; bottom:35%; left:44%; width:10px; height:14px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 16px 6px rgba(192,160,96,.7); animation: ms-lantern 3s ease-in-out infinite; }
.scn-item-moonshine-lanthorn .glow   { position:absolute; bottom:30%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(192,160,96,.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ms-glow 4s ease-in-out infinite; }
.scn-item-moonshine-lanthorn .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
@keyframes ms-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ms-moon { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px, -3px) scale(1.01); } 100% { transform: translate(-3px, 2px) scale(.98); } }
@keyframes ms-figure { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes ms-lion { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } }
@keyframes ms-lantern { 0%,100% { transform: rotate(-8deg); box-shadow: 0 0 16px 6px rgba(192,160,96,.7); } 50% { transform: rotate(8deg); box-shadow: 0 0 24px 10px rgba(192,160,96,.9); } }
@keyframes ms-glow { 0%,100% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } }

/* item-wall-representation */
.scn-item-wall-representation { background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 50%, #3a4a6e 100%), radial-gradient(ellipse at 50% 100%, #3a4a6e 0%, transparent 70%); }
.scn-item-wall-representation .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a3a5e 0%, #1a2a3e 100%); animation: wl-sky 11s ease-in-out infinite alternate; }
.scn-item-wall-representation .moon   { position:absolute; top:12%; right:25%; width:45px; height:45px; background: radial-gradient(circle, #d0d8ff 0%, #b0b8e0 60%, #9098c0 100%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(180,190,255,.3); animation: wl-moon 14s ease-in-out infinite alternate; }
.scn-item-wall-representation .wall   { position:absolute; bottom:20%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:5% 5% 3% 3%; box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.5); animation: wl-wall 6s ease-in-out infinite; }
.scn-item-wall-representation .hand-l, .scn-item-wall-representation .hand-r { position:absolute; bottom:40%; width:12px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:30% 30% 20% 20%; transform-origin: bottom center; }
.scn-item-wall-representation .hand-l { left:45%; animation: wl-hand-l 4s ease-in-out infinite; }
.scn-item-wall-representation .hand-r { right:45%; animation: wl-hand-r 4s ease-in-out infinite; }
.scn-item-wall-representation .thisby { position:absolute; bottom:30%; left:48%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wl-thisby 5s ease-in-out infinite; }
.scn-item-wall-representation .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
@keyframes wl-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wl-moon { 0% { transform: translate(0,0) } 50% { transform: translate(3px, -2px) } 100% { transform: translate(-2px, 1px) } }
@keyframes wl-wall { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes wl-hand-l { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-2px,-1px) rotate(5deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(2px,-1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes wl-hand-r { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(-5deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes wl-thisby { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }

/* puck-chase */
.scn-puck-chase { background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 50%, #3a4a6e 100%), radial-gradient(ellipse at 50% 100%, #3a4a6e 0%, transparent 70%); }
.scn-puck-chase .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a3a5e 0%, #1a2a3e 100%); animation: pc-sky 9s ease-in-out infinite alternate; }
.scn-puck-chase .moon   { position:absolute; top:8%; left:50%; width:55px; height:55px; background: radial-gradient(circle, #d0d8ff 0%, #b0b8e0 60%, #9098c0 100%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(180,190,255,.3); animation: pc-moon 13s ease-in-out infinite alternate; }
.scn-puck-chase .puck   { position:absolute; bottom:40%; left:20%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-puck 3s ease-in-out infinite; }
.scn-puck-chase .horse  { position:absolute; bottom:35%; left:60%; width:35px; height:20px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 60% 20% 20% / 50% 50% 30% 30%; clip-path: polygon(0% 50%, 20% 0%, 40% 30%, 60% 0%, 80% 40%, 100% 20%, 90% 60%, 80% 80%, 60% 90%, 40% 80%, 20% 90%, 0% 70%); animation: pc-horse 2s steps(2) infinite; }
.scn-puck-chase .hound  { position:absolute; bottom:30%; left:75%; width:25px; height:15px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; clip-path: polygon(10% 30%, 30% 0%, 50% 20%, 70% 0%, 90% 30%, 100% 60%, 80% 80%, 60% 70%, 40% 80%, 20% 70%, 0% 60%); animation: pc-hound 2.5s steps(2) infinite; }
.scn-puck-chase .fire   { position:absolute; bottom:20%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #ffa040 0%, #ff6040 50%, #802000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(3px); animation: pc-fire 0.8s ease-in-out infinite alternate; }
.scn-puck-chase .bush   { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: pc-bush 15s ease-in-out infinite alternate; }
@keyframes pc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pc-moon { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(4px, -2px) scale(1.01); } 100% { transform: translate(-3px, 1px) scale(.99); } }
@keyframes pc-puck { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(8px) translateY(-3px) rotate(3deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-3px) rotate(4deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes pc-horse { 0% { transform: translate(0,0) scaleX(1); } 50% { transform: translate(5px,-2px) scaleX(-1); } 100% { transform: translate(10px,0) scaleX(1); } }
@keyframes pc-hound { 0% { transform: translate(0,0) scaleX(1); } 50% { transform: translate(4px,-1px) scaleX(-1); } 100% { transform: translate(8px,0) scaleX(1); } }
@keyframes pc-fire { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.2) rotate(5deg); opacity:1; } 100% { transform: scale(.9) rotate(-5deg); opacity:.7; } }
@keyframes pc-bush { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-2px) skewX(1deg); } 100% { transform: translateY(1px) skewX(-1deg); } }

/* scene: helena-learns-flight */
.scn-helena-learns-flight {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 50%, #0e0804 100%),
    radial-gradient(ellipse at 50% 0%, #3a2515 0%, transparent 60%);
}
.scn-helena-learns-flight .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1a0e, #1a1008 60%, #0e0804);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: hlf-wall 8s ease-in-out infinite alternate;
}
.scn-helena-learns-flight .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1008, #0e0804);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: hlf-floor 12s ease-in-out infinite;
}
.scn-helena-learns-flight .window {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 100px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #0a1a2a, #1a2a3a);
  border: 6px solid #3a2515;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
  animation: hlf-window 6s ease-in-out infinite;
}
.scn-helena-learns-flight .moonlight {
  position: absolute;
  top: 12%;
  left: 48%;
  width: 60px;
  height: 140px;
  background: linear-gradient(90deg, rgba(200,220,255,0.15), rgba(200,220,255,0.05) 60%, transparent);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: hlf-moonlight 10s ease-in-out infinite alternate;
}
.scn-helena-learns-flight .figure {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #1a0a04, #0a0402);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hlf-figure 3s ease-in-out infinite;
}
.scn-helena-learns-flight .lantern {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 8px;
  height: 10px;
  background: radial-gradient(circle, #d08040 0%, #b06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(208,128,64,0.6), 0 0 40px 16px rgba(208,128,64,0.3);
  animation: hlf-lantern 1.5s ease-in-out infinite alternate;
}
.scn-helena-learns-flight .ladder {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 4px;
  height: 60px;
  background: #2a1a0e;
  box-shadow: 12px 0 0 #2a1a0e, 24px 0 0 #2a1a0e;
  border-radius: 2px;
  animation: hlf-ladder 20s linear infinite;
}
.scn-helena-learns-flight .shadow {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 50px;
  height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: hlf-shadow 4s ease-in-out infinite alternate;
}
@keyframes hlf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hlf-floor { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hlf-window { 0%, 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9), 0 0 25px rgba(0,0,0,0.6); } }
@keyframes hlf-moonlight { 0% { opacity: 0.3; transform: skewX(-10deg) translateX(0); } 50% { opacity: 0.6; transform: skewX(-8deg) translateX(5px); } 100% { opacity: 0.3; transform: skewX(-10deg) translateX(0); } }
@keyframes hlf-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes hlf-lantern { 0% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 20px 8px rgba(208,128,64,0.6), 0 0 40px 16px rgba(208,128,64,0.3); } 50% { transform: scale(1.1) rotate(3deg); box-shadow: 0 0 30px 12px rgba(208,128,64,0.8), 0 0 60px 24px rgba(208,128,64,0.4); } 100% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 20px 8px rgba(208,128,64,0.6), 0 0 40px 16px rgba(208,128,64,0.3); } }
@keyframes hlf-ladder { 0% { transform: translateY(0); } 100% { transform: translateY(-10px); } }
@keyframes hlf-shadow { 0% { transform: scale(1) translateX(0); opacity: 0.5; } 50% { transform: scale(1.2) translateX(10px); opacity: 0.7; } 100% { transform: scale(1) translateX(0); opacity: 0.5; } }

/* scene: helena-soliloquy */
.scn-helena-soliloquy {
  background:
    linear-gradient(180deg, #0a0a14 0%, #10101a 40%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-helena-soliloquy .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e0e1a, #05050e);
  animation: hso-bg 20s ease-in-out infinite alternate;
}
.scn-helena-soliloquy .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #0a0a14, #020208);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: hso-floor 15s ease-in-out infinite;
}
.scn-helena-soliloquy .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(90deg, #0e0e1a, #12121e 40%, #0e0e1a);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8);
  border-radius: 0 0 30% 30%;
}
.scn-helena-soliloquy .candle {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 6px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a060, #806030);
  border-radius: 2px;
  animation: hso-candle 4s ease-in-out infinite;
}
.scn-helena-soliloquy .glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 80px;
  height: 80px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(208,160,96,0.4) 0%, rgba(208,160,96,0.1) 40%, transparent 70%);
  animation: hso-glow 3s ease-in-out infinite alternate;
}
.scn-helena-soliloquy .figure {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #0a0a10, #020208);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hso-figure 6s ease-in-out infinite;
}
.scn-helena-soliloquy .mirror {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 50px;
  height: 70px;
  background: linear-gradient(135deg, #1a1a2a, #0a0a18);
  border: 3px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 10px rgba(0,0,0,0.5);
  animation: hso-mirror 8s ease-in-out infinite alternate;
}
.scn-helena-soliloquy .tear {
  position: absolute;
  bottom: 20%;
  left: 47%;
  width: 4px;
  height: 10px;
  background: linear-gradient(180deg, rgba(200,220,255,0.4), transparent);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: hso-tear 2s ease-in-out infinite;
}
@keyframes hso-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hso-floor { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hso-candle { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scaleY(0.9); } }
@keyframes hso-glow { 0% { opacity: 0.5; transform: translate(-50%, 50%) scale(1); } 50% { opacity: 0.8; transform: translate(-50%, 50%) scale(1.1); } 100% { opacity: 0.5; transform: translate(-50%, 50%) scale(1); } }
@keyframes hso-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hso-mirror { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,1), 0 0 15px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 10px rgba(0,0,0,0.5); } }
@keyframes hso-tear { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(5px) scale(0.8); opacity: 0.8; } 100% { transform: translateY(10px) scale(0.5); opacity: 0; } }

/* scene: quinces-house-meeting */
.scn-quinces-house-meeting {
  background:
    linear-gradient(180deg, #2a2010 0%, #1a1408 50%, #0e0a04 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a14 0%, transparent 60%);
}
.scn-quinces-house-meeting .bg-room {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a2010, #1a1408 70%, #0e0a04);
  animation: qhm-bg 18s ease-in-out infinite alternate;
}
.scn-quinces-house-meeting .table {
  position: absolute;
  bottom: 10%;
  left: 20%;
  right: 20%;
  height: 20%;
  background: linear-gradient(180deg, #3a2a14, #1a1408);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: qhm-table 10s ease-in-out infinite;
}
.scn-quinces-house-meeting .figure-left {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0a, #1a0e04);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qhm-left 4s ease-in-out infinite;
}
.scn-quinces-house-meeting .figure-right {
  position: absolute;
  bottom: 25%;
  right: 25%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #1a2a0a, #0e1a04);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qhm-right 4.5s ease-in-out infinite;
}
.scn-quinces-house-meeting .scroll {
  position: absolute;
  bottom: 35%;
  left: 48%;
  width: 30px;
  height: 8px;
  background: linear-gradient(90deg, #d0b080, #a08050);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: qhm-scroll 3s ease-in-out infinite;
}
.scn-quinces-house-meeting .chair {
  position: absolute;
  bottom: 20%;
  right: 40%;
  width: 10px;
  height: 30px;
  background: #1a1408;
  box-shadow: 15px 0 0 #1a1408;
  border-radius: 2px;
  animation: qhm-chair 12s linear infinite;
}
.scn-quinces-house-meeting .lantern {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 10px;
  height: 12px;
  background: radial-gradient(circle, #d09050, #a06030);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(208,144,80,0.5), 0 0 48px 16px rgba(208,144,80,0.2);
  animation: qhm-lantern 2s ease-in-out infinite alternate;
}
.scn-quinces-house-meeting .shelf {
  position: absolute;
  top: 5%;
  left: 20%;
  right: 20%;
  height: 4px;
  background: #0e0a04;
  box-shadow: 0 8px 0 #0e0a04, 0 16px 0 #0e0a04;
  animation: qhm-shelf 25s linear infinite;
}
@keyframes qhm-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes qhm-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes qhm-left { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(5px) rotate(3deg); } 40% { transform: translateX(10px) rotate(5deg); } 60% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qhm-right { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-5px) rotate(-3deg); } 40% { transform: translateX(-10px) rotate(-5deg); } 60% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qhm-scroll { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes qhm-chair { 0% { transform: translateX(0); } 100% { transform: translateX(-5px); } }
@keyframes qhm-lantern { 0% { transform: scale(1) rotate(-5deg); box-shadow: 0 0 24px 8px rgba(208,144,80,0.5), 0 0 48px 16px rgba(208,144,80,0.2); } 50% { transform: scale(1.15) rotate(5deg); box-shadow: 0 0 36px 12px rgba(208,144,80,0.7), 0 0 64px 20px rgba(208,144,80,0.3); } 100% { transform: scale(1) rotate(-5deg); box-shadow: 0 0 24px 8px rgba(208,144,80,0.5), 0 0 48px 16px rgba(208,144,80,0.2); } }
@keyframes qhm-shelf { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }

/* scene: bottom-casting */
.scn-bottom-casting {
  background:
    linear-gradient(180deg, #3a2010 0%, #2a1808 50%, #1a0e04 100%),
    radial-gradient(ellipse at 50% 0%, #4a2a18 0%, transparent 60%);
}
.scn-bottom-casting .bg-stage {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #3a2010, #2a1808 60%, #1a0e04);
  animation: bca-bg 20s ease-in-out infinite alternate;
}
.scn-bottom-casting .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1808, #1a0e04);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: bca-floor 12s ease-in-out infinite;
}
.scn-bottom-casting .quince {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #1a2a1a, #0e1a0e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bca-quince 3.5s ease-in-out infinite;
}
.scn-bottom-casting .bottom {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 36px;
  height: 70px;
  background: linear-gradient(180deg, #2a1a0a, #1a0e04);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bca-bottom 4s ease-in-out infinite;
}
.scn-bottom-casting .scroll {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 34px;
  height: 10px;
  background: linear-gradient(90deg, #d0b080, #a08050);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: bca-scroll 2.5s ease-in-out infinite;
}
.scn-bottom-casting .stool {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 14px;
  height: 24px;
  background: #1a1408;
  border-radius: 2px;
  animation: bca-stool 15s linear infinite;
}
.scn-bottom-casting .spotlight {
  position: absolute;
  top: 0;
  left: 40%;
  width: 60px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,200,150,0.2), transparent 60%);
  transform: skewX(-5deg);
  filter: blur(8px);
  animation: bca-spotlight 8s ease-in-out infinite alternate;
}
.scn-bottom-casting .shadows {
  position: absolute;
  bottom: 15%;
  left: 28%;
  width: 50px;
  height: 16px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: bca-shadows 5s ease-in-out infinite alternate;
}
@keyframes bca-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bca-floor { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bca-quince { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(4deg); } 50% { transform: translateX(8px) rotate(6deg); } 75% { transform: translateX(4px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bca-bottom { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(6px) scaleY(1.05) rotate(2deg); } 50% { transform: translateX(12px) scaleY(1) rotate(0); } 75% { transform: translateX(6px) scaleY(1.05) rotate(-2deg); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes bca-scroll { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bca-stool { 0% { transform: translateX(0); } 100% { transform: translateX(-3px); } }
@keyframes bca-spotlight { 0% { opacity: 0.4; transform: skewX(-5deg) translateX(0); } 50% { opacity: 0.7; transform: skewX(-3deg) translateX(5px); } 100% { opacity: 0.4; transform: skewX(-5deg) translateX(0); } }
@keyframes bca-shadows { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.3) translateX(10px); } 100% { transform: scale(1) translateX(0); } }

/* SCENE 1: palace-arrival (warm bright interior) */
.scn-palace-arrival {
  background: linear-gradient(180deg, #f7e9d0 0%, #d4b896 40%, #bea286 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-palace-arrival .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d4b0 0%, #c8a87c 100%);
  animation: pa-bg 12s ease-in-out infinite alternate;
}
.scn-palace-arrival .pillar-left {
  position: absolute; left: 15%; bottom: 0; width: 4%; height: 90%;
  background: linear-gradient(90deg, #c8a87c, #e0c8a0, #c8a87c);
  border-radius: 6px 6px 0 0; box-shadow: inset -2px 0 8px rgba(0,0,0,0.15);
  animation: pa-pillar 8s ease-in-out infinite alternate;
}
.scn-palace-arrival .pillar-right {
  position: absolute; right: 15%; bottom: 0; width: 4%; height: 90%;
  background: linear-gradient(90deg, #c8a87c, #e0c8a0, #c8a87c);
  border-radius: 6px 6px 0 0; box-shadow: inset 2px 0 8px rgba(0,0,0,0.15);
  animation: pa-pillar 8s ease-in-out infinite alternate-reverse;
}
.scn-palace-arrival .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 40%; background: linear-gradient(135deg, #a67c52, #7a5a3a);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px rgba(255,215,0,0.3);
  animation: pa-throne 6s ease-in-out infinite;
}
.scn-palace-arrival .theseus {
  position: absolute; bottom: 18%; left: 44%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa-figure 4s ease-in-out infinite;
}
.scn-palace-arrival .hippolyta {
  position: absolute; bottom: 18%; right: 44%; width: 7%; height: 48%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa-figure 5s ease-in-out infinite -1s;
}
.scn-palace-arrival .moon-crescent {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 8%; background: radial-gradient(circle at 40% 50%, #fff5d0 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: pa-moon 15s ease-in-out infinite alternate;
}
.scn-palace-arrival .torch-1 {
  position: absolute; left: 8%; top: 30%; width: 1.5%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, #ffcc66 0%, #cc6600 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px #ff9900; animation: pa-torch 2s ease-in-out infinite alternate;
}
.scn-palace-arrival .torch-2 {
  position: absolute; right: 8%; top: 30%; width: 1.5%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, #ffcc66 0%, #cc6600 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px #ff9900; animation: pa-torch 2.5s ease-in-out infinite alternate-reverse;
}
@keyframes pa-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pa-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes pa-throne { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes pa-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pa-moon { 0% { opacity:0.5; transform: translateX(-50%) scale(0.95) } 50% { opacity:0.8; transform: translateX(-50%) scale(1.05) } 100% { opacity:0.6; transform: translateX(-50%) scale(1) } }
@keyframes pa-torch { 0% { opacity:0.7; box-shadow: 0 0 20px #ff9900 } 50% { opacity:1; box-shadow: 0 0 40px #ffaa33 } 100% { opacity:0.8; box-shadow: 0 0 25px #ff8800 } }

/* SCENE 2: palace-hippolyta-reply (calm bright interior) */
.scn-palace-hippolyta-reply {
  background: linear-gradient(180deg, #f0e8d8 0%, #ddd0b8 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 0%, #fff8ee 0%, transparent 60%);
}
.scn-palace-hippolyta-reply .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #eee0c8 0%, #d0b890 100%);
  animation: phr-bg 20s ease-in-out infinite alternate;
}
.scn-palace-hippolyta-reply .window-arch {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 60%, #b0c8e0 0%, transparent 60%);
  border: 2px solid #b09878; border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 40px rgba(180,200,220,0.3); animation: phr-window 18s ease-in-out infinite alternate;
}
.scn-palace-hippolyta-reply .curtain-l {
  position: absolute; left: 25%; top: 5%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #c8a88a 0%, #a08060 100%);
  border-radius: 0 20% 60% 0; transform-origin: top left;
  animation: phr-curtain 12s ease-in-out infinite alternate;
}
.scn-palace-hippolyta-reply .curtain-r {
  position: absolute; right: 25%; top: 5%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #c8a88a 0%, #a08060 100%);
  border-radius: 20% 0 0 60%; transform-origin: top right;
  animation: phr-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-palace-hippolyta-reply .hippolyta-stand {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 10%; height: 55%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: phr-figure 8s ease-in-out infinite;
}
.scn-palace-hippolyta-reply .silver-bow {
  position: absolute; top: 15%; right: 20%; width: 8%; height: 5%;
  background: radial-gradient(ellipse at 50% 50%, #e0e8f0 0%, #b0b8c8 70%);
  border-radius: 50%; box-shadow: 0 0 20px rgba(200,210,230,0.5);
  animation: phr-bow 10s ease-in-out infinite alternate;
}
.scn-palace-hippolyta-reply .candle-sconce {
  position: absolute; left: 10%; top: 40%; width: 2%; height: 8%;
  background: radial-gradient(ellipse at 50% 0%, #ffe680 0%, #ccaa44 60%, transparent 80%);
  box-shadow: 0 0 25px #ffdd66; animation: phr-candle 3s ease-in-out infinite alternate;
}
.scn-palace-hippolyta-reply .petal-1 {
  position: absolute; bottom: 30%; left: 30%; width: 3%; height: 3%;
  background: radial-gradient(circle, #f0c8a0 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px); animation: phr-petal 15s linear infinite;
}
.scn-palace-hippolyta-reply .petal-2 {
  position: absolute; bottom: 35%; right: 35%; width: 2.5%; height: 2.5%;
  background: radial-gradient(circle, #f0c8a0 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px); animation: phr-petal 18s linear infinite -5s;
}
@keyframes phr-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes phr-window { 0% { opacity:0.6; transform: translateX(-50%) scale(1) } 50% { opacity:0.8; transform: translateX(-50%) scale(1.01) } 100% { opacity:0.7; transform: translateX(-50%) scale(0.98) } }
@keyframes phr-curtain { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-1deg) scaleX(0.98) } }
@keyframes phr-figure { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes phr-bow { 0% { opacity:0.4; transform: scale(0.9) } 50% { opacity:0.7; transform: scale(1.05) } 100% { opacity:0.5; transform: scale(0.95) } }
@keyframes phr-candle { 0% { opacity:0.7; box-shadow: 0 0 15px #ffdd66 } 50% { opacity:1; box-shadow: 0 0 30px #ffcc44 } 100% { opacity:0.8; box-shadow: 0 0 20px #ffbb33 } }
@keyframes phr-petal { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-10px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }

/* SCENE 3: palace-theseus-wooing (warm bright interior – pomp) */
.scn-palace-theseus-wooing {
  background: linear-gradient(180deg, #f5e0c0 0%, #dcc099 40%, #bea076 100%),
              radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 60%);
}
.scn-palace-theseus-wooing .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #edd4b0 0%, #ccaa80 100%);
  animation: pw-bg 10s ease-in-out infinite alternate;
}
.scn-palace-theseus-wooing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b09878 0%, #887058 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pw-floor 8s ease-in-out infinite alternate;
}
.scn-palace-theseus-wooing .column-l {
  position: absolute; left: 10%; bottom: 25%; width: 3%; height: 70%;
  background: linear-gradient(90deg, #c8a87c, #e0c8a0, #c8a87c);
  border-radius: 4px 4px 0 0; box-shadow: inset -2px 0 10px rgba(0,0,0,0.2);
  animation: pw-column 6s ease-in-out infinite alternate;
}
.scn-palace-theseus-wooing .column-r {
  position: absolute; right: 10%; bottom: 25%; width: 3%; height: 70%;
  background: linear-gradient(90deg, #c8a87c, #e0c8a0, #c8a87c);
  border-radius: 4px 4px 0 0; box-shadow: inset 2px 0 10px rgba(0,0,0,0.2);
  animation: pw-column 6s ease-in-out infinite alternate-reverse;
}
.scn-palace-theseus-wooing .theseus-wed {
  position: absolute; bottom: 22%; left: 42%; width: 9%; height: 55%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a221a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pw-figure 4s ease-in-out infinite;
}
.scn-palace-theseus-wooing .hippolyta-wed {
  position: absolute; bottom: 22%; right: 42%; width: 8%; height: 52%;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pw-figure 4.5s ease-in-out infinite -1s;
}
.scn-palace-theseus-wooing .banner-l {
  position: absolute; left: 5%; top: 10%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 30% 30%; transform-origin: top center;
  animation: pw-banner 3s ease-in-out infinite alternate;
}
.scn-palace-theseus-wooing .banner-r {
  position: absolute; right: 5%; top: 12%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 30% 30%; transform-origin: top center;
  animation: pw-banner 3.5s ease-in-out infinite alternate-reverse;
}
.scn-palace-theseus-wooing .confetti {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 20% 30%, #f0d060 2%, transparent 4%), radial-gradient(circle at 70% 50%, #e8b030 1.5%, transparent 3%), radial-gradient(circle at 40% 80%, #f0c040 2.5%, transparent 5%);
  background-size: 100% 100%, 80% 80%, 60% 60%; background-repeat: no-repeat;
  animation: pw-confetti 5s linear infinite;
}
@keyframes pw-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pw-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pw-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes pw-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pw-banner { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(0.95) } }
@keyframes pw-confetti { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }

/* SCENE 4: egeus-complaint (tense bright interior) */
.scn-egeus-complaint {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 40%, #a89880 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
}
.scn-egeus-complaint .bg-sharp {
  position: absolute; inset: 0; background: repeating-linear-gradient(135deg, #d8c8b0 0px, #d8c8b0 3px, #c8b8a0 3px, #c8b8a0 6px);
  opacity: 0.15; animation: ec-bg 0.5s linear infinite;
}
.scn-egeus-complaint .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a080 0%, #908070 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: ec-floor 3s ease-in-out infinite alternate;
}
.scn-egeus-complaint .egeus {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-egeus 0.8s ease-in-out infinite alternate;
}
.scn-egeus-complaint .demetrius {
  position: absolute; bottom: 18%; right: 30%; width: 7%; height: 55%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ec-demetrius 1.2s ease-in-out infinite alternate-reverse;
}
.scn-egeus-complaint .herm-silhouette {
  position: absolute; bottom: 20%; left: 45%; width: 6%; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6; animation: ec-herm 2s ease-in-out infinite alternate;
}
.scn-egeus-complaint .shadow-stripe {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.15) 70%, transparent 100%);
  animation: ec-stripe 0.6s ease-in-out infinite alternate;
}
.scn-egeus-complaint .sword {
  position: absolute; bottom: 50%; left: 42%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #c0b0a0 0%, #887060 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(200,180,160,0.3);
  transform-origin: bottom center;
  animation: ec-sword 0.4s ease-in-out infinite alternate;
}
@keyframes ec-bg { 0% { opacity:0.1 } 50% { opacity:0.2 } 100% { opacity:0.1 } }
@keyframes ec-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.02) } }
@keyframes ec-egeus { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ec-demetrius { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) } }
@keyframes ec-herm { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ec-stripe { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes ec-sword { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.02) } 100% { transform: rotate(-3deg) scaleY(0.98) } }

/* bottom-alone */
.scn-bottom-alone { background: linear-gradient(180deg, #0b0b2a 0%, #1a1a3e 40%, #2a2a5a 70%, #1a1a3e 100%), radial-gradient(ellipse at 50% 0%, #3a3a6a 0%, transparent 70%); }
.scn-bottom-alone .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 70%); }
.scn-bottom-alone .moon { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #e8e8f0 0%, #b0b0d0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,200,240,0.3); animation: ba-moon 20s ease-in-out infinite alternate; }
.scn-bottom-alone .tree-left { position:absolute; bottom:20%; left:5%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 40% 40% 0 0; transform: skewX(-5deg); animation: ba-sway 6s ease-in-out infinite; }
.scn-bottom-alone .tree-right { position:absolute; bottom:20%; right:10%; width:35px; height:90px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 40% 40% 0 0; transform: skewX(5deg); animation: ba-sway 7s ease-in-out infinite reverse; }
.scn-bottom-alone .figure { position:absolute; bottom:15%; left:50%; width:40px; height:80px; margin-left:-20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; animation: ba-figure-bounce 2s ease-in-out infinite; }
.scn-bottom-alone .head { position:absolute; bottom:75%; left:50%; width:36px; height:40px; margin-left:-18px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ba-head-tilt 3s ease-in-out infinite; }
.scn-bottom-alone .head::before, .scn-bottom-alone .head::after { content:''; position:absolute; top:-15px; width:14px; height:28px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; } .scn-bottom-alone .head::before { left:-8px; transform: rotate(-15deg); } .scn-bottom-alone .head::after { right:-8px; transform: rotate(15deg); }
.scn-bottom-alone .lantern { position:absolute; bottom:28%; left:45%; width:8px; height:10px; background: radial-gradient(circle, #ffe0a0 0%, #cc8850 60%); border-radius: 30%; box-shadow: 0 0 20px 8px rgba(255,224,160,0.5); animation: ba-lantern 2s ease-in-out infinite alternate; }
.scn-bottom-alone .grass { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #0a2a0a 0%, #0f1f0f 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; filter: blur(2px); }
.scn-bottom-alone .firefly-a, .scn-bottom-alone .firefly-b { position:absolute; width:4px; height:4px; background: #c8e0ff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,224,255,0.8); animation: ba-float 6s ease-in-out infinite; } .scn-bottom-alone .firefly-a { left:20%; top:40%; animation-duration: 6s; animation-delay: -1s; } .scn-bottom-alone .firefly-b { left:70%; top:30%; animation-duration: 7.5s; animation-delay: -3s; }
@keyframes ba-moon { 0% { transform: translate(0,0) scale(1); opacity:0.9; } 50% { transform: translate(-5px,5px) scale(1.05); opacity:1; } 100% { transform: translate(0,0) scale(0.95); opacity:0.8; } }
@keyframes ba-sway { 0% { transform: skewX(-5deg); } 50% { transform: skewX(0deg); } 100% { transform: skewX(-5deg); } }
@keyframes ba-figure-bounce { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ba-head-tilt { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ba-lantern { 0% { box-shadow: 0 0 10px 4px rgba(255,224,160,0.3); opacity:0.8; } 50% { box-shadow: 0 0 30px 12px rgba(255,224,160,0.7); opacity:1; } 100% { box-shadow: 0 0 15px 6px rgba(255,224,160,0.4); opacity:0.9; } }
@keyframes ba-float { 0% { transform: translate(0,0); } 50% { transform: translate(10px,-15px); } 100% { transform: translate(0,0); } }

/* bottom-sings */
.scn-bottom-sings { background: linear-gradient(180deg, #0d0d2e 0%, #1f1f45 50%, #2a2a55 100%), radial-gradient(ellipse at 70% 20%, #3a3a6a 0%, transparent 60%); }
.scn-bottom-sings .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d2e 0%, transparent 60%); }
.scn-bottom-sings .moon { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle at 35% 35%, #d0d0f0 0%, #9090c0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(200,200,240,0.3); animation: bs-moon 25s ease-in-out infinite alternate; }
.scn-bottom-sings .bush { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a1a0a 0%, #142014 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; filter: blur(3px); }
.scn-bottom-sings .figure-body { position:absolute; bottom:15%; left:50%; width:50px; height:90px; margin-left:-25px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; animation: bs-breathe 3s ease-in-out infinite; }
.scn-bottom-sings .head { position:absolute; bottom:75%; left:50%; width:40px; height:45px; margin-left:-20px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bs-head-move 2s ease-in-out infinite; }
.scn-bottom-sings .ears { position:absolute; bottom:80%; left:50%; width:60px; height:20px; margin-left:-30px; top: -10px; background: transparent; }
.scn-bottom-sings .ears::before, .scn-bottom-sings .ears::after { content:''; position:absolute; top:-12px; width:16px; height:32px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; } .scn-bottom-sings .ears::before { left:-10px; transform: rotate(-20deg); } .scn-bottom-sings .ears::after { right:-10px; transform: rotate(20deg); }
.scn-bottom-sings .mouth { position:absolute; bottom:69%; left:50%; width:18px; height:12px; margin-left:-9px; background: #2a1a0a; border-radius: 0 0 50% 50% / 0 0 80% 80%; animation: bs-sing 1s ease-in-out infinite; }
.scn-bottom-sings .note-a, .scn-bottom-sings .note-b, .scn-bottom-sings .note-c { position:absolute; width:8px; height:8px; background: radial-gradient(circle, #c8d0ff 0%, #8090c0 60%); border-radius: 50% 0 50% 0; transform: rotate(45deg); box-shadow: 0 0 6px 2px rgba(200,208,255,0.6); } .scn-bottom-sings .note-a { top:20%; left:60%; animation: bs-float-up 3s ease-out infinite; } .scn-bottom-sings .note-b { top:15%; left:70%; animation: bs-float-up 4s ease-out infinite 0.5s; } .scn-bottom-sings .note-c { top:10%; left:50%; animation: bs-float-up 5s ease-out infinite 1s; }
@keyframes bs-moon { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.03); opacity:1; } 100% { transform: scale(0.97); opacity:0.8; } }
@keyframes bs-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bs-head-move { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes bs-sing { 0% { height:12px; border-radius:0 0 50% 50% / 0 0 80% 80%; } 50% { height:16px; border-radius:0 0 50% 50% / 0 0 100% 100%; } 100% { height:12px; } }
@keyframes bs-float-up { 0% { transform: translateY(0) rotate(45deg) scale(1); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translateY(-40px) rotate(45deg) scale(0.5); opacity:0; } }

/* titania-wakes */
.scn-titania-wakes { background: linear-gradient(180deg, #0f0f2e 0%, #1a1a45 40%, #2a2a5a 70%, #1a1a3e 100%), radial-gradient(ellipse at 30% 30%, #4a4a7a 0%, transparent 70%); }
.scn-titania-wakes .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f2e 0%, transparent 50%); }
.scn-titania-wakes .moon-glow { position:absolute; top:5%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #e0e0f8 0%, #b0b0d8 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,200,240,0.2); animation: tw-moon 30s ease-in-out infinite alternate; }
.scn-titania-wakes .flower-bed { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-titania-wakes .flowers { position:absolute; bottom:10%; left:5%; right:5%; top:30%; background: repeating-linear-gradient(45deg, #5a2a4a 0px, #5a2a4a 4px, #4a1a3a 4px, #4a1a3a 8px); border-radius: 50% 50% 0 0 / 80% 80% 0 0; mask-image: radial-gradient(ellipse at 50% 100%, black 30%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 30%, transparent 70%); animation: tw-flowers 8s ease-in-out infinite; }
.scn-titania-wakes .figure-titania { position:absolute; bottom:25%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: tw-situp 6s ease-in-out infinite; }
.scn-titania-wakes .hair { position:absolute; bottom:70%; left:25%; width:70px; height:30px; background: linear-gradient(180deg, #4a1a3a 0%, #2a0a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; filter: blur(4px); animation: tw-hair 10s ease-in-out infinite; }
.scn-titania-wakes .arm { position:absolute; bottom:45%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform-origin: bottom center; animation: tw-arm 5s ease-in-out infinite; }
.scn-titania-wakes .light-ray { position:absolute; top:-10%; left:25%; width:100px; height:150px; background: linear-gradient(180deg, rgba(200,200,240,0.08) 0%, rgba(200,200,240,0.02) 100%); transform: rotate(20deg); filter: blur(10px); animation: tw-light 15s ease-in-out infinite alternate; }
.scn-titania-wakes .petal { position:absolute; bottom:40%; left:60%; width:6px; height:6px; background: #8a5a7a; border-radius: 50% 0 50% 0; transform: rotate(30deg); animation: tw-petal-fall 8s ease-in infinite; }
@keyframes tw-moon { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes tw-flowers { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tw-situp { 0% { transform: scaleY(0.8); } 20% { transform: scaleY(1); } 80% { transform: scaleY(1); } 100% { transform: scaleY(0.8); } }
@keyframes tw-hair { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes tw-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-30deg); } }
@keyframes tw-light { 0% { opacity:0.3; transform: rotate(15deg); } 50% { opacity:0.6; transform: rotate(25deg); } 100% { opacity:0.2; transform: rotate(15deg); } }
@keyframes tw-petal-fall { 0% { transform: translateY(0) rotate(30deg); opacity:1; } 100% { transform: translateY(60px) rotate(90deg); opacity:0; } }

/* titania-loves-bottom */
.scn-titania-loves-bottom { background: linear-gradient(180deg, #0d0d2a 0%, #1a1a40 50%, #2a2a55 100%), radial-gradient(ellipse at 50% 30%, #4a4a7a 0%, transparent 70%); }
.scn-titania-loves-bottom .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 60%); }
.scn-titania-loves-bottom .moon { position:absolute; top:5%; left:15%; width:70px; height:70px; background: radial-gradient(circle at 30% 30%, #e0e0f0 0%, #b0b0d0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(200,200,240,0.3); animation: tl-moon 20s ease-in-out infinite alternate; }
.scn-titania-loves-bottom .bottom-body { position:absolute; bottom:15%; left:25%; width:55px; height:100px; margin-left:-27px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: tl-bottom-bounce 3s ease-in-out infinite; }
.scn-titania-loves-bottom .bottom-head { position:absolute; bottom:75%; left:25%; width:42px; height:45px; margin-left:-21px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tl-head-tilt 2.5s ease-in-out infinite; }
.scn-titania-loves-bottom .bottom-head::before, .scn-titania-loves-bottom .bottom-head::after { content:''; position:absolute; top:-14px; width:15px; height:30px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; } .scn-titania-loves-bottom .bottom-head::before { left:-10px; transform: rotate(-15deg); } .scn-titania-loves-bottom .bottom-head::after { right:-10px; transform: rotate(15deg); }
.scn-titania-loves-bottom .titania-body { position:absolute; bottom:20%; right:25%; width:45px; height:80px; margin-right:-22px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: tl-titania-float 4s ease-in-out infinite; }
.scn-titania-loves-bottom .titania-hair { position:absolute; bottom:75%; right:20%; width:60px; height:25px; background: linear-gradient(180deg, #4a1a3a 0%, #2a0a1a 100%); border-radius: 50% 50% 0 0 / 80% 70% 0 0; filter: blur(4px); animation: tl-hair-sway 7s ease-in-out infinite; }
.scn-titania-loves-bottom .flowers { position:absolute; bottom:15%; left:45%; right:45%; top:60%; background: repeating-conic-gradient(#5a2a4a 0deg 10deg, #4a1a3a 10deg 20deg); border-radius: 50% 50% 0 0 / 80% 80% 0 0; mask-image: radial-gradient(ellipse at 50% 100%, black 40%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 40%, transparent 70%); animation: tl-flowers 8s ease-in-out infinite; }
.scn-titania-loves-bottom .glow { position:absolute; top:30%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,180,0.15) 0%, transparent 70%); border-radius:50%; animation: tl-glow-pulse 4s ease-in-out infinite; }
.scn-titania-loves-bottom .sparkle-a, .scn-titania-loves-bottom .sparkle-b { position:absolute; width:3px; height:3px; background: #ffe8c0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,232,192,0.7); animation: tl-sparkle 3s ease-in-out infinite; } .scn-titania-loves-bottom .sparkle-a { left:45%; top:30%; animation-delay:0s; } .scn-titania-loves-bottom .sparkle-b { left:55%; top:40%; animation-delay:1.5s; }
@keyframes tl-moon { 0% { transform: translate(0,0) scale(1); opacity:0.9; } 50% { transform: translate(-4px,4px) scale(1.03); opacity:1; } 100% { transform: translate(0,0) scale(0.97); opacity:0.8; } }
@keyframes tl-bottom-bounce { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tl-head-tilt { 0% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(-6deg); } }
@keyframes tl-titania-float { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tl-hair-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes tl-flowers { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tl-glow-pulse { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes tl-sparkle { 0% { transform: scale(0) rotate(0deg); opacity:0; } 30% { transform: scale(1) rotate(30deg); opacity:1; } 70% { transform: scale(1) rotate(60deg); opacity:1; } 100% { transform: scale(0) rotate(90deg); opacity:0; } }

/* fairy-servants */
.scn-fairy-servants { background: linear-gradient(180deg, #0b1736 0%, #1a2a4a 60%) , radial-gradient(ellipse at 50% 90%, #2a3a6a 20%, transparent 80%); }
.scn-fairy-servants .bg { position:absolute; inset:0; background: linear-gradient(180deg, #162040 0%, transparent 100%); animation: fs-sky 20s ease-in-out infinite alternate; }
.scn-fairy-servants .grass { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 30% 30% 0 0; animation: fs-grass 8s ease-in-out infinite; }
.scn-fairy-servants .table { position:absolute; bottom:22%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-fairy-servants .fruits { position:absolute; bottom:27%; left:35%; width:30%; height:6%; background: radial-gradient(circle at 15% 50%, #b87878 20%, transparent 20%), radial-gradient(circle at 40% 50%, #c8553d 15%, transparent 15%), radial-gradient(circle at 65% 50%, #a0461a 12%, transparent 12%), radial-gradient(circle at 85% 50%, #702243 18%, transparent 18%); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: fs-fruits 6s ease-in-out infinite alternate; }
.scn-fairy-servants .servant { position:absolute; bottom:18%; left:30%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs-walk 4s ease-in-out infinite; }
.scn-fairy-servants .wing-left { position:absolute; bottom:28%; left:25%; width:10%; height:8%; background: rgba(200,180,255,0.3); border-radius: 50% 50% 20% 20%; filter: blur(2px); animation: fs-wing 1.5s ease-in-out infinite alternate; }
.scn-fairy-servants .wing-right { position:absolute; bottom:28%; left:37%; width:10%; height:8%; background: rgba(200,180,255,0.3); border-radius: 50% 50% 20% 20%; filter: blur(2px); animation: fs-wing 1.5s ease-in-out infinite alternate-reverse; }
.scn-fairy-servants .moth { position:absolute; top:30%; left:60%; width:3%; height:3%; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 4px #ffe0a0; animation: fs-moth 12s linear infinite; }
@keyframes fs-sky { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.8 } }
@keyframes fs-grass { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes fs-fruits { 0%{ transform: scale(1) rotate(0deg) } 50%{ transform: scale(1.05) rotate(2deg) } 100%{ transform: scale(1) rotate(0deg) } }
@keyframes fs-walk { 0%{ transform: translateX(0) translateY(0) rotate(-2deg) } 25%{ transform: translateX(1%) translateY(-1%) rotate(1deg) } 50%{ transform: translateX(2%) translateY(0) rotate(-1deg) } 75%{ transform: translateX(3%) translateY(-1%) rotate(2deg) } 100%{ transform: translateX(4%) translateY(0) rotate(0) } }
@keyframes fs-wing { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(1.5) } 100%{ transform: scaleY(1) } }
@keyframes fs-moth { 0%{ transform: translate(0,0) scale(1) rotate(0deg) } 25%{ transform: translate(3vw,-2vh) scale(1.2) rotate(90deg) } 50%{ transform: translate(6vw,0) scale(0.9) rotate(180deg) } 75%{ transform: translate(3vw,2vh) scale(1.1) rotate(270deg) } 100%{ transform: translate(0,0) scale(1) rotate(360deg) } }

/* bottom-meets-fairies */
.scn-bottom-meets-fairies { background: linear-gradient(180deg, #0a1930 0%, #1a2a4a 50%, #2a3a5a 100%), radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 70%); }
.scn-bottom-meets-fairies .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-bottom-meets-fairies .bottom-fig { position:absolute; bottom:20%; left:50%; width:16%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: bmf-bottom 3s ease-in-out infinite; }
.scn-bottom-meets-fairies .ear-l { position:absolute; bottom:55%; left:46%; width:4%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-15deg); animation: bmf-ear 2s ease-in-out infinite alternate; }
.scn-bottom-meets-fairies .ear-r { position:absolute; bottom:55%; right:46%; width:4%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); animation: bmf-ear 2s ease-in-out infinite alternate-reverse; }
.scn-bottom-meets-fairies .fairy-a { position:absolute; bottom:35%; left:20%; width:6%; height:12%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: bmf-fairy 5s ease-in-out infinite; }
.scn-bottom-meets-fairies .fairy-b { position:absolute; bottom:30%; right:20%; width:5%; height:10%; background: linear-gradient(180deg, #5e1a1d 0%, #702243 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: bmf-fairy 6s ease-in-out infinite 1s; }
.scn-bottom-meets-fairies .fairy-c { position:absolute; bottom:40%; left:35%; width:4%; height:9%; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: bmf-fairy 4.5s ease-in-out infinite -1s; }
.scn-bottom-meets-fairies .mustardseed { position:absolute; bottom:45%; left:40%; width:3%; height:3%; background: radial-gradient(circle, #f0d060 0%, #c0a030 70%); border-radius:50%; box-shadow: 0 0 12px 4px #f0d060; animation: bmf-seed 3s ease-in-out infinite; }
@keyframes bmf-bottom { 0%{ transform: translateX(-50%) translateY(0) rotate(0deg) } 50%{ transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100%{ transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes bmf-ear { 0%{ transform: rotate(-15deg) scaleY(1) } 50%{ transform: rotate(-25deg) scaleY(1.2) } 100%{ transform: rotate(-15deg) scaleY(1) } }
@keyframes bmf-fairy { 0%{ transform: translate(0,0) rotate(0deg) } 25%{ transform: translate(2vw,-1vh) rotate(15deg) } 50%{ transform: translate(4vw,0) rotate(0deg) } 75%{ transform: translate(2vw,1vh) rotate(-15deg) } 100%{ transform: translate(0,0) rotate(0deg) } }
@keyframes bmf-seed { 0%{ transform: scale(1) rotate(0deg); opacity:.8 } 50%{ transform: scale(1.3) rotate(180deg); opacity:1 } 100%{ transform: scale(1) rotate(360deg); opacity:.8 } }

/* titania-leads-bottom */
.scn-titania-leads-bottom { background: linear-gradient(180deg, #0b1a30 0%, #1a2a4a 50%, #3a2a4a 100%), radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%); }
.scn-titania-leads-bottom .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%); animation: tlb-sky 15s ease-in-out infinite alternate; }
.scn-titania-leads-bottom .path { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(135deg, #3a2a2a 0%, #5a3a3a 30%, #3a2a2a 70%, #5a3a3a 100%); border-radius: 0 80% 0 0 / 0 100% 0 0; transform: skewY(-3deg); }
.scn-titania-leads-bottom .bower { position:absolute; bottom:20%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 10px rgba(180,140,100,0.3); animation: tlb-bower 12s ease-in-out infinite; }
.scn-titania-leads-bottom .titania { position:absolute; bottom:16%; left:38%; width:10%; height:28%; background: linear-gradient(180deg, #a06040 0%, #6a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tlb-walk 5s ease-in-out infinite; }
.scn-titania-leads-bottom .bottom { position:absolute; bottom:16%; left:50%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tlb-walk 5s ease-in-out infinite -2.5s; }
.scn-titania-leads-bottom .flowers { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background: radial-gradient(circle at 10% 50%, #c8553d 10%, transparent 10%), radial-gradient(circle at 30% 50%, #b87878 8%, transparent 8%), radial-gradient(circle at 50% 50%, #a0461a 12%, transparent 12%), radial-gradient(circle at 70% 50%, #702243 9%, transparent 9%), radial-gradient(circle at 90% 50%, #c8553d 7%, transparent 7%); animation: tlb-flowers 8s ease-in-out infinite alternate; }
.scn-titania-leads-bottom .glow-lights { position:absolute; top:20%; left:0; width:100%; height:40%; background: radial-gradient(circle at 20% 30%, rgba(255,200,150,0.3) 0%, transparent 30%), radial-gradient(circle at 80% 60%, rgba(255,200,150,0.2) 0%, transparent 25%); animation: tlb-glow 4s ease-in-out infinite alternate; }
@keyframes tlb-sky { 0%{ opacity:.6 } 50%{ opacity:.9 } 100%{ opacity:.7 } }
@keyframes tlb-bower { 0%{ transform: scaleY(1) rotate(0deg) } 50%{ transform: scaleY(1.02) rotate(1deg) } 100%{ transform: scaleY(1) rotate(0deg) } }
@keyframes tlb-walk { 0%{ transform: translateX(0) translateY(0) rotate(-1deg) } 25%{ transform: translateX(1%) translateY(-1%) rotate(1deg) } 50%{ transform: translateX(2%) translateY(0) rotate(-1deg) } 75%{ transform: translateX(3%) translateY(-1%) rotate(1deg) } 100%{ transform: translateX(4%) translateY(0) rotate(0) } }
@keyframes tlb-flowers { 0%{ transform: scale(1) rotate(0deg) } 50%{ transform: scale(1.05) rotate(2deg) } 100%{ transform: scale(1) rotate(0deg) } }
@keyframes tlb-glow { 0%{ opacity:.5 } 50%{ opacity:1 } 100%{ opacity:.6 } }

/* oberon-puck-return */
.scn-oberon-puck-return { background: linear-gradient(180deg, #050a18 0%, #0a1525 40%, #0f1f2f 100%), radial-gradient(ellipse at 50% 90%, #1a2a3a 0%, transparent 80%); }
.scn-oberon-puck-return .forest-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a1a0a 0%, #051505 100%); animation: opr-forest 20s ease-in-out infinite alternate; }
.scn-oberon-puck-return .tree-left { position:absolute; bottom:0; left:5%; width:8%; height:70%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 20% 20% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.5); animation: opr-tree 12s ease-in-out infinite; }
.scn-oberon-puck-return .tree-right { position:absolute; bottom:0; right:5%; width:6%; height:65%; background: linear-gradient(180deg, #1a1a0a 0%, #050500 100%); border-radius: 20% 20% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: opr-tree 14s ease-in-out infinite 1s; }
.scn-oberon-puck-return .oberon { position:absolute; bottom:15%; left:30%; width:12%; height:35%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: opr-oberon 6s ease-in-out infinite; }
.scn-oberon-puck-return .puck { position:absolute; bottom:10%; right:30%; width:10%; height:22%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: opr-puck 4s ease-in-out infinite alternate; }
.scn-oberon-puck-return .moon { position:absolute; top:8%; right:15%; width:10%; height:10%; background: radial-gradient(circle, #c0c8d0 0%, #809090 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,200,208,.4); animation: opr-moon 20s ease-in-out infinite alternate; }
.scn-oberon-puck-return .shadows { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 70%, rgba(0,0,0,.6) 100%); pointer-events:none; animation: opr-shadows 8s ease-in-out infinite alternate; }
@keyframes opr-forest { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.9 } }
@keyframes opr-tree { 0%{ transform: scaleY(1) rotate(0deg) } 50%{ transform: scaleY(1.02) rotate(1deg) } 100%{ transform: scaleY(1) rotate(0deg) } }
@keyframes opr-oberon { 0%{ transform: translateX(0) translateY(0) rotate(0deg) } 33%{ transform: translateX(1%) translateY(-2%) rotate(2deg) } 66%{ transform: translateX(-1%) translateY(0) rotate(-2deg) } 100%{ transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes opr-puck { 0%{ transform: translate(0,0) scale(1) rotate(0deg) } 50%{ transform: translate(2vw,-1vh) scale(1.1) rotate(15deg) } 100%{ transform: translate(0,0) scale(1) rotate(0deg) } }
@keyframes opr-moon { 0%{ transform: scale(1) rotate(0deg) } 50%{ transform: scale(1.05) rotate(5deg) } 100%{ transform: scale(1) rotate(0deg) } }
@keyframes opr-shadows { 0%{ opacity:.5 } 50%{ opacity:.8 } 100%{ opacity:.6 } }

/* === pyramus-lament-discovery === */
.scn-pl { background: linear-gradient(180deg, #3a1a0a 0%, #2c0e05 40%, #1a0804 100%), radial-gradient(ellipse at 50% 100%, #ff6a33 0%, transparent 50%); }
.scn-pl .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #2c0e05 0%, transparent 60%); animation: pl-backdrop 10s ease-in-out infinite alternate; }
.scn-pl .wall { position:absolute; bottom:20%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.5); }
.scn-pl .wall::before { content:''; position:absolute; top:45%; left:48%; width:6px; height:8px; background:#2a1a0a; border-radius:50%; box-shadow: 0 0 4px #ff8800; } /* chink */
.scn-pl .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:20% 20% 0 0 / 50% 50% 0 0; }
.scn-pl .moon { position:absolute; top:8%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #ffcc66 0%, #ff9933 60%, transparent 70%); border-radius:50%; filter: blur(2px); animation: pl-moon 8s ease-in-out infinite alternate; }
.scn-pl .pyramus { position:absolute; bottom:18%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-pyramus 4s ease-in-out infinite; }
.scn-pl .pyramus::after { content:''; position:absolute; top:-10px; left:0; width:20px; height:12px; background: radial-gradient(circle, #1a0e08 0%, transparent 70%); border-radius:50%; transform: rotate(-20deg); } /* raised arm */
.scn-pl .cloak { position:absolute; bottom:15%; left:55%; width:35px; height:20px; background: radial-gradient(ellipse at 50% 0%, #a64b2a 0%, #5e2a1a 100%); border-radius:30% 30% 50% 50% / 20% 20% 40% 40%; transform: rotate(15deg); animation: pl-cloak 6s ease-in-out infinite; }
.scn-pl .flame { position:absolute; bottom:15%; left:10%; width:12px; height:25px; background: radial-gradient(ellipse, #ff8822 0%, #cc4400 50%, transparent 70%); filter: blur(1px); animation: pl-flame 0.5s ease-in-out infinite alternate; }
.scn-pl .cloud { position:absolute; top:12%; left:-40px; width:60px; height:12px; background: linear-gradient(90deg, rgba(255,180,80,.2) 0%, rgba(255,120,40,.1) 100%); border-radius:50%; filter: blur(4px); animation: pl-cloud 30s linear infinite; }
@keyframes pl-backdrop { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes pl-moon { 0% { transform: scale(.9) translateY(0); filter: blur(2px); } 50% { transform: scale(1.1) translateY(-3px); filter: blur(1px); } 100% { transform: scale(.95) translateY(2px); filter: blur(3px); } }
@keyframes pl-pyramus { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pl-cloak { 0%,100% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } }
@keyframes pl-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.2) scaleX(.8); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.1); opacity:.7; } }
@keyframes pl-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

/* === item-sword === */
.scn-is { background: linear-gradient(180deg, #3a200a 0%, #2c1205 40%, #1a0800 100%), radial-gradient(ellipse at 50% 70%, #ff7733 0%, transparent 40%); }
.scn-is .stage { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); }
.scn-is .curtain { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a04430 0%, #6a2a1a 50%, #3a1810 100%); border-radius:0 0 60% 60% / 0 0 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: is-curtain 12s ease-in-out infinite alternate; }
.scn-is .stone { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:60px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 6px 10px rgba(0,0,0,.5); }
.scn-is .sword-blade { position:absolute; bottom:42%; left:50%; transform:translateX(-50%); width:6px; height:70px; background: linear-gradient(180deg, #d4c4a0 0%, #a09070 50%, #706050 100%); border-radius:3px 3px 40% 40%; box-shadow: 0 0 6px #ffaa44, inset 0 0 4px rgba(0,0,0,.3); animation: is-sword-glow 3s ease-in-out infinite alternate; }
.scn-is .sword-blade::after { content:''; position:absolute; top:-8px; left:-5px; width:16px; height:12px; background: radial-gradient(ellipse, #c0a040 0%, #806020 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); } /* guard */
.scn-is .sword-hilt { position:absolute; bottom:58%; left:50%; transform:translateX(-50%); width:12px; height:14px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius:20% 20% 40% 40%; }
.scn-is .spotlight { position:absolute; top:0; left:50%; transform:translateX(-50%); width:80px; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.4) 0%, transparent 70%); pointer-events:none; animation: is-spotlight 6s ease-in-out infinite; }
.scn-is .sparks { position:absolute; bottom:45%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ffcc44 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: is-sparks 2s ease-in-out infinite; }
@keyframes is-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes is-sword-glow { 0% { box-shadow: 0 0 4px #ffaa44, inset 0 0 2px rgba(0,0,0,.3); } 50% { box-shadow: 0 0 12px #ffcc66, 0 0 20px rgba(255,204,102,.4); } 100% { box-shadow: 0 0 6px #ffaa44, inset 0 0 4px rgba(0,0,0,.3); } }
@keyframes is-spotlight { 0% { opacity:.5; } 50% { opacity:.8; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:.6; transform: translateX(-50%) scaleY(1); } }
@keyframes is-sparks { 0%,100% { transform: translate(0,0) scale(1); opacity:.6; } 25% { transform: translate(5px,-8px) scale(1.3); opacity:1; } 50% { transform: translate(-3px,-15px) scale(1.5); opacity:.8; } 75% { transform: translate(2px,-10px) scale(1.1); opacity:.7; } }

/* === audience-commentary-after-death === */
.scn-ac { background: linear-gradient(180deg, #2a0e05 0%, #1a0602 40%, #0a0200 100%), radial-gradient(ellipse at 50% 80%, #ff6622 0%, transparent 40%); }
.scn-ac .stage-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; }
.scn-ac .backdrop-curtain { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #883322 0%, #5a1a0a 50%, #2a0800 100%); border-radius:0 0 80% 80% / 0 0 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: ac-curtain 8s ease-in-out infinite alternate; }
.scn-ac .pyramus-dead { position:absolute; bottom:20%; left:40%; width:25px; height:20px; background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%); border-radius:50% 50% 10% 10% / 40% 40% 20% 20%; transform: rotate(90deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ac-dead 6s ease-in-out infinite; }
.scn-ac .audience-1 { position:absolute; bottom:25%; left:10%; width:18px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: ac-audience 4s ease-in-out infinite; }
.scn-ac .audience-2 { position:absolute; bottom:23%; left:30%; width:20px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: ac-audience 4.5s ease-in-out infinite 1s; }
.scn-ac .audience-3 { position:absolute; bottom:24%; left:55%; width:16px; height:28px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: ac-audience 5s ease-in-out infinite 0.5s; }
.scn-ac .footlights { position:absolute; bottom:30%; left:20%; width:60%; height:8px; background: linear-gradient(90deg, transparent 0%, #ff8844 20%, #ffaa66 50%, #ff8844 80%, transparent 100%); filter: blur(3px); animation: ac-footlights 3s ease-in-out infinite alternate; }
.scn-ac .thought { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:40px; height:30px; background: radial-gradient(ellipse, rgba(255,220,180,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: ac-thought 2s ease-in-out infinite; }
@keyframes ac-curtain { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.9); } }
@keyframes ac-dead { 0%,100% { transform: rotate(90deg) scale(1); } 50% { transform: rotate(95deg) scale(1.02); } }
@keyframes ac-audience { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ac-footlights { 0% { opacity:.6; } 50% { opacity:1; filter: blur(2px); } 100% { opacity:.7; filter: blur(4px); } }
@keyframes ac-thought { 0%,100% { transform: translateX(-50%) scale(.9); opacity:.3; } 50% { transform: translateX(-50%) scale(1.2); opacity:.5; } }

/* === thisbe-entrance-lament === */
.scn-te { background: linear-gradient(180deg, #2a1005 0%, #1a0802 40%, #0a0400 100%), radial-gradient(ellipse at 50% 100%, #ff5522 0%, transparent 50%); }
.scn-te .night-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a0a04 0%, transparent 100%); animation: te-sky 12s ease-in-out infinite alternate; }
.scn-te .tree { position:absolute; bottom:15%; left:20%; width:8px; height:60%; background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%); border-radius:4px; transform: rotate(-5deg); }
.scn-te .tree::before { content:''; position:absolute; top:10%; left:50%; width:50px; height:20px; background: radial-gradient(ellipse, #2a1a0a 0%, transparent 80%); border-radius:50%; transform: rotate(20deg); } /* branch */
.scn-te .tomb { position:absolute; bottom:20%; left:55%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-te .thisbe { position:absolute; bottom:18%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-thisbe 3s ease-in-out infinite; }
.scn-te .thisbe::after { content:''; position:absolute; top:-8px; left:2px; width:14px; height:10px; background: radial-gradient(circle, #2a1410 0%, transparent 80%); border-radius:50%; transform: rotate(-30deg); } /* raised arm */
.scn-te .pyramus-body { position:absolute; bottom:15%; left:48%; width:22px; height:18px; background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%); border-radius:50% 50% 10% 10% / 40% 40% 20% 20%; transform: rotate(100deg); }
.scn-te .sword { position:absolute; bottom:20%; left:52%; width:4px; height:40px; background: linear-gradient(180deg, #c0a880 0%, #907050 100%); border-radius:2px; transform: rotate(25deg); box-shadow: 0 0 4px #ffaa44; animation: te-sword-glow 3s ease-in-out infinite alternate; }
.scn-te .campfire { position:absolute; bottom:10%; left:10%; width:18px; height:25px; background: radial-gradient(ellipse, #ff8822 0%, #cc4400 40%, transparent 70%); filter: blur(2px); animation: te-fire 0.8s ease-in-out infinite alternate; }
.scn-te .bloodstain { position:absolute; bottom:14%; left:46%; width:16px; height:10px; background: radial-gradient(ellipse, #7a3322 0%, #4a1a10 100%); border-radius:50%; filter: blur(1px); animation: te-blood 6s ease-in-out infinite; }
@keyframes te-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes te-thisbe { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-8deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes te-sword-glow { 0% { box-shadow: 0 0 2px #ffaa44; } 50% { box-shadow: 0 0 8px #ffcc66, 0 0 12px rgba(255,204,102,.3); } 100% { box-shadow: 0 0 4px #ffaa44; } }
@keyframes te-fire { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.3) scaleX(.8); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.1); opacity:.7; } }
@keyframes te-blood { 0%,100% { opacity:.6; transform: scale(1); } 50% { opacity:.8; transform: scale(1.05); } }

.scn-oberon-reconciliation {
  background: linear-gradient(180deg, #0f1224 0%, #1c2040 40%, #2c2a5a 70%, #1a1a3a 100%),
              radial-gradient(circle at 50% 20%, #405080 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-oberon-reconciliation .moon {
  position:absolute; top:6%; left:50%; width:60px; height:60px;
  background: radial-gradient(circle, #d0c8f0 0%, #a098d0 50%, transparent 70%);
  border-radius:50%; transform:translateX(-50%);
  box-shadow: 0 0 40px 20px #6060a0;
  animation: rec-moon 10s ease-in-out infinite alternate;
}
.scn-oberon-reconciliation .tree {
  position:absolute; bottom:10%; width:12px; height:70%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius:30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
}
.scn-oberon-reconciliation .tree-left { left:8%; animation: rec-tree-l 8s ease-in-out infinite; }
.scn-oberon-reconciliation .tree-right { right:8%; animation: rec-tree-r 10s ease-in-out infinite reverse; }
.scn-oberon-reconciliation .figure {
  position:absolute; bottom:12%; width:20px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #1c1c2e 30%, #0d0d18 70%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-oberon-reconciliation .figure-oberon { left:30%; animation: rec-oberon 6s ease-in-out infinite; }
.scn-oberon-reconciliation .figure-helena { right:30%; width:18px; height:44px; animation: rec-helena 7s ease-in-out infinite; }
.scn-oberon-reconciliation .fireflies {
  position:absolute; inset:0; pointer-events:none;
}
.scn-oberon-reconciliation .fireflies::before,
.scn-oberon-reconciliation .fireflies::after {
  content:''; position:absolute; width:4px; height:4px; border-radius:50%;
  background:#b0d0ff; box-shadow:0 0 6px 2px #b0d0ff;
  animation: rec-firefly 4s ease-in-out infinite alternate;
}
.scn-oberon-reconciliation .fireflies::before { top:30%; left:20%; animation-delay:0s; }
.scn-oberon-reconciliation .fireflies::after { top:40%; right:25%; animation-delay:1.5s; width:3px; height:3px; }
@keyframes rec-moon { 0% { opacity:.8; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:.85; transform:translateX(-50%) scale(.98); } }
@keyframes rec-tree-l { 0% { transform:rotate(-1deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes rec-tree-r { 0% { transform:rotate(1deg); } 50% { transform:rotate(-2deg); } 100% { transform:rotate(1deg); } }
@keyframes rec-oberon { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(3px) rotate(1deg); } 50% { transform:translateX(0) rotate(2deg); } 75% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes rec-helena { 0% { transform:translateY(0) rotate(0); } 33% { transform:translateY(-2px) rotate(2deg); } 66% { transform:translateY(1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes rec-firefly { 0% { opacity:.3; transform:translate(0,0) scale(1); } 50% { opacity:.8; transform:translate(5px, -8px) scale(1.5); } 100% { opacity:.4; transform:translate(-3px, 5px) scale(.8); } }

.scn-theseus-hunting {
  background: linear-gradient(180deg, #7a9bcf 0%, #c8d9e8 25%, #f6e3c5 55%, #e5a66b 80%, #c08050 100%),
              radial-gradient(circle at 70% 85%, #f9d99a 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-theseus-hunting .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d0dff0 0%, transparent 100%);
  animation: hun-sky 20s ease-in-out infinite alternate;
}
.scn-theseus-hunting .hills-back {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3d5a3d 0%, #2a402a 100%);
  border-radius:40% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.3);
  animation: hun-hills 30s ease-in-out infinite;
}
.scn-theseus-hunting .hills-front {
  position:absolute; bottom:10%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius:30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: hun-hills 25s ease-in-out infinite reverse;
}
.scn-theseus-hunting .sun {
  position:absolute; bottom:30%; right:15%; width:70px; height:70px;
  background: radial-gradient(circle, #ffe080 0%, #f6c040 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px #f0b030;
  animation: hun-sun 15s ease-in-out infinite alternate;
}
.scn-theseus-hunting .figure-theseus {
  position:absolute; bottom:8%; left:20%; width:22px; height:54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hun-walk 6s ease-in-out infinite;
}
.scn-theseus-hunting .hounds {
  position:absolute; bottom:6%; left:38%; width:40px; height:18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:30% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hun-run 5s ease-in-out infinite;
}
.scn-theseus-hunting .hounds::after {
  content:''; position:absolute; bottom:0; left:10px; width:28px; height:16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:30% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hun-run 5s ease-in-out infinite reverse;
}
.scn-theseus-hunting .birds {
  position:absolute; top:10%; left:5%; width:30px; height:14px;
  background: transparent;
  border-top: 3px solid #2a2a3a;
  border-radius: 50%;
  transform: rotate(15deg);
  animation: hun-birds 40s linear infinite;
}
@keyframes hun-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes hun-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hun-sun { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.9; transform: scale(.98); } }
@keyframes hun-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(15px) rotate(-2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes hun-run { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes hun-birds { 0% { transform: translateX(0) rotate(15deg); } 50% { transform: translateX(30vw) rotate(25deg); } 100% { transform: translateX(60vw) rotate(15deg); } }

.scn-lovers-waking-wonder {
  background: linear-gradient(180deg, #f0d8b0 0%, #ffebd0 30%, #ffe0a0 60%, #c08860 100%),
              radial-gradient(circle at 50% 90%, #f8c890 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-lovers-waking-wonder .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #fce0b0 0%, transparent 100%);
  animation: wak-sky 18s ease-in-out infinite alternate;
}
.scn-lovers-waking-wonder .temple-silhouette {
  position:absolute; bottom:20%; left:40%; width:80px; height:120px;
  background: linear-gradient(180deg, #8a705a 0%, #4a3a2a 100%);
  border-radius:20% 20% 0 0;
  box-shadow: 0 0 20px 5px #b09070;
  animation: wak-temple 12s ease-in-out infinite;
}
.scn-lovers-waking-wonder .ground {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius:20% 20% 0 0;
}
.scn-lovers-waking-wonder .figure {
  position:absolute; bottom:5%; width:18px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #8a7a5a 30%, #5a4a2a 70%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wak-rise 8s ease-in-out infinite;
}
.scn-lovers-waking-wonder .figure-lysander { left:18%; animation-delay:0s; }
.scn-lovers-waking-wonder .figure-helena { left:30%; width:16px; height:46px; animation-delay:1s; }
.scn-lovers-waking-wonder .figure-demetrius { right:30%; animation-delay:2s; }
.scn-lovers-waking-wonder .figure-hermia { right:18%; width:16px; height:46px; animation-delay:3s; }
.scn-lovers-waking-wonder .petals {
  position:absolute; top:10%; left:5%; width:12px; height:12px;
  background: radial-gradient(circle, #f0b0a0 0%, #e08070 100%);
  border-radius:50% 0 50% 0;
  animation: wak-petal 14s linear infinite;
}
.scn-lovers-waking-wonder .petals::after {
  content:''; position:absolute; top:40%; left:70%; width:10px; height:10px;
  background: radial-gradient(circle, #f0b0a0 0%, #d08070 100%);
  border-radius:50% 0 50% 0;
  animation: wak-petal 16s linear infinite reverse;
}
@keyframes wak-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes wak-temple { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.8; transform: scale(1.02); } 100% { opacity:.7; transform: scale(1); } }
@keyframes wak-rise { 0% { transform: translateY(30px) rotate(5deg); opacity:.3; } 33% { transform: translateY(0) rotate(0); opacity:1; } 66% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wak-petal { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(20vw) translateY(-10vh) rotate(180deg); } 100% { transform: translateX(40vw) translateY(0) rotate(360deg); } }

.scn-bottom-dream-soliloquy {
  background: linear-gradient(180deg, #f5e6c0 0%, #f0d8a0 30%, #d8b880 60%, #a07850 100%),
              radial-gradient(ellipse at 50% 40%, #ffe8b0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-bottom-dream-soliloquy .bottom-figure {
  position:absolute; bottom:10%; left:50%; width:45px; height:80px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: bot-figure 7s ease-in-out infinite;
}
.scn-bottom-dream-soliloquy .bottom-figure::before {
  content:''; position:absolute; top: -20px; left:50%; width:30px; height:25px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:50% 50% 20% 20%;
  transform: translateX(-50%);
}
.scn-bottom-dream-soliloquy .tree-trunk {
  position:absolute; bottom:0; right:10%; width:20px; height:60%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 40%, #3a2a1a 100%);
  border-radius:10% 10% 5% 5%;
  animation: bot-trunk 15s ease-in-out infinite alternate;
}
.scn-bottom-dream-soliloquy .light-beam {
  position:absolute; top:0; width:50px; height:40%;
  background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, transparent 100%);
  border-radius:50% / 10% 10% 30% 30%;
  transform: skewX(-10deg);
  animation: bot-beam 6s ease-in-out infinite alternate;
}
.scn-bottom-dream-soliloquy .beam-1 { left:20%; filter: blur(3px); animation-delay:0s; }
.scn-bottom-dream-soliloquy .beam-2 { right:25%; transform: skewX(10deg); animation-delay:2s; filter: blur(4px); }
.scn-bottom-dream-soliloquy .flowers {
  position:absolute; bottom:0; left:5%; width:30px; height:20px;
  background: radial-gradient(circle, #f0a070 0%, #c08050 60%);
  border-radius:50% 50% 0 0;
  animation: bot-flower 8s ease-in-out infinite;
}
.scn-bottom-dream-soliloquy .butterfly {
  position:absolute; top:20%; left:60%; width:16px; height:12px;
  background: radial-gradient(ellipse, #f0c080 0%, #c89050 100%);
  border-radius:50% 50% 50% 50% / 50% 50% 50% 50%;
  animation: bot-butterfly 5s ease-in-out infinite;
}
@keyframes bot-figure { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes bot-trunk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bot-beam { 0% { opacity:.3; transform: skewX(-10deg) scaleY(1); } 50% { opacity:.7; transform: skewX(-10deg) scaleY(1.1); } 100% { opacity:.4; transform: skewX(-10deg) scaleY(1); } }
@keyframes bot-flower { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes bot-butterfly { 0% { transform: translate(0,0) rotate(-5deg); } 25% { transform: translate(8px, -5px) rotate(10deg); } 50% { transform: translate(16px, 0) rotate(0); } 75% { transform: translate(8px, 5px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-5deg); } }

/* ===== wall-audience-interaction ===== */
.scn-wall-audience-interaction {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #2a0a00 100%),
              radial-gradient(ellipse at 50% 40%, #ff8c00 0%, transparent 60%);
}
.scn-wall-audience-interaction .fire {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 40%, #ffa500 0%, #8b4513 70%, #1a0a00 100%);
  animation: wai-fire 5s ease-in-out infinite alternate;
}
.scn-wall-audience-interaction .wall {
  position:absolute; bottom:10%; left:35%; width:30%; height:70%;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 50%, #3a2a0a 100%);
  border-radius:4px; box-shadow:0 8px 20px rgba(0,0,0,0.7);
  animation: wai-wall 6s ease-in-out infinite;
}
.scn-wall-audience-interaction .chink {
  position:absolute; bottom:45%; left:50%; width:12px; height:8px;
  transform:translateX(-50%); background:#1a0a00; border-radius:50%;
  box-shadow:inset 0 0 4px #ffd700; animation: wai-chink 4s ease-in-out infinite;
}
.scn-wall-audience-interaction .pyramus {
  position:absolute; bottom:20%; left:20%; width:40px; height:80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wai-figure 3s ease-in-out infinite;
}
.scn-wall-audience-interaction .hand {
  position:absolute; bottom:40%; left:30%; width:20px; height:10px;
  background:#2a1a0a; border-radius: 50% 50% 0 0; transform-origin: left center;
  animation: wai-hand 2s ease-in-out infinite;
}
.scn-wall-audience-interaction .ground {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
@keyframes wai-fire {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes wai-wall {
  0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); }
}
@keyframes wai-chink {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.3); }
}
@keyframes wai-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes wai-hand {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(5px); }
  100% { transform: rotate(-10deg) translateX(0); }
}

/* ===== wall-romance ===== */
.scn-wall-romance {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #2a0a00 100%),
              radial-gradient(ellipse at 50% 40%, #ffa500 0%, transparent 60%);
}
.scn-wall-romance .fire {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 40%, #ffb347 0%, #8b4513 70%, #1a0a00 100%);
  animation: wr-fire 7s ease-in-out infinite alternate;
}
.scn-wall-romance .wall {
  position:absolute; bottom:10%; left:35%; width:30%; height:70%;
  background: linear-gradient(180deg, #9a6530 0%, #6a4520 50%, #4a2a10 100%);
  border-radius:4px; box-shadow:0 8px 20px rgba(0,0,0,0.7);
  animation: wr-wall 8s ease-in-out infinite;
}
.scn-wall-romance .chink {
  position:absolute; bottom:45%; left:50%; width:14px; height:10px;
  transform:translateX(-50%); background:#1a0a00; border-radius:50%;
  box-shadow:inset 0 0 4px #ffd700; animation: wr-chink 4s ease-in-out infinite;
}
.scn-wall-romance .thisby {
  position:absolute; bottom:20%; left:10%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-approach 4s ease-in-out infinite;
}
.scn-wall-romance .pyramus {
  position:absolute; bottom:20%; right:10%; width:35px; height:75px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-approach 4s ease-in-out infinite reverse;
}
.scn-wall-romance .kiss {
  position:absolute; bottom:44%; left:50%; width:12px; height:6px;
  transform:translateX(-50%); background:#e8a050; border-radius:50%;
  box-shadow:0 0 8px #ffd700; animation: wr-kiss 3s ease-in-out infinite;
}
.scn-wall-romance .sparkle {
  position:absolute; top:30%; left:50%; width:4px; height:4px;
  background:#ffd700; border-radius:50%;
  box-shadow: 0 0 6px 2px #ffd700, 0 0 12px 4px rgba(255,215,0,0.5);
  animation: wr-sparkle 2s ease-in-out infinite;
}
@keyframes wr-fire {
  0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes wr-wall {
  0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); }
}
@keyframes wr-chink {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.4); }
}
@keyframes wr-approach {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes wr-kiss {
  0%,100% { transform: translateX(-50%) scale(1); opacity:0.8; }
  50% { transform: translateX(-50%) scale(1.2); opacity:1; }
}
@keyframes wr-sparkle {
  0% { transform: translate(0,0) scale(0.5); opacity:0; }
  50% { transform: translate(10px,-20px) scale(1.5); opacity:1; }
  100% { transform: translate(20px,-40px) scale(0.5); opacity:0; }
}

/* ===== wall-exit-and-commentary ===== */
.scn-wall-exit-and-commentary {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #2a0a00 100%),
              radial-gradient(ellipse at 50% 40%, #ff8c00 0%, transparent 60%);
}
.scn-wall-exit-and-commentary .fire {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 40%, #ffa500 0%, #8b4513 70%, #1a0a00 100%);
  animation: wec-fire 6s ease-in-out infinite alternate;
}
.scn-wall-exit-and-commentary .wall {
  position:absolute; bottom:10%; left:35%; width:30%; height:70%;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 50%, #3a2a0a 100%);
  border-radius:4px; box-shadow:0 8px 20px rgba(0,0,0,0.7);
  animation: wec-wall 7s ease-in-out infinite;
}
.scn-wall-exit-and-commentary .chink {
  position:absolute; bottom:45%; left:50%; width:10px; height:8px;
  transform:translateX(-50%); background:#1a0a00; border-radius:50%;
  box-shadow:inset 0 0 4px #ffd700; animation: wec-chink 5s ease-in-out infinite;
}
.scn-wall-exit-and-commentary .pyramus {
  position:absolute; bottom:20%; left:20%; width:35px; height:75px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wec-exit-left 6s ease-in-out infinite;
}
.scn-wall-exit-and-commentary .thisby {
  position:absolute; bottom:20%; right:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wec-exit-right 6s ease-in-out infinite;
}
.scn-wall-exit-and-commentary .mouth {
  position:absolute; bottom:44%; left:50%; width:14px; height:8px;
  transform:translateX(-50%); background:#d08040; border-radius:50%;
  box-shadow:0 0 6px #ffd700; animation: wec-mouth 3s ease-in-out infinite;
}
@keyframes wec-fire {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes wec-wall {
  0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.01); }
}
@keyframes wec-chink {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.2); }
}
@keyframes wec-exit-left {
  0% { transform: translateX(0) rotate(0); opacity:1; }
  50% { transform: translateX(-40px) rotate(-5deg); opacity:0.5; }
  100% { transform: translateX(-80px) rotate(-10deg); opacity:0; }
}
@keyframes wec-exit-right {
  0% { transform: translateX(0) rotate(0); opacity:1; }
  50% { transform: translateX(40px) rotate(5deg); opacity:0.5; }
  100% { transform: translateX(80px) rotate(10deg); opacity:0; }
}
@keyframes wec-mouth {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.8,1.5); }
}

/* ===== lion-moonshine-introduction ===== */
.scn-lion-moonshine-introduction {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #ffa500 0%, transparent 50%);
}
.scn-lion-moonshine-introduction .night {
  position:absolute; inset:0;
  background: radial-gradient(circle at 60% 30%, #ffa500 0%, #4a3a1a 60%, #0a0a1a 100%);
  animation: lmi-night 10s ease-in-out infinite alternate;
}
.scn-lion-moonshine-introduction .moon {
  position:absolute; top:10%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle at 60% 40%, #ffd700 0%, #daa520 100%);
  border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.4);
  animation: lmi-moon 8s ease-in-out infinite;
}
.scn-lion-moonshine-introduction .lion {
  position:absolute; bottom:15%; left:30%; width:80px; height:50px;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmi-lion 4s ease-in-out infinite;
}
.scn-lion-moonshine-introduction .moonshine {
  position:absolute; bottom:15%; right:25%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmi-figure 5s ease-in-out infinite;
}
.scn-lion-moonshine-introduction .ground {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-lion-moonshine-introduction .stars {
  position:absolute; top:5%; left:10%; width:4px; height:4px;
  background:#fff; border-radius:50%;
  box-shadow: 0 0 2px #fff, 15px 20px 0 #fff, 40px 5px 0 #fff, 80px 15px 0 #fff;
  animation: lmi-twinkle 3s ease-in-out infinite;
}
@keyframes lmi-night {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes lmi-moon {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-4px); }
}
@keyframes lmi-lion {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes lmi-figure {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes lmi-twinkle {
  0%,100% { opacity:0.3; }
  50% { opacity:1; }
}

/* quince-house-rehearsal */
.scn-quince-house-rehearsal {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #dcc494 100%),
    radial-gradient(ellipse at 70% 30%, #ffffff88 0%, transparent 60%);
}
.scn-quince-house-rehearsal .stage {
  position: absolute;
  inset: auto 5% 0 5%;
  height: 30%;
  background: linear-gradient(0deg, #8b6b4a 0%, #a88a6a 30%, #9c7c5c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
  animation: qh-stage 4s ease-in-out infinite;
}
.scn-quince-house-rehearsal .window {
  position: absolute;
  inset: 8% 25% auto 25%;
  height: 25%;
  background: linear-gradient(180deg, #8ec8e8 0%, #c0e8ff 50%, #a0d8f0 100%);
  border: 6px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #ffffff80, 0 0 30px #ffffff40;
  animation: qh-window 8s ease-in-out infinite alternate;
}
.scn-quince-house-rehearsal .actor-left {
  position: absolute;
  bottom: 32%;
  left: 22%;
  width: 12%;
  height: 40%;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #c8553d 0%, #8a3a2a 70%, #3a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qh-act-left 3s ease-in-out infinite;
}
.scn-quince-house-rehearsal .actor-right {
  position: absolute;
  bottom: 30%;
  right: 20%;
  width: 14%;
  height: 45%;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #b87878 0%, #7a5050 70%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qh-act-right 3.5s ease-in-out infinite 0.5s;
}
.scn-quince-house-rehearsal .prop {
  position: absolute;
  bottom: 18%;
  left: 45%;
  width: 10%;
  height: 8%;
  background: radial-gradient(circle, #a0461a 0%, #6b2a0a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: qh-prop 2s ease-in-out infinite alternate;
}
.scn-quince-house-rehearsal .light-ray {
  position: absolute;
  top: 6%;
  left: 20%;
  width: 40%;
  height: 60%;
  background: linear-gradient(135deg, #ffffff30 0%, #ffffff10 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
  animation: qh-light 5s ease-in-out infinite alternate;
}
@keyframes qh-stage {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes qh-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px #ffffff60, 0 0 20px #ffffff30; }
  50% { opacity: 1; box-shadow: inset 0 0 30px #ffffffc0, 0 0 50px #ffffff80; }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px #ffffff80, 0 0 30px #ffffff40; }
}
@keyframes qh-act-left {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes qh-act-right {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes qh-prop {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes qh-light {
  0% { opacity: 0.3; width: 35%; }
  50% { opacity: 0.6; width: 45%; }
  100% { opacity: 0.4; width: 40%; }
}

/* palace-discussion-play */
.scn-palace-discussion-play {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 50%, #c8a878 100%),
    radial-gradient(ellipse at 50% 30%, #ffffff80 0%, transparent 70%);
}
.scn-palace-discussion-play .pillar-left {
  position: absolute;
  inset: 0 auto 0 8%;
  width: 6%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b8a880 30%, #9a8a6a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: pd-pillar 12s ease-in-out infinite alternate;
}
.scn-palace-discussion-play .pillar-right {
  position: absolute;
  inset: 0 8% 0 auto;
  width: 6%;
  background: linear-gradient(90deg, #9a8a6a 0%, #b8a880 70%, #8a7a5a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: pd-pillar 12s ease-in-out infinite alternate 3s;
}
.scn-palace-discussion-play .throne {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 24%;
  height: 40%;
  background: linear-gradient(180deg, #d4a860 0%, #b89050 50%, #8a6a30 100%);
  border-radius: 15% 15% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: pd-throne 6s ease-in-out infinite;
}
.scn-palace-discussion-play .king {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 16%;
  height: 35%;
  background: radial-gradient(ellipse 60% 50% at 50% 25%, #b87878 0%, #6a4040 70%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pd-king 4s ease-in-out infinite alternate;
}
.scn-palace-discussion-play .sunbeam {
  position: absolute;
  top: 2%;
  right: 18%;
  width: 25%;
  height: 50%;
  background: linear-gradient(135deg, #ffffff50 0%, #ffffff10 60%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
  animation: pd-sunbeam 8s ease-in-out infinite alternate;
}
.scn-palace-discussion-play .curtain {
  position: absolute;
  inset: 0 0 0 0;
  background: linear-gradient(90deg, #5e1a1d 0%, transparent 15%, transparent 85%, #5e1a1d 100%);
  animation: pd-curtain 10s ease-in-out infinite alternate;
}
@keyframes pd-pillar {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.95; }
}
@keyframes pd-throne {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pd-king {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pd-sunbeam {
  0% { opacity: 0.4; width: 20%; }
  50% { opacity: 0.7; width: 28%; }
  100% { opacity: 0.5; width: 24%; }
}
@keyframes pd-curtain {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* palace-play-prologue */
.scn-palace-play-prologue {
  background:
    linear-gradient(180deg, #f5dcc0 0%, #e0c0a0 40%, #c8a078 100%),
    radial-gradient(ellipse at 50% 50%, #ffffff50 0%, transparent 60%);
}
.scn-palace-play-prologue .stage {
  position: absolute;
  inset: auto 10% 0 10%;
  height: 25%;
  background: linear-gradient(0deg, #a0866a 0%, #c0a680 30%, #b89878 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
  animation: pp-stage 3s ease-in-out infinite alternate;
}
.scn-palace-play-prologue .curtain-left {
  position: absolute;
  inset: 0 auto 0 0;
  width: 18%;
  background: linear-gradient(90deg, #5e1a1d 0%, #8a2a2e 40%, #5e1a1d 100%);
  border-radius: 0 30% 30% 0;
  animation: pp-curtain-l 6s ease-in-out infinite alternate;
}
.scn-palace-play-prologue .curtain-right {
  position: absolute;
  inset: 0 0 0 auto;
  width: 18%;
  background: linear-gradient(90deg, #5e1a1d 0%, #8a2a2e 40%, #5e1a1d 100%);
  border-radius: 30% 0 0 30%;
  animation: pp-curtain-r 6s ease-in-out infinite alternate 1.5s;
}
.scn-palace-play-prologue .speaker {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 20%;
  height: 40%;
  background: radial-gradient(ellipse 50% 45% at 50% 30%, #c07030 0%, #8a4a20 70%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pp-speaker 2.5s ease-in-out infinite;
}
.scn-palace-play-prologue .trumpet {
  position: absolute;
  bottom: 38%;
  left: 52%;
  width: 12%;
  height: 18%;
  background: linear-gradient(90deg, #c8a860 0%, #e8c880 50%, #b89848 100%);
  border-radius: 30% 10% 10% 30%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: pp-trumpet 1.8s ease-in-out infinite alternate;
}
.scn-palace-play-prologue .spotlight {
  position: absolute;
  top: 5%;
  left: 38%;
  width: 24%;
  height: 30%;
  background: radial-gradient(ellipse, #ffffaa80 0%, #ffffaa30 50%, transparent 100%);
  animation: pp-spotlight 4s ease-in-out infinite alternate;
}
.scn-palace-play-prologue .audience {
  position: absolute;
  bottom: 2%;
  left: 5%;
  right: 5%;
  height: 10%;
  background:
    radial-gradient(circle at 10% 50%, #7a5a3a 4px, transparent 4px),
    radial-gradient(circle at 20% 50%, #6a4a2a 4px, transparent 4px),
    radial-gradient(circle at 30% 50%, #8a6a4a 4px, transparent 4px),
    radial-gradient(circle at 40% 50%, #6a4a2a 4px, transparent 4px),
    radial-gradient(circle at 50% 50%, #7a5a3a 4px, transparent 4px),
    radial-gradient(circle at 60% 50%, #8a6a4a 4px, transparent 4px),
    radial-gradient(circle at 70% 50%, #6a4a2a 4px, transparent 4px),
    radial-gradient(circle at 80% 50%, #7a5a3a 4px, transparent 4px),
    radial-gradient(circle at 90% 50%, #6a4a2a 4px, transparent 4px);
  background-size: 10% 100%;
  animation: pp-audience 5s ease-in-out infinite alternate;
}
@keyframes pp-stage {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pp-curtain-l {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes pp-curtain-r {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes pp-speaker {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(3deg); }
  70% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pp-trumpet {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.05); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes pp-spotlight {
  0% { opacity: 0.5; width: 20%; }
  50% { opacity: 0.8; width: 28%; }
  100% { opacity: 0.6; width: 24%; }
}
@keyframes pp-audience {
  0% { background-position: 0 0; opacity: 0.7; }
  50% { background-position: 5% 0; opacity: 1; }
  100% { background-position: 0 0; opacity: 0.8; }
}

/* pyramus-wall-speech */
.scn-pyramus-wall-speech {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2018 30%, #3a2a1a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 40%, #ff802060 0%, transparent 70%);
}
.scn-pyramus-wall-speech .wall {
  position: absolute;
  inset: auto 20% 25% 20%;
  height: 35%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #6a5a4a 70%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6), inset 0 0 20px #00000040;
  animation: pw-wall 4s ease-in-out infinite alternate;
}
.scn-pyramus-wall-speech .pyramus {
  position: absolute;
  bottom: 26%;
  left: 30%;
  width: 18%;
  height: 42%;
  background: radial-gradient(ellipse 60% 50% at 50% 25%, #2a1a0a 0%, #1a0a00 70%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pw-pyramus 3s ease-in-out infinite;
}
.scn-pyramus-wall-speech .torch {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 4%;
  height: 20%;
  background: linear-gradient(0deg, #5a2a0a 0%, #a04010 50%, #e08020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px #ff802060;
  animation: pw-torch 0.8s ease-in-out infinite alternate;
}
.scn-pyramus-wall-speech .torch-glow {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 20%;
  height: 30%;
  background: radial-gradient(circle, #ff803060 0%, #ff802010 40%, transparent 100%);
  animation: pw-glow 2s ease-in-out infinite alternate;
}
.scn-pyramus-wall-speech .ground {
  position: absolute;
  inset: auto 0 0 0;
  height: 12%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.8);
}
.scn-pyramus-wall-speech .shadow {
  position: absolute;
  bottom: 12%;
  left: 24%;
  width: 30%;
  height: 20%;
  background: linear-gradient(180deg, #00000080 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: pw-shadow 3s ease-in-out infinite;
}
@keyframes pw-wall {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes pw-pyramus {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(-5px) rotate(4deg); }
  60% { transform: translateX(3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes pw-torch {
  0% { height: 18%; opacity: 0.8; }
  50% { height: 22%; opacity: 1; }
  100% { height: 18%; opacity: 0.8; }
}
@keyframes pw-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes pw-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.7; }
  50% { transform: translateX(4px) scaleX(0.9); opacity: 1; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.7; }
}

.scn-lysander-rejection {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 70%);
}
.scn-lysander-rejection .moon {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e0ff 0%, #c0c0f0 70%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(192,192,240,0.5);
  animation: lr-moon 6s ease-in-out infinite alternate;
}
.scn-lysander-rejection .cloud-a {
  position: absolute; top: 12%; left: 0; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.3), rgba(255,255,255,0.1));
  border-radius: 50%; filter: blur(8px);
  animation: lr-drift-a 40s linear infinite;
}
.scn-lysander-rejection .cloud-b {
  position: absolute; top: 18%; right: 0; width: 80px; height: 16px;
  background: linear-gradient(90deg, rgba(255,255,255,0.2), rgba(255,255,255,0.05));
  border-radius: 50%; filter: blur(6px);
  animation: lr-drift-b 55s linear infinite reverse;
}
.scn-lysander-rejection .branch {
  position: absolute; bottom: 45%; left: 25%; width: 60%; height: 6px;
  background: linear-gradient(90deg, #2a1a0a, #3a2a1a);
  border-radius: 20% 50% 50% 20% / 50% 50% 50% 50%;
  transform-origin: left center;
  animation: lr-branch 7s ease-in-out infinite alternate;
}
.scn-lysander-rejection .raven {
  position: absolute; bottom: 48%; left: 38%; width: 20px; height: 14px;
  background: #2a2a3a; border-radius: 50% 40% 40% 50%;
  animation: lr-bird 3s ease-in-out infinite alternate;
}
.scn-lysander-rejection .dove {
  position: absolute; bottom: 48%; right: 35%; width: 18px; height: 12px;
  background: #e0e0e8; border-radius: 50% 40% 40% 50%;
  animation: lr-bird 3.2s ease-in-out infinite alternate-reverse;
}
.scn-lysander-rejection .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a1a0a 0%, #0a0a1a 100%);
  border-radius: 40% 20% 0 0 / 60% 40% 0 0;
}
.scn-lysander-rejection .figure {
  position: absolute; bottom: 28%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figure 4s ease-in-out infinite;
}
@keyframes lr-moon { 0% { opacity:0.7; box-shadow: 0 0 15px 5px rgba(192,192,240,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(192,192,240,0.7); transform:scale(1.05); } 100% { opacity:0.8; box-shadow: 0 0 18px 6px rgba(192,192,240,0.5); } }
@keyframes lr-drift-a { 0% { transform: translateX(-50px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(100vw); } }
@keyframes lr-drift-b { 0% { transform: translateX(0); } 50% { transform: translateX(-40vw); } 100% { transform: translateX(-100vw); } }
@keyframes lr-branch { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes lr-bird { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes lr-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-helena-derision {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1028 50%, #2a1a36 100%),
              radial-gradient(ellipse at 30% 100%, #2a1a36 0%, transparent 70%);
}
.scn-helena-derision .moon {
  position: absolute; top: 10%; right: 15%; width: 35px; height: 35px;
  background: radial-gradient(circle, #d0d0f0 0%, #b0b0d0 70%);
  border-radius: 50%; box-shadow: 0 0 15px 4px rgba(176,176,208,0.4);
  animation: hd-moon 4s ease-in-out infinite alternate;
}
.scn-helena-derision .cloud-drift {
  position: absolute; top: 15%; left: 0; width: 120px; height: 18px;
  background: linear-gradient(90deg, rgba(70,70,100,0.6), rgba(70,70,100,0.2));
  border-radius: 50%; filter: blur(8px);
  animation: hd-drift 50s linear infinite;
}
.scn-helena-derision .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1020 0%, #0a0510 100%);
  border-radius: 30% 60% 0 0 / 50% 40% 0 0;
}
.scn-helena-derision .helena {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 30px;
  background: #1a1a2e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-tremble 2s ease-in-out infinite;
}
.scn-helena-derision .figure-a {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-loom 5s ease-in-out infinite alternate;
}
.scn-helena-derision .figure-b {
  position: absolute; bottom: 25%; right: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-loom 5.5s ease-in-out infinite alternate-reverse;
}
.scn-helena-derision .thorn-line {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #3a2a4a, transparent);
  animation: hd-thorn 3s ease-in-out infinite;
}
@keyframes hd-moon { 0% { opacity:0.6; box-shadow:0 0 10px 2px rgba(176,176,208,0.3); } 50% { opacity:0.9; box-shadow:0 0 20px 6px rgba(176,176,208,0.6); } 100% { opacity:0.7; box-shadow:0 0 12px 3px rgba(176,176,208,0.4); } }
@keyframes hd-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(60vw); } 100% { transform: translateX(100vw); } }
@keyframes hd-tremble { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(0.97); } 100% { transform: translateX(-1px) scale(1.01); } }
@keyframes hd-loom { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hd-thorn { 0% { opacity:0.3; transform:scaleX(0.8); } 50% { opacity:0.7; transform:scaleX(1.2); } 100% { opacity:0.4; transform:scaleX(0.9); } }

.scn-lysander-oath {
  background: linear-gradient(180deg, #0a0a2e 0%, #12122e 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 60%);
}
.scn-lysander-oath .moon {
  position: absolute; top: 5%; left: 50%; width: 45px; height: 45px;
  background: radial-gradient(circle, #e0e0ff 0%, #c0c0f0 70%);
  border-radius: 50%; box-shadow: 0 0 25px 8px rgba(192,192,240,0.5);
  animation: lo-moon 8s ease-in-out infinite alternate;
}
.scn-lysander-oath .cloud-drift {
  position: absolute; top: 12%; left: 0; width: 130px; height: 16px;
  background: linear-gradient(90deg, rgba(255,255,255,0.2), rgba(255,255,255,0.05));
  border-radius: 50%; filter: blur(8px);
  animation: lo-drift 45s linear infinite;
}
.scn-lysander-oath .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0a1a0a 0%, #05050f 100%);
  border-radius: 50% 30% 0 0 / 60% 40% 0 0;
}
.scn-lysander-oath .hermia-sleep {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 24px;
  background: #1a1a2e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: lo-breathe 4s ease-in-out infinite;
}
.scn-lysander-oath .lysander-walk {
  position: absolute; bottom: 28%; right: 20%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lo-walk 6s ease-in-out infinite;
}
.scn-lysander-oath .stone {
  position: absolute; bottom: 30%; right: 40%; width: 12px; height: 8px;
  background: #2a2a3a; border-radius: 30%;
  animation: lo-stone 10s ease-in-out infinite alternate;
}
@keyframes lo-moon { 0% { opacity:0.7; box-shadow:0 0 20px 5px rgba(192,192,240,0.4); } 50% { opacity:1; box-shadow:0 0 35px 12px rgba(192,192,240,0.7); transform:scale(1.03); } 100% { opacity:0.8; box-shadow:0 0 22px 6px rgba(192,192,240,0.5); } }
@keyframes lo-drift { 0% { transform: translateX(-40px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(100vw); } }
@keyframes lo-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.98); } }
@keyframes lo-walk { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(15px) rotate(0deg); } 100% { transform: translateX(30px) rotate(2deg); } }
@keyframes lo-stone { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

.scn-hermia-nightmare {
  background: linear-gradient(180deg, #0a0a1e 0%, #14142a 50%, #1e1e32 100%),
              radial-gradient(ellipse at 60% 20%, #2a2a44 0%, transparent 70%);
}
.scn-hermia-nightmare .moon {
  position: absolute; top: 8%; left: 20%; width: 38px; height: 38px;
  background: radial-gradient(circle, #d0d0f0 0%, #b0b0d0 70%);
  border-radius: 50%; box-shadow: 0 0 18px 5px rgba(176,176,208,0.4);
  animation: hn-moon-pulse 5s ease-in-out infinite alternate;
}
.scn-hermia-nightmare .cloud-drift {
  position: absolute; top: 14%; left: 0; width: 110px; height: 14px;
  background: linear-gradient(90deg, rgba(40,40,60,0.6), rgba(40,40,60,0.2));
  border-radius: 50%; filter: blur(6px);
  animation: hn-drift 48s linear infinite;
}
.scn-hermia-nightmare .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a14 0%, #05050d 100%);
  border-radius: 40% 50% 0 0 / 50% 40% 0 0;
}
.scn-hermia-nightmare .hermia-sleep {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 22px;
  background: #1a1a2e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: hn-tremble 2.5s ease-in-out infinite;
}
.scn-hermia-nightmare .serpent {
  position: absolute; bottom: 40%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(90deg, #1a1a2e, #2a2a44, #1a1a2e);
  border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
  filter: drop-shadow(0 0 6px #2a2a44);
  animation: hn-slither 6s ease-in-out infinite alternate;
}
.scn-hermia-nightmare .lysander-seated {
  position: absolute; bottom: 18%; right: 20%; width: 20px; height: 30px;
  background: #1a1a2e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hn-seated 8s ease-in-out infinite alternate;
}
.scn-hermia-nightmare .smile {
  position: absolute; bottom: 28%; right: 22%; width: 14px; height: 6px;
  background: transparent; border-bottom: 3px solid #c0c0d0;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: hn-smile 3s ease-in-out infinite alternate;
}
@keyframes hn-moon-pulse { 0% { opacity:0.6; box-shadow:0 0 10px 2px rgba(176,176,208,0.3); } 50% { opacity:1; box-shadow:0 0 25px 8px rgba(176,176,208,0.6); transform:scale(1.02); } 100% { opacity:0.7; box-shadow:0 0 14px 4px rgba(176,176,208,0.4); } }
@keyframes hn-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(40vw); } 100% { transform: translateX(100vw); } }
@keyframes hn-tremble { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes hn-slither { 0% { transform: translateX(-10px) rotate(-10deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(20px) rotate(-5deg); } }
@keyframes hn-seated { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes hn-smile { 0% { transform: scaleX(0.8); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:1; } 100% { transform: scaleX(0.9); opacity:0.7; } }

.scn-demetrius-threatens-to-leave { background: linear-gradient(180deg, #0a1628 0%, #1a2a44 50%, #0f1a30 100%), radial-gradient(ellipse at 50% 30%, #2a4060 0%, transparent 60%); animation: dtl-bg 12s ease-in-out infinite alternate; }
.scn-demetrius-threatens-to-leave .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a44 0%, transparent 100%); }
.scn-demetrius-threatens-to-leave .moon { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #d0d8e8 0%, #aab8d0 60%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(170,184,208,.5); animation: dtl-moon 8s ease-in-out infinite alternate; }
.scn-demetrius-threatens-to-leave .rock-left { position:absolute; bottom:15%; left:5%; width:120px; height:140px; background: linear-gradient(135deg, #1a2a3a 0%, #0f1a28 100%); border-radius: 30% 10% 20% 10% / 50% 20% 30% 10%; transform: skewX(5deg); box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: dtl-rock 6s ease-in-out infinite alternate; }
.scn-demetrius-threatens-to-leave .rock-right { position:absolute; bottom:10%; right:10%; width:100px; height:180px; background: linear-gradient(225deg, #1a2a3a 0%, #0a1520 100%); border-radius: 20% 30% 10% 20% / 40% 50% 20% 30%; transform: skewX(-8deg); box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: dtl-rock 8s ease-in-out infinite alternate-reverse; }
.scn-demetrius-threatens-to-leave .figure-demetrius { position:absolute; bottom:15%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #0a0a14 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); animation: dtl-demetrius 4s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .figure-hermia { position:absolute; bottom:15%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #0a0a14 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); animation: dtl-hermia 3.5s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .ground-shadow { position:absolute; bottom:12%; left:20%; width:60%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); animation: dtl-shadow 4s ease-in-out infinite; }
@keyframes dtl-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dtl-moon { 0% { transform:scale(1); opacity:.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(.95); opacity:.9 } }
@keyframes dtl-rock { 0% { transform: skewX(5deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-2px) } 100% { transform: skewX(5deg) translateY(0) } }
@keyframes dtl-demetrius { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes dtl-hermia { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-1px) translateX(3px) } 50% { transform: translateY(0) translateX(6px) } 75% { transform: translateY(-1px) translateX(3px) } 100% { transform: translateY(0) translateX(0) } }
@keyframes dtl-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }

.scn-helena-apollo-daphne { background: linear-gradient(180deg, #0a1220 0%, #16203a 50%, #0e182c 100%), radial-gradient(ellipse at 30% 50%, #1a2a44 0%, transparent 70%); }
.scn-helena-apollo-daphne .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #16203a 0%, transparent 100%); }
.scn-helena-apollo-daphne .moon { position:absolute; top:8%; right:20%; width:36px; height:36px; background: radial-gradient(circle, #c8d0e0 0%, #a0b0c8 60%, transparent 70%); border-radius:50%; box-shadow:0 0 50px 15px rgba(160,176,200,.5); animation: had-moon 10s ease-in-out infinite alternate; }
.scn-helena-apollo-daphne .tree-left { position:absolute; bottom:10%; left:5%; width:60px; height:200px; background: linear-gradient(180deg, #0f1a28 0%, #0a1220 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; transform: rotate(3deg); box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: had-tree 15s ease-in-out infinite alternate; }
.scn-helena-apollo-daphne .tree-right { position:absolute; bottom:5%; right:8%; width:50px; height:180px; background: linear-gradient(180deg, #0f1a28 0%, #0a1220 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; transform: rotate(-5deg); box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: had-tree 18s ease-in-out infinite alternate-reverse; }
.scn-helena-apollo-daphne .apollo { position:absolute; bottom:15%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: had-apollo 3s ease-in-out infinite; }
.scn-helena-apollo-daphne .daphne { position:absolute; bottom:15%; left:80%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: had-daphne 3.2s ease-in-out infinite; }
.scn-helena-apollo-daphne .path { position:absolute; bottom:12%; left:10%; width:80%; height:8px; background: linear-gradient(180deg, rgba(20,30,50,.6) 0%, transparent 100%); border-radius: 50%; animation: had-path 8s ease-in-out infinite alternate; }
.scn-helena-apollo-daphne .mist { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(10,18,32,.4) 100%); filter: blur(10px); animation: had-mist 20s ease-in-out infinite alternate; }
@keyframes had-moon { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.03); opacity:1 } 100% { transform: scale(.97); opacity:.8 } }
@keyframes had-tree { 0% { transform: rotate(3deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(3deg) scaleX(1) } }
@keyframes had-apollo { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(-8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(-16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(-24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(-32px) translateY(0) rotate(0) } }
@keyframes had-daphne { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-6px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(-12px) translateY(0) rotate(2deg) } 75% { transform: translateX(-18px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-24px) translateY(0) rotate(0) } }
@keyframes had-path { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes had-mist { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-oberon-orders-puck { background: linear-gradient(180deg, #0b1628 0%, #1c2a44 50%, #0f1a30 100%), radial-gradient(ellipse at 50% 80%, #2a4060 0%, transparent 60%); }
.scn-oberon-orders-puck .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1c2a44 0%, transparent 100%); }
.scn-oberon-orders-puck .moon { position:absolute; top:10%; left:75%; width:35px; height:35px; background: radial-gradient(circle, #d0d8e8 0%, #a0b0c8 60%, transparent 70%); border-radius:50%; box-shadow:0 0 50px 15px rgba(160,176,200,.5); animation: oop-moon 9s ease-in-out infinite alternate; }
.scn-oberon-orders-puck .bank { position:absolute; bottom:20%; left:10%; width:80%; height:50px; background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: oop-bank 12s ease-in-out infinite alternate; }
.scn-oberon-orders-puck .wild-thyme { position:absolute; bottom:25%; left:30%; width:40px; height:10px; background: radial-gradient(ellipse, #4a6a3a 0%, transparent 70%); border-radius:50%; animation: oop-thyme 6s ease-in-out infinite alternate; }
.scn-oberon-orders-puck .oberon { position:absolute; bottom:25%; left:40%; width:22px; height:55px; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oop-oberon 5s ease-in-out infinite; }
.scn-oberon-orders-puck .puck { position:absolute; bottom:20%; left:70%; width:20px; height:45px; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oop-puck 6s ease-in-out infinite; }
.scn-oberon-orders-puck .magic-glow { position:absolute; bottom:30%; left:38%; width:12px; height:12px; background: radial-gradient(circle, #c8d8e8 0%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,216,232,.4); animation: oop-glow 3s ease-in-out infinite alternate; }
@keyframes oop-moon { 0% { transform:scale(1); opacity:.7 } 50% { transform:scale(1.04); opacity:1 } 100% { transform:scale(.96); opacity:.8 } }
@keyframes oop-bank { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes oop-thyme { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }
@keyframes oop-oberon { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-1px) rotate(1deg) } }
@keyframes oop-puck { 0% { transform: translateX(-30px) translateY(0) rotate(-5deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0) } 100% { transform: translateX(30px) translateY(0) rotate(5deg) } }
@keyframes oop-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-puck-promises { background: linear-gradient(180deg, #0a1628 0%, #1a2a44 50%, #0f1a30 100%), radial-gradient(ellipse at 50% 30%, #2a4060 0%, transparent 60%); }
.scn-puck-promises .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a44 0%, transparent 100%); }
.scn-puck-promises .moon { position:absolute; top:10%; left:15%; width:38px; height:38px; background: radial-gradient(circle, #d0d8e8 0%, #a0b0c8 60%, transparent 70%); border-radius:50%; box-shadow:0 0 50px 15px rgba(160,176,200,.5); animation: pp-moon 7s ease-in-out infinite alternate; }
.scn-puck-promises .ground { position:absolute; bottom:10%; left:5%; width:90%; height:60px; background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: pp-ground 10s ease-in-out infinite alternate; }
.scn-puck-promises .puck { position:absolute; bottom:18%; left:50%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-puck 4s ease-in-out infinite; }
.scn-puck-promises .puck-shadow { position:absolute; bottom:12%; left:45%; width:30px; height:5px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); animation: pp-shadow 4s ease-in-out infinite; }
.scn-puck-promises .sparkles { position:absolute; top:30%; left:20%; width:100%; height:50%; background: radial-gradient(circle at 50% 50%, #e0e8f0 0%, transparent 50%) repeat; background-size: 10px 10px; opacity:.3; animation: pp-sparkles 3s ease-in-out infinite alternate; }
.scn-puck-promises .leaf { position:absolute; top:20%; right:30%; width:12px; height:6px; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 0% 50% 0%; transform: rotate(20deg); animation: pp-leaf 8s linear infinite; }
@keyframes pp-moon { 0% { transform:scale(1); opacity:.7 } 50% { transform:scale(1.03); opacity:1 } 100% { transform:scale(.97); opacity:.8 } }
@keyframes pp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pp-puck { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(5px) translateY(-3px) rotate(3deg) scale(1.05) } 50% { transform: translateX(0) translateY(0) rotate(0) scale(1) } 75% { transform: translateX(-5px) translateY(-2px) rotate(-3deg) scale(1.03) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes pp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes pp-sparkles { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes pp-leaf { 0% { transform: rotate(20deg) translateY(0) } 25% { transform: rotate(30deg) translateY(-10px) } 50% { transform: rotate(25deg) translateY(-20px) } 75% { transform: rotate(35deg) translateY(-10px) } 100% { transform: rotate(20deg) translateY(0) } }

.scn-flute-thisby-part { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 60%, #0e0a08 100%), radial-gradient(ellipse at 30% 60%, #9a6a3a 0%, transparent 70%); }
.scn-flute-thisby-part .bg-back { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 4px, #2a1e1a 4px, #2a1e1a 5px); opacity:.3; }
.scn-flute-thisby-part .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1210 0%, #2a1e1a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-flute-thisby-part .lantern { position:absolute; top:30%; left:20%; width:12px; height:18px; background: radial-gradient(circle, #e8b060 0%, #b08040 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,.4); animation: ftb-lantern 2s ease-in-out infinite alternate; }
.scn-flute-thisby-part .figure-flute { position:absolute; bottom:28%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ftb-figure 1.5s ease-in-out infinite; }
.scn-flute-thisby-part .figure-quince { position:absolute; bottom:30%; left:55%; width:34px; height:60px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ftb-figure 2s ease-in-out infinite reverse; }
.scn-flute-thisby-part .mask-thisby { position:absolute; bottom:38%; left:42%; width:16px; height:20px; background: radial-gradient(circle, #d4a070 0%, #b08040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: ftb-mask 0.8s ease-in-out infinite; }
.scn-flute-thisby-part .shadow-flute { position:absolute; bottom:25%; left:40%; width:30px; height:8px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(2px); animation: ftb-shadow 1.5s ease-in-out infinite; }
.scn-flute-thisby-part .shadow-quince { position:absolute; bottom:27%; left:55%; width:34px; height:8px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(2px); animation: ftb-shadow 2s ease-in-out infinite reverse; }
@keyframes ftb-lantern { 0% { opacity:.8; box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.3) } 50% { opacity:1; box-shadow: 0 0 40px 15px #e8b060, 0 0 80px 20px rgba(232,176,96,.5) } 100% { opacity:.9; box-shadow: 0 0 25px 8px #b08040, 0 0 50px 12px rgba(176,128,64,.35) } }
@keyframes ftb-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ftb-mask { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) rotate(-5deg) } }
@keyframes ftb-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-starveling-snout-roles { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 60%, #0e0a08 100%), radial-gradient(ellipse at 70% 50%, #8a6a3a 0%, transparent 60%); }
.scn-starveling-snout-roles .bg-back { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 3px, #1a1210 3px, #1a1210 4px); opacity:.4; }
.scn-starveling-snout-roles .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #0e0a08 0%, #1a1210 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; }
.scn-starveling-snout-roles .lantern { position:absolute; top:35%; right:20%; width:10px; height:16px; background: radial-gradient(circle, #e0a060 0%, #a07030 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 25px 8px #a07030; animation: sts-lantern 2.5s ease-in-out infinite alternate; }
.scn-starveling-snout-roles .figure-starveling { position:absolute; bottom:25%; left:18%; width:26px; height:55px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sts-figure 1.8s ease-in-out infinite; }
.scn-starveling-snout-roles .figure-snout { position:absolute; bottom:27%; left:38%; width:28px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sts-figure 2.2s ease-in-out infinite reverse; }
.scn-starveling-snout-roles .figure-quince { position:absolute; bottom:26%; left:56%; width:30px; height:52px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sts-figure 1.5s ease-in-out infinite; }
.scn-starveling-snout-roles .figure-snug { position:absolute; bottom:24%; left:74%; width:32px; height:58px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sts-figure 2.0s ease-in-out infinite reverse; }
.scn-starveling-snout-roles .prop-scissors { position:absolute; bottom:35%; left:22%; width:12px; height:4px; background: #8a6a3a; border-radius: 20% 20% 50% 50% / 20% 20% 50% 50%; transform: rotate(-30deg); animation: sts-prop 1s ease-in-out infinite; }
.scn-starveling-snout-roles .prop-hammer { position:absolute; bottom:36%; left:42%; width:14px; height:6px; background: #8a6a3a; border-radius: 10% 10% 30% 30%; transform: rotate(15deg); animation: sts-prop 1.2s ease-in-out infinite reverse; }
@keyframes sts-lantern { 0% { opacity:.8; box-shadow: 0 0 15px 4px #a07030 } 50% { opacity:1; box-shadow: 0 0 35px 12px #e0a060 } 100% { opacity:.9; box-shadow: 0 0 20px 6px #a07030 } }
@keyframes sts-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sts-prop { 0% { transform: rotate(-30deg) scale(1) } 50% { transform: rotate(-20deg) scale(1.1) } 100% { transform: rotate(-30deg) scale(1) } }

.scn-bottom-lion-idea { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 60%, #0e0a08 100%), radial-gradient(ellipse at 50% 40%, #9a6a3a 0%, transparent 60%); }
.scn-bottom-lion-idea .bg-back { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0, transparent 5px, #1a1210 5px, #1a1210 6px); opacity:.3; }
.scn-bottom-lion-idea .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0e0a08 0%, #1a1210 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; }
.scn-bottom-lion-idea .lantern { position:absolute; top:25%; left:15%; width:14px; height:20px; background: radial-gradient(circle, #e8b060 0%, #b08040 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 10px #b08040; animation: bli-lantern 2s ease-in-out infinite alternate; }
.scn-bottom-lion-idea .figure-bottom { position:absolute; bottom:30%; left:45%; width:34px; height:65px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bli-bottom 1.5s ease-in-out infinite; }
.scn-bottom-lion-idea .mane-lion { position:absolute; bottom:40%; left:42%; width:50px; height:30px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bli-mane 0.5s ease-in-out infinite; }
.scn-bottom-lion-idea .figure-quince { position:absolute; bottom:28%; left:65%; width:28px; height:55px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bli-reaction 1.2s ease-in-out infinite; }
.scn-bottom-lion-idea .figure-flute { position:absolute; bottom:26%; left:25%; width:26px; height:50px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bli-reaction 1.5s ease-in-out infinite reverse; }
.scn-bottom-lion-idea .shadow-bottom { position:absolute; bottom:27%; left:45%; width:34px; height:10px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(3px); animation: bli-shadow 1.5s ease-in-out infinite; }
@keyframes bli-lantern { 0% { opacity:.8; box-shadow: 0 0 20px 5px #b08040 } 50% { opacity:1; box-shadow: 0 0 45px 15px #e8b060 } 100% { opacity:.9; box-shadow: 0 0 25px 8px #b08040 } }
@keyframes bli-bottom { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-5px) rotate(4deg) scale(1.02) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bli-mane { 0% { transform: scale(1) rotate(0) } 25% { transform: scale(1.1) rotate(-5deg) } 50% { transform: scale(1.2) rotate(8deg) } 75% { transform: scale(1.05) rotate(-2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes bli-reaction { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bli-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(1) } }

.scn-bottom-picked-pyramus { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 60%, #0e0a08 100%), radial-gradient(ellipse at 40% 60%, #8a6a3a 0%, transparent 60%); }
.scn-bottom-picked-pyramus .bg-back { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent 0, transparent 3px, #1a1210 3px, #1a1210 4px); opacity:.2; }
.scn-bottom-picked-pyramus .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0e0a08 0%, #1a1210 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-bottom-picked-pyramus .lantern { position:absolute; top:30%; right:25%; width:12px; height:18px; background: radial-gradient(circle, #e0a060 0%, #a07030 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 25px 8px #a07030; animation: bpp-lantern 2s ease-in-out infinite alternate; }
.scn-bottom-picked-pyramus .figure-bottom { position:absolute; bottom:28%; left:40%; width:32px; height:62px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bpp-bottom 1.5s ease-in-out infinite; }
.scn-bottom-picked-pyramus .figure-quince { position:absolute; bottom:30%; left:58%; width:30px; height:55px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bpp-quince 1.8s ease-in-out infinite; }
.scn-bottom-picked-pyramus .beard1 { position:absolute; bottom:38%; left:35%; width:8px; height:6px; background: #6a4a3a; border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: bpp-beard 1s ease-in-out infinite; }
.scn-bottom-picked-pyramus .beard2 { position:absolute; bottom:36%; left:42%; width:10px; height:8px; background: #5a3a2a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: bpp-beard 1.3s ease-in-out infinite reverse; }
.scn-bottom-picked-pyramus .beard3 { position:absolute; bottom:40%; left:50%; width:6px; height:10px; background: #4a2a1a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(15deg); animation: bpp-beard 0.8s ease-in-out infinite; }
.scn-bottom-picked-pyramus .shadow-bottom { position:absolute; bottom:25%; left:40%; width:32px; height:8px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(2px); animation: bpp-shadow 1.5s ease-in-out infinite; }
@keyframes bpp-lantern { 0% { opacity:.8; box-shadow: 0 0 15px 4px #a07030 } 50% { opacity:1; box-shadow: 0 0 35px 12px #e0a060 } 100% { opacity:.9; box-shadow: 0 0 20px 6px #a07030 } }
@keyframes bpp-bottom { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) scale(1.01) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bpp-quince { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bpp-beard { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(0deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes bpp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-titanias-lullaby { background: linear-gradient(180deg, #0a1128 0%, #1c2541 40%, #3a506b 100%), radial-gradient(ellipse at 50% 0%, #e0d0a0 0%, transparent 60%); }
.scn-titanias-lullaby .tl-moon { position:absolute; top:8%; right:18%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle, #f0e0b0 0%, #d0c0a0 70%); box-shadow: 0 0 50px 15px rgba(240,224,176,.5), 0 0 100px 30px rgba(240,224,176,.2); animation: tl-glow 6s ease-in-out infinite alternate; }
.scn-titanias-lullaby .tl-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1c2541 0%, transparent 100%); animation: tl-sky 12s ease-in-out infinite alternate; }
.scn-titanias-lullaby .tl-trees-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; animation: tl-trees 20s ease-in-out infinite alternate; }
.scn-titanias-lullaby .tl-trees-fg { position:absolute; bottom:15%; left:-10%; right:-10%; height:50%; background: linear-gradient(180deg, #0d1b2a 0%, #050a14 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 20% 60%, 35% 80%, 50% 40%, 65% 70%, 80% 50%, 100% 90%, 100% 100%); animation: tl-trees 25s ease-in-out infinite alternate-reverse; }
.scn-titanias-lullaby .tl-clearing { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 70% 0 0 / 10% 20% 0 0; }
.scn-titanias-lullaby .tl-titania { position:absolute; bottom:5%; left:25%; width:140px; height:180px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tl-breath 4s ease-in-out infinite; }
.scn-titanias-lullaby .tl-fairies { position:absolute; bottom:60%; left:40%; width:6px; height:6px; background: #f0e0b0; border-radius:50%; box-shadow: 0 0 12px 3px rgba(240,224,176,.8); animation: tl-dance 15s linear infinite; }
.scn-titanias-lullaby .tl-fairies-a { position:absolute; bottom:70%; left:20%; width:4px; height:4px; background: #f0e0b0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(240,224,176,.8); animation: tl-dance 18s linear infinite -7s; }
.scn-titanias-lullaby .tl-musk-rose { position:absolute; bottom:25%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #c8553d 0%, #702243 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(200,85,61,.4); animation: tl-rose 5s ease-in-out infinite; }
@keyframes tl-glow { 0% { box-shadow: 0 0 40px 10px rgba(240,224,176,.4), 0 0 80px 20px rgba(240,224,176,.1); } 50% { box-shadow: 0 0 70px 20px rgba(240,224,176,.7), 0 0 140px 40px rgba(240,224,176,.3); } 100% { box-shadow: 0 0 50px 15px rgba(240,224,176,.5), 0 0 100px 30px rgba(240,224,176,.2); } }
@keyframes tl-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes tl-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes tl-breath { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes tl-dance { 0% { transform: translate(0, 0) scale(0.5); opacity:0; } 25% { transform: translate(40px, -30px) scale(1); opacity:1; } 50% { transform: translate(80px, 10px) scale(0.8); opacity:.8; } 75% { transform: translate(120px, -20px) scale(1.2); opacity:1; } 100% { transform: translate(160px, 0) scale(0.5); opacity:0; } }
@keyframes tl-rose { 0% { transform: scale(1) rotate(-5deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(-5deg); } }

.scn-item-love-juice-flower { background: linear-gradient(180deg, #0a100a 0%, #16241e 40%, #223830 100%), radial-gradient(ellipse at 50% 0%, #d4c0a0 0%, transparent 60%); }
.scn-item-love-juice-flower .ij-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(10,16,10,.8) 100%); }
.scn-item-love-juice-flower .ij-moonbeam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(212,192,160,.15) 0%, transparent 80%); animation: ij-beam 8s ease-in-out infinite alternate; }
.scn-item-love-juice-flower .ij-flower-stem { position:absolute; bottom:10%; left:50%; width:10px; height:140px; background: linear-gradient(180deg, #4a6b4a 0%, #2a4a2a 100%); border-radius: 5px; transform: translateX(-50%); }
.scn-item-love-juice-flower .ij-flower-petals { position:absolute; bottom:calc(10% + 130px); left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, #b87878 0%, #702243 70%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 30px 8px rgba(183,120,120,.4); animation: ij-pulse 4s ease-in-out infinite; }
.scn-item-love-juice-flower .ij-flower-core { position:absolute; bottom:calc(10% + 145px); left:50%; width:24px; height:24px; transform: translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #e8a020 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(255,208,96,.5); animation: ij-pulse 4s ease-in-out infinite alternate; }
.scn-item-love-juice-flower .ij-spider { position:absolute; bottom:20%; left:15%; width:35px; height:18px; background: #1a1a1a; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(0,0,0,.5); animation: ij-skitter 5s ease-in-out infinite; }
.scn-item-love-juice-flower .ij-beetle { position:absolute; bottom:8%; left:70%; width:25px; height:14px; background: #1a1a1a; border-radius: 40%; box-shadow: 0 0 6px 1px rgba(0,0,0,.5); animation: ij-crawl 12s linear infinite; }
.scn-item-love-juice-flower .ij-spores { position:absolute; bottom:50%; left:45%; width:5px; height:5px; background: #ffd060; border-radius:50%; box-shadow: 0 0 12px 3px rgba(255,208,96,.6); animation: ij-float 9s linear infinite; }
.scn-item-love-juice-flower .ij-spores { position:absolute; bottom:60%; left:55%; width:3px; height:3px; background: #ffd060; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,208,96,.6); animation: ij-float 11s linear infinite -4s; }
@keyframes ij-beam { 0% { transform: skewX(-5deg) translateX(-10px); opacity:.6; } 50% { transform: skewX(5deg) translateX(10px); opacity:1; } 100% { transform: skewX(-5deg) translateX(-10px); opacity:.6; } }
@keyframes ij-pulse { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.15); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ij-skitter { 0% { transform: translate(0, 0); } 20% { transform: translate(30px, -10px); } 40% { transform: translate(10px, 5px); } 60% { transform: translate(50px, -5px); } 80% { transform: translate(20px, 10px); } 100% { transform: translate(0, 0); } }
@keyframes ij-crawl { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-30px) rotate(5deg); } 50% { transform: translateX(-60px) rotate(-5deg); } 75% { transform: translateX(-90px) rotate(3deg); } 100% { transform: translateX(-120px) rotate(0deg); } }
@keyframes ij-float { 0% { transform: translate(0, 0) scale(0.5); opacity:0; } 25% { transform: translate(20px, -30px) scale(1); opacity:1; } 50% { transform: translate(40px, 10px) scale(0.8); opacity:.8; } 75% { transform: translate(60px, -20px) scale(1.2); opacity:1; } 100% { transform: translate(80px, 0) scale(0.5); opacity:0; } }

.scn-oberon-charm { background: linear-gradient(135deg, #050a14 0%, #121b2d 40%, #1f2d47 100%), radial-gradient(circle at 20% 20%, #2a4a6a 0%, transparent 50%); }
.scn-oberon-charm .oc-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(5,10,20,.8) 100%); }
.scn-oberon-charm .oc-vines-l { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 0 60% 0 0; clip-path: polygon(0 0, 100% 0, 80% 30%, 100% 60%, 70% 100%, 0 100%); animation: oc-sway 15s ease-in-out infinite; }
.scn-oberon-charm .oc-vines-r { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 60% 0 0 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%, 0 60%, 20% 30%); animation: oc-sway 15s ease-in-out infinite reverse; }
.scn-oberon-charm .oc-oberon { position:absolute; bottom:20%; left:20%; width:45px; height:110px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oc-gesture 6s ease-in-out infinite; }
.scn-oberon-charm .oc-oberon-arm { position:absolute; bottom:50%; left:28%; width:70px; height:18px; background: #1a1a2e; border-radius: 50% 0 0 50%; transform-origin: right center; animation: oc-cast 6s ease-in-out infinite; }
.scn-oberon-charm .oc-charm { position:absolute; bottom:55%; left:42%; width:18px; height:18px; background: radial-gradient(circle, #80b0e0 0%, #406080 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(128,176,224,.5), 0 0 80px 20px rgba(128,176,224,.2); animation: oc-warp 3s ease-in-out infinite; }
.scn-oberon-charm .oc-lysander { position:absolute; bottom:8%; left:55%; width:40px; height:90px; background: #0d1b2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oc-walk 10s linear infinite; }
.scn-oberon-charm .oc-hermia { position:absolute; bottom:8%; left:68%; width:35px; height:80px; background: #0d1b2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oc-walk 10s linear infinite -4s; }
.scn-oberon-charm .oc-eyes { position:absolute; top:35%; right:15%; width:12px; height:6px; background: #e0d080; border-radius: 50%; box-shadow: 25px 0 #e0d080; animation: oc-blink 4s step-start infinite; }
@keyframes oc-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes oc-gesture { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-5px); } 50% { transform: rotate(5deg) translateX(5px); } 75% { transform: rotate(-3deg) translateX(-3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes oc-cast { 0% { transform: rotate(-30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-30deg); } }
@keyframes oc-warp { 0% { transform: scale(0.8) rotate(0deg); opacity:.7; } 50% { transform: scale(1.5) rotate(180deg); opacity:1; } 100% { transform: scale(0.8) rotate(360deg); opacity:.7; } }
@keyframes oc-walk { 0% { transform: translateX(-20px) rotate(-2deg); } 25% { transform: translateX(0px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-2deg); } 75% { transform: translateX(40px) rotate(2deg); } 100% { transform: translateX(60px) rotate(-2deg); } }
@keyframes oc-blink { 0%, 90%, 100% { opacity:1; } 95% { opacity:0; } }

.scn-lysander-hermia-rest { background: linear-gradient(180deg, #0d1b2a 0%, #1b263b 40%, #415a77 100%), radial-gradient(ellipse at 80% 20%, #e0d0a0 0%, transparent 40%); }
.scn-lysander-hermia-rest .lh-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1b263b 0%, transparent 100%); animation: lh-sky 10s ease-in-out infinite alternate; }
.scn-lysander-hermia-rest .lh-stars { position:absolute; top:10%; left:10%; width:3px; height:3px; background: #ffffff; border-radius:50%; box-shadow: 60px 40px #ffffff, 140px 80px #ffffff, 220px 30px #ffffff, 300px 60px #ffffff; animation: lh-twinkle 4s ease-in-out infinite; }
.scn-lysander-hermia-rest .lh-bank { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-lysander-hermia-rest .lh-tree { position:absolute; bottom:25%; left:5%; width:45%; height:75%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 80% 20% 60% 40% / 60% 40% 60% 40%; transform-origin: bottom center; animation: lh-weep 15s ease-in-out infinite; }
.scn-lysander-hermia-rest .lh-lysander { position:absolute; bottom:12%; left:32%; width:50px; height:75px; background: #0d1b2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-8deg); transform-origin: bottom center; animation: lh-sleep 6s ease-in-out infinite; }
.scn-lysander-hermia-rest .lh-hermia { position:absolute; bottom:12%; left:46%; width:45px; height:70px; background: #0d1b2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(8deg); transform-origin: bottom center; animation: lh-sleep 6s ease-in-out infinite -3s; }
.scn-lysander-hermia-rest .lh-pillow { position:absolute; bottom:18%; left:28%; width:40px; height:20px; background: #3a4a5a; border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lh-pillow 6s ease-in-out infinite; }
.scn-lysander-hermia-rest .lh-fireflies { position:absolute; bottom:40%; left:60%; width:6px; height:6px; background: #e0d0a0; border-radius:50%; box-shadow: 0 0 18px 5px rgba(224,208,160,.6); animation: lh-float 14s linear infinite; }
.scn-lysander-hermia-rest .lh-fireflies { position:absolute; bottom:50%; left:20%; width:4px; height:4px; background: #e0d0a0; border-radius:50%; box-shadow: 0 0 12px 3px rgba(224,208,160,.6); animation: lh-float 18s linear infinite -7s; }
@keyframes lh-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes lh-twinkle { 0% { opacity:.2; } 50% { opacity:1; } 100% { opacity:.2; } }
@keyframes lh-weep { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes lh-sleep { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.02); } 100% { transform: rotate(-8deg) scaleY(1); } }
@keyframes lh-pillow { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lh-float { 0% { transform: translate(0, 0) scale(0.6); opacity:0; } 25% { transform: translate(30px, -40px) scale(1); opacity:1; } 50% { transform: translate(60px, 10px) scale(0.8); opacity:.8; } 75% { transform: translate(90px, -30px) scale(1.1); opacity:1; } 100% { transform: translate(120px, 0) scale(0.6); opacity:0; } }

.scn-audience-commentary-after-death {
  background:
    linear-gradient(180deg, #4a1a0a 0%, #3a1208 30%, #2a0a04 60%, #1a0502 100%),
    radial-gradient(ellipse at 60% 20%, #b04020 0%, transparent 50%),
    radial-gradient(ellipse at 50% 100%, #5a1a0a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-audience-commentary-after-death .stage-bg {
  position: absolute;
  inset: 0 0 0 0;
  background: linear-gradient(0deg, #3a1a0a 0%, transparent 60%);
  animation: ac-stage 20s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .moon {
  position: absolute;
  top: 6%;
  left: 70%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle at 30% 30%, #ffe8b0 0%, #e8c080 60%, #c09050 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,192,128,0.6), 0 0 60px 20px rgba(192,144,80,0.3);
  animation: ac-moon 8s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .pyramus-body {
  position: absolute;
  bottom: 18%;
  left: 32%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-pyramus 4s ease-in-out infinite;
}
.scn-audience-commentary-after-death .wall {
  position: absolute;
  bottom: 12%;
  left: 15%;
  width: 70%;
  height: 14%;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a2a1a 50%, #3a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ac-wall 12s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .audience-figure {
  position: absolute;
  bottom: 24%;
  left: 6%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #1a0a02 0%, #0d0501 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ac-audience 2.5s ease-in-out infinite;
}
.scn-audience-commentary-after-death .lantern-glow {
  position: absolute;
  bottom: 8%;
  left: 50%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,160,64,0.7);
  animation: ac-lantern 3s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .laughter-burst {
  position: absolute;
  top: 30%;
  left: 22%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #ffcc88 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.6;
  animation: ac-laugh 1.8s ease-in-out infinite;
}

@keyframes ac-stage {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ac-moon {
  0% { transform: translate(0, 0); box-shadow: 0 0 30px 10px rgba(232,192,128,0.6); }
  50% { transform: translate(-5px, 3px); box-shadow: 0 0 40px 15px rgba(232,192,128,0.8); }
  100% { transform: translate(2px, -2px); box-shadow: 0 0 25px 8px rgba(232,192,128,0.5); }
}
@keyframes ac-pyramus {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(-5deg) scale(0.95); }
  50% { transform: rotate(0deg) scale(1); }
  75% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes ac-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ac-audience {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-8deg); }
  50% { transform: translateX(16px) rotate(5deg); }
  75% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ac-lantern {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes ac-laugh {
  0% { transform: scale(0.8) rotate(-10deg); opacity: 0.4; }
  30% { transform: scale(1.5) rotate(15deg); opacity: 0.9; }
  60% { transform: scale(1.2) rotate(-5deg); opacity: 0.7; }
  100% { transform: scale(0.8) rotate(0deg); opacity: 0.4; }
}

.scn-thisbe-entrance-lament {
  background:
    linear-gradient(0deg, #2a0a04 0%, #3a1208 40%, #4a1a0a 70%, #5a220c 100%),
    radial-gradient(ellipse at 40% 20%, #a04020 0%, transparent 60%),
    radial-gradient(ellipse at 70% 80%, #6a220a 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-thisbe-entrance-lament .stage-bg {
  position: absolute;
  inset: 0 0 0 0;
  background: linear-gradient(180deg, transparent 0%, #1a0502 100%);
  animation: te-stage 25s ease-in-out infinite alternate;
}
.scn-thisbe-entrance-lament .wall {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 50%;
  height: 18%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a220a 50%, #2a1004 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.7);
  transform: translateX(-50%);
  animation: te-wall 10s ease-in-out infinite alternate;
}
.scn-thisbe-entrance-lament .pyramus-body {
  position: absolute;
  bottom: 12%;
  left: 38%;
  width: 28px;
  height: 38px;
  background: linear-gradient(180deg, #4a1a0a 0%, #2a0a04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te-pyramus 5s ease-in-out infinite;
}
.scn-thisbe-entrance-lament .thisbe-silhouette {
  position: absolute;
  bottom: 20%;
  left: 62%;
  width: 24px;
  height: 48px;
  background: linear-gradient(180deg, #1a0a02 0%, #0d0501 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: te-thisbe 3s ease-in-out infinite;
}
.scn-thisbe-entrance-lament .lantern-glow {
  position: absolute;
  bottom: 5%;
  left: 30%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #ffaa40 0%, #ff6600 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px rgba(255,170,64,0.8);
  animation: te-lantern 4s ease-in-out infinite alternate;
}
.scn-thisbe-entrance-lament .teardrop-1 {
  position: absolute;
  top: 22%;
  left: 64%;
  width: 6px;
  height: 10px;
  background: radial-gradient(circle at 40% 40%, #d0a080 0%, #906050 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: te-tear1 2s ease-in-out infinite;
}
.scn-thisbe-entrance-lament .teardrop-2 {
  position: absolute;
  top: 26%;
  left: 68%;
  width: 5px;
  height: 10px;
  background: radial-gradient(circle at 40% 40%, #d0a080 0%, #906050 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: te-tear2 2.5s ease-in-out infinite;
  animation-delay: 0.8s;
}
.scn-thisbe-entrance-lament .grass-blade {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 20%;
  height: 4%;
  background: linear-gradient(180deg, #3a5a1a 0%, #1a2a0a 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  filter: blur(2px);
  animation: te-grass 15s linear infinite alternate;
}

@keyframes te-stage {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes te-wall {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02) translateY(-1px); }
  100% { transform: translateX(-50%) scaleX(0.98) translateY(1px); }
}
@keyframes te-pyramus {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(3deg) scale(0.95); }
  50% { transform: rotate(-2deg) scale(1); }
  75% { transform: rotate(2deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes te-thisbe {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-4px) rotate(-5deg); }
  60% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes te-lantern {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.4); }
  100% { opacity: 0.7; transform: scale(0.8); }
}
@keyframes te-tear1 {
  0% { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateY(12px) scaleX(0.6); opacity: 0.4; }
  100% { transform: translateY(24px) scaleX(0.3); opacity: 0; }
}
@keyframes te-tear2 {
  0% { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateY(10px) scaleX(0.7); opacity: 0.5; }
  100% { transform: translateY(20px) scaleX(0.4); opacity: 0; }
}
@keyframes te-grass {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-pyramus-lament-discovery {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a10 40%, #6a3a15 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #c07030 0%, #8a4010 40%, transparent 70%);
}
.scn-pyramus-lament-discovery .stage-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
  animation: pl-bg 15s ease-in-out infinite alternate;
}
.scn-pyramus-lament-discovery .moon {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #f0c060 0%, #d09030 50%, #b07020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,192,96,.4);
  animation: pl-moon 10s ease-in-out infinite alternate;
}
.scn-pyramus-lament-discovery .curtain-l {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(135deg, #c8553d 0%, #8a3018 50%, #5a1a0a 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: top left;
  animation: pl-curtain 6s ease-in-out infinite alternate;
}
.scn-pyramus-lament-discovery .curtain-r {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(225deg, #c8553d 0%, #8a3018 50%, #5a1a0a 100%);
  border-radius: 30% 0 0 30%;
  transform-origin: top right;
  animation: pl-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-pyramus-lament-discovery .figure {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pl-figure 3s ease-in-out infinite;
}
.scn-pyramus-lament-discovery .veil {
  position: absolute; bottom: 30%; left: 45%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #c0a080 0%, #908060 100%);
  border-radius: 50% 50% 0 0;
  opacity: 0.7;
  animation: pl-veil 4s ease-in-out infinite;
}
.scn-pyramus-lament-discovery .lion-mask {
  position: absolute; bottom: 20%; right: 30%;
  width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #b07030 0%, #7a4a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(0,0,0,.6);
  animation: pl-lion 2s ease-in-out infinite alternate;
}
.scn-pyramus-lament-discovery .fire-glow {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,80,30,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: pl-fire 1.5s ease-in-out infinite alternate;
}
@keyframes pl-bg {
  0% { opacity: .8; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes pl-moon {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
  100% { transform: translateX(-50%) scale(.95); }
}
@keyframes pl-curtain {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(-1deg) scaleX(.98); }
}
@keyframes pl-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pl-veil {
  0%,100% { transform: translate(0,0) rotate(-3deg); }
  50% { transform: translate(2px,-1px) rotate(3deg); }
}
@keyframes pl-lion {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.1) rotate(5deg); }
}
@keyframes pl-fire {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .8; transform: scale(.95); }
}

.scn-item-sword {
  background: 
    linear-gradient(180deg, #1a0e05 0%, #3a1a0a 30%, #5a2a10 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #c07030 0%, #8a4010 40%, transparent 70%);
}
.scn-item-sword .stone {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,.8);
  animation: is-stone 20s ease-in-out infinite alternate;
}
.scn-item-sword .sword-blade {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 140px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 50%, #908060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 4px rgba(240,224,192,.3);
  animation: is-blade 8s ease-in-out infinite;
}
.scn-item-sword .sword-handle {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: is-handle 3s ease-in-out infinite alternate;
}
.scn-item-sword .figure-hand {
  position: absolute; bottom: 40%; left: 30%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: is-hand 2s ease-in-out infinite alternate;
}
.scn-item-sword .sparks {
  position: absolute; bottom: 50%; left: 48%;
  width: 8px; height: 8px;
  background: #f0c060;
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(240,192,96,.8);
  animation: is-sparks 0.6s ease-in-out infinite alternate;
}
.scn-item-sword .fire-glare {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,80,30,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: is-glare 1.5s ease-in-out infinite alternate;
}
.scn-item-sword .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 140px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: is-shadow 4s ease-in-out infinite;
}
@keyframes is-stone {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(.98); }
}
@keyframes is-blade {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(1.5deg); }
}
@keyframes is-handle {
  0% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes is-hand {
  0% { transform: translateY(0) rotate(-3deg); }
  100% { transform: translateY(-4px) rotate(5deg); }
}
@keyframes is-sparks {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: .3; transform: scale(.8); }
}
@keyframes is-glare {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.2); }
  100% { opacity: .6; transform: scale(.9); }
}
@keyframes is-shadow {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
}

.scn-thisbe-entrance-lament {
  background:
    linear-gradient(180deg, #3c1a0a 0%, #7a3a1a 30%, #c07030 50%, #7a3a1a 70%, #2a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #e09040 0%, transparent 50%);
}

.scn-thisbe-entrance-lament .backdrop {
  position: absolute;
  inset: 0 0 20% 0;
  background:
    radial-gradient(circle at 40% 30%, rgba(220,180,100,0.3) 0%, transparent 40%),
    linear-gradient(180deg, #4a2010 0%, #2a0a00 100%);
  animation: tl-firelight 6s ease-in-out infinite alternate;
}

.scn-thisbe-entrance-lament .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}

.scn-thisbe-entrance-lament .thisbe-figure {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #5e2a1a 0%, #2a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 -4px 20px rgba(200,100,40,0.3);
  animation: tl-sway 4s ease-in-out infinite;
  /* profile suggestion: tilted head forward */
}

.scn-thisbe-entrance-lament .thisbe-figure::before {
  content: '';
  position: absolute;
  top: 10%;
  left: -10%;
  width: 14px;
  height: 16px;
  background: #3a1a0a;
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  transform: rotate(-20deg);
  /* hair or arm gesture */
}

.scn-thisbe-entrance-lament .pyramus-body {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%);
  border-radius: 40% 40% 60% 60% / 30% 30% 50% 50%;
  transform: rotate(-10deg);
  animation: tl-dead 12s ease-in-out infinite;
}

.scn-thisbe-entrance-lament .tear {
  position: absolute;
  width: 4px;
  height: 8px;
  background: radial-gradient(circle at 50% 30%, #e0d0b0 0%, #c0a080 80%);
  border-radius: 50% 50% 40% 40%;
  opacity: 0.8;
}

.scn-thisbe-entrance-lament .tear-a {
  top: 42%;
  left: 33%;
  animation: tl-fall 1.5s ease-in infinite;
  animation-delay: 0.2s;
}

.scn-thisbe-entrance-lament .tear-b {
  top: 44%;
  left: 38%;
  animation: tl-fall 1.5s ease-in infinite;
  animation-delay: 0.9s;
}

.scn-thisbe-entrance-lament .lantern {
  position: absolute;
  bottom: 35%;
  left: 15%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(220,160,80,0.6), inset 0 0 8px #f0c080;
  animation: tl-flicker 3s ease-in-out infinite alternate;
}

.scn-thisbe-entrance-lament .handkerchief {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 16px;
  height: 10px;
  background: linear-gradient(135deg, #b87878 0%, #8a4848 100%);
  border-radius: 20% 20% 40% 40% / 20% 20% 50% 50%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: tl-flutter 2s ease-in-out infinite alternate;
}

@keyframes tl-firelight {
  0% { opacity: 0.7; background-position: 0% 30%; }
  50% { opacity: 1; background-position: 5% 35%; }
  100% { opacity: 0.8; background-position: 0% 30%; }
}

@keyframes tl-sway {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(2px) rotate(2deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}

@keyframes tl-dead {
  0%, 100% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(1.02); }
}

@keyframes tl-fall {
  0% { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateY(8px) scaleX(0.8); opacity: 0.6; }
  100% { transform: translateY(16px) scaleX(0.6); opacity: 0; }
}

@keyframes tl-flicker {
  0% { box-shadow: 0 0 15px 8px rgba(220,160,80,0.5); }
  50% { box-shadow: 0 0 25px 14px rgba(240,200,120,0.7); }
  100% { box-shadow: 0 0 18px 10px rgba(220,160,80,0.6); }
}

@keyframes tl-flutter {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(2px); }
  100% { transform: rotate(12deg) translateX(-1px); }
}

.scn-item-sword {
  background:
    linear-gradient(180deg, #2b1100 0%, #4a1f0d 30%, #6e3018 60%, #a5461a 100%),
    radial-gradient(ellipse at 50% 100%, #ff7b3f 0%, transparent 60%);
}
.scn-item-sword .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,123,63,0.15) 0%, transparent 60%);
  animation: swd-breathe 6s ease-in-out infinite alternate;
}
.scn-item-sword .fire {
  position: absolute;
  bottom: 26%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 100%, #ff7b3f 0%, #ff4f00 40%, transparent 70%),
    radial-gradient(ellipse at 50% 60%, #ffa366 0%, transparent 50%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px #ff7b3f, 0 0 80px 40px rgba(255,123,63,0.4);
  animation: swd-fire 2s ease-in-out infinite alternate;
}
.scn-item-sword .stone {
  position: absolute;
  bottom: 20%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: swd-stone 10s ease-in-out infinite;
}
.scn-item-sword .sword {
  position: absolute;
  bottom: 45%; left: 50%; width: 12px; height: 100px;
  transform: translateX(-50%) rotate(10deg);
  background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 40%, #808080 70%, #606060 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.3);
  animation: swd-shimmer 3s ease-in-out infinite;
}
.scn-item-sword .figure {
  position: absolute;
  bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swd-wobble 2s ease-in-out infinite alternate;
}
.scn-item-sword .figure::before {
  content: '';
  position: absolute;
  top: -20px; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
}
.scn-item-sword .sparks-a,
.scn-item-sword .sparks-b {
  position: absolute;
  bottom: 30%; width: 4px; height: 4px;
  background: #ffc080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffa040;
  animation: swd-spark 1.5s ease-in-out infinite;
}
.scn-item-sword .sparks-a {
  left: 45%;
  animation-delay: 0s;
}
.scn-item-sword .sparks-b {
  left: 55%;
  width: 3px; height: 3px;
  animation-delay: 0.8s;
}

@keyframes swd-breathe {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes swd-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.08) scaleX(0.95); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1.02) scaleX(1.02); opacity: 0.95; }
}
@keyframes swd-stone {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes swd-shimmer {
  0% { filter: brightness(1) drop-shadow(0 0 2px #ffd080); transform: translateX(-50%) rotate(10deg); }
  50% { filter: brightness(1.2) drop-shadow(0 0 10px #ffd080); transform: translateX(-50%) rotate(12deg); }
  100% { filter: brightness(0.9) drop-shadow(0 0 2px #ffd080); transform: translateX(-50%) rotate(9deg); }
}
@keyframes swd-wobble {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-4px); }
  100% { transform: rotate(-2deg) translateY(-2px); }
}
@keyframes swd-spark {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; }
  50% { transform: translateY(-30px) rotate(180deg) scale(0.6); opacity: 0.7; }
  100% { transform: translateY(-60px) rotate(360deg) scale(0.2); opacity: 0; }
}

.scn-pyramus-lament-discovery {
  background: linear-gradient(180deg, #2a0a0a 0%, #4a1a0a 30%, #8a3a1a 60%, #c06030 100%), radial-gradient(ellipse at 50% 100%, #ff8030 0%, transparent 70%);
  overflow: hidden;
}
.scn-pyramus-lament-discovery .bg-fire {
  position: absolute; inset:0;
  background: radial-gradient(circle at 50% 50%, rgba(255,100,0,0.25) 0%, transparent 70%);
  animation: pyra-flicker 2s ease-in-out infinite alternate;
}
.scn-pyramus-lament-discovery .ground {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #1a0a0a, #3a1a0a);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-pyramus-lament-discovery .moon {
  position: absolute; top:10%; left:70%; width:80px; height:80px;
  background: radial-gradient(circle, #ffe0a0 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px #ffc060;
  animation: pyra-moonpulse 4s ease-in-out infinite;
}
.scn-pyramus-lament-discovery .figure {
  position: absolute; bottom:10%; left:30%; width:30px; height:60px;
  background: #1a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pyra-figure 2s ease-in-out infinite alternate;
}
.scn-pyramus-lament-discovery .mantle {
  position: absolute; bottom:10%; left:35%; width:40px; height:10px;
  background: #8a3a1a;
  border-radius: 40% 60% 30% 70%;
  animation: pyra-mantle 3s ease-in-out infinite;
}
.scn-pyramus-lament-discovery .torch {
  position: absolute; bottom:10%; left:20%; width:6px; height:40px;
  background: linear-gradient(180deg, #4a2a0a, #2a1a0a);
  border-radius: 2px;
}
.scn-pyramus-lament-discovery .flame {
  position: absolute; bottom:calc(10% + 40px); left:20%; width:12px; height:15px;
  background: radial-gradient(circle, #ffa040 0%, #ff6030 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pyra-flame 0.5s ease-in-out infinite alternate;
}

@keyframes pyra-flicker {
  0%   { opacity: 0.7; transform: scale(1); }
  50%  { opacity: 1;   transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes pyra-moonpulse {
  0%   { transform: scale(1); opacity:0.9; box-shadow: 0 0 30px #ffc060; }
  50%  { transform: scale(1.05); opacity:1; box-shadow:0 0 60px #ffd080; }
  100% { transform: scale(0.95); opacity:0.85; box-shadow:0 0 20px #ffa040; }
}
@keyframes pyra-figure {
  0%   { transform: translateY(0) rotate(-5deg); }
  50%  { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes pyra-mantle {
  0%   { transform: rotate(0deg) translateY(0); }
  50%  { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(1px); }
}
@keyframes pyra-flame {
  0%   { transform: translateX(-50%) scale(1) rotate(-5deg); }
  50%  { transform: translateX(-50%) scale(1.1,0.9) rotate(0deg); }
  100% { transform: translateX(-50%) scale(0.9,1.1) rotate(5deg); }
}

.scn-audience-commentary-after-death {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a10 50%, #6a3a1a 100%),
    radial-gradient(ellipse at 50% 80%, #d08030 0%, transparent 70%);
}
.scn-audience-commentary-after-death .stage {
  position: absolute;
  bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a14 0%, #1a0f05 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-audience-commentary-after-death .curtain-left,
.scn-audience-commentary-after-death .curtain-right {
  position: absolute;
  top: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #b04a1a 0%, #7a2a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: aud-curtain 6s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .curtain-left  { left: 0; transform-origin: left top; }
.scn-audience-commentary-after-death .curtain-right { right: 0; transform-origin: right top; }
.scn-audience-commentary-after-death .figure-dying {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 60px; height: 100px;
  margin-left: -30px;
  background:
    radial-gradient(circle at 50% 30%, #1a0a00 28%, transparent 30%),
    radial-gradient(ellipse at 50% 100%, #1a0a00 50%, transparent 52%),
    radial-gradient(ellipse at 35% 60%, #1a0a00 14%, transparent 16%),
    radial-gradient(ellipse at 65% 60%, #1a0a00 14%, transparent 16%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aud-die 4s ease-in-out infinite;
}
.scn-audience-commentary-after-death .audience-left,
.scn-audience-commentary-after-death .audience-right {
  position: absolute;
  bottom: 12%; width: 40px; height: 70px;
  background:
    radial-gradient(circle at 50% 20%, #1a0a00 40%, transparent 42%),
    radial-gradient(ellipse at 50% 100%, #1a0a00 70%, transparent 72%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aud-sway 3s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .audience-left  { left: 16%;   transform-origin: bottom center; animation-delay: 0s; }
.scn-audience-commentary-after-death .audience-right { right: 16%;  transform-origin: bottom center; animation-delay: 1.5s; }
.scn-audience-commentary-after-death .firelight {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 120px; height: 120px;
  margin-left: -60px;
  background: radial-gradient(circle, #ffb060 0%, #ff8020 40%, transparent 70%);
  filter: blur(8px);
  animation: aud-flicker 1.5s ease-in-out infinite alternate;
}
.scn-audience-commentary-after-death .moonshine {
  position: absolute;
  top: 10%; left: 10%;
  width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #f0e0b0 0%, #e0c080 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #f0d070;
  animation: aud-moon 8s linear infinite;
}
@keyframes aud-curtain {
  0% { transform: skewY(0deg); }
  50% { transform: skewY(3deg); }
  100% { transform: skewY(-2deg); }
}
@keyframes aud-die {
  0% { transform: translate(0,0) rotate(0deg) scaleY(1); opacity: 1; }
  25% { transform: translate(10px,-20px) rotate(15deg) scaleY(0.9); }
  50% { transform: translate(20px,10px) rotate(45deg) scaleY(0.6); opacity: 0.8; }
  75% { transform: translate(15px,5px) rotate(30deg) scaleY(0.8); }
  100% { transform: translate(0,0) rotate(0deg) scaleY(0.2); opacity: 0.5; }
}
@keyframes aud-sway {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes aud-flicker {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes aud-moon {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateX(50vw) rotate(180deg); opacity: 0.6; }
  100% { transform: translateX(100vw) rotate(360deg); opacity: 0.3; }
}
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-theseus-counsels-hermia {
  background:
    linear-gradient(180deg, #d4c9a8 0%, #c8b88a 40%, #a89060 100%),
    radial-gradient(ellipse at 50% 30%, #f0e6c0 0%, transparent 70%);
}
.scn-theseus-counsels-hermia .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #9a7a4a 0%, #7a5a3a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; }
.scn-theseus-counsels-hermia .wall-bg { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #e8dcc0 0%, #d4c4a0 100%); }
.scn-theseus-counsels-hermia .throne { position:absolute; bottom:25%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 4px 6px 12px rgba(0,0,0,.3); }
.scn-theseus-counsels-hermia .theseus { position:absolute; bottom:28%; left:27%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th1-seated 6s ease-in-out infinite alternate; }
.scn-theseus-counsels-hermia .hermia { position:absolute; bottom:22%; left:54%; width:20px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: th1-stand 8s ease-in-out infinite alternate; }
.scn-theseus-counsels-hermia .column-l { position:absolute; bottom:35%; left:10%; width:12px; height:50%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 20% 20% 10% 10%; }
.scn-theseus-counsels-hermia .column-r { position:absolute; bottom:35%; right:10%; width:12px; height:50%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 20% 20% 10% 10%; }
.scn-theseus-counsels-hermia .window { position:absolute; top:10%; left:45%; width:60px; height:80px; background: radial-gradient(circle, #f0e8d0 0%, #d0c8a8 60%, #a09070 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 30px rgba(255,255,200,.3); animation: th1-window 12s ease-in-out infinite alternate; }
.scn-theseus-counsels-hermia .sunbeam { position:absolute; top:10%; left:48%; width:20px; height:20%; background: linear-gradient(180deg, rgba(255,255,220,.4) 0%, transparent 100%); transform: rotate(15deg); filter: blur(6px); animation: th1-beam 15s ease-in-out infinite alternate; }
@keyframes th1-seated { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes th1-stand { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes th1-window { 0% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(255,255,200,.2); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,200,.5); } 100% { opacity: 0.95; box-shadow: inset 0 0 25px rgba(255,255,200,.3); } }
@keyframes th1-beam { 0% { opacity: 0.2; transform: rotate(12deg); } 50% { opacity: 0.5; transform: rotate(18deg); } 100% { opacity: 0.3; transform: rotate(15deg); } }

.scn-hermia-pleads-her-case {
  background:
    linear-gradient(180deg, #d4c0a0 0%, #b8a080 40%, #8a7050 100%),
    radial-gradient(ellipse at 40% 60%, #f0d8b0 0%, transparent 60%);
}
.scn-hermia-pleads-her-case .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); }
.scn-hermia-pleads-her-case .wall-bg { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%); }
.scn-hermia-pleads-her-case .theseus-shadow { position:absolute; bottom:28%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); opacity: 0.6; animation: he2-shadow 2s ease-in-out infinite alternate; }
.scn-hermia-pleads-her-case .theseus { position:absolute; bottom:28%; left:22%; width:30px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: he2-theseus 3s ease-in-out infinite; }
.scn-hermia-pleads-her-case .hermia-kneeling { position:absolute; bottom:15%; left:55%; width:22px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: he2-kneel 4s ease-in-out infinite alternate; }
.scn-hermia-pleads-her-case .hermia-arm { position:absolute; bottom:25%; left:58%; width:6px; height:18px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom left; animation: he2-arm 4s ease-in-out infinite; }
.scn-hermia-pleads-her-case .candle { position:absolute; bottom:22%; left:40%; width:6px; height:16px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-hermia-pleads-her-case .candle-glow { position:absolute; bottom:22%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: he2-glow 3s ease-in-out infinite alternate; }
@keyframes he2-shadow { 0% { transform: translateX(0); opacity: 0.5; } 100% { transform: translateX(3px); opacity: 0.7; } }
@keyframes he2-theseus { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes he2-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes he2-arm { 0% { transform: rotate(0); } 25% { transform: rotate(20deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes he2-glow { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }

.scn-theseus-nun-or-death {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #b8a890 40%, #9a8870 100%),
    radial-gradient(ellipse at 50% 20%, #f0e8d0 0%, transparent 60%);
}
.scn-theseus-nun-or-death .altar-bg { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 50%, #7a6a5a 100%); }
.scn-theseus-nun-or-death .altar-stone { position:absolute; bottom:20%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-theseus-nun-or-death .nun-figure { position:absolute; bottom:30%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nu3-stand 8s ease-in-out infinite; }
.scn-theseus-nun-or-death .nun-veil { position:absolute; bottom:48%; left:50%; width:36px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-theseus-nun-or-death .candle { position:absolute; bottom:22%; left:45%; width:6px; height:18px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 20% 20% 10% 10%; }
.scn-theseus-nun-or-death .candle-glow { position:absolute; bottom:22%; left:45%; width:24px; height:24px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: nu3-glow 5s ease-in-out infinite alternate; }
.scn-theseus-nun-or-death .rose { position:absolute; bottom:18%; left:52%; width:10px; height:10px; background: radial-gradient(circle, #b87878 0%, #702243 100%); border-radius: 50%; animation: nu3-rose 6s ease-in-out infinite; }
.scn-theseus-nun-or-death .petal { position:absolute; bottom:18%; left:53%; width:8px; height:4px; background: #b87878; border-radius: 50% 50% 20% 20%; transform: rotate(20deg); animation: nu3-petal 6s ease-in-out infinite; }
@keyframes nu3-stand { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes nu3-glow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes nu3-rose { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes nu3-petal { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(30deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }

.scn-theseus-sets-deadline {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a89078 40%, #8a7060 100%),
    radial-gradient(ellipse at 60% 50%, #e0d0b0 0%, transparent 50%);
}
.scn-theseus-sets-deadline .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-theseus-sets-deadline .wall-bg { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #b8a890 0%, #9a8a7a 100%); }
.scn-theseus-sets-deadline .hourglass { position:absolute; top:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 20% 20% 20% 20% / 30% 30% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: de4-hourglass 4s ease-in-out infinite; }
.scn-theseus-sets-deadline .sand-fall { position:absolute; top:40%; left:50%; width:4px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 2px; animation: de4-sand 2s linear infinite; }
.scn-theseus-sets-deadline .theseus-hand { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: de4-hand 5s ease-in-out infinite alternate; }
.scn-theseus-sets-deadline .hermia-silhouette { position:absolute; bottom:20%; right:20%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); opacity: 0.8; animation: de4-hermia 6s ease-in-out infinite; }
.scn-theseus-sets-deadline .shadow-stripe { position:absolute; top:0; left:30%; width:3px; height:100%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 50%, transparent 100%); animation: de4-stripe 7s linear infinite; }
.scn-theseus-sets-deadline .highlight { position:absolute; top:10%; right:10%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,150,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: de4-glow 8s ease-in-out infinite alternate; }
@keyframes de4-hourglass { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(5deg); } 75% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes de4-sand { 0% { height: 20px; opacity: 1; } 100% { height: 5px; opacity: 0.5; } }
@keyframes de4-hand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes de4-hermia { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes de4-stripe { 0% { opacity: 0; } 50% { opacity: 0.5; } 100% { opacity: 0; } }
@keyframes de4-glow { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.5); opacity: 0.6; } 100% { transform: scale(1); opacity: 0.4; } }

.scn-quarelling-continues {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #0f172a 100%), radial-gradient(ellipse at 50% 30%, #38bdf8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  min-height: 100%;
}
.scn-quarelling-continues .moon {
  position: absolute;
  top: 8%;
  right: 18%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #f0f8ff 0%, #b0c4de 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(176,196,222,0.4);
  animation: qc-moon 8s ease-in-out infinite alternate;
}
.scn-quarelling-continues .trees-back {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #0b1a2e 0%, #1a2a3e 100%);
  clip-path: polygon(0% 100%, 5% 60%, 10% 90%, 15% 55%, 20% 85%, 25% 50%, 30% 80%, 35% 45%, 40% 75%, 45% 40%, 50% 70%, 55% 35%, 60% 65%, 65% 30%, 70% 60%, 75% 25%, 80% 55%, 85% 20%, 90% 50%, 95% 15%, 100% 40%, 100% 100%);
  animation: qc-trees 12s ease-in-out infinite alternate;
}
.scn-quarelling-continues .figure-left {
  position: absolute;
  bottom: 20%;
  left: 28%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a2a3e 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: qc-fig-left 0.8s ease-in-out infinite alternate;
}
.scn-quarelling-continues .figure-right {
  position: absolute;
  bottom: 20%;
  right: 28%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a2a3e 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: qc-fig-right 0.9s ease-in-out infinite alternate;
}
.scn-quarelling-continues .arm-left {
  position: absolute;
  bottom: 48%;
  left: 33%;
  width: 18px;
  height: 6px;
  background: #1a2a3e;
  border-radius: 50%;
  transform-origin: 80% 50%;
  animation: qc-arm-left 0.6s ease-in-out infinite alternate;
}
.scn-quarelling-continues .arm-right {
  position: absolute;
  bottom: 48%;
  right: 33%;
  width: 18px;
  height: 6px;
  background: #1a2a3e;
  border-radius: 50%;
  transform-origin: 20% 50%;
  animation: qc-arm-right 0.7s ease-in-out infinite alternate;
}
.scn-quarelling-continues .shadow-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 22%;
  background: linear-gradient(180deg, transparent 0%, #0a0f1a 100%);
  animation: qc-shadow 4s ease-in-out infinite alternate;
}
@keyframes qc-moon {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes qc-trees {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes qc-fig-left {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(-8deg) translateY(-3px); }
}
@keyframes qc-fig-right {
  0% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(8deg) translateY(-3px); }
}
@keyframes qc-arm-left {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(20deg); }
}
@keyframes qc-arm-right {
  0% { transform: rotate(20deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes qc-shadow {
  0% { opacity: 0.6; }
  100% { opacity: 0.8; }
}

.scn-demetrius-lysander-depart {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 50%, #0f172a 100%), radial-gradient(ellipse at 50% 20%, #38bdf8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 100%;
}
.scn-demetrius-lysander-depart .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1e293b 0%, transparent 100%);
  animation: dld-sky 15s ease-in-out infinite alternate;
}
.scn-demetrius-lysander-depart .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: dld-hills 20s ease-in-out infinite alternate;
}
.scn-demetrius-lysander-depart .figure-lead {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 20px;
  height: 48px;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dld-lead 3s ease-in-out infinite;
}
.scn-demetrius-lysander-depart .figure-follow {
  position: absolute;
  bottom: 27%;
  left: 48%;
  width: 18px;
  height: 42px;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dld-follow 3.5s ease-in-out infinite;
}
.scn-demetrius-lysander-depart .path {
  position: absolute;
  bottom: 24%;
  left: 30%;
  right: 20%;
  height: 8px;
  background: linear-gradient(90deg, transparent, #2a3a4a 20%, #3a4a5a 50%, #2a3a4a 80%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: dld-path 6s ease-in-out infinite alternate;
}
.scn-demetrius-lysander-depart .tree-silhouette {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f172a 100%);
  border-radius: 30% 30% 0 0;
  transform: skewX(-5deg);
  box-shadow: -8px 0 12px rgba(0,0,0,0.4);
  animation: dld-tree 10s ease-in-out infinite alternate;
}
@keyframes dld-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dld-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes dld-lead {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  33% { transform: translateX(-10px) translateY(-2px) rotate(2deg); }
  66% { transform: translateX(-20px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-30px) translateY(-1px) rotate(1deg); }
}
@keyframes dld-follow {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(-12px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(-24px) translateY(0) rotate(-2deg); }
  100% { transform: translateX(-36px) translateY(-2px) rotate(0); }
}
@keyframes dld-path {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(1.1); opacity: 0.8; }
}
@keyframes dld-tree {
  0% { transform: skewX(-5deg) scaleY(1); }
  100% { transform: skewX(-5deg) scaleY(1.03); }
}

.scn-oberon-puck-fix-mistake {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a2030 50%, #0b0e1a 100%), radial-gradient(ellipse at 50% 40%, #4a6a8a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 100%;
}
.scn-oberon-puck-fix-mistake .night-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0b0e1a 0%, #0f172a 100%);
  animation: opf-night 20s ease-in-out infinite alternate;
}
.scn-oberon-puck-fix-mistake .moonbeam {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 60px;
  height: 200px;
  background: linear-gradient(180deg, rgba(150,180,220,0.1) 0%, rgba(150,180,220,0.3) 50%, transparent 100%);
  transform: translateX(-50%) skewX(-5deg);
  filter: blur(4px);
  animation: opf-beam 6s ease-in-out infinite alternate;
}
.scn-oberon-puck-fix-mistake .oberon {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: 0 0 20px 5px rgba(100,140,180,0.2);
  animation: opf-oberon 4s ease-in-out infinite alternate;
}
.scn-oberon-puck-fix-mistake .puck {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: opf-puck 3s ease-in-out infinite alternate;
}
.scn-oberon-puck-fix-mistake .flower-left {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #b0c4de 0%, #6a8aaa 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #6a8aaa;
  animation: opf-flower 5s ease-in-out infinite alternate;
}
.scn-oberon-puck-fix-mistake .flower-right {
  position: absolute;
  bottom: 20%;
  right: 25%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #b0c4de 0%, #6a8aaa 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #6a8aaa;
  animation: opf-flower 5s ease-in-out infinite alternate-reverse;
}
.scn-oberon-puck-fix-mistake .mist {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(150,180,220,0.15) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, rgba(150,180,220,0.1) 0%, transparent 50%);
  filter: blur(10px);
  animation: opf-mist 12s ease-in-out infinite alternate;
}
@keyframes opf-night {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes opf-beam {
  0% { transform: translateX(-50%) skewX(-5deg) scaleY(0.8); opacity: 0.5; }
  100% { transform: translateX(-50%) skewX(-5deg) scaleY(1.2); opacity: 1; }
}
@keyframes opf-oberon {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-5px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes opf-puck {
  0% { transform: rotate(-10deg) translateY(0) scaleX(1); }
  50% { transform: rotate(-12deg) translateY(-4px) scaleX(0.95); }
  100% { transform: rotate(-10deg) translateY(0) scaleX(1); }
}
@keyframes opf-flower {
  0% { transform: scale(1); opacity: 0.7; }
  100% { transform: scale(1.3); opacity: 1; }
}
@keyframes opf-mist {
  0% { transform: translateX(-10px); opacity: 0.6; }
  100% { transform: translateX(10px); opacity: 0.9; }
}

.scn-oberon-leads-lovers-astray {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 50%, #0f172a 100%), radial-gradient(ellipse at 50% 60%, #2a4a6a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 100%;
}
.scn-oberon-leads-lovers-astray .sleep-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0b0e1a 0%, #141a2a 100%);
  animation: oll-sleep-bg 20s ease-in-out infinite alternate;
}
.scn-oberon-leads-lovers-astray .lying-figure-1 {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60px;
  height: 30px;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: rotate(10deg);
  animation: oll-lying-1 6s ease-in-out infinite alternate;
}
.scn-oberon-leads-lovers-astray .lying-figure-2 {
  position: absolute;
  bottom: 18%;
  right: 20%;
  width: 60px;
  height: 30px;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: rotate(-5deg);
  animation: oll-lying-2 7s ease-in-out infinite alternate;
}
.scn-oberon-leads-lovers-astray .oberon-shape {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8);
  box-shadow: 0 0 30px 8px rgba(100,140,180,0.3);
  animation: oll-oberon 8s ease-in-out infinite alternate;
}
.scn-oberon-leads-lovers-astray .herb-glow {
  position: absolute;
  top: 40%;
  left: 45%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #b0c4de 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(150,180,220,0.5), 0 0 60px 20px rgba(150,180,220,0.2);
  animation: oll-herb 4s ease-in-out infinite alternate;
}
.scn-oberon-leads-lovers-astray .bat-wings {
  position: absolute;
  top: 25%;
  left: 30%;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse at 30% 50%, #1e293b 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, #1e293b 0%, transparent 60%);
  filter: blur(3px);
  animation: oll-bat 15s ease-in-out infinite alternate;
}
.scn-oberon-leads-lovers-astray .cloud-drift {
  position: absolute;
  top: 12%;
  left: 0;
  width: 100%;
  height: 20%;
  background: radial-gradient(ellipse at 20% 50%, rgba(150,180,220,0.05) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 50%, rgba(150,180,220,0.03) 0%, transparent 50%);
  filter: blur(8px);
  animation: oll-cloud 40s linear infinite;
}
@keyframes oll-sleep-bg {
  0% { opacity: 0.85; }
  100% { opacity: 1; }
}
@keyframes oll-lying-1 {
  0% { transform: rotate(10deg) scaleX(1); }
  100% { transform: rotate(8deg) scaleX(1.02); }
}
@keyframes oll-lying-2 {
  0% { transform: rotate(-5deg) scaleX(1); }
  100% { transform: rotate(-3deg) scaleX(1.02); }
}
@keyframes oll-oberon {
  0% { transform: scale(0.8) translateY(0); opacity: 0.9; }
  50% { transform: scale(0.85) translateY(-5px); opacity: 1; }
  100% { transform: scale(0.8) translateY(0); opacity: 0.9; }
}
@keyframes oll-herb {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}
@keyframes oll-bat {
  0% { transform: rotate(-5deg) scaleX(1); }
  100% { transform: rotate(5deg) scaleX(1.1); }
}
@keyframes oll-cloud {
  0% { transform: translateX(-10%); }
  100% { transform: translateX(10%); }
}

.scn-quince-casts-parts { background: linear-gradient(180deg, #2a1a0e 0%, #3a2515 35%, #4a3020 70%, #2a1a0e 100%), radial-gradient(ellipse at 50% 100%, #4a3020 0%, transparent 70%); }
.scn-quince-casts-parts .wall-left { position:absolute; left:0; top:0; width:35%; height:100%; background: linear-gradient(90deg, #1a0e08 0%, #3a2515 100%); box-shadow: inset -4px 0 10px rgba(0,0,0,.5); }
.scn-quince-casts-parts .wall-right { position:absolute; right:0; top:0; width:35%; height:100%; background: linear-gradient(270deg, #1a0e08 0%, #3a2515 100%); box-shadow: inset 4px 0 10px rgba(0,0,0,.5); }
.scn-quince-casts-parts .table { position:absolute; bottom:18%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius:6% 6% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: qcp-table 8s ease-in-out infinite alternate; }
.scn-quince-casts-parts .scroll { position:absolute; bottom:22%; left:48%; width:16%; height:30%; background: linear-gradient(180deg, #c8a860 0%, #a08040 50%, #806030 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 4px 6px rgba(0,0,0,.5); transform:rotate(-4deg); animation: qcp-scroll 12s ease-in-out infinite; }
.scn-quince-casts-parts .figure-a { position:absolute; bottom:20%; left:20%; width:16%; height:60%; background: linear-gradient(180deg, #4a3525 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: qcp-fig-a 10s ease-in-out infinite; }
.scn-quince-casts-parts .figure-b { position:absolute; bottom:22%; left:52%; width:14%; height:56%; background: linear-gradient(180deg, #5a4535 0%, #3a2515 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: qcp-fig-b 9s ease-in-out infinite 0.5s; }
.scn-quince-casts-parts .figure-c { position:absolute; bottom:19%; left:68%; width:12%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: qcp-fig-c 11s ease-in-out infinite 1s; }
.scn-quince-casts-parts .lantern-swing { position:absolute; top:8%; left:45%; width:10%; height:14%; background: radial-gradient(circle at 50% 30%, #d0a050 0%, #a07030 60%, #5a3010 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 40px 20px rgba(180,120,40,.4), 0 0 80px 30px rgba(180,120,40,.2); transform-origin: top center; animation: qcp-lantern 3s ease-in-out infinite alternate; }
@keyframes qcp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes qcp-scroll { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes qcp-fig-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes qcp-fig-b { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(-5px) rotate(-2deg) } 66% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes qcp-fig-c { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes qcp-lantern { 0% { transform: rotate(-6deg) scaleY(1) } 50% { transform: rotate(0deg) scaleY(1.02) } 100% { transform: rotate(6deg) scaleY(1) } }

.scn-quince-assigns-pyramus { background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 40%, #3a2010 80%, #1a0e08 100%), radial-gradient(ellipse at 50% 80%, #3a2010 0%, transparent 60%); }
.scn-quince-assigns-pyramus .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2515 0%, #1a0e08 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-quince-assigns-pyramus .wall-hang { position:absolute; top:5%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3010 0%, #3a1a08 100%); border-radius:0 0 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: qap-hang 14s ease-in-out infinite; }
.scn-quince-assigns-pyramus .scroll-hand { position:absolute; bottom:32%; left:58%; width:8%; height:32%; background: linear-gradient(180deg, #c8a860 0%, #806030 100%); border-radius:4% 4% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.5); transform-origin: bottom center; animation: qap-scroll 5s ease-in-out infinite; }
.scn-quince-assigns-pyramus .bottom-fig { position:absolute; bottom:28%; left:30%; width:20%; height:70%; background: linear-gradient(180deg, #4a3525 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: qap-bottom 4s ease-in-out infinite; }
.scn-quince-assigns-pyramus .cape-swirl { position:absolute; bottom:30%; left:22%; width:30%; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0e 100%); border-radius:0 70% 0 70% / 0 60% 0 60%; box-shadow: 0 6px 12px rgba(0,0,0,.4); transform-origin: bottom left; animation: qap-cape 4s ease-in-out infinite; }
.scn-quince-assigns-pyramus .spotlight { position:absolute; top:0; left:35%; right:35%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(200,160,80,.15) 0%, transparent 70%); animation: qap-spot 8s ease-in-out infinite alternate; }
@keyframes qap-hang { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes qap-scroll { 0% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes qap-bottom { 0% { transform: scale(1) rotate(-3deg) } 25% { transform: scale(1.05) rotate(2deg) translateY(-4px) } 50% { transform: scale(1) rotate(3deg) } 75% { transform: scale(0.98) rotate(-2deg) translateY(-2px) } 100% { transform: scale(1) rotate(-3deg) } }
@keyframes qap-cape { 0% { transform: rotate(-5deg) scaleX(1) } 33% { transform: rotate(8deg) scaleX(1.2) } 66% { transform: rotate(-10deg) scaleX(0.9) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes qap-spot { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-bottom-wants-to-play-all { background: linear-gradient(180deg, #1a1208 0%, #2a1a0e 30%, #3a2010 70%, #1a0e08 100%), radial-gradient(ellipse at 50% 100%, #3a2010 0%, transparent 70%); }
.scn-bottom-wants-to-play-all .stage-back { position:absolute; top:10%; left:5%; right:5%; bottom:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-bottom-wants-to-play-all .bottom-a { position:absolute; bottom:20%; left:15%; width:18%; height:65%; background: linear-gradient(180deg, #4a3525 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform-origin: bottom center; animation: btp-a 5s ease-in-out infinite; }
.scn-bottom-wants-to-play-all .bottom-b { position:absolute; bottom:22%; left:42%; width:16%; height:60%; background: linear-gradient(180deg, #5a4535 0%, #3a2515 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform-origin: bottom center; animation: btp-b 4s ease-in-out infinite 0.5s; }
.scn-bottom-wants-to-play-all .bottom-c { position:absolute; bottom:18%; left:68%; width:14%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform-origin: bottom center; animation: btp-c 6s ease-in-out infinite 1s; }
.scn-bottom-wants-to-play-all .tyrant-crown { position:absolute; top:20%; left:45%; width:10%; height:8%; background: radial-gradient(circle at 50% 50%, #d0a050 0%, #a07030 60%, #5a3010 100%); border-radius:20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: btp-crown 3s ease-in-out infinite alternate; }
.scn-bottom-wants-to-play-all .prop-sword { position:absolute; bottom:30%; left:50%; width:6%; height:40%; background: linear-gradient(180deg, #a0a0a0 0%, #606060 50%, #303030 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: btp-sword 5s ease-in-out infinite; }
.scn-bottom-wants-to-play-all .comet-light { position:absolute; top:5%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,.1) 0%, transparent 70%); animation: btp-comet 12s linear infinite; }
@keyframes btp-a { 0% { transform: translateX(0) rotate(-4deg) } 25% { transform: translateX(8px) rotate(3deg) scale(1.05) } 50% { transform: translateX(0) rotate(4deg) } 75% { transform: translateX(-6px) rotate(-3deg) scale(0.95) } 100% { transform: translateX(0) rotate(-4deg) } }
@keyframes btp-b { 0% { transform: translateY(0) rotate(2deg) } 33% { transform: translateY(-6px) rotate(-3deg) scale(1.08) } 66% { transform: translateY(4px) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes btp-c { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-8px) rotate(5deg) scale(1.03) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes btp-crown { 0% { transform: translateY(0) rotate(-8deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(0) rotate(8deg) } }
@keyframes btp-sword { 0% { transform: rotate(-10deg) } 33% { transform: rotate(20deg) } 66% { transform: rotate(-15deg) } 100% { transform: rotate(-10deg) } }
@keyframes btp-comet { 0% { transform: translateX(-100%) opacity:0 } 20% { opacity:.3 } 80% { opacity:.3 } 100% { transform: translateX(200%) opacity:0 } }

.scn-flute-hesitates-lady-role { background: linear-gradient(180deg, #1a1208 0%, #2a1a0e 30%, #3a2010 70%, #1a0e08 100%), radial-gradient(ellipse at 50% 100%, #2a1a0e 0%, transparent 60%); }
.scn-flute-hesitates-lady-role .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.4) 100%); }
.scn-flute-hesitates-lady-role .flute-fig { position:absolute; bottom:20%; left:38%; width:18%; height:65%; background: linear-gradient(180deg, #4a3525 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform-origin: bottom center; animation: fhl-fig 6s ease-in-out infinite; }
.scn-flute-hesitates-lady-role .beard-hand { position:absolute; bottom:50%; left:32%; width:8%; height:16%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:40% 40% 30% 30%; transform-origin: bottom center; animation: fhl-hand 3s ease-in-out infinite alternate; }
.scn-flute-hesitates-lady-role .mask { position:absolute; bottom:48%; left:44%; width:12%; height:16%; background: linear-gradient(180deg, #c8a860 0%, #a08040 50%, #806030 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: center center; animation: fhl-mask 5s ease-in-out infinite; }
.scn-flute-hesitates-lady-role .ribbon-flow { position:absolute; bottom:40%; left:52%; width:4%; height:30%; background: linear-gradient(180deg, #b87878 0%, #8a4a4a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: top center; animation: fhl-ribbon 4s ease-in-out infinite; }
.scn-flute-hesitates-lady-role .small-lamp { position:absolute; top:15%; left:48%; width:8%; height:12%; background: radial-gradient(circle at 50% 30%, #d0a050 0%, #a07030 60%, #5a3010 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 30px 15px rgba(180,120,40,.3), 0 0 60px 20px rgba(180,120,40,.15); animation: fhl-lamp 4s ease-in-out infinite alternate; }
@keyframes fhl-fig { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-6px) rotate(3deg) } 60% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes fhl-hand { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes fhl-mask { 0% { transform: rotate(-8deg) scale(1) } 33% { transform: rotate(5deg) scale(1.05) } 66% { transform: rotate(-3deg) scale(0.95) } 100% { transform: rotate(-8deg) scale(1) } }
@keyframes fhl-ribbon { 0% { transform: rotate(-15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) } }
@keyframes fhl-lamp { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(1) } }

.scn-hermia-confronts-lysander {
  background: linear-gradient(180deg, #0a0e1a 0%, #121624 30%, #1c2030 70%, #0a0e1a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3050 0%, transparent 60%);
}
.scn-hermia-confronts-lysander .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #121a24 0%, transparent 100%); animation: hcl-sky 20s ease-in-out infinite alternate; }
.scn-hermia-confronts-lysander .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #d0d8e0 0%, #8090a0 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(160,180,200,.3), 0 0 60px 20px rgba(100,120,140,.15); animation: hcl-moon 30s ease-in-out infinite alternate; }
.scn-hermia-confronts-lysander .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1e24 0%, #0e1218 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-hermia-confronts-lysander .tree-left { position:absolute; bottom:35%; left:15%; width:12px; height:60%; background: linear-gradient(180deg, #1a1a20 0%, #0c0c12 100%); border-radius: 20% 20% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.4); animation: hcl-sway 8s ease-in-out infinite; transform-origin: bottom center; }
.scn-hermia-confronts-lysander .tree-right { position:absolute; bottom:35%; right:12%; width:14px; height:55%; background: linear-gradient(180deg, #14141a 0%, #0a0a10 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.4); animation: hcl-sway 10s ease-in-out infinite reverse; transform-origin: bottom center; }
.scn-hermia-confronts-lysander .figure-hermia { position:absolute; bottom:39%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #1c1c2a 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcl-turn 6s ease-in-out infinite; }
.scn-hermia-confronts-lysander .figure-lysander { position:absolute; bottom:39%; left:55%; width:24px; height:48px; background: linear-gradient(180deg, #1e1e2c 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcl-turn 6s ease-in-out infinite reverse; }
.scn-hermia-confronts-lysander .shadow-hermia { position:absolute; bottom:36%; left:35%; width:30px; height:10px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation: hcl-shrink 6s ease-in-out infinite; }
.scn-hermia-confronts-lysander .shadow-lysander { position:absolute; bottom:36%; left:55%; width:32px; height:10px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation: hcl-shrink 6s ease-in-out infinite reverse; }

@keyframes hcl-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hcl-moon { 0% { transform: scale(1); box-shadow: 0 0 30px 8px rgba(160,180,200,.3); } 50% { transform: scale(1.05); box-shadow: 0 0 40px 12px rgba(160,180,200,.4); } 100% { transform: scale(0.95); box-shadow: 0 0 25px 6px rgba(160,180,200,.2); } }
@keyframes hcl-sway { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(-1deg) } }
@keyframes hcl-turn { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes hcl-shrink { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1) } }

.scn-helena-remembers-friendship {
  background: linear-gradient(180deg, #0e1420 0%, #161c2a 40%, #1a2230 70%, #0c1018 100%),
              radial-gradient(ellipse at 30% 20%, #283050 0%, transparent 50%);
}
.scn-helena-remembers-friendship .bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #161e2c 0%, transparent 100%); }
.scn-helena-remembers-friendship .bench { position:absolute; bottom:32%; left:50%; transform:translateX(-50%); width:120px; height:16px; background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-helena-remembers-friendship .figure-left { position:absolute; bottom:34%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #1c1c28 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrf-nod 8s ease-in-out infinite; }
.scn-helena-remembers-friendship .figure-right { position:absolute; bottom:34%; left:54%; width:20px; height:30px; background: linear-gradient(180deg, #1e1e2a 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrf-nod 8s ease-in-out infinite 2s; }
.scn-helena-remembers-friendship .sampler { position:absolute; bottom:38%; left:48%; width:24px; height:18px; background: linear-gradient(180deg, #3a3a42 0%, #2a2a32 100%); border-radius: 10%; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); animation: hrf-glint 4s ease-in-out infinite alternate; }
.scn-helena-remembers-friendship .flower-1 { position:absolute; bottom:35%; left:36%; width:8px; height:8px; background: radial-gradient(circle at 40% 40%, #b0b8c0 0%, #788090 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(160,180,200,.2); animation: hrf-bloom 6s ease-in-out infinite; }
.scn-helena-remembers-friendship .flower-2 { position:absolute; bottom:35%; left:62%; width:6px; height:6px; background: radial-gradient(circle at 40% 40%, #a0a8b0 0%, #687080 70%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(140,160,180,.2); animation: hrf-bloom 6s ease-in-out infinite 3s; }
.scn-helena-remembers-friendship .moonbeam { position:absolute; top:0; left:40%; width:60px; height:60%; background: linear-gradient(180deg, rgba(180,200,220,.06) 0%, transparent 100%); transform: rotate(12deg); filter: blur(8px); animation: hrf-beam 15s linear infinite alternate; }

@keyframes hrf-nod { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes hrf-glint { 0% { box-shadow: inset 0 2px 4px rgba(255,255,255,.1); } 50% { box-shadow: inset 0 4px 8px rgba(255,255,255,.2); } 100% { box-shadow: inset 0 2px 4px rgba(255,255,255,.1); } }
@keyframes hrf-bloom { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes hrf-beam { 0% { opacity:0.5; transform: rotate(10deg) } 100% { opacity:1; transform: rotate(20deg) } }

.scn-hermia-denies-accusations {
  background: linear-gradient(180deg, #0c1020 0%, #141a2c 30%, #1a2236 70%, #0e141a 100%),
              radial-gradient(ellipse at 60% 0%, #2a3860 0%, transparent 70%);
}
.scn-hermia-denies-accusations .backdrop { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #141a2a 0%, transparent 100%); }
.scn-hermia-denies-accusations .moonlight { position:absolute; top:0; left:20%; width:1px; height:50%; background: linear-gradient(180deg, rgba(180,200,230,.2) 0%, transparent 100%); filter: blur(20px); animation: hda-ray 12s ease-in-out infinite alternate; }
.scn-hermia-denies-accusations .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #161c24 0%, #0e1218 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-hermia-denies-accusations .figure-hermia { position:absolute; bottom:28%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a26 0%, #0c0c14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hda-defiant 5s ease-in-out infinite; }
.scn-hermia-denies-accusations .arm-shadow { position:absolute; bottom:38%; left:43%; width:30px; height:6px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(4px); transform: rotate(-20deg); animation: hda-arm 5s ease-in-out infinite; }
.scn-hermia-denies-accusations .tree-trunk { position:absolute; bottom:20%; left:80%; width:16px; height:80%; background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%); border-radius: 30% 30% 0 0; box-shadow: 3px 0 10px rgba(0,0,0,.5); animation: hda-breathe 10s ease-in-out infinite; }
.scn-hermia-denies-accusations .branch-1 { position:absolute; top:15%; left:78%; width:50px; height:6px; background: linear-gradient(90deg, #1a1a22 0%, #0e0e14 100%); border-radius: 20%; transform: rotate(30deg); transform-origin: right center; animation: hda-sway 7s ease-in-out infinite; }
.scn-hermia-denies-accusations .branch-2 { position:absolute; top:25%; left:75%; width:40px; height:5px; background: linear-gradient(90deg, #1a1a22 0%, #0e0e14 100%); border-radius: 20%; transform: rotate(-45deg); transform-origin: right center; animation: hda-sway 9s ease-in-out infinite reverse; }

@keyframes hda-ray { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.7; transform: scaleY(1.2) } 100% { opacity:0.4; transform: scaleY(0.9) } }
@keyframes hda-defiant { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes hda-arm { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(5px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes hda-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes hda-sway { 0% { transform: rotate(30deg) scaleX(1) } 50% { transform: rotate(28deg) scaleX(1.05) } 100% { transform: rotate(30deg) scaleX(1) } }

.scn-hermia-helena-quarrel {
  background: linear-gradient(180deg, #080e1a 0%, #101624 30%, #181e2e 70%, #0a0e14 100%),
              radial-gradient(ellipse at 70% 10%, #1c2850 0%, transparent 60%);
}
.scn-hermia-helena-quarrel .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0e1422 0%, transparent 100%); animation: hhq-sky 18s ease-in-out infinite alternate; }
.scn-hermia-helena-quarrel .moon { position:absolute; top:12%; right:20%; width:36px; height:36px; background: radial-gradient(circle at 40% 40%, #c8d0e0 0%, #788898 70%); border-radius:50%; box-shadow: 0 0 24px 6px rgba(140,160,190,.3), 0 0 50px 16px rgba(100,120,150,.15); animation: hhq-moon 25s ease-in-out infinite alternate; }
.scn-hermia-helena-quarrel .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #141a22 0%, #0a0e14 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-hermia-helena-quarrel .tree-divider { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:10px; height:70%; background: linear-gradient(180deg, #1a1a26 0%, #0c0c12 100%); border-radius: 20% 20% 0 0; box-shadow: -2px 0 6px rgba(0,0,0,.4), 2px 0 6px rgba(0,0,0,.4); }
.scn-hermia-helena-quarrel .hermia-fig { position:absolute; bottom:34%; left:30%; width:22px; height:42px; background: linear-gradient(180deg, #1c1c2a 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hhq-turn 4s ease-in-out infinite; }
.scn-hermia-helena-quarrel .helena-fig { position:absolute; bottom:34%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #1c1c28 0%, #0e0e16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hhq-turn 4s ease-in-out infinite reverse; }
.scn-hermia-helena-quarrel .hermia-hand { position:absolute; bottom:40%; left:34%; width:10px; height:5px; background: #1c1c2a; border-radius: 50% 50% 0 0; transform: rotate(-30deg); transform-origin: bottom center; animation: hhq-point 4s ease-in-out infinite; }
.scn-hermia-helena-quarrel .helena-hand { position:absolute; bottom:40%; right:34%; width:10px; height:5px; background: #1c1c28; border-radius: 50% 50% 0 0; transform: rotate(30deg); transform-origin: bottom center; animation: hhq-point 4s ease-in-out infinite reverse; }

@keyframes hhq-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hhq-moon { 0% { transform: scale(1); box-shadow: 0 0 24px 6px rgba(140,160,190,.3); } 50% { transform: scale(1.03); box-shadow: 0 0 30px 8px rgba(140,160,190,.4); } 100% { transform: scale(0.97); box-shadow: 0 0 20px 4px rgba(140,160,190,.2); } }
@keyframes hhq-turn { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes hhq-point { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-3px) } 100% { transform: rotate(-30deg) translateY(0) } }

/* Scene: hermia-reveals-plan (calm, dim-interior) */
.scn-hermia-reveals-plan {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1e 40%, #2a1f1a 100%),
    radial-gradient(ellipse at 30% 20%, #4a3525 0%, transparent 60%);
}
.scn-hermia-reveals-plan .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 100%);
  z-index: 0;
}
.scn-hermia-reveals-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1510 100%);
  border-radius: 20% 20% 0 0;
}
.scn-hermia-reveals-plan .window {
  position: absolute; top: 15%; left: 60%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(10,20,30,0.6);
}
.scn-hermia-reveals-plan .candle {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.3);
  animation: hrh-candle 6s ease-in-out infinite alternate;
}
.scn-hermia-reveals-plan .figure-left {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrh-figure-l 8s ease-in-out infinite;
}
.scn-hermia-reveals-plan .figure-right {
  position: absolute; bottom: 25%; left: 55%; width: 55px; height: 105px;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrh-figure-r 8s ease-in-out infinite;
}
.scn-hermia-reveals-plan .glow {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -30%);
  animation: hrh-glow 4s ease-in-out infinite alternate;
}
@keyframes hrh-candle {
  0% { opacity: 0.9; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.1); }
  100% { opacity: 0.95; transform: translateX(-50%) scaleY(1); }
}
@keyframes hrh-figure-l {
  0% { transform: translateX(-10px) rotate(-2deg); }
  50% { transform: translateX(0px) rotate(0deg); }
  100% { transform: translateX(-10px) rotate(-2deg); }
}
@keyframes hrh-figure-r {
  0% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(0px) rotate(0deg); }
  100% { transform: translateX(10px) rotate(2deg); }
}
@keyframes hrh-glow {
  0% { opacity: 0.6; transform: translate(-50%, -30%) scale(1); }
  100% { opacity: 0.9; transform: translate(-50%, -30%) scale(1.2); }
}

/* Scene: lovers-parting (calm, dim-interior, forest) */
.scn-lovers-parting {
  background:
    linear-gradient(180deg, #0f1418 0%, #1a2228 40%, #0f1418 100%),
    radial-gradient(ellipse at 50% 100%, #1a2828 0%, transparent 70%);
}
.scn-lovers-parting .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2630 0%, #0f1418 100%);
  animation: lop-sky 20s ease-in-out infinite alternate;
}
.scn-lovers-parting .trees-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  border-radius: 40% 60% 0 0;
  clip-path: polygon(0% 0%, 10% 30%, 20% 10%, 35% 40%, 50% 15%, 65% 35%, 80% 5%, 100% 25%, 100% 100%, 0% 100%);
  animation: lop-trees-back 30s ease-in-out infinite alternate;
}
.scn-lovers-parting .trees-front {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0f1a0f 0%, #050a05 100%);
  border-radius: 30% 70% 0 0;
  clip-path: polygon(0% 100%, 5% 40%, 15% 60%, 25% 30%, 40% 50%, 50% 20%, 65% 45%, 75% 10%, 90% 35%, 100% 50%, 100% 100%);
  animation: lop-trees-front 25s ease-in-out infinite alternate;
}
.scn-lovers-parting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
}
.scn-lovers-parting .figure-left {
  position: absolute; bottom: 22%; left: 40%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lop-figure-l 10s ease-in-out infinite;
}
.scn-lovers-parting .figure-right {
  position: absolute; bottom: 22%; left: 52%; width: 45px; height: 95px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lop-figure-r 10s ease-in-out infinite reverse;
}
.scn-lovers-parting .fireflies {
  position: absolute; top: 30%; left: 20%; width: 100%; height: 40%;
  background: radial-gradient(circle at 30% 40%, rgba(200,220,100,0.1) 0%, transparent 20%),
              radial-gradient(circle at 70% 60%, rgba(200,220,100,0.1) 0%, transparent 20%),
              radial-gradient(circle at 50% 30%, rgba(200,220,100,0.08) 0%, transparent 20%);
  filter: blur(4px);
  animation: lop-fireflies 12s ease-in-out infinite alternate;
}
@keyframes lop-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lop-trees-back {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes lop-trees-front {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes lop-figure-l {
  0% { transform: translateX(-5px) rotate(-1deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(-5px) rotate(-1deg); }
}
@keyframes lop-figure-r {
  0% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(5px) rotate(1deg); }
}
@keyframes lop-fireflies {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-10px); }
  100% { opacity: 0.4; transform: translateY(0); }
}

/* Scene: helena-soliloquy-love (dark, dim-interior) */
.scn-helena-soliloquy-love {
  background:
    linear-gradient(180deg, #0a0a14 0%, #14142a 40%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 60%);
}
.scn-helena-soliloquy-love .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #060612 100%);
}
.scn-helena-soliloquy-love .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 60%, transparent 30%, rgba(0,0,0,0.5) 100%);
  animation: heh-shadow 15s ease-in-out infinite alternate;
}
.scn-helena-soliloquy-love .figure {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: heh-figure 12s ease-in-out infinite;
}
.scn-helena-soliloquy-love .lamp {
  position: absolute; bottom: 40%; left: 70%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #8a7050 0%, #504030 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(200,160,100,0.3);
  animation: heh-lamp 8s ease-in-out infinite alternate;
}
.scn-helena-soliloquy-love .light {
  position: absolute; bottom: 30%; left: 65%; width: 150px; height: 150px;
  background: radial-gradient(circle, rgba(200,160,100,0.08) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: heh-light 6s ease-in-out infinite alternate;
}
.scn-helena-soliloquy-love .tear {
  position: absolute; bottom: 45%; left: 48%; width: 4px; height: 6px;
  background: rgba(180,200,220,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: heh-tear 4s ease-in-out infinite;
}
@keyframes heh-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes heh-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes heh-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(200,160,100,0.2); }
  50% { box-shadow: 0 0 40px 15px rgba(200,160,100,0.4); }
  100% { box-shadow: 0 0 30px 10px rgba(200,160,100,0.2); }
}
@keyframes heh-light {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes heh-tear {
  0% { transform: translateY(0) scaleY(1); opacity: 0.2; }
  50% { transform: translateY(10px) scaleY(2); opacity: 0.5; }
  100% { transform: translateY(20px) scaleY(1); opacity: 0; }
}

/* Scene: helena-scheme-to-tell (warm, dim-interior) */
.scn-helena-scheme-to-tell {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a20 0%, transparent 70%);
}
.scn-helena-scheme-to-tell .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1510 100%);
  border-radius: 20% 20% 0 0;
}
.scn-helena-scheme-to-tell .hearth {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform: translateX(-50%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-helena-scheme-to-tell .fire {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #ff6030 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(6px);
  animation: hes-fire 3s ease-in-out infinite alternate;
}
.scn-helena-scheme-to-tell .figure {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #1a1510 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hes-figure 7s ease-in-out infinite;
}
.scn-helena-scheme-to-tell .table {
  position: absolute; bottom: 18%; left: 55%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-helena-scheme-to-tell .scroll {
  position: absolute; bottom: 22%; left: 60%; width: 25px; height: 8px;
  background: linear-gradient(180deg, #c8a86a 0%, #a88848 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hes-scroll 10s ease-in-out infinite alternate;
}
.scn-helena-scheme-to-tell .sparkle {
  position: absolute; top: 40%; left: 40%; width: 4px; height: 4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,208,128,0.6);
  animation: hes-sparkle 5s ease-in-out infinite;
}
@keyframes hes-fire {
  0% { transform: translateX(-50%) scaleY(0.8); opacity: 0.7; }
  50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.8; }
}
@keyframes hes-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes hes-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hes-sparkle {
  0% { opacity: 0; transform: scale(0); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0); }
}

/* scene 1: theseus-praises-hounds */
.scn-theseus-praises-hounds { background: linear-gradient(180deg, #f9d7b0 0%, #d4a67a 40%, #9c7a5e 70%, #5e4a3a 100%), radial-gradient(ellipse at 70% 30%, #fce4c0 0%, transparent 60%); }
.scn-theseus-praises-hounds .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce4c0 0%, #e8c8a0 100%); animation: tp-sky 15s ease-in-out infinite alternate; }
.scn-theseus-praises-hounds .mist { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(255,230,200,0.4) 50%, rgba(180,140,100,0.1) 100%); filter: blur(8px); animation: tp-mist 25s ease-in-out infinite alternate; }
.scn-theseus-praises-hounds .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: tp-hills 20s ease-in-out infinite alternate; }
.scn-theseus-praises-hounds .figure-theseus { position:absolute; bottom:22%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figure 8s ease-in-out infinite; }
.scn-theseus-praises-hounds .figure-hippolyta { position:absolute; bottom:22%; left:38%; width:22px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figure 8s ease-in-out infinite 0.5s; }
.scn-theseus-praises-hounds .hound { position:absolute; bottom:20%; width:30px; height:18px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3020 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset -4px -4px 8px rgba(0,0,0,0.3); }
.scn-theseus-praises-hounds .hound-1 { left:45%; animation: tp-hound-breathe 3s ease-in-out infinite; }
.scn-theseus-praises-hounds .hound-2 { left:52%; animation: tp-hound-breathe 3s ease-in-out infinite 0.7s; }
.scn-theseus-praises-hounds .dog-tail { position:absolute; bottom:24%; width:4px; height:10px; background: #4a3020; border-radius: 50% 50% 0 0; transform-origin: bottom center; }
.scn-theseus-praises-hounds .tail-1 { left:47%; animation: tp-tail-wag 0.6s ease-in-out infinite; }
.scn-theseus-praises-hounds .tail-2 { left:54%; animation: tp-tail-wag 0.6s ease-in-out infinite 0.3s; }
@keyframes tp-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes tp-mist { 0% { transform: translateY(0) scaleX(1); opacity:0.6; } 50% { transform: translateY(-4px) scaleX(1.05); opacity:0.8; } 100% { transform: translateY(0) scaleX(1); opacity:0.6; } }
@keyframes tp-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tp-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes tp-hound-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05) scaleX(0.98); } }
@keyframes tp-tail-wag { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } }

/* scene 2: lovers-awaken-before-theseus */
.scn-lovers-awaken-before-theseus { background: linear-gradient(180deg, #fce8c0 0%, #d4b080 40%, #a08060 70%, #6a5030 100%), radial-gradient(ellipse at 80% 40%, #ffe8c0 0%, transparent 50%); }
.scn-lovers-awaken-before-theseus .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce8c0 0%, #e8c8a0 100%); animation: la-sky 18s ease-in-out infinite alternate; }
.scn-lovers-awaken-before-theseus .sunlight { position:absolute; top:10%; left:60%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,235,180,0.8) 0%, rgba(255,220,150,0.3) 50%, transparent 100%); filter: blur(20px); animation: la-sun 20s ease-in-out infinite alternate; }
.scn-lovers-awaken-before-theseus .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: la-hills 22s ease-in-out infinite alternate; }
.scn-lovers-awaken-before-theseus .horns { position:absolute; bottom:26%; left:70%; width:12px; height:24px; background: linear-gradient(180deg, #8a6a3a 0%, #4a3010 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-20deg); animation: la-horn 4s ease-in-out infinite; }
.scn-lovers-awaken-before-theseus .figure-lysander { position:absolute; bottom:20%; left:20%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-stir 6s ease-in-out infinite; }
.scn-lovers-awaken-before-theseus .figure-hermia { position:absolute; bottom:21%; left:27%; width:20px; height:36px; background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-stir 6s ease-in-out infinite 0.5s; }
.scn-lovers-awaken-before-theseus .figure-demetrius { position:absolute; bottom:20%; left:38%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-stir 6s ease-in-out infinite 1s; }
.scn-lovers-awaken-before-theseus .figure-helena { position:absolute; bottom:21%; left:45%; width:20px; height:36px; background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-stir 6s ease-in-out infinite 1.5s; }
.scn-lovers-awaken-before-theseus .grass { position:absolute; bottom:15%; left:0; right:0; height:15%; background: linear-gradient(0deg, #3a5a2a 0%, #5a7a4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: la-grass 10s ease-in-out infinite alternate; }
@keyframes la-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes la-sun { 0% { transform: scale(0.9) translateX(0); opacity:0.7; } 50% { transform: scale(1.1) translateX(10px); opacity:1; } 100% { transform: scale(0.95) translateX(5px); opacity:0.8; } }
@keyframes la-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes la-horn { 0%,100% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.1); } }
@keyframes la-stir { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(2deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(0) rotate(0deg); } }
@keyframes la-grass { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* scene 3: egeus-still-demands-law */
.scn-egeus-still-demands-law { background: linear-gradient(180deg, #d4c0a0 0%, #b09870 40%, #7a6040 70%, #4a3010 100%), radial-gradient(ellipse at 60% 20%, #f0d8b0 0%, transparent 50%); }
.scn-egeus-still-demands-law .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d4c0a0 0%, #b09870 100%); animation: es-sky 12s ease-in-out infinite alternate; }
.scn-egeus-still-demands-law .sunburst { position:absolute; top:5%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,220,150,0.9) 0%, rgba(200,160,100,0.3) 40%, transparent 70%); filter: blur(10px); animation: es-sunburst 3s ease-in-out infinite alternate; }
.scn-egeus-still-demands-law .ground { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(0deg, #4a3010 0%, #6a5030 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); }
.scn-egeus-still-demands-law .figure-theseus { position:absolute; bottom:22%; left:30%; width:26px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-fig-theseus 4s ease-in-out infinite; }
.scn-egeus-still-demands-law .figure-egeus { position:absolute; bottom:22%; left:55%; width:28px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-fig-egeus 2s ease-in-out infinite alternate; }
.scn-egeus-still-demands-law .arm-pointing { position:absolute; bottom:33%; left:68%; width:4px; height:20px; background: #2a1a0a; border-radius: 2px; transform-origin: bottom center; transform: rotate(30deg); animation: es-arm 1.5s ease-in-out infinite alternate; }
.scn-egeus-still-demands-law .shadow-sharp { position:absolute; bottom:20%; left:40%; width:120px; height:30px; background: rgba(0,0,0,0.3); filter: blur(4px); animation: es-shadow 3s ease-in-out infinite alternate; }
@keyframes es-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes es-sunburst { 0% { transform: scale(0.8); opacity:0.6; } 50% { transform: scale(1.2); opacity:0.9; } 100% { transform: scale(0.9); opacity:0.7; } }
@keyframes es-fig-theseus { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes es-fig-egeus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes es-arm { 0% { transform: rotate(20deg); } 100% { transform: rotate(40deg); } }
@keyframes es-shadow { 0% { transform: skewX(0deg) scaleX(1); opacity:0.3; } 50% { transform: skewX(-10deg) scaleX(1.1); opacity:0.5; } 100% { transform: skewX(5deg) scaleX(0.9); opacity:0.2; } }

/* scene 4: demetrius-explains-love-change */
.scn-demetrius-explains-love-change { background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 40%, #a08060 70%, #5a4020 100%), radial-gradient(ellipse at 50% 30%, #fce4c0 0%, transparent 60%); }
.scn-demetrius-explains-love-change .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce4c0 0%, #e8c8a0 100%); animation: de-sky 20s ease-in-out infinite alternate; }
.scn-demetrius-explains-love-change .sunrise { position:absolute; top:5%; left:40%; width:150px; height:150px; background: radial-gradient(circle, rgba(255,235,180,0.7) 0%, rgba(255,210,130,0.2) 40%, transparent 70%); filter: blur(30px); animation: de-sunrise 25s ease-in-out infinite alternate; }
.scn-demetrius-explains-love-change .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.1); animation: de-hills 30s ease-in-out infinite alternate; }
.scn-demetrius-explains-love-change .figure-demetrius { position:absolute; bottom:22%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-figure 10s ease-in-out infinite; }
.scn-demetrius-explains-love-change .figure-hermia { position:absolute; bottom:23%; left:28%; width:20px; height:36px; background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-figure 10s ease-in-out infinite 0.5s; }
.scn-demetrius-explains-love-change .dove { position:absolute; bottom:30%; left:55%; width:14px; height:10px; background: radial-gradient(circle, #f0e8d0 0%, #d0c0a0 100%); border-radius: 50% 50% 40% 40%; animation: de-dove 12s ease-in-out infinite; }
.scn-demetrius-explains-love-change .flower { position:absolute; bottom:18%; width:8px; height:8px; border-radius: 50%; }
.scn-demetrius-explains-love-change .flower-1 { left:40%; background: radial-gradient(circle, #f0a0a0 0%, #c06060 100%); animation: de-flower 5s ease-in-out infinite; }
.scn-demetrius-explains-love-change .flower-2 { left:48%; background: radial-gradient(circle, #f0c0a0 0%, #c08060 100%); animation: de-flower 5s ease-in-out infinite 1.5s; }
@keyframes de-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes de-sunrise { 0% { transform: translateY(0) scale(0.9); opacity:0.6; } 50% { transform: translateY(-10px) scale(1.1); opacity:0.9; } 100% { transform: translateY(0) scale(0.95); opacity:0.7; } }
@keyframes de-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes de-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes de-dove { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes de-flower { 0%,100% { transform: scale(1); } 50% { transform: scale(1.3); } }

.scn-quince-allocates-roles {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c20 100%), radial-gradient(ellipse at 50% 30%, #5a4030 0%, transparent 70%);
}
.scn-quince-allocates-roles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: qar-ambient 8s ease-in-out infinite alternate;
}
.scn-quince-allocates-roles .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(180deg, #3a2c20 0%, #2a1e14 100%); box-shadow: inset 0 100px 80px -40px rgba(0,0,0,0.6);
}
.scn-quince-allocates-roles .table {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%); width: 60%; height: 10%; background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%); border-radius: 4px 4px 20px 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: qar-float 10s ease-in-out infinite;
}
.scn-quince-allocates-roles .lantern {
  position: absolute; bottom: 30%; left: 52%; width: 16px; height: 24px; background: radial-gradient(circle, #ffd080 0%, #b08030 60%, #402800 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,150,60,0.6), 0 0 60px 20px rgba(200,150,60,0.3); animation: qar-flicker 2s ease-in-out infinite alternate;
}
.scn-quince-allocates-roles .quince {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qar-gesture 6s ease-in-out infinite;
}
.scn-quince-allocates-roles .bottom {
  position: absolute; bottom: 24%; left: 55%; width: 24px; height: 52px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qar-bob 7s ease-in-out infinite 1s;
}
.scn-quince-allocates-roles .flute {
  position: absolute; bottom: 26%; left: 48%; width: 14px; height: 40px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qar-bob 8s ease-in-out infinite 2s;
}
.scn-quince-allocates-roles .snout {
  position: absolute; bottom: 25%; left: 60%; width: 16px; height: 44px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: qar-gesture 9s ease-in-out infinite 0.5s;
}
.scn-quince-allocates-roles .starveling {
  position: absolute; bottom: 26%; left: 35%; width: 14px; height: 38px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qar-bob 10s ease-in-out infinite 3s;
}
@keyframes qar-ambient {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes qar-float {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes qar-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.85; transform: scaleY(0.95); }
}
@keyframes qar-gesture {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qar-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-bottom-wants-lion-too {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c20 100%), radial-gradient(ellipse at 50% 40%, #5a4030 0%, transparent 70%);
}
.scn-bottom-wants-lion-too .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: bwl-ambient 8s ease-in-out infinite alternate;
}
.scn-bottom-wants-lion-too .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%; background: linear-gradient(180deg, #3a2c20 0%, #2a1e14 100%); box-shadow: inset 0 80px 60px -30px rgba(0,0,0,0.6);
}
.scn-bottom-wants-lion-too .lantern {
  position: absolute; bottom: 35%; left: 60%; width: 14px; height: 22px; background: radial-gradient(circle, #ffd080 0%, #b08030 60%, #402800 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 8px rgba(200,150,60,0.6), 0 0 50px 15px rgba(200,150,60,0.3); animation: bwl-flicker 2.5s ease-in-out infinite alternate;
}
.scn-bottom-wants-lion-too .bottom {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 30px; height: 60px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: bwl-roar 5s ease-in-out infinite;
}
.scn-bottom-wants-lion-too .quince {
  position: absolute; bottom: 30%; left: 35%; width: 18px; height: 46px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bwl-step 6s ease-in-out infinite 0.5s;
}
.scn-bottom-wants-lion-too .snug {
  position: absolute; bottom: 30%; left: 65%; width: 20px; height: 48px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bwl-step 7s ease-in-out infinite 1s;
}
.scn-bottom-wants-lion-too .shadow {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: bwl-shimmer 3s ease-in-out infinite alternate;
}
.scn-bottom-wants-lion-too .shelf {
  position: absolute; top: 15%; left: 15%; width: 30%; height: 6px; background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%); border-radius: 2px; box-shadow: 0 8px 6px -4px rgba(0,0,0,0.5); animation: bwl-float 12s ease-in-out infinite;
}
@keyframes bwl-ambient {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes bwl-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.85; transform: scaleY(0.9); }
}
@keyframes bwl-roar {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) scaleY(1.05); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) scaleY(1); }
  75% { transform: translateX(-50%) translateY(-4px) rotate(2deg) scaleY(1.03); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes bwl-step {
  0% { transform: translateX(0); }
  25% { transform: translateX(-3px); }
  50% { transform: translateX(0); }
  75% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes bwl-shimmer {
  0% { opacity: 0.3; transform: scaleY(1); }
  100% { opacity: 0.6; transform: scaleY(1.5); }
}
@keyframes bwl-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

.scn-quince-assigns-parts-rehearsal {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c20 100%), radial-gradient(ellipse at 50% 20%, #5a4030 0%, transparent 70%);
}
.scn-quince-assigns-parts-rehearsal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 15% 15% 0 0 / 30% 30% 0 0; animation: qap-ambient 9s ease-in-out infinite alternate;
}
.scn-quince-assigns-parts-rehearsal .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 28%; background: linear-gradient(180deg, #3a2c20 0%, #2a1e14 100%); box-shadow: inset 0 120px 100px -50px rgba(0,0,0,0.7);
}
.scn-quince-assigns-parts-rehearsal .candle {
  position: absolute; bottom: 32%; left: 40%; width: 8px; height: 12px; background: radial-gradient(circle, #ffd080 0%, #b08030 70%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 25px 10px rgba(200,150,60,0.4), 0 0 60px 20px rgba(200,150,60,0.2); animation: qap-flicker 1.8s ease-in-out infinite alternate;
}
.scn-quince-assigns-parts-rehearsal .quince {
  position: absolute; bottom: 26%; left: 38%; width: 18px; height: 48px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: qap-point 5s ease-in-out infinite;
}
.scn-quince-assigns-parts-rehearsal .bottom {
  position: absolute; bottom: 24%; left: 52%; width: 22px; height: 54px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qap-bob 7s ease-in-out infinite 1s;
}
.scn-quince-assigns-parts-rehearsal .beard {
  position: absolute; bottom: 30%; left: 52%; width: 14px; height: 18px; background: linear-gradient(180deg, #3a2c20 0%, #1a1410 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; animation: qap-sway 6s ease-in-out infinite 1s;
}
.scn-quince-assigns-parts-rehearsal .scroll {
  position: absolute; bottom: 28%; left: 35%; width: 10px; height: 30px; background: linear-gradient(90deg, #5a4a38 0%, #8a7050 50%, #5a4a38 100%); border-radius: 2px; transform: rotate(-15deg); animation: qap-unroll 10s ease-in-out infinite;
}
.scn-quince-assigns-parts-rehearsal .stool {
  position: absolute; bottom: 22%; left: 45%; width: 25px; height: 15px; background: linear-gradient(180deg, #3a2c20 0%, #1a1410 100%); border-radius: 4px; animation: qap-float 12s ease-in-out infinite;
}
@keyframes qap-ambient {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes qap-flicker {
  0% { opacity: 0.75; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.08); }
  100% { opacity: 0.8; transform: scaleY(0.92); }
}
@keyframes qap-point {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qap-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qap-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes qap-unroll {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes qap-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-quince-requests-properties {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2c20 100%), radial-gradient(ellipse at 50% 25%, #5a4030 0%, transparent 70%);
}
.scn-quince-requests-properties .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 25% 25% 0 0 / 45% 45% 0 0; animation: qrp-ambient 10s ease-in-out infinite alternate;
}
.scn-quince-requests-properties .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 32%; background: linear-gradient(180deg, #3a2c20 0%, #2a1e14 100%); box-shadow: inset 0 100px 80px -40px rgba(0,0,0,0.6);
}
.scn-quince-requests-properties .candle {
  position: absolute; bottom: 34%; left: 55%; width: 8px; height: 14px; background: radial-gradient(circle, #ffd080 0%, #b08030 70%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 8px rgba(200,150,60,0.4), 0 0 50px 15px rgba(200,150,60,0.2); animation: qrp-flicker 2s ease-in-out infinite alternate;
}
.scn-quince-requests-properties .quince {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 18px; height: 48px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: qrp-write 6s ease-in-out infinite;
}
.scn-quince-requests-properties .scroll {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 28px; background: linear-gradient(90deg, #5a4a38 0%, #8a7050 50%, #5a4a38 100%); border-radius: 2px; transform: rotate(-10deg); animation: qrp-hold 6s ease-in-out infinite;
}
.scn-quince-requests-properties .list {
  position: absolute; bottom: 34%; left: 46%; width: 10px; height: 18px; background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%); border-radius: 1px; transform: rotate(5deg); animation: qrp-tap 4s ease-in-out infinite 2s;
}
.scn-quince-requests-properties .bottom {
  position: absolute; bottom: 26%; left: 35%; width: 22px; height: 54px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qrp-bob 8s ease-in-out infinite 1s;
}
.scn-quince-requests-properties .flute {
  position: absolute; bottom: 28%; left: 62%; width: 14px; height: 40px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qrp-bob 9s ease-in-out infinite 2.5s;
}
@keyframes qrp-ambient {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes qrp-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.85; transform: scaleY(0.95); }
}
@keyframes qrp-write {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes qrp-hold {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes qrp-tap {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes qrp-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* one block per scene id. Append to style.css. */

/* Scene 1: lysander-helena-argue (warm moonlit, close-up arguing figures) */
.scn-lysander-helena-argue {
  background:
    linear-gradient(180deg, #0b0e1a 0%, #1a2035 30%, #2c3b5c 60%, #3a4e6e 85%, #4a5e7e 100%),
    radial-gradient(ellipse at 50% 30%, #3a4e6e 0%, transparent 60%);
}
.scn-lysander-helena-argue .moon {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #f0f4ff 0%, #c8d0e0 70%, #a0b0c0 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,208,224,0.6), 0 0 80px 20px rgba(200,208,224,0.3);
  animation: la-moon 10s ease-in-out infinite alternate;
}
.scn-lysander-helena-argue .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0d1a0d 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-lysander-helena-argue .lysander {
  position: absolute; bottom: 24%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-lysander 6s ease-in-out infinite;
}
.scn-lysander-helena-argue .helena {
  position: absolute; bottom: 24%; right: 28%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #2e2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-helena 6s ease-in-out infinite 0.3s;
}
.scn-lysander-helena-argue .tree-left {
  position: absolute; bottom: 20%; left: 5%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #1a1a0d 0%, #0d0d05 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(0.8);
  animation: la-tree 20s ease-in-out infinite alternate;
}
.scn-lysander-helena-argue .tree-right {
  position: absolute; bottom: 20%; right: 8%; width: 18px; height: 65%;
  background: linear-gradient(180deg, #1a1a0d 0%, #0d0d05 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(0.7);
  animation: la-tree 20s ease-in-out infinite alternate-reverse;
}
.scn-lysander-helena-argue .moonbeam {
  position: absolute; top: 0; left: 60%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(200,208,224,0.15) 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: la-beam 12s ease-in-out infinite alternate;
}
@keyframes la-moon { 0% { opacity: 0.85; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes la-lysander { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes la-helena { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes la-tree { 0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.85) translateY(-2px); } 100% { transform: scaleX(0.8) translateY(0); } }
@keyframes la-beam { 0% { opacity: 0.6; transform: skewX(-2deg); } 50% { opacity: 0.8; transform: skewX(2deg); } 100% { opacity: 0.5; transform: skewX(0); } }

/* Scene 2: demetrius-wakes-woos-helena (warm moonlit, wide glade, kneeling figure) */
.scn-demetrius-wakes-woos-helena {
  background:
    linear-gradient(180deg, #0f1420 0%, #1e2840 40%, #2e4060 70%, #405070 85%, #506080 100%),
    radial-gradient(ellipse at 50% 20%, #5070a0 0%, transparent 70%);
}
.scn-demetrius-wakes-woos-helena .moon {
  position: absolute; top: 5%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle at 45% 45%, #f8faff 0%, #d0d8e0 60%, #a0b0c0 100%);
  border-radius: 50%; box-shadow: 0 0 50px 15px rgba(200,210,230,0.7), 0 0 100px 30px rgba(200,210,230,0.3);
  transform: translateX(-50%);
  animation: dw-moon 8s ease-in-out infinite alternate;
}
.scn-demetrius-wakes-woos-helena .clearing {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0d1a0d 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-demetrius-wakes-woos-helena .demetrius {
  position: absolute; bottom: 20%; left: 35%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-demetrius 5s ease-in-out infinite;
}
.scn-demetrius-wakes-woos-helena .helena {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2e2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-helena 5s ease-in-out infinite 0.4s;
}
.scn-demetrius-wakes-woos-helena .flower-a {
  position: absolute; bottom: 18%; left: 42%; width: 8px; height: 8px;
  background: radial-gradient(circle at 50% 50%, #e0c8a0 0%, #b0a080 60%);
  border-radius: 50%;
  animation: dw-flower 6s ease-in-out infinite;
}
.scn-demetrius-wakes-woos-helena .flower-b {
  position: absolute; bottom: 16%; left: 52%; width: 7px; height: 7px;
  background: radial-gradient(circle at 50% 50%, #e0c8a0 0%, #b0a080 60%);
  border-radius: 50%;
  animation: dw-flower 6s ease-in-out infinite 1s;
}
.scn-demetrius-wakes-woos-helena .moonbeam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 55%;
  background: linear-gradient(180deg, rgba(200,210,230,0.12) 0%, transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: dw-beam 10s ease-in-out infinite alternate;
}
@keyframes dw-moon { 0% { opacity: 0.9; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.01); } 100% { opacity: 0.85; transform: translateX(-50%) scale(0.98); } }
@keyframes dw-demetrius { 0% { transform: translateX(0) rotate(0) scaleY(1); } 25% { transform: translateX(-3px) rotate(-3deg) scaleY(1.02); } 50% { transform: translateX(0) rotate(0) scaleY(1); } 75% { transform: translateX(3px) rotate(3deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes dw-helena { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dw-flower { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(15deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.7; } }
@keyframes dw-beam { 0% { opacity: 0.4; transform: skewY(-2deg); } 50% { opacity: 0.6; transform: skewY(2deg); } 100% { opacity: 0.3; transform: skewY(0); } }

/* Scene 3: helena-accuses-mockery (dark moonlit, vertical shaft, isolated figure) */
.scn-helena-accuses-mockery {
  background:
    linear-gradient(180deg, #080a14 0%, #101830 30%, #182840 60%, #202e40 85%, #30384a 100%),
    radial-gradient(ellipse at 50% 20%, #203050 0%, transparent 80%);
}
.scn-helena-accuses-mockery .moon {
  position: absolute; top: 3%; left: 50%; width: 75px; height: 75px;
  background: radial-gradient(circle at 40% 40%, #b0c0d0 0%, #8090a0 60%, #506070 100%);
  border-radius: 50%; box-shadow: 0 0 60px 15px rgba(150,170,190,0.5), 0 0 120px 30px rgba(150,170,190,0.2);
  transform: translateX(-50%);
  animation: ha-moon 12s ease-in-out infinite alternate;
}
.scn-helena-accuses-mockery .shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(100,120,140,0.08) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: ha-shaft 8s ease-in-out infinite alternate;
}
.scn-helena-accuses-mockery .helena {
  position: absolute; bottom: 18%; left: 50%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a2030 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ha-helena 7s ease-in-out infinite;
}
.scn-helena-accuses-mockery .shadow-left {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 40% 60% 20% 80% / 30% 70% 30% 70%;
  animation: ha-shadow 15s ease-in-out infinite alternate;
}
.scn-helena-accuses-mockery .shadow-right {
  position: absolute; bottom: 10%; right: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 60% 40% 80% 20% / 70% 30% 70% 30%;
  animation: ha-shadow 15s ease-in-out infinite alternate-reverse;
}
.scn-helena-accuses-mockery .tears {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 4px;
  background: radial-gradient(circle, #a0b8d0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 8px 0 0 #a0b8d0, 0 16px 0 0 #a0b8d0, 0 24px 0 0 #a0b8d0;
  animation: ha-tears 4s ease-in-out infinite;
}
@keyframes ha-moon { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.98); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.02); } 100% { opacity: 0.75; transform: translateX(-50%) scale(0.99); } }
@keyframes ha-shaft { 0% { opacity: 0.3; transform: skewX(-3deg); } 50% { opacity: 0.6; transform: skewX(3deg); } 100% { opacity: 0.2; transform: skewX(0); } }
@keyframes ha-helena { 0% { transform: translateX(-50%) rotate(0) scaleY(1); } 25% { transform: translateX(-50%) rotate(-4deg) scaleY(1.03); } 50% { transform: translateX(-50%) rotate(0) scaleY(0.98); } 75% { transform: translateX(-50%) rotate(4deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(0) scaleY(1); } }
@keyframes ha-shadow { 0% { opacity: 0.5; transform: scale(1) rotate(0deg); } 50% { opacity: 0.8; transform: scale(1.05) rotate(5deg); } 100% { opacity: 0.4; transform: scale(0.95) rotate(-5deg); } }
@keyframes ha-tears { 0% { opacity: 0; transform: translateY(0); } 20% { opacity: 0.8; } 50% { opacity: 1; } 80% { opacity: 0.6; } 100% { opacity: 0; transform: translateY(-10px); } }

/* Scene 4: lysander-declares-for-helena (warm moonlit, interior archway, reaching figures) */
.scn-lysander-declares-for-helena {
  background:
    linear-gradient(180deg, #0a0e1a 0%, #182030 40%, #283850 70%, #384860 85%, #485870 100%),
    radial-gradient(ellipse at 50% 10%, #384860 0%, transparent 70%);
}
.scn-lysander-declares-for-helena .moon {
  position: absolute; top: 2%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle at 45% 45%, #f0f4ff 0%, #d0d8e0 60%, #b0c0d0 100%);
  border-radius: 50%; box-shadow: 0 0 50px 10px rgba(200,210,230,0.6), 0 0 100px 20px rgba(200,210,230,0.3);
  animation: ld-moon 9s ease-in-out infinite alternate;
}
.scn-lysander-declares-for-helena .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0d1a0d 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
}
.scn-lysander-declares-for-helena .lysander {
  position: absolute; bottom: 20%; left: 32%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-lysander 6s ease-in-out infinite;
}
.scn-lysander-declares-for-helena .helena-reach {
  position: absolute; bottom: 22%; right: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2e2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-helena 6s ease-in-out infinite 0.5s;
}
.scn-lysander-declares-for-helena .archway {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(180deg, #2a3040 0%, #1a2030 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  clip-path: polygon(10% 0%, 90% 0%, 90% 100%, 10% 100%);
  animation: ld-arch 20s ease-in-out infinite alternate;
}
.scn-lysander-declares-for-helena .vines {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  filter: blur(2px);
  animation: ld-vines 8s ease-in-out infinite alternate;
}
.scn-lysander-declares-for-helena .moonbeam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200,210,230,0.1) 0%, transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: ld-beam 12s ease-in-out infinite alternate;
}
@keyframes ld-moon { 0% { opacity: 0.85; transform: translate(0,0) scale(1); } 50% { opacity: 1; transform: translate(2px,-2px) scale(1.01); } 100% { opacity: 0.9; transform: translate(0,0) scale(0.99); } }
@keyframes ld-lysander { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ld-helena { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ld-arch { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-3px); } 100% { transform: scaleX(0.98) translateY(0); } }
@keyframes ld-vines { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes ld-beam { 0% { opacity: 0.3; transform: skewY(-2deg); } 50% { opacity: 0.5; transform: skewY(2deg); } 100% { opacity: 0.2; transform: skewY(0); } }

.scn-fairies-protect-titania { background: linear-gradient(180deg, #0d1635 0%, #1a2a4a 50%, #0f1f30 100%), radial-gradient(ellipse at 50% 100%, #2c3e5e 0%, transparent 70%); }
.scn-fairies-protect-titania .moon { position:absolute; top:10%; right:18%; width:60px; height:60px; background: radial-gradient(circle, #e8e8ff 0%, #b0b8d0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(180,190,220,.3), 0 0 160px 60px rgba(180,190,220,.1); animation:moo-drift 40s ease-in-out infinite alternate; }
.scn-fairies-protect-titania .glade-bg { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a2e20 0%, #0e1a12 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation:glade-breathe 12s ease-in-out infinite alternate; }
.scn-fairies-protect-titania .drape-a { position:absolute; top:0; left:5%; width:8px; height:70%; background: linear-gradient(180deg, rgba(200,220,200,.4) 0%, rgba(200,220,200,.05) 100%); border-radius:50%; filter: blur(2px); animation:drape-sway-a 8s ease-in-out infinite alternate; }
.scn-fairies-protect-titania .drape-b { position:absolute; top:0; right:10%; width:6px; height:50%; background: linear-gradient(180deg, rgba(200,220,200,.3) 0%, rgba(200,220,200,.02) 100%); border-radius:50%; filter: blur(2px); animation:drape-sway-b 11s ease-in-out infinite alternate; animation-delay:-3s; }
.scn-fairies-protect-titania .titania-sleep { position:absolute; bottom:10%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1b30 0%, #1a1020 100%); border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 4px 20px rgba(0,0,0,.6); animation:sleep-lilt 6s ease-in-out infinite; }
.scn-fairies-protect-titania .fairy-sentinel { position:absolute; bottom:38%; right:15%; width:12px; height:18px; background: radial-gradient(ellipse, #d0e8ff 0%, #8090b0 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 16px 6px rgba(160,190,220,.6), 0 0 32px 12px rgba(160,190,220,.2); animation:sentinel-hover 5s ease-in-out infinite; }
.scn-fairies-protect-titania .web-glow { position:absolute; top:15%; left:25%; width:100px; height:80px; background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 60%); border-radius:50%; filter: blur(4px); animation:web-pulse 7s ease-in-out infinite alternate; }
@keyframes moo-drift { 0% { transform: translate(0, 0) } 50% { transform: translate(10px, -8px) } 100% { transform: translate(-5px, 4px) } }
@keyframes glade-breathe { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes drape-sway-a { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes drape-sway-b { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(2px) rotate(1deg) } }
@keyframes sleep-lilt { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } }
@keyframes sentinel-hover { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(3deg) } }
@keyframes web-pulse { 0% { opacity:.3; transform: scale(.95) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.5; transform: scale(1) } }

.scn-oberon-charms-titania { background: linear-gradient(180deg, #0a0a1a 0%, #141430 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 20%, #2a2a50 0%, transparent 80%); }
.scn-oberon-charms-titania .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #050510 0%, #101025 100%); animation:bg-pulse 15s ease-in-out infinite alternate; }
.scn-oberon-charms-titania .titania-profile { position:absolute; bottom:5%; left:20%; width:140px; height:160px; background: linear-gradient(135deg, #1a1a30 0%, #0e0e1e 100%); border-radius: 50% 40% 30% 50% / 50% 40% 50% 50%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation:profile-breathe 7s ease-in-out infinite; }
.scn-oberon-charms-titania .oberon-arm { position:absolute; bottom:30%; right:15%; width:60px; height:120px; background: linear-gradient(180deg, #1e1e3a 0%, #0a0a1a 100%); border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%; transform-origin: bottom right; animation:arm-reach 8s ease-in-out infinite; }
.scn-oberon-charms-titania .flower-glow { position:absolute; bottom:55%; right:28%; width:20px; height:20px; background: radial-gradient(circle, #ffb0d0 0%, #e07090 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,100,140,.5), 0 0 80px 30px rgba(200,100,140,.2); animation:flower-pulse 3s ease-in-out infinite alternate; }
.scn-oberon-charms-titania .petal-drift { position:absolute; bottom:50%; right:20%; width:8px; height:6px; background: radial-gradient(ellipse, #ffc0d0 0%, #d08090 100%); border-radius:50% 0 50% 0; transform: rotate(30deg); animation:petal-fall 6s ease-in-out infinite; }
.scn-oberon-charms-titania .eye-gleam { position:absolute; bottom:42%; left:28%; width:4px; height:4px; background:#c0c0e0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(180,180,220,.6); animation:gleam-flicker 2s ease-in-out infinite alternate; }
@keyframes bg-pulse { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes profile-breathe { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.01) rotate(2deg) } }
@keyframes arm-reach { 0% { transform: rotate(-20deg) scaleY(.9) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-15deg) scaleY(.95) } }
@keyframes flower-pulse { 0% { box-shadow: 0 0 30px 10px rgba(200,100,140,.4); opacity:.8 } 50% { box-shadow: 0 0 60px 25px rgba(220,120,160,.6); opacity:1 } 100% { box-shadow: 0 0 40px 15px rgba(200,100,140,.5); opacity:.9 } }
@keyframes petal-fall { 0% { transform: translate(0, 0) rotate(30deg) scale(1); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translate(10px, 60px) rotate(80deg) scale(.6); opacity:0 } }
@keyframes gleam-flicker { 0% { opacity:.4; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(1) } }

.scn-lysander-hermia-lost-wood { background: linear-gradient(180deg, #0c1426 0%, #18243a 50%, #0e1828 100%), radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 70%); }
.scn-lysander-hermia-lost-wood .forest-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a221e 0%, #0e1412 100%); border-radius: 20% 30% 0 0 / 30% 40% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.6); animation:floor-shift 20s ease-in-out infinite alternate; }
.scn-lysander-hermia-lost-wood .lysander-form { position:absolute; bottom:12%; left:30%; width:70px; height:50px; background: linear-gradient(180deg, #1a1a28 0%, #0a0a16 100%); border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%; transform: rotate(-10deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation:form-stir-a 8s ease-in-out infinite; }
.scn-lysander-hermia-lost-wood .hermia-form { position:absolute; bottom:18%; right:25%; width:60px; height:45px; background: linear-gradient(180deg, #1a1a28 0%, #0a0a16 100%); border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%; transform: rotate(5deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation:form-stir-b 9s ease-in-out infinite; animation-delay:-2s; }
.scn-lysander-hermia-lost-wood .tree-trunk-a { position:absolute; top:0; left:10%; width:30px; height:70%; background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius:20% 20% 0 0; box-shadow: -4px 0 10px rgba(0,0,0,.7); animation:trunk-sway 15s ease-in-out infinite alternate; }
.scn-lysander-hermia-lost-wood .tree-trunk-b { position:absolute; top:0; right:15%; width:25px; height:85%; background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius:20% 20% 0 0; box-shadow: 4px 0 10px rgba(0,0,0,.7); animation:trunk-sway 18s ease-in-out infinite alternate-reverse; }
.scn-lysander-hermia-lost-wood .moonbeam { position:absolute; top:-10%; left:40%; width:60px; height:130%; background: linear-gradient(180deg, rgba(200,210,240,.2) 0%, rgba(200,210,240,.05) 50%, transparent 100%); border-radius:50%; transform: rotate(15deg); filter: blur(4px); animation:beam-drift 12s ease-in-out infinite alternate; }
@keyframes floor-shift { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes form-stir-a { 0%,100% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(3px) rotate(-8deg) } }
@keyframes form-stir-b { 0%,100% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(-2px) rotate(7deg) } }
@keyframes trunk-sway { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(-.5deg) } }
@keyframes beam-drift { 0% { transform: rotate(12deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(1.05) } 100% { transform: rotate(14deg) scaleY(.98) } }

.scn-lysander-blanket-argument { background: linear-gradient(180deg, #0e162a 0%, #16223a 50%, #0a1220 100%), radial-gradient(ellipse at 50% 30%, #1c2c44 0%, transparent 80%); }
.scn-lysander-blanket-argument .bg-close { position:absolute; inset:0; background: linear-gradient(180deg, #0a0e1a 0%, #141e30 100%); animation:close-breathe 14s ease-in-out infinite alternate; }
.scn-lysander-blanket-argument .lysander-upper { position:absolute; bottom:10%; left:5%; width:90px; height:70px; background: linear-gradient(135deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 30% 40% 40% / 50% 40% 50% 50%; box-shadow: 0 6px 16px rgba(0,0,0,.6); animation:lys-turn 9s ease-in-out infinite; }
.scn-lysander-blanket-argument .hermia-upper { position:absolute; bottom:12%; right:5%; width:80px; height:65px; background: linear-gradient(225deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 30% 40% 40% 40% / 40% 50% 50% 50%; box-shadow: 0 6px 16px rgba(0,0,0,.6); animation:her-turn 8s ease-in-out infinite; animation-delay:-1s; }
.scn-lysander-blanket-argument .divide-moss { position:absolute; bottom:15%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a1e 0%, #0e1610 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation:moss-pulse 6s ease-in-out infinite alternate; }
.scn-lysander-blanket-argument .lysander-hand { position:absolute; bottom:35%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #1e1e34 0%, #0a0a16 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(20deg); transform-origin: bottom center; animation:hand-reach 5s ease-in-out infinite; }
.scn-lysander-blanket-argument .hermia-hand { position:absolute; bottom:38%; right:30%; width:18px; height:28px; background: linear-gradient(180deg, #1e1e34 0%, #0a0a16 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-15deg); transform-origin: bottom center; animation:hand-push 5s ease-in-out infinite; animation-delay:-2.5s; }
@keyframes close-breathe { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lys-turn { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(5deg) } }
@keyframes her-turn { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4px) rotate(-4deg) } }
@keyframes moss-pulse { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(.98) } }
@keyframes hand-reach { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-4px) scaleX(1.1) } }
@keyframes hand-push { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-30deg) translateY(-3px) scaleX(1.1) } }

.scn-bottom-transformed {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 40%, #3a4a6a 70%, #4a5a7a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a6a 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-bottom-transformed .moon {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px; 
  background: radial-gradient(circle, #e0e8ff 0%, #b0c4e8 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #b0c4e888; 
  animation: btt-moon 12s ease-in-out infinite alternate;
}
.scn-bottom-transformed .trees-bg {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 50%, transparent 100%);
  border-radius: 40% 60% 0 0; filter: blur(3px);
  animation: btt-trees-bg 20s ease-in-out infinite;
}
.scn-bottom-transformed .trees-fg {
  position: absolute; bottom: 20%; left: -5%; right: -5%; height: 60%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 100%, 5% 70%, 10% 80%, 15% 60%, 20% 75%, 25% 50%, 30% 70%, 35% 55%, 40% 65%, 45% 45%, 50% 60%, 55% 40%, 60% 55%, 65% 35%, 70% 50%, 75% 40%, 80% 55%, 85% 45%, 90% 60%, 95% 50%, 100% 70%, 100% 100%);
  animation: btt-trees-fg 5s ease-in-out infinite alternate;
}
.scn-bottom-transformed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px #0a1a0a;
}
.scn-bottom-transformed .figure {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 70px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%);
  animation: btt-figure 3s ease-in-out infinite;
}
.scn-bottom-transformed .ears {
  position: absolute; bottom: 62%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 20% 20%; transform: translateX(-50%) rotate(10deg);
  transform-origin: bottom center; border: 2px solid #1a1a1a;
  animation: btt-ears 4s ease-in-out infinite alternate;
}
.scn-bottom-transformed .shadow {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  opacity: 0.4; transform: translateX(-50%) scaleX(1.2); filter: blur(4px);
}
.scn-bottom-transformed .glow-fire {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffaa44 0%, #ff8822 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 15px #ff882288;
  animation: btt-fire 1s ease-in-out infinite alternate;
}
.scn-bottom-transformed .light-ray {
  position: absolute; top: 5%; left: 60%; width: 2px; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #ffffff22 30%, #ffffff44 100%);
  transform: rotate(-15deg); transform-origin: top;
  animation: btt-ray 8s ease-in-out infinite;
}
@keyframes btt-moon { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes btt-trees-bg { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes btt-trees-fg { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes btt-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes btt-ears { 0% { transform: translateX(-50%) rotate(5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(15deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(5deg) scaleY(1); } }
@keyframes btt-fire { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes btt-ray { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

.scn-bottom-with-ass-head {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 40%, #3a4a6a 70%, #4a5a7a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a6a 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-bottom-with-ass-head .moon {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px; 
  background: radial-gradient(circle, #e0e8ff 0%, #b0c4e8 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #b0c4e888; 
  animation: bwh-moon 12s ease-in-out infinite alternate;
}
.scn-bottom-with-ass-head .trees-bg {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 50%, transparent 100%);
  border-radius: 40% 60% 0 0; filter: blur(3px);
  animation: bwh-trees-bg 20s ease-in-out infinite;
}
.scn-bottom-with-ass-head .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px #0a1a0a;
}
.scn-bottom-with-ass-head .figure {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 70px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%);
  animation: bwh-figure 3s ease-in-out infinite;
}
.scn-bottom-with-ass-head .ass-head {
  position: absolute; bottom: 62%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%); border: 2px solid #2a1a1a;
  animation: bwh-ass-head 4s ease-in-out infinite alternate;
}
.scn-bottom-with-ass-head .ears {
  position: absolute; bottom: 72%; left: 50%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 10% 10%; transform: translateX(-50%) rotate(15deg);
  transform-origin: bottom center; border: 2px solid #1a1a1a;
  animation: bwh-ears 2s ease-in-out infinite alternate;
}
.scn-bottom-with-ass-head .tail {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 50% 50%; transform-origin: top;
  animation: bwh-tail 1.5s ease-in-out infinite alternate;
}
.scn-bottom-with-ass-head .glow-fire {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffaa44 0%, #ff8822 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 15px #ff882288;
  animation: bwh-fire 1s ease-in-out infinite alternate;
}
.scn-bottom-with-ass-head .sparks {
  position: absolute; bottom: 20%; left: 45%; width: 100px; height: 60px;
  background: radial-gradient(circle at 30% 40%, #ffcc66 0%, transparent 60%);
  filter: blur(2px); opacity: 0.6;
  animation: bwh-sparks 2s ease-in-out infinite;
}
@keyframes bwh-moon { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes bwh-trees-bg { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes bwh-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes bwh-ass-head { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(5deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } }
@keyframes bwh-ears { 0% { transform: translateX(-50%) rotate(10deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(20deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(10deg) scaleY(1); } }
@keyframes bwh-tail { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes bwh-fire { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes bwh-sparks { 0% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-5px); } 100% { opacity: 0.3; transform: translateY(0); } }

.scn-item-ass-head-transformation {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 40%, #3a4a6a 70%, #4a5a7a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a6a 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-item-ass-head-transformation .moon {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px; 
  background: radial-gradient(circle, #e0e8ff 0%, #b0c4e8 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #b0c4e888; 
  animation: iht-moon 12s ease-in-out infinite alternate;
}
.scn-item-ass-head-transformation .trees-bg {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 50%, transparent 100%);
  border-radius: 40% 60% 0 0; filter: blur(3px);
  animation: iht-trees-bg 20s ease-in-out infinite;
}
.scn-item-ass-head-transformation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px #0a1a0a;
}
.scn-item-ass-head-transformation .figure {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 70px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%);
  animation: iht-figure 3s ease-in-out infinite;
}
.scn-item-ass-head-transformation .human {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  opacity: 0.8;
}
.scn-item-ass-head-transformation .transition-mask {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%);
  opacity: 0.3; animation: iht-mask 5s ease-in-out infinite;
}
.scn-item-ass-head-transformation .ears {
  position: absolute; bottom: 62%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 20% 20%; transform: translateX(-50%) rotate(10deg);
  transform-origin: bottom center; border: 2px solid #1a1a1a;
  animation: iht-ears 4s ease-in-out infinite alternate;
}
.scn-item-ass-head-transformation .growing {
  animation: iht-ears-grow 5s ease-in-out infinite;
}
.scn-item-ass-head-transformation .glow-magic {
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, #88ccff 0%, #66aadd 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #88ccff88;
  animation: iht-magic 2s ease-in-out infinite alternate;
}
.scn-item-ass-head-transformation .particles {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle at 20% 30%, #aaddff 0%, transparent 70%);
  filter: blur(2px); opacity: 0.5;
  animation: iht-particles 3s ease-in-out infinite;
}
@keyframes iht-moon { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes iht-trees-bg { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes iht-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes iht-mask { 0% { opacity: 0.2; transform: translateX(-50%) scaleY(0.95); } 50% { opacity: 0.5; transform: translateX(-50%) scaleY(1); } 100% { opacity: 0.2; transform: translateX(-50%) scaleY(0.95); } }
@keyframes iht-ears { 0% { transform: translateX(-50%) rotate(5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(15deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(5deg) scaleY(1); } }
@keyframes iht-ears-grow { 0% { height: 20px; } 50% { height: 40px; } 100% { height: 20px; } }
@keyframes iht-magic { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes iht-particles { 0% { opacity: 0.3; transform: translateY(0) rotate(0deg); } 50% { opacity: 0.7; transform: translateY(-10px) rotate(20deg); } 100% { opacity: 0.2; transform: translateY(0) rotate(0deg); } }

.scn-titania-wakes-loves-ass {
  background:
    linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 40%, #4a3a5a 70%, #5a4a6a 100%),
    radial-gradient(ellipse at 50% 50%, #6a5a7a 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-titania-wakes-loves-ass .moon {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px; 
  background: radial-gradient(circle, #e0e8ff 0%, #c0c8e8 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 50px 30px #c0c8e888; 
  animation: twl-moon 15s ease-in-out infinite alternate;
}
.scn-titania-wakes-loves-ass .flowers-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #3a4a3a 0%, #4a5a4a 40%, transparent 100%);
  border-radius: 30% 70% 0 0; filter: blur(4px);
  animation: twl-flowers 25s ease-in-out infinite;
}
.scn-titania-wakes-loves-ass .bower {
  position: absolute; bottom: 5%; left: 50%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: inset 0 -20px 30px #1a0a2a;
}
.scn-titania-wakes-loves-ass .titia {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a5a7a 0%, #4a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: twl-titia 4s ease-in-out infinite alternate;
}
.scn-titania-wakes-loves-ass .bottom-ass {
  position: absolute; bottom: 20%; left: 65%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: twl-bottom 3s ease-in-out infinite alternate;
}
.scn-titania-wakes-loves-ass .ears {
  position: absolute; bottom: 55%; left: 65%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 10% 10%; transform: translateX(-50%) rotate(10deg);
  transform-origin: bottom center; border: 2px solid #1a1a1a;
  animation: twl-ears 2s ease-in-out infinite alternate;
}
.scn-titania-wakes-loves-ass .soft {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
}
.scn-titania-wakes-loves-ass .glow-love {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffaabb 0%, #ff88aa 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 50px 30px #ff88aa88;
  animation: twl-glow 3s ease-in-out infinite alternate;
}
.scn-titania-wakes-loves-ass .petals {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle at 30% 40%, #ffccdd 0%, transparent 70%);
  filter: blur(3px); opacity: 0.4;
  animation: twl-petals 6s ease-in-out infinite;
}
@keyframes twl-moon { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-5px); } 100% { opacity: 0.7; transform: translateY(0); } }
@keyframes twl-flowers { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes twl-titia { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes twl-bottom { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-52%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes twl-ears { 0% { transform: translateX(-50%) rotate(5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(15deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(5deg) scaleY(1); } }
@keyframes twl-glow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.4; } }
@keyframes twl-petals { 0% { opacity: 0.2; transform: translateY(0) rotate(0deg); } 50% { opacity: 0.6; transform: translateY(-15px) rotate(15deg); } 100% { opacity: 0.3; transform: translateY(0) rotate(0deg); } }

.scn-helena-continues-pursuit {
  background: 
    linear-gradient(180deg, #0b0e2a 0%, #1a2040 35%, #2a3560 65%, #1a2040 100%),
    radial-gradient(ellipse at 70% 45%, #2a4a6a 0%, transparent 60%),
    linear-gradient(180deg, #2a3560 0%, #0b0e2a 100%);
}
.scn-helena-continues-pursuit .moon {
  position:absolute; top:8%; left:75%; width:60px; height:60px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0b0c8 70%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,176,200,0.4);
  animation: hep-moon 10s ease-in-out infinite alternate;
}
.scn-helena-continues-pursuit .sky-tree {
  position:absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #1a2040 0%, #0b0e2a 100%);
  clip-path: polygon(0% 0%, 15% 15%, 30% 5%, 50% 20%, 70% 8%, 85% 18%, 100% 10%, 100% 0%);
  filter: blur(3px); opacity:0.6; animation: hep-trees 20s ease-in-out infinite alternate;
}
.scn-helena-continues-pursuit .path {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: hep-path 8s ease-in-out infinite alternate;
}
.scn-helena-continues-pursuit .figure-flee {
  position:absolute; bottom:20%; left:60%; width:14px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hep-run-flee 2s ease-in-out infinite;
}
.scn-helena-continues-pursuit .figure-chase {
  position:absolute; bottom:20%; left:40%; width:16px; height:42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hep-run-chase 1.8s ease-in-out infinite;
}
.scn-helena-continues-pursuit .shadow-flee {
  position:absolute; bottom:12%; left:58%; width:20px; height:6px;
  background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(3px);
  animation: hep-shadow 2s ease-in-out infinite;
}
.scn-helena-continues-pursuit .shadow-chase {
  position:absolute; bottom:12%; left:38%; width:22px; height:6px;
  background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(3px);
  animation: hep-shadow 1.8s ease-in-out infinite;
}
.scn-helena-continues-pursuit .ground {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 80% 20% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.7);
}
@keyframes hep-moon { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes hep-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hep-path { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-3px) skewX(2deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes hep-run-flee { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(3deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes hep-run-chase { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(8px) rotate(-3deg); } 50% { transform: translateX(16px) rotate(3deg); } 75% { transform: translateX(24px) rotate(-2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes hep-shadow { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(8px) scaleX(0.9); } 50% { transform: translateX(16px) scaleX(1.1); } 75% { transform: translateX(24px) scaleX(0.95); } 100% { transform: translateX(32px) scaleX(1); } }

.scn-oberon-puck-plot-demetrius {
  background: 
    linear-gradient(180deg, #1a2440 0%, #2c3a60 40%, #1a2440 100%),
    radial-gradient(ellipse at 50% 30%, #3a5080 0%, transparent 70%);
}
.scn-oberon-puck-plot-demetrius .moon-glow {
  position:absolute; top:5%; left:50%; width:70px; height:70px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #c0d0e0 0%, #8090b0 40%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 50px 15px rgba(128,144,176,0.5);
  animation: opd-moon 12s ease-in-out infinite alternate;
}
.scn-oberon-puck-plot-demetrius .grove-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1a2440 0%, #2c3a60 80%);
  clip-path: polygon(0% 0%, 20% 10%, 40% 5%, 60% 15%, 80% 8%, 100% 12%, 100% 0%);
  filter: blur(4px); opacity:0.7;
}
.scn-oberon-puck-plot-demetrius .bush-left {
  position:absolute; bottom:25%; left:5%; width:30%; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #2a4a3a 0%, #1a3a2a 100%);
  border-radius: 50% 50% 0 0; filter: blur(2px); opacity:0.8;
  animation: opd-bush 15s ease-in-out infinite alternate;
}
.scn-oberon-puck-plot-demetrius .bush-right {
  position:absolute; bottom:20%; right:5%; width:35%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #2a4a3a 0%, #1a3a2a 100%);
  border-radius: 50% 50% 0 0; filter: blur(2px); opacity:0.6;
  animation: opd-bush 20s ease-in-out infinite alternate;
}
.scn-oberon-puck-plot-demetrius .figure-oberon {
  position:absolute; bottom:30%; left:40%; width:18px; height:48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opd-stand 8s ease-in-out infinite;
}
.scn-oberon-puck-plot-demetrius .figure-puck {
  position:absolute; bottom:28%; left:55%; width:14px; height:38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opd-stand 8s ease-in-out infinite reverse;
}
.scn-oberon-puck-plot-demetrius .flower {
  position:absolute; bottom:35%; left:50%; width:10px; height:6px;
  background: radial-gradient(ellipse, #c8a8c0 0%, #a878a0 100%);
  border-radius: 50%; box-shadow: 0 0 12px 3px rgba(200,168,192,0.6);
  animation: opd-flower 5s ease-in-out infinite alternate;
}
.scn-oberon-puck-plot-demetrius .ground-moss {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 20% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
@keyframes opd-moon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03) translateY(-3px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes opd-bush { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.98); } }
@keyframes opd-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes opd-flower { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-oberon-plans-titania-charm {
  background: 
    linear-gradient(180deg, #121835 0%, #1e2a50 40%, #121835 100%),
    radial-gradient(ellipse at 30% 50%, #2a4060 0%, transparent 60%);
}
.scn-oberon-plans-titania-charm .moon-halos {
  position:absolute; top:5%; left:70%; width:65px; height:65px;
  background: radial-gradient(circle, #b8c8d8 0%, #8090a8 30%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 10px rgba(128,144,168,0.5);
  animation: opt-moon 11s ease-in-out infinite alternate;
}
.scn-oberon-plans-titania-charm .grove-deep {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #121835 0%, #1e2a50 80%);
  clip-path: polygon(0% 0%, 10% 8%, 30% 3%, 50% 12%, 70% 5%, 90% 10%, 100% 6%, 100% 0%);
  filter: blur(5px); opacity:0.6;
}
.scn-oberon-plans-titania-charm .tree-trunk {
  position:absolute; bottom:20%; left:20%; width:12px; height:50%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 30%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: opt-trunk 20s ease-in-out infinite;
}
.scn-oberon-plans-titania-charm .snake-skin {
  position:absolute; bottom:30%; left:30%; width:60px; height:8px;
  background: linear-gradient(90deg, #d0c8b0 0%, #b8a888 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(1px); opacity:0.7;
  animation: opt-snake 12s ease-in-out infinite alternate;
}
.scn-oberon-plans-titania-charm .figure-oberon2 {
  position:absolute; bottom:25%; left:50%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opt-oberon 9s ease-in-out infinite;
}
.scn-oberon-plans-titania-charm .flower-juice {
  position:absolute; bottom:32%; left:55%; width:8px; height:5px;
  background: radial-gradient(ellipse, #e0b8c8 0%, #c098a8 100%);
  border-radius: 50%; box-shadow: 0 0 10px 2px rgba(224,184,200,0.6);
  animation: opt-juice 4s ease-in-out infinite alternate;
}
.scn-oberon-plans-titania-charm .ground-leaf {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.6);
}
@keyframes opt-moon { 0% { transform: scale(1); } 50% { transform: scale(1.04) translateY(-2px); } 100% { transform: scale(0.96); } }
@keyframes opt-trunk { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes opt-snake { 0% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes opt-oberon { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes opt-juice { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }

.scn-titania-fairy-song {
  background: 
    linear-gradient(180deg, #1a2440 0%, #2c3a60 40%, #1a2440 100%),
    radial-gradient(ellipse at 50% 20%, #4a6a8a 0%, transparent 70%);
}
.scn-titania-fairy-song .moon-silver {
  position:absolute; top:4%; left:50%; width:80px; height:80px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #d0dce8 0%, #a0b4c8 30%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,180,200,0.5);
  animation: tfs-moon 14s ease-in-out infinite alternate;
}
.scn-titania-fairy-song .clearing-bg {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #1a2440 0%, #2c3a60 80%);
  clip-path: polygon(0% 0%, 15% 8%, 35% 2%, 55% 10%, 75% 4%, 90% 9%, 100% 5%, 100% 0%);
  filter: blur(3px); opacity:0.8;
}
.scn-titania-fairy-song .stem-left {
  position:absolute; bottom:35%; left:10%; width:4px; height:50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 0 0 20% 20%; transform: rotate(-10deg);
  animation: tfs-stem 18s ease-in-out infinite alternate;
}
.scn-titania-fairy-song .stem-right {
  position:absolute; bottom:30%; right:12%; width:4px; height:55px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 0 0 20% 20%; transform: rotate(8deg);
  animation: tfs-stem 22s ease-in-out infinite alternate-reverse;
}
.scn-titania-fairy-song .figure-titania {
  position:absolute; bottom:20%; left:45%; width:24px; height:55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfs-titania 7s ease-in-out infinite;
}
.scn-titania-fairy-song .figure-fairy1 {
  position:absolute; bottom:25%; left:55%; width:12px; height:30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfs-fairy-dance 5s ease-in-out infinite;
}
.scn-titania-fairy-song .figure-fairy2 {
  position:absolute; bottom:22%; left:32%; width:10px; height:26px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfs-fairy-dance 6s ease-in-out infinite reverse;
}
.scn-titania-fairy-song .glow-dust {
  position:absolute; top:30%; left:20%; width:100px; height:80px;
  background: radial-gradient(ellipse, rgba(200,220,240,0.4) 0%, transparent 70%);
  filter: blur(8px); opacity:0.5;
  animation: tfs-dust 8s ease-in-out infinite alternate;
}
@keyframes tfs-moon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes tfs-stem { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-12deg); } }
@keyframes tfs-titania { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tfs-fairy-dance { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(-8deg); } 50% { transform: translateY(-2px) rotate(5deg); } 75% { transform: translateY(-10px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tfs-dust { 0% { transform: translate(0, 0) scale(1); opacity:0.5; } 50% { transform: translate(10px, -10px) scale(1.2); opacity:0.7; } 100% { transform: translate(-5px, 5px) scale(0.8); opacity:0.4; } }

.scn-lovers-dream-like-state {
  background: 
    linear-gradient(180deg, #ffd1b3 0%, #f0a77e 30%, #c77d5e 70%, #8c5a3e 100%),
    radial-gradient(ellipse at 30% 40%, #ffe0c0 0%, transparent 60%);
}

.scn-lovers-dream-like-state .sky-dawn {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fcd4b2 0%, #f5c094 40%, #eaa674 100%);
  animation: ld-sky 20s ease-in-out infinite alternate;
}
.scn-lovers-dream-like-state .mist {
  position: absolute; inset: 35% 0 0 0;
  background: linear-gradient(180deg, rgba(255,220,190,0.5) 0%, rgba(200,160,130,0.3) 100%);
  filter: blur(12px);
  animation: ld-mist 30s ease-in-out infinite alternate;
}
.scn-lovers-dream-like-state .tree-left {
  position: absolute; left: 10%; bottom: 15%;
  width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 30% 30%;
  transform: rotate(-10deg);
  animation: ld-tree 8s ease-in-out infinite alternate;
}
.scn-lovers-dream-like-state .tree-right {
  position: absolute; right: 12%; bottom: 18%;
  width: 30px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 40% 40%;
  transform: rotate(8deg);
  animation: ld-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-lovers-dream-like-state .figure-left {
  position: absolute; bottom: 20%; left: 38%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-figure 6s ease-in-out infinite alternate;
}
.scn-lovers-dream-like-state .figure-right {
  position: absolute; bottom: 20%; right: 38%;
  width: 20px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: ld-figure 7s ease-in-out infinite alternate-reverse;
}
.scn-lovers-dream-like-state .glow {
  position: absolute; top: 40%; left: 48%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe0c0 0%, #ffc090 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ld-glow 8s ease-in-out infinite alternate;
}

@keyframes ld-sky {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(1); }
}
@keyframes ld-mist {
  0% { transform: translateX(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(-15px) scaleY(1.05); opacity: 0.7; }
  100% { transform: translateX(10px) scaleY(0.95); opacity: 0.6; }
}
@keyframes ld-tree {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(2px); }
}
@keyframes ld-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(4px) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
}
@keyframes ld-glow {
  0% { transform: scale(0.8) translate(-50%, -50%); opacity: 0.6; }
  50% { transform: scale(1.1) translate(-45%, -45%); opacity: 1; }
  100% { transform: scale(0.9) translate(-55%, -55%); opacity: 0.8; }
}
.scn-bottom-wakes-dream {
  background:
    linear-gradient(180deg, #fae0b0 0%, #f5c880 40%, #dba060 100%),
    radial-gradient(ellipse at 50% 100%, #f0c070 0%, transparent 60%);
}
.scn-bottom-wakes-dream .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: bw-ground 5s ease-in-out infinite alternate;
}
.scn-bottom-wakes-dream .body {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #c8a870 0%, #a88858 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  animation: bw-body 4s ease-in-out infinite;
}
.scn-bottom-wakes-dream .head {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 50px;
  background: linear-gradient(180deg, #d4b888 0%, #b89868 100%);
  border-radius: 50%;
  animation: bw-head 4s ease-in-out infinite;
}
.scn-bottom-wakes-dream .ears {
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #c8a870 0%, #a88858 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  clip-path: polygon(0% 0%, 40% 0%, 40% 100%, 0% 100%);
  animation: bw-ears 1s ease-in-out infinite alternate;
}
.scn-bottom-wakes-dream .arm-left {
  position: absolute; bottom: 30%; left: 35%;
  width: 18px; height: 40px;
  background: #b89868;
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: bw-arm-left 3s ease-in-out infinite;
}
.scn-bottom-wakes-dream .arm-right {
  position: absolute; bottom: 30%; right: 35%;
  width: 18px; height: 40px;
  background: #b89868;
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: bw-arm-right 3s ease-in-out infinite;
}
.scn-bottom-wakes-dream .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.6) 0%, transparent 10%),
              radial-gradient(circle at 70% 20%, rgba(255,255,200,0.4) 0%, transparent 8%);
  animation: bw-stars 10s ease-in-out infinite alternate;
}
.scn-bottom-wakes-dream .sun-ray {
  position: absolute; top: 15%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,220,100,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bw-sun 12s ease-in-out infinite alternate;
}
@keyframes bw-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes bw-body {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-5px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes bw-head {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes bw-ears {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(10deg); }
}
@keyframes bw-arm-left {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(25deg); }
}
@keyframes bw-arm-right {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-40deg); }
  100% { transform: rotate(-25deg); }
}
@keyframes bw-stars {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes bw-sun {
  0% { transform: scale(0.8) translate(-10px, -10px); opacity: 0.4; }
  50% { transform: scale(1.2) translate(10px, 5px); opacity: 0.8; }
  100% { transform: scale(1) translate(0, 0); opacity: 0.5; }
}
.scn-quince-house-panic {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #d4bc94 40%, #b09870 100%),
    radial-gradient(ellipse at 60% 50%, #f0d8b0 0%, transparent 70%);
}
.scn-quince-house-panic .back-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #d4bc94 0%, #bca078 100%);
  animation: qh-wall 6s ease-in-out infinite alternate;
}
.scn-quince-house-panic .side-wall {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #c8ac80 0%, #a88860 100%);
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0% 100%);
  animation: qh-side 8s ease-in-out infinite alternate;
}
.scn-quince-house-panic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #987a58 0%, #785a38 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: qh-floor 4s ease-in-out infinite;
}
.scn-quince-house-panic .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: qh-table 5s ease-in-out infinite alternate;
}
.scn-quince-house-panic .quince {
  position: absolute; bottom: 22%; left: 25%;
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qh-figure 3s ease-in-out infinite alternate;
}
.scn-quince-house-panic .flute {
  position: absolute; bottom: 24%; left: 40%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qh-figure 3.5s ease-in-out infinite alternate-reverse;
}
.scn-quince-house-panic .snout {
  position: absolute; bottom: 23%; right: 30%;
  width: 20px; height: 46px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qh-figure 4s ease-in-out infinite alternate-reverse;
}
.scn-quince-house-panic .window {
  position: absolute; top: 10%; left: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 100%);
  border: 4px solid #8a6a4a;
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(200,224,255,0.5);
  animation: qh-window 10s ease-in-out infinite alternate;
}
.scn-quince-house-panic .door {
  position: absolute; bottom: 0; right: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: qh-door 7s ease-in-out infinite;
}
@keyframes qh-wall {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(0.99); }
}
@keyframes qh-side {
  0% { transform: skewY(0); }
  50% { transform: skewY(2deg); }
  100% { transform: skewY(-1deg); }
}
@keyframes qh-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes qh-table {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes qh-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(4px) translateY(-5px) rotate(2deg); }
  100% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
}
@keyframes qh-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(200,224,255,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(200,224,255,0.7); }
  100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(200,224,255,0.5); }
}
@keyframes qh-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}
.scn-bottom-returns-triumph {
  background:
    linear-gradient(180deg, #f5dca8 0%, #ecd090 40%, #d4b870 100%),
    radial-gradient(ellipse at 40% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-bottom-returns-triumph .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b09870 0%, #907850 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  animation: bt-floor 5s ease-in-out infinite alternate;
}
.scn-bottom-returns-triumph .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4bc94 0%, #bca078 100%);
  animation: bt-wall 8s ease-in-out infinite alternate;
}
.scn-bottom-returns-triumph .cart {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: bt-cart 4s ease-in-out infinite;
}
.scn-bottom-returns-triumph .bottom-body {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 80px;
  background: linear-gradient(180deg, #d4b888 0%, #b89868 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  animation: bt-body 6s ease-in-out infinite;
}
.scn-bottom-returns-triumph .bottom-head {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 45px; height: 45px;
  background: linear-gradient(180deg, #e0c898 0%, #c0a878 100%);
  border-radius: 50%;
  animation: bt-head 3s ease-in-out infinite alternate;
}
.scn-bottom-returns-triumph .banner {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 30px;
  background: linear-gradient(180deg, #c09040 0%, #a07020 100%);
  border-radius: 5%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 50%, 100% 100%, 0% 100%, 10% 50%);
  animation: bt-banner 7s ease-in-out infinite;
}
.scn-bottom-returns-triumph .confetti-1 {
  position: absolute; top: 15%; left: 20%;
  width: 10px; height: 10px;
  background: #e0a060;
  border-radius: 50%;
  animation: bt-confetti-1 4s linear infinite;
}
.scn-bottom-returns-triumph .confetti-2 {
  position: absolute; top: 25%; right: 20%;
  width: 8px; height: 8px;
  background: #c08050;
  border-radius: 50%;
  animation: bt-confetti-2 5s linear infinite;
}
@keyframes bt-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes bt-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes bt-cart {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-6px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-4px) rotate(0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes bt-body {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-8px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes bt-head {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(8deg); }
}
@keyframes bt-banner {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(-2deg); }
}
@keyframes bt-confetti-1 {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(360deg); opacity: 0; }
}
@keyframes bt-confetti-2 {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(-360deg); opacity: 0; }
}

.scn-theseus-rejects-satire {
  background: linear-gradient(180deg, #f0d8a0 0%, #e8c880 40%, #d4b060 70%, #b89040 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,235,180,0.8) 0%, transparent 50%);
}
.scn-theseus-rejects-satire .sun-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fff4d0 0%, #f0d8a0 50%, #d4b060 100%);
  animation: tsr-sky 12s ease-in-out infinite alternate;
}
.scn-theseus-rejects-satire .column-l {
  position: absolute; left: 8%; top: 10%; width: 22px; height: 80%;
  background: linear-gradient(90deg, #c8a060 0%, #e0c080 30%, #c8a060 70%, #a88040 100%);
  border-radius: 6px; box-shadow: 4px 0 12px rgba(0,0,0,0.15);
  animation: tsr-col 20s ease-in-out infinite;
}
.scn-theseus-rejects-satire .column-r {
  position: absolute; right: 8%; top: 10%; width: 22px; height: 80%;
  background: linear-gradient(90deg, #c8a060 0%, #e0c080 30%, #c8a060 70%, #a88040 100%);
  border-radius: 6px; box-shadow: -4px 0 12px rgba(0,0,0,0.15);
  animation: tsr-col 20s ease-in-out infinite reverse;
}
.scn-theseus-rejects-satire .theseus-fig {
  position: absolute; bottom: 22%; left: 42%; width: 40px; height: 62px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsr-fig 5s ease-in-out infinite;
}
.scn-theseus-rejects-satire .scroll {
  position: absolute; bottom: 30%; left: 48%; width: 34px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #d4b880 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: tsr-scroll 4s ease-in-out infinite alternate;
}
.scn-theseus-rejects-satire .light-ray {
  position: absolute; top: 0; right: 15%; width: 120px; height: 120%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  transform: rotate(25deg);
  animation: tsr-ray 15s ease-in-out infinite alternate;
}
.scn-theseus-rejects-satire .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 80px; height: 18px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: tsr-shad 5s ease-in-out infinite;
}
@keyframes tsr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes tsr-col { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes tsr-fig { 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 tsr-scroll { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-4px) rotate(2deg) } }
@keyframes tsr-ray { 0% { transform: rotate(25deg) translateX(0) } 100% { transform: rotate(30deg) translateX(10px) } }
@keyframes tsr-shad { 0%,100% { opacity: 0.3 } 50% { opacity: 0.5 } }

.scn-theseus-insists-on-play {
  background: linear-gradient(180deg, #f5e0b0 0%, #e8ca80 40%, #d4a850 70%, #b08030 100%),
              radial-gradient(ellipse at 60% 30%, rgba(255,245,200,0.6) 0%, transparent 60%);
}
.scn-theseus-insists-on-play .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a050 0%, #a88030 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-theseus-insists-on-play .theseus-point {
  position: absolute; bottom: 30%; left: 30%; width: 44px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsp-point 4s ease-in-out infinite;
}
.scn-theseus-insists-on-play .theseus-point::after {
  content: ''; position: absolute; top: 16px; right: -18px;
  width: 22px; height: 6px; background: #2a1a0a;
  border-radius: 0 60% 60% 0;
  transform: rotate(-20deg);
  animation: tsp-arm 4s ease-in-out infinite;
}
.scn-theseus-insists-on-play .player1 {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  animation: tsp-player 6s ease-in-out infinite;
}
.scn-theseus-insists-on-play .player2 {
  position: absolute; bottom: 26%; left: 58%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  animation: tsp-player 6s ease-in-out infinite 0.5s;
}
.scn-theseus-insists-on-play .player3 {
  position: absolute; bottom: 27%; left: 68%; width: 28px; height: 46px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  animation: tsp-player 6s ease-in-out infinite 1s;
}
.scn-theseus-insists-on-play .sunburst {
  position: absolute; top: 0; left: 50%; width: 200px; height: 200px;
  background: radial-gradient(ellipse, rgba(255,230,150,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: tsp-burst 8s ease-in-out infinite alternate;
}
.scn-theseus-insists-on-play .speech-shape {
  position: absolute; top: 18%; left: 38%; width: 50px; height: 30px;
  background: rgba(255,255,255,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: tsp-speech 4s ease-in-out infinite;
}
@keyframes tsp-point { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes tsp-arm { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes tsp-player { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tsp-burst { 0% { opacity: 0.6 } 100% { opacity: 0.9 } }
@keyframes tsp-speech { 0%,100% { transform: scale(1) opacity(0.5) } 50% { transform: scale(1.2) opacity(0.8) } }

.scn-theseus-defends-humble-players {
  background: linear-gradient(180deg, #f2dba0 0%, #e4c270 40%, #d0a550 70%, #b08430 100%),
              radial-gradient(ellipse at 40% 20%, rgba(255,242,180,0.7) 0%, transparent 50%);
}
.scn-theseus-defends-humble-players .colonnade {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #b89048 0px, #b89048 14px, transparent 14px, transparent 40px),
              linear-gradient(180deg, #d0b060 0%, #a08030 100%);
  border-radius: 20% 20% 0 0;
  animation: tdh-col 20s linear infinite;
}
.scn-theseus-defends-humble-players .theseus-arm {
  position: absolute; bottom: 25%; left: 32%; width: 48px; height: 68px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdh-fig 5s ease-in-out infinite;
}
.scn-theseus-defends-humble-players .theseus-arm::after {
  content: ''; position: absolute; top: 20px; left: -12px;
  width: 18px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a100a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  transform: rotate(15deg);
  animation: tdh-arm 5s ease-in-out infinite;
}
.scn-theseus-defends-humble-players .humble-player {
  position: absolute; bottom: 23%; left: 44%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tdh-player 6s ease-in-out infinite;
}
.scn-theseus-defends-humble-players .halo {
  position: absolute; top: 18%; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,230,150,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: tdh-halo 8s ease-in-out infinite alternate;
}
.scn-theseus-defends-humble-players .ground-shadow {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: tdh-shad 5s ease-in-out infinite;
}
.scn-theseus-defends-humble-players .dust-mote {
  position: absolute; top: 30%; left: 55%; width: 6px; height: 6px;
  background: rgba(255,240,200,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: tdh-dust 12s linear infinite;
}
@keyframes tdh-col { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes tdh-fig { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes tdh-arm { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }
@keyframes tdh-player { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes tdh-halo { 0% { opacity: 0.4; transform: scale(1) } 100% { opacity: 0.7; transform: scale(1.1) } }
@keyframes tdh-shad { 0%,100% { opacity: 0.3 } 50% { opacity: 0.5 } }
@keyframes tdh-dust { 0% { transform: translate(0,0) opacity(1) } 50% { transform: translate(30px,-20px) opacity(0.5) } 100% { transform: translate(60px,0) opacity(0) } }

.scn-prologue-begins-play {
  background: linear-gradient(180deg, #ffe8b0 0%, #f5d080 40%, #e0b050 70%, #c09030 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,245,180,0.8) 0%, transparent 60%);
}
.scn-prologue-begins-play .sunny-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fff8e0 0%, #fde5b0 50%, #e8b850 100%);
  animation: pbp-sky 10s ease-in-out infinite alternate;
}
.scn-prologue-begins-play .prologue-fig {
  position: absolute; bottom: 22%; left: 40%; width: 44px; height: 66px;
  background: linear-gradient(180deg, #4a3020 0%, #2a180e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbp-pro 3s ease-in-out infinite;
}
.scn-prologue-begins-play .prologue-fig::after {
  content: ''; position: absolute; top: 8px; left: -12px;
  width: 20px; height: 24px;
  background: #3a2212;
  border-radius: 50% 50% 0 0;
  transform: rotate(-30deg);
  animation: pbp-arm 3s ease-in-out infinite;
}
.scn-prologue-begins-play .trumpet-l {
  position: absolute; bottom: 40%; left: 32%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #d0a040 0%, #b08030 100%);
  border-radius: 0 0 60% 60%;
  transform: rotate(-25deg);
  animation: pbp-trump 2s ease-in-out infinite alternate;
}
.scn-prologue-begins-play .trumpet-r {
  position: absolute; bottom: 40%; right: 28%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #d0a040 0%, #b08030 100%);
  border-radius: 0 0 60% 60%;
  transform: rotate(25deg);
  animation: pbp-trump 2s ease-in-out infinite alternate 0.3s;
}
.scn-prologue-begins-play .comical-hat {
  position: absolute; bottom: 60%; left: 45%; width: 40px; height: 12px;
  background: #8a6040;
  border-radius: 10% 10% 50% 50%;
  transform: rotate(-5deg);
  animation: pbp-hat 4s ease-in-out infinite;
}
.scn-prologue-begins-play .comical-hat::after {
  content: ''; position: absolute; top: -8px; left: 12px;
  width: 10px; height: 10px;
  background: #d0a040;
  border-radius: 50%;
}
.scn-prologue-begins-play .audience-blur {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, rgba(80,60,40,0.3) 0px, rgba(80,60,40,0.3) 20px, transparent 20px, transparent 40px);
  filter: blur(8px);
  animation: pbp-aud 15s linear infinite;
}
.scn-prologue-begins-play .spotlight {
  position: absolute; top: 0; left: 50%; width: 200px; height: 300px;
  background: radial-gradient(ellipse at center top, rgba(255,250,200,0.3) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: pbp-spot 5s ease-in-out infinite alternate;
}
.scn-prologue-begins-play .confetti {
  position: absolute; top: -10%; left: 10%; width: 80px; height: 80px;
  background: repeating-linear-gradient(45deg, #f0d060 0px, #f0d060 6px, #e8b040 6px, #e8b040 12px);
  border-radius: 20%;
  filter: blur(6px);
  animation: pbp-conf 8s linear infinite;
}
@keyframes pbp-sky { 0% { opacity: 0.85 } 100% { opacity: 1 } }
@keyframes pbp-pro { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes pbp-arm { 0%,100% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } }
@keyframes pbp-trump { 0% { transform: rotate(-25deg) scaleX(1) } 100% { transform: rotate(-15deg) scaleX(1.1) } }
@keyframes pbp-hat { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes pbp-aud { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes pbp-spot { 0% { opacity: 0.5; transform: translateX(-50%) scale(1) } 100% { opacity: 0.8; transform: translateX(-40%) scale(1.1) } }
@keyframes pbp-conf { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(120vh) rotate(720deg) } }

.scn-oberon-puck-discuss-chaos {
  background: linear-gradient(180deg, #0e1a2b 0%, #1a2d4a 40%, #2a3f5a 100%), radial-gradient(ellipse at 50% 20%, #3a6a9a 0%, transparent 70%);
}
.scn-oberon-puck-discuss-chaos .moon {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px; margin-left: -30px;
  background: radial-gradient(circle, #d4e8ff 0%, #b0c8e8 60%, #7a9aba 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(180,210,255,0.3);
  animation: opc-moon 20s ease-in-out infinite alternate;
}
.scn-oberon-puck-discuss-chaos .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 30px; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: opc-tree 25s ease-in-out infinite alternate;
}
.scn-oberon-puck-discuss-chaos .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 40px; height: 55%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 40% 0 0 / 70% 80% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: opc-tree2 30s ease-in-out infinite alternate;
}
.scn-oberon-puck-discuss-chaos .figure.oberon {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opc-figure1 4s ease-in-out infinite;
}
.scn-oberon-puck-discuss-chaos .figure.puck {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opc-figure2 3.5s ease-in-out infinite;
}
.scn-oberon-puck-discuss-chaos .glow-ground {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,210,255,0.15) 0%, transparent 70%);
  animation: opc-glow 12s ease-in-out infinite alternate;
}
.scn-oberon-puck-discuss-chaos .sparkle {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: #d4e8ff; border-radius: 50%;
  box-shadow: 0 0 6px 2px #d4e8ff;
  animation: opc-sparkle 3s ease-in-out infinite alternate;
}
.scn-oberon-puck-discuss-chaos .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 8px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px);
  animation: opc-shadow 5s ease-in-out infinite;
}
@keyframes opc-moon { 0% { transform: translateY(0); opacity: 0.9 } 50% { transform: translateY(10px); opacity: 1 } 100% { transform: translateY(0); opacity: 0.85 } }
@keyframes opc-tree { 0% { transform: skewX(-1deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(-0.5deg); } }
@keyframes opc-tree2 { 0% { transform: skewX(1deg); } 50% { transform: skewX(-1deg); } 100% { transform: skewX(0.5deg); } }
@keyframes opc-figure1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(5px) translateY(0) rotate(2deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes opc-figure2 { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 33% { transform: translateX(-4px) translateY(-3px) rotate(-2deg) } 66% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes opc-glow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes opc-sparkle { 0% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.4; transform: scale(0.9) } }
@keyframes opc-shadow { 0% { transform: scaleX(1); opacity: 0.3 } 50% { transform: scaleX(0.8); opacity: 0.5 } 100% { transform: scaleX(1.1); opacity: 0.2 } }

.scn-puck-reports-ass-adventure {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 10%, #5a9aba 0%, transparent 70%);
}
.scn-puck-reports-ass-adventure .moon-comic {
  position: absolute; top: 5%; right: 10%; width: 70px; height: 70px;
  background: radial-gradient(circle, #e0f0ff 0%, #b0c8e8 60%, #7a9aba 100%);
  border-radius: 50%; box-shadow: 0 0 50px 15px rgba(180,210,255,0.4);
  animation: pra-moon 15s ease-in-out infinite alternate;
}
.scn-puck-reports-ass-adventure .bush {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  animation: pra-bush 20s ease-in-out infinite alternate;
}
.scn-puck-reports-ass-adventure .figure.bottom {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pra-bottom 3s ease-in-out infinite;
}
.scn-puck-reports-ass-adventure .figure.puckshape {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pra-puck 2.5s ease-in-out infinite;
}
.scn-puck-reports-ass-adventure .ears {
  position: absolute; bottom: 42%; left: 55%; width: 24px; height: 12px;
  background: #3a4a3a; border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: pra-ears 1s ease-in-out infinite;
}
.scn-puck-reports-ass-adventure .glow-spot {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffffc0 0%, transparent 70%);
  border-radius: 50%;
  animation: pra-glow 4s ease-in-out infinite alternate;
}
.scn-puck-reports-ass-adventure .dust {
  position: absolute; top: 40%; left: 30%; width: 8px; height: 8px;
  background: #d4e8ff; border-radius: 50%;
  box-shadow: 0 0 6px 2px #d4e8ff;
  animation: pra-dust 3s ease-in-out infinite;
}
.scn-puck-reports-ass-adventure .star {
  position: absolute; top: 12%; left: 20%; width: 3px; height: 3px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 4px 1px #fff;
  animation: pra-star 2s ease-in-out infinite alternate;
}
@keyframes pra-moon { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 15px rgba(180,210,255,0.3); } 50% { transform: translateX(-10px) scale(1.05); box-shadow: 0 0 60px 20px rgba(180,210,255,0.5); } 100% { transform: translateX(5px) scale(1); box-shadow: 0 0 40px 15px rgba(180,210,255,0.3); } }
@keyframes pra-bush { 0% { transform: translateY(0) skewY(1deg); } 50% { transform: translateY(-5px) skewY(-2deg); } 100% { transform: translateY(0) skewY(1deg); } }
@keyframes pra-bottom { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(10px) rotate(5deg) scale(1.02); } 50% { transform: translateX(-5px) rotate(-3deg) scale(0.98); } 75% { transform: translateX(12px) rotate(4deg) scale(1.01); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes pra-puck { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-8px) rotate(10deg); } 60% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pra-ears { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes pra-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.5); } 100% { opacity: 0.4; transform: scale(1.2); } }
@keyframes pra-dust { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }
@keyframes pra-star { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-oberon-check-lysander {
  background: linear-gradient(180deg, #0e1a2b 0%, #1a2d4a 40%, #2a3f5a 100%), radial-gradient(ellipse at 50% 15%, #3a6a9a 0%, transparent 70%);
}
.scn-oberon-check-lysander .moon-quiet {
  position: absolute; top: 10%; left: 50%; width: 55px; height: 55px; margin-left: -27.5px;
  background: radial-gradient(circle, #d4e8ff 0%, #b0c8e8 60%, #7a9aba 100%);
  border-radius: 50%; box-shadow: 0 0 35px 8px rgba(180,210,255,0.25);
  animation: ocl-moon 25s ease-in-out infinite alternate;
}
.scn-oberon-check-lysander .ground-sleep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  animation: ocl-ground 30s ease-in-out infinite alternate;
}
.scn-oberon-check-lysander .figure.lysander {
  position: absolute; bottom: 10%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ocl-figure1 6s ease-in-out infinite;
}
.scn-oberon-check-lysander .figure.hermia {
  position: absolute; bottom: 8%; left: 50%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ocl-figure2 7s ease-in-out infinite;
}
.scn-oberon-check-lysander .flower {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d4e8ff 0%, #a0c0e0 60%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(180,210,255,0.3);
  animation: ocl-flower 4s ease-in-out infinite alternate;
}
.scn-oberon-check-lysander .juice-drop {
  position: absolute; bottom: 28%; left: 46%; width: 4px; height: 6px;
  background: #d4e8ff; border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px 1px #d4e8ff;
  animation: ocl-drop 3s ease-in-out infinite alternate;
}
.scn-oberon-check-lysander .tree-bg {
  position: absolute; bottom: 20%; right: 5%; width: 50px; height: 60%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: ocl-tree 35s ease-in-out infinite alternate;
}
@keyframes ocl-moon { 0% { transform: translateY(0); opacity: 0.9 } 50% { transform: translateY(8px); opacity: 1 } 100% { transform: translateY(0); opacity: 0.85 } }
@keyframes ocl-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ocl-figure1 { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(4px) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes ocl-figure2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 66% { transform: translateX(3px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes ocl-flower { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.2) rotate(5deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-3deg); opacity: 0.7; } }
@keyframes ocl-drop { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.8); } 100% { transform: translateY(0) scale(1); } }
@keyframes ocl-tree { 0% { transform: skewX(0deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(-0.5deg); } }

.scn-hermia-accuses-demetrius {
  background: linear-gradient(180deg, #0e1a2b 0%, #1a2d4a 40%, #2a3f5a 100%), radial-gradient(ellipse at 50% 20%, #3a6a9a 0%, transparent 70%);
}
.scn-hermia-accuses-demetrius .moon-tense {
  position: absolute; top: 8%; left: 50%; width: 50px; height: 50px; margin-left: -25px;
  background: radial-gradient(circle, #c0d8f0 0%, #9ab0d0 60%, #6a8aaa 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(150,180,220,0.4);
  animation: had-moon 8s ease-in-out infinite alternate;
}
.scn-hermia-accuses-demetrius .ground-tense {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  animation: had-ground 10s ease-in-out infinite alternate;
}
.scn-hermia-accuses-demetrius .figure.hermia-tense {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: had-hermia 2s ease-in-out infinite;
}
.scn-hermia-accuses-demetrius .figure.demetrius {
  position: absolute; bottom: 15%; left: 52%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: had-demetrius 2.5s ease-in-out infinite;
}
.scn-hermia-accuses-demetrius .shadow-sharp {
  position: absolute; bottom: 10%; left: 28%; width: 60px; height: 8px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(2px);
  animation: had-shadow 3s ease-in-out infinite;
}
.scn-hermia-accuses-demetrius .dagger-glow {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #d4e8ff 0%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 3px rgba(180,210,255,0.5);
  animation: had-dagger 2s ease-in-out infinite alternate;
}
.scn-hermia-accuses-demetrius .dust-angry {
  position: absolute; top: 40%; left: 40%; width: 6px; height: 6px;
  background: #c0d8f0; border-radius: 50%;
  box-shadow: 0 0 4px 1px #c0d8f0;
  animation: had-dust 1.5s ease-in-out infinite;
}
@keyframes had-moon { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 30px 8px rgba(150,180,220,0.3); } 50% { transform: scale(1.08); opacity: 1; box-shadow: 0 0 40px 12px rgba(150,180,220,0.6); } 100% { transform: scale(1); opacity: 0.85; box-shadow: 0 0 30px 8px rgba(150,180,220,0.3); } }
@keyframes had-ground { 0% { transform: translateY(0) skewY(2deg); } 50% { transform: translateY(-4px) skewY(-1deg); } 100% { transform: translateY(0) skewY(0deg); } }
@keyframes had-hermia { 0% { transform: translateX(0) rotate(-5deg) scale(1.02); } 25% { transform: translateX(8px) rotate(5deg) scale(1); } 50% { transform: translateX(-5px) rotate(-8deg) scale(1.05); } 75% { transform: translateX(10px) rotate(3deg) scale(0.98); } 100% { transform: translateX(0) rotate(-5deg) scale(1.02); } }
@keyframes had-demetrius { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-6px) rotate(-4deg); } 60% { transform: translateX(6px) rotate(4deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes had-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.4; } 50% { transform: scaleX(0.7) translateX(10px); opacity: 0.7; } 100% { transform: scaleX(1.1) translateX(-5px); opacity: 0.3; } }
@keyframes had-dagger { 0% { transform: translateY(0) rotate(0deg); opacity: 0.5; } 50% { transform: translateY(-5px) rotate(10deg); opacity: 1; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.6; } }
@keyframes had-dust { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }

/* puck-agrees-to-help - moonlit, calm */
.scn-puck-agrees-to-help {
  background: linear-gradient(180deg, #17172e 0%, #25254a 40%, #35356e 100%), radial-gradient(ellipse at 50% 0%, #4a4a8a 0%, transparent 70%);
}
.scn-puck-agrees-to-help .moon { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #d0d8f0 0%, #9aaccc 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(154,172,204,0.6); animation: pah-moon 12s ease-in-out infinite alternate; }
.scn-puck-agrees-to-help .clouds { position:absolute; top:8%; height:30px; background: linear-gradient(180deg, rgba(180,200,240,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(6px); }
.scn-puck-agrees-to-help .cloud-a { left:5%; width:120px; animation: pah-drift 35s linear infinite; }
.scn-puck-agrees-to-help .cloud-b { right:10%; width:80px; top:18%; animation: pah-drift 50s linear infinite reverse; }
.scn-puck-agrees-to-help .skyglow { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(100,120,200,0.2) 0%, transparent 100%); animation: pah-glow 8s ease-in-out infinite; }
.scn-puck-agrees-to-help .church { position:absolute; bottom:30%; left:15%; width:40px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:8% 8% 4% 4% / 60% 60% 40% 40%; box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: pah-church 20s ease-in-out infinite; }
.scn-puck-agrees-to-help .graves { position:absolute; bottom:25%; left:5%; width:15px; height:22px; background: #1e1e32; border-radius:30% 30% 10% 10%; box-shadow: 12px 2px 0 #1e1e32, 25px -1px 0 #1e1e32; transform: perspective(3px) rotateX(2deg); }
.scn-puck-agrees-to-help .puck { position:absolute; bottom:28%; left:60%; width:22px; height:40px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pah-puck 4s ease-in-out infinite; }
.scn-puck-agrees-to-help .dragons { position:absolute; top:5%; left:50%; width:80px; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(100,130,200,0.4) 50%, transparent 100%); transform: translateX(-50%);
  animation: pah-dragon 25s ease-in-out infinite; }
.scn-puck-agrees-to-help .harbinger { position:absolute; top:15%; left:10%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); animation: pah-star 3s ease-in-out infinite alternate; }
@keyframes pah-moon { 0% { opacity:0.8; transform: translate(0,0); } 50% { opacity:1; transform: translate(2px,-2px); } 100% { opacity:0.9; transform: translate(-1px,1px); } }
@keyframes pah-drift { 0% { transform: translateX(-40px); } 100% { transform: translateX(100vw); } }
@keyframes pah-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pah-church { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } }
@keyframes pah-puck { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-2deg); } 75% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pah-dragon { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.2); } 100% { transform: translateX(-50%) scaleX(0.9); } }
@keyframes pah-star { 0% { opacity:0.3; transform: scale(0.5); } 100% { opacity:1; transform: scale(1); } }

/* puck-leads-lovers-astray - dark, funny */
.scn-puck-leads-lovers-astray {
  background: linear-gradient(180deg, #13132b 0%, #1c1c3e 30%, #2a2a5a 70%, #14142e 100%), radial-gradient(ellipse at 30% 60%, #2a3a5a 0%, transparent 80%);
}
.scn-puck-leads-lovers-astray .bg-forest { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(30,50,30,0.3) 20px, rgba(30,50,30,0.3) 21px); animation: pla-trees 8s linear infinite; }
.scn-puck-leads-lovers-astray .path-1, .path-2 { position:absolute; bottom:20%; left:0; right:0; height:30px; background: radial-gradient(ellipse at center, #3a4a3a 0%, transparent 80%); border-radius:50%; animation: pla-path 6s ease-in-out infinite; }
.scn-puck-leads-lovers-astray .path-2 { bottom:15%; height:20px; animation-delay: -3s; }
.scn-puck-leads-lovers-astray .puck-shadow { position:absolute; bottom:25%; left:10%; width:20px; height:35px; background: #0a0a1a; border-radius:50% 50% 40% 40%; transform: scaleX(-1); animation: pla-puck 2s ease-in-out infinite; }
.scn-puck-leads-lovers-astray .lover { position:absolute; bottom:22%; width:18px; height:40px; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); }
.scn-puck-leads-lovers-astray .lysander { left:40%; animation: pla-lover1 3s ease-in-out infinite; }
.scn-puck-leads-lovers-astray .demetrius { left:70%; animation: pla-lover2 3s ease-in-out infinite; transform: scaleX(-1); }
.scn-puck-leads-lovers-astray .will-o-wisp { position:absolute; bottom:30%; left:30%; width:8px; height:8px; background: #b0d050; border-radius:50%; box-shadow: 0 0 20px 6px rgba(176,208,80,0.7); animation: pla-wisp 2s ease-in-out infinite alternate; }
.scn-puck-leads-lovers-astray .bush { position:absolute; bottom:15%; width:30px; height:24px; background: #2a3a2a; border-radius:50%; filter: blur(2px); }
.scn-puck-leads-lovers-astray .bush-l { left:5%; animation: pla-bush 10s ease-in-out infinite; }
.scn-puck-leads-lovers-astray .bush-r { right:10%; animation: pla-bush 12s ease-in-out infinite; animation-delay: -5s; }
@keyframes pla-trees { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes pla-path { 0% { opacity:0.3; transform: translateX(-10px); } 50% { opacity:0.8; transform: translateX(10px); } 100% { opacity:0.3; transform: translateX(-10px); } }
@keyframes pla-puck { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(15px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes pla-lover1 { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pla-lover2 { 0% { transform: scaleX(-1) translateX(0) rotate(2deg); } 33% { transform: scaleX(-1) translateX(-6px) rotate(-2deg); } 66% { transform: scaleX(-1) translateX(-3px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(0) rotate(2deg); } }
@keyframes pla-wisp { 0% { transform: translate(0,0); } 50% { transform: translate(10px,-8px); } 100% { transform: translate(-5px,5px); } }
@keyframes pla-bush { 0% { transform: scale(1); } 50% { transform: scale(0.9) translateY(2px); } 100% { transform: scale(1); } }

/* lysander-tired-demetrius-tired - dark, tense */
.scn-lysander-tired-demetrius-tired {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a30 40%, #222244 100%), radial-gradient(ellipse at 70% 80%, #1a2a3a 0%, transparent 70%);
}
.scn-lysander-tired-demetrius-tired .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1e1e32 0%, #0e0e1a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-lysander-tired-demetrius-tired .uneven { animation: ltd-ground 15s ease-in-out infinite; }
.scn-lysander-tired-demetrius-tired .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0e0e2a 0%, transparent 100%); }
.scn-lysander-tired-demetrius-tired .figure { position:absolute; bottom:25%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-lysander-tired-demetrius-tired .lysander-ground { left:30%; animation: ltd-lys 6s ease-in-out infinite; }
.scn-lysander-tired-demetrius-tired .demetrius-sit { left:60%; height:25px; bottom:22%; animation: ltd-dem 8s ease-in-out infinite; }
.scn-lysander-tired-demetrius-tired .rock { position:absolute; bottom:28%; left:15%; width:25px; height:18px; background: #2a2a3a; border-radius: 40% 60% 30% 70%; animation: ltd-rock 20s ease-in-out infinite; }
.scn-lysander-tired-demetrius-tired .tree-stump { position:absolute; bottom:33%; left:50%; width:12px; height:20px; background: #1a1a2a; border-radius: 30% 30% 10% 10%; animation: ltd-stump 25s ease-in-out infinite; }
.scn-lysander-tired-demetrius-tired .moon-slice { position:absolute; top:10%; left:20%; width:30px; height:30px; background: radial-gradient(circle at 30% 30%, #b0b0d0 0%, #707090 100%); border-radius: 50%; clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%); animation: ltd-moon 12s ease-in-out infinite; }
@keyframes ltd-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97) translateY(2px); } 100% { transform: scaleY(1); } }
@keyframes ltd-lys { 0% { transform: translate(0,0) rotate(5deg); } 33% { transform: translate(3px,-2px) rotate(-3deg); } 66% { transform: translate(-2px,1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(5deg); } }
@keyframes ltd-dem { 0% { transform: translate(0,0) scaleY(1); } 50% { transform: translate(2px,1px) scaleY(0.95); } 100% { transform: translate(0,0) scaleY(1); } }
@keyframes ltd-rock { 0% { transform: translate(0,0) rotate(0); } 33% { transform: translate(1px,-1px) rotate(3deg); } 66% { transform: translate(-1px,2px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes ltd-stump { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9) translateY(2px); } 100% { transform: scaleY(1); } }
@keyframes ltd-moon { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* helena-tired-sleeps - dark, dark */
.scn-helena-tired-sleeps {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 50%, #1a1a36 100%), radial-gradient(ellipse at 50% 110%, #1a1a3a 0%, transparent 70%);
}
.scn-helena-tired-sleeps .night-bg { position:absolute; inset:0; background: radial-gradient(circle at 80% 20%, #2a2a4a 0%, transparent 60%); animation: hts-bg 20s ease-in-out infinite; }
.scn-helena-tired-sleeps .ground-dark { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%); }
.scn-helena-tired-sleeps .helena-sleep { position:absolute; bottom:10%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hts-body 6s ease-in-out infinite; }
.scn-helena-tired-sleeps .arm { position:absolute; bottom:18%; left:32%; width:14px; height:8px; background: #1a1a3a; border-radius: 50%; transform: rotate(-30deg); animation: hts-arm 4s ease-in-out infinite alternate; }
.scn-helena-tired-sleeps .hair { position:absolute; bottom:35%; left:40%; width:30px; height:30px; background: #0e0e1e; border-radius: 50% 50% 40% 40%; animation: hts-hair 8s ease-in-out infinite; }
.scn-helena-tired-sleeps .star { position:absolute; width:3px; height:3px; background: #b0b0d0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(176,176,208,0.4); }
.scn-helena-tired-sleeps .star-1 { top:10%; left:20%; animation: hts-twinkle 3s ease-in-out infinite; }
.scn-helena-tired-sleeps .star-2 { top:25%; right:15%; animation: hts-twinkle 4s ease-in-out infinite; animation-delay: -1.5s; }
.scn-helena-tired-sleeps .star-3 { top:5%; left:60%; animation: hts-twinkle 5s ease-in-out infinite; animation-delay: -3s; }
@keyframes hts-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hts-body { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes hts-arm { 0% { transform: rotate(-30deg) translate(0,0); } 100% { transform: rotate(-40deg) translate(2px,-2px); } }
@keyframes hts-hair { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes hts-twinkle { 0% { opacity:0.3; transform: scale(0.5); } 50% { opacity:1; transform: scale(1); } 100% { opacity:0.3; transform: scale(0.5); } }

.scn-bottom-orders-perfections { background: linear-gradient(180deg, #f2d5a0 0%, #e8c78a 30%, #c8a060 100%), radial-gradient(ellipse at 70% 40%, #f0d8b0 0%, transparent 60%); }
.scn-bottom-orders-perfections .wall-bop { position:absolute; inset:0; background: linear-gradient(180deg, #e8d0aa 0%, #d4b888 100%); }
.scn-bottom-orders-perfections .table-bop { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #b88850 0%, #8a6a3a 100%); border-radius:4% 4% 0 0; box-shadow:0 -6px 12px rgba(0,0,0,.2); }
.scn-bottom-orders-perfections .mirror-bop { position:absolute; top:20%; left:50%; width:30%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #c0d0e0 0%, #a0b8c8 100%); border-radius:50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow:inset 0 0 30px rgba(255,255,255,.4), 0 6px 12px rgba(0,0,0,.3); animation: bop-mirror 6s ease-in-out infinite alternate; }
.scn-bottom-orders-perfections .beard-bop { position:absolute; top:40%; left:20%; width:12%; height:18%; background: radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, #5a3a1a 100%); border-radius:50% 50% 0 0; transform:rotate(-5deg); animation: bop-dangle 4s ease-in-out infinite; }
.scn-bottom-orders-perfections .ribbon-bop { position:absolute; top:30%; right:15%; width:4%; height:25%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:2px; transform:rotate(15deg); animation: bop-sway 5s ease-in-out infinite alternate; }
.scn-bottom-orders-perfections .mask-bop { position:absolute; bottom:32%; left:38%; width:20%; height:18%; background: radial-gradient(ellipse at 50% 30%, #d4a050 0%, #a07830 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation: bop-bob 3s ease-in-out infinite; }
.scn-bottom-orders-perfections .shoes-bop { position:absolute; bottom:2%; left:30%; width:12%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 0 0; transform:rotate(-8deg); animation: bop-tap 2s ease-in-out infinite; }
@keyframes bop-mirror { 0% { box-shadow:inset 0 0 20px rgba(255,255,255,.3); } 50% { box-shadow:inset 0 0 50px rgba(255,255,255,.6), 0 0 30px rgba(200,160,96,.2); } 100% { box-shadow:inset 0 0 25px rgba(255,255,255,.4); } }
@keyframes bop-dangle { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(4px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes bop-sway { 0% { transform:rotate(15deg) scale(1); } 50% { transform:rotate(20deg) scale(1.1); } 100% { transform:rotate(15deg) scale(1); } }
@keyframes bop-bob { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-6px) rotate(5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes bop-tap { 0% { transform:rotate(-8deg) translateX(0); } 50% { transform:rotate(-2deg) translateX(3px); } 100% { transform:rotate(-8deg) translateX(0); } }

.scn-theseus-questions-lovers-tales { background: linear-gradient(180deg, #d4e8f0 0%, #b0c8d8 40%, #889aa8 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%); }
.scn-theseus-questions-lovers-tales .sky-tql { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8e0f0 0%, #a8c8d8 100%); animation: tql-sky 12s ease-in-out infinite alternate; }
.scn-theseus-questions-lovers-tales .cols-tql { position:absolute; top:10%; left:5%; right:5%; height:60%; background: repeating-linear-gradient(90deg, #e8e0d0 0%, #e8e0d0 4%, transparent 4%, transparent 8%); border-radius:0 0 10% 10%; opacity:0.5; }
.scn-theseus-questions-lovers-tales .ground-tql { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; }
.scn-theseus-questions-lovers-tales .bench-tql { position:absolute; bottom:25%; left:20%; width:30%; height:10%; background: linear-gradient(90deg, #8a7050 0%, #6a5030 100%); border-radius:6px; box-shadow:0 4px 8px rgba(0,0,0,.2); animation: tql-bench 9s ease-in-out infinite alternate; }
.scn-theseus-questions-lovers-tales .figure-tql-a { position:absolute; bottom:28%; left:25%; width:10%; height:25%; background: linear-gradient(180deg, #d0c8a0 0%, #a09878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tql-figure 7s ease-in-out infinite alternate; }
.scn-theseus-questions-lovers-tales .figure-tql-b { position:absolute; bottom:28%; left:35%; width:10%; height:22%; background: linear-gradient(180deg, #c8b898 0%, #988878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: tql-figure 7s ease-in-out infinite alternate-reverse; }
.scn-theseus-questions-lovers-tales .light-tql { position:absolute; top:0; left:30%; width:30%; height:80%; background: radial-gradient(ellipse at 50% 20%, rgba(255,255,240,.4) 0%, transparent 70%); animation: tql-light 15s ease-in-out infinite alternate; }
@keyframes tql-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tql-bench { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes tql-figure { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes tql-light { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }

.scn-theseus-discourses-imagination { background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 50%, #8090a0 100%), radial-gradient(ellipse at 80% 20%, #f0f4ff 0%, transparent 60%); }
.scn-theseus-discourses-imagination .sky-tdi { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8d8e8 0%, #a8b8c8 100%); animation: tdi-sky 14s ease-in-out infinite alternate; }
.scn-theseus-discourses-imagination .ground-tdi { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius:30% 70% 0 0 / 50% 80% 0 0; }
.scn-theseus-discourses-imagination .bush-tdi { position:absolute; bottom:35%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse at 30% 50%, #5a7a4a 0%, #3a5a2a 100%); border-radius:60% 40% 50% 50% / 80% 60% 40% 40%; animation: tdi-bush 8s ease-in-out infinite alternate; }
.scn-theseus-discourses-imagination .ears-tdi { position:absolute; bottom:60%; left:36%; width:6%; height:6%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation: tdi-ears 3s ease-in-out infinite alternate; }
.scn-theseus-discourses-imagination .ears-tdi::after { content:''; position:absolute; left:120%; top:0; width:100%; height:100%; background:linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius:50% 50% 0 0; transform:rotate(20deg); }
.scn-theseus-discourses-imagination .shadow-tdi { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 70%); animation: tdi-shadow 10s ease-in-out infinite alternate; }
.scn-theseus-discourses-imagination .pointer-tdi { position:absolute; bottom:38%; left:15%; width:8%; height:20%; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation: tdi-point 5s ease-in-out infinite; }
@keyframes tdi-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes tdi-bush { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.05) translateY(-6px); } 100% { transform:scale(1) translateY(0); } }
@keyframes tdi-ears { 0% { transform:rotate(-10deg) scale(1); } 50% { transform:rotate(5deg) scale(1.2); } 100% { transform:rotate(-10deg) scale(1); } }
@keyframes tdi-shadow { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.6; transform:scale(1.1); } 100% { opacity:.3; transform:scale(1); } }
@keyframes tdi-point { 0% { transform:rotate(10deg) translateX(0); } 50% { transform:rotate(20deg) translateX(8px); } 100% { transform:rotate(10deg) translateX(0); } }

.scn-theseus-asks-for-entertainment { background: linear-gradient(180deg, #e0d8c8 0%, #c8b8a0 40%, #a09078 100%), radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 60%); }
.scn-theseus-asks-for-entertainment .back-taf { position:absolute; inset:0; background: linear-gradient(180deg, #d0c8b0 0%, #b0a088 100%); }
.scn-theseus-asks-for-entertainment .throne-taf { position:absolute; bottom:20%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #a08860 0%, #806840 100%); border-radius:10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow:0 8px 16px rgba(0,0,0,.3); animation: taf-throne 8s ease-in-out infinite alternate; }
.scn-theseus-asks-for-entertainment .theseus-taf { position:absolute; bottom:22%; left:22%; width:14%; height:28%; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: taf-theseus 6s ease-in-out infinite alternate; }
.scn-theseus-asks-for-entertainment .performer-taf { position:absolute; bottom:20%; right:25%; width:12%; height:30%; background: linear-gradient(180deg, #d0c0a0 0%, #b09878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: taf-performer 4s ease-in-out infinite; }
.scn-theseus-asks-for-entertainment .floor-taf { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b0a088 0%, #8a7a62 100%); border-radius:20% 80% 0 0 / 30% 50% 0 0; }
.scn-theseus-asks-for-entertainment .curtain-taf { position:absolute; top:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #a04838 0%, #804028 50%, #a04838 100%); border-radius:0 0 30% 30%; animation: taf-curtain 10s ease-in-out infinite alternate; }
.scn-theseus-asks-for-entertainment .prop-taf { position:absolute; bottom:28%; right:32%; width:6%; height:12%; background: linear-gradient(180deg, #b85838 0%, #903818 100%); border-radius:30% 30% 10% 10%; transform:rotate(45deg); animation: taf-prop 5s ease-in-out infinite; }
@keyframes taf-throne { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-4px) scale(1.03); } 100% { transform:translateY(0) scale(1); } }
@keyframes taf-theseus { 0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(2deg) translateY(-3px); } 100% { transform:rotate(0) translateY(0); } }
@keyframes taf-performer { 0% { transform:rotate(-5deg) translateX(0) translateY(0); } 25% { transform:rotate(-3deg) translateX(10px) translateY(-5px); } 50% { transform:rotate(-1deg) translateX(20px) translateY(-2px); } 75% { transform:rotate(-4deg) translateX(10px) translateY(3px); } 100% { transform:rotate(-5deg) translateX(0) translateY(0); } }
@keyframes taf-curtain { 0% { height:15%; opacity:.8; } 50% { height:18%; opacity:1; } 100% { height:15%; opacity:.8; } }
@keyframes taf-prop { 0% { transform:rotate(45deg) scale(1); } 50% { transform:rotate(55deg) scale(1.2); } 100% { transform:rotate(45deg) scale(1); } }

/* wall-exits-lion-moonshine */
.scn-wall-exits-lion-moonshine {
  background: linear-gradient(180deg, #87CEEB 0%, #d4e8f6 40%, #f0e68c 100%),
              radial-gradient(ellipse at 50% 20%, #fff9c4 0%, transparent 60%);
}
.scn-wall-exits-lion-moonshine .sky   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b3d9ff 0%, transparent 100%); animation: wlm-sky 8s ease-in-out infinite alternate; }
.scn-wall-exits-lion-moonshine .sun   { position:absolute; top:6%; left:72%; width:60px; height:60px; background: radial-gradient(circle, #fff9c4 0%, #ffd54f 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,213,79,.5); animation: wlm-sun 6s ease-in-out infinite alternate; }
.scn-wall-exits-lion-moonshine .wall  { position:absolute; bottom:20%; left:20%; width:160px; height:140px; background: linear-gradient(90deg, #d7ccc8 0%, #bcaaa4 100%); border-radius: 4px 4px 10px 10px; box-shadow: 0 4px 12px rgba(0,0,0,.3); transform-origin: bottom; animation: wlm-wall 5s ease-in-out infinite; }
.scn-wall-exits-lion-moonshine .chink { position:absolute; bottom:35%; left:38%; width:12px; height:16px; background: #5d4037; border-radius: 50%; box-shadow: 0 0 8px 4px rgba(255,235,59,.3); animation: wlm-chink 4s ease-in-out infinite alternate; }
.scn-wall-exits-lion-moonshine .lion  { position:absolute; bottom:22%; left:15%; width:80px; height:50px; background: linear-gradient(180deg, #c8a84a 0%, #a67c42 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: wlm-lion 6s ease-in-out infinite; }
.scn-wall-exits-lion-moonshine .moonshine { position:absolute; bottom:22%; right:22%; width:40px; height:70px; background: linear-gradient(180deg, #f4e8d1 0%, #d4c4a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: wlm-moonshine 3s ease-in-out infinite alternate; }
.scn-wall-exits-lion-moonshine .lantern { position:absolute; bottom:40%; right:25%; width:16px; height:24px; background: radial-gradient(circle, #fff176 0%, #fdd835 60%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 28px 8px rgba(255,235,59,.7); animation: wlm-lantern 2s ease-in-out infinite alternate; }
.scn-wall-exits-lion-moonshine .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8bc34a 0%, #689f38 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }

@keyframes wlm-sky   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wlm-sun   { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes wlm-wall  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wlm-chink { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes wlm-lion  { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes wlm-moonshine { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes wlm-lantern { 0% { transform: rotate(-5deg); box-shadow: 0 0 20px 6px rgba(255,235,59,.5) } 50% { transform: rotate(5deg); box-shadow: 0 0 32px 10px rgba(255,235,59,.8) } 100% { transform: rotate(-5deg); box-shadow: 0 0 20px 6px rgba(255,235,59,.5) } }

/* lion-moonshine-commentary */
.scn-lion-moonshine-commentary {
  background: linear-gradient(180deg, #b3e5fc 0%, #dcedc8 50%, #fff9c4 100%),
              radial-gradient(ellipse at 60% 30%, #fff9c4 0%, transparent 60%);
}
.scn-lion-moonshine-commentary .sky   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c5e1a5 0%, transparent 100%); animation: lmc-sky 10s ease-in-out infinite alternate; }
.scn-lion-moonshine-commentary .sun   { position:absolute; top:4%; left:64%; width:70px; height:70px; background: radial-gradient(circle, #ffe082 0%, #ffb300 70%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(255,179,0,.4); animation: lmc-sun 7s ease-in-out infinite alternate; }
.scn-lion-moonshine-commentary .lion-body { position:absolute; bottom:18%; left:12%; width:120px; height:60px; background: linear-gradient(180deg, #d4a847 0%, #b8872a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; animation: lmc-body 8s ease-in-out infinite; }
.scn-lion-moonshine-commentary .lion-head { position:absolute; bottom:40%; left:18%; width:50px; height:45px; background: radial-gradient(circle at 40% 40%, #e0b85c 0%, #c89a3e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: center bottom; animation: lmc-head 3s ease-in-out infinite alternate; }
.scn-lion-moonshine-commentary .moonshine { position:absolute; bottom:20%; right:20%; width:45px; height:80px; background: linear-gradient(180deg, #f5e6ca 0%, #dcc39a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lmc-moonshine 4s ease-in-out infinite; }
.scn-lion-moonshine-commentary .lantern { position:absolute; bottom:40%; right:25%; width:20px; height:28px; background: radial-gradient(circle, #fff59d 0%, #ffee58 60%); border-radius: 12% 12% 20% 20%; box-shadow: 0 0 24px 8px rgba(255,238,88,.6); animation: lmc-lantern 2.5s ease-in-out infinite alternate; }
.scn-lion-moonshine-commentary .ground { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #9ccc65 0%, #7cb342 100%); border-radius: 30% 70% 0 0 / 70% 60% 0 0; }
.scn-lion-moonshine-commentary .cloud  { position:absolute; top:12%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: lmc-cloud 30s linear infinite; }

@keyframes lmc-sky   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lmc-sun   { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.08) } 100% { transform: translateY(0) scale(1) } }
@keyframes lmc-body  { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }
@keyframes lmc-head  { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-6deg) } }
@keyframes lmc-moonshine { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes lmc-lantern { 0% { transform: rotate(-6deg) scale(1); box-shadow: 0 0 18px 5px rgba(255,238,88,.5) } 50% { transform: rotate(6deg) scale(1.05); box-shadow: 0 0 28px 10px rgba(255,238,88,.8) } 100% { transform: rotate(-6deg) scale(1); box-shadow: 0 0 18px 5px rgba(255,238,88,.5) } }
@keyframes lmc-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* moonshine-criticized */
.scn-moonshine-criticized {
  background: linear-gradient(180deg, #1a237e 0%, #283593 30%, #3f51b5 70%, #7c4dff 100%),
              radial-gradient(ellipse at 50% 20%, #ab47bc 0%, transparent 50%);
}
.scn-moonshine-criticized .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a237e 0%, transparent 100%); animation: msc-sky 12s ease-in-out infinite alternate; }
.scn-moonshine-criticized .moon    { position:absolute; top:8%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #ffecb3 0%, #ffe082 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,224,130,.4); animation: msc-moon 9s ease-in-out infinite alternate; }
.scn-moonshine-criticized .lantern-cage { position:absolute; bottom:25%; right:25%; width:50px; height:60px; background: linear-gradient(180deg, #c5cae9 0%, #9fa8da 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 0 4px #7986cb; animation: msc-cage 5s ease-in-out infinite; }
.scn-moonshine-criticized .man-in-lantern { position:absolute; bottom:30%; right:30%; width:20px; height:30px; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: msc-man 3s ease-in-out infinite alternate; }
.scn-moonshine-criticized .candle-flame { position:absolute; bottom:47%; right:36%; width:8px; height:12px; background: radial-gradient(circle, #fff176 0%, #ff8f00 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,143,0,.8); animation: msc-flame 1.5s ease-in-out infinite alternate; }
.scn-moonshine-criticized .ground   { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #37474f 0%, #263238 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-moonshine-criticized .star-1   { position:absolute; top:15%; left:20%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,.5); animation: msc-star 3s ease-in-out infinite alternate; }
.scn-moonshine-criticized .star-2   { position:absolute; top:28%; right:18%; width:3px; height:3px; background: #fff; border-radius:50%; box-shadow: 0 0 4px 1px rgba(255,255,255,.4); animation: msc-star2 4s ease-in-out infinite alternate; }

@keyframes msc-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes msc-moon  { 0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,224,130,.3) } 50% { transform: scale(1.05); box-shadow: 0 0 60px 30px rgba(255,224,130,.5) } 100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,224,130,.3) } }
@keyframes msc-cage  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes msc-man   { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes msc-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.9 } }
@keyframes msc-star  { 0% { opacity:.4; transform: scale(1) } 50% { opacity:1; transform: scale(1.8) } 100% { opacity:.5; transform: scale(1) } }
@keyframes msc-star2 { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(2) } 100% { opacity:.6; transform: scale(1) } }

/* pyramus-finds-mantle */
.scn-pyramus-finds-mantle {
  background: linear-gradient(180deg, #bbdefb 0%, #e3f2fd 40%, #fff9c4 100%),
              radial-gradient(ellipse at 70% 30%, #fff9c4 0%, transparent 70%);
}
.scn-pyramus-finds-mantle .sky   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d1c4e9 0%, transparent 100%); animation: pfm-sky 10s ease-in-out infinite alternate; }
.scn-pyramus-finds-mantle .moon  { position:absolute; top:6%; right:28%; width:70px; height:70px; background: radial-gradient(circle, #fff9c4 0%, #ffe082 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,224,130,.5); animation: pfm-moon 8s ease-in-out infinite alternate; }
.scn-pyramus-finds-mantle .moon-beam { position:absolute; top:20%; right:20%; width:200px; height:120%; background: linear-gradient(135deg, rgba(255,224,130,.15) 0%, transparent 100%); transform-origin: top right; animation: pfm-beam 6s ease-in-out infinite alternate; }
.scn-pyramus-finds-mantle .pyramus { position:absolute; bottom:20%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #c62828 0%, #b71c1c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pfm-pyramus 4s ease-in-out infinite; }
/* Use terracotta for Pyramus's cloak to avoid bright red */
.scn-pyramus-finds-mantle .pyramus { background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); }
.scn-pyramus-finds-mantle .mantle { position:absolute; bottom:30%; left:45%; width:70px; height:40px; background: linear-gradient(90deg, #d7ccc8 0%, #bcaaa4 100%); border-radius: 20% 20% 40% 40% ; transform-origin: bottom left; animation: pfm-mantle 3s ease-in-out infinite alternate; }
.scn-pyramus-finds-mantle .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #81c784 0%, #66bb6a 100%); border-radius: 30% 70% 0 0 / 70% 60% 0 0; }
.scn-pyramus-finds-mantle .grass  { position:absolute; bottom:18%; left:10%; width:80%; height:10px; background: repeating-linear-gradient(90deg, #388e3c, #388e3c 8px, transparent 8px, transparent 16px); transform: rotate(-2deg); animation: pfm-grass 5s ease-in-out infinite alternate; }

@keyframes pfm-sky   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pfm-moon  { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 15px rgba(255,224,130,.4) } 50% { transform: scale(1.04) translateY(-3px); box-shadow: 0 0 60px 25px rgba(255,224,130,.6) } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 15px rgba(255,224,130,.4) } }
@keyframes pfm-beam { 0% { opacity:.3; transform: rotate(-5deg) } 50% { opacity:.6; transform: rotate(5deg) } 100% { opacity:.4; transform: rotate(-5deg) } }
@keyframes pfm-pyramus { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pfm-mantle { 0% { transform: translateY(0) rotate(-5deg) scaleY(1) } 50% { transform: translateY(-4px) rotate(5deg) scaleY(1.1) } 100% { transform: translateY(0) rotate(-5deg) scaleY(1) } }
@keyframes pfm-grass { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

.scn-lovers-challenge-each-other {
  background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 40%, #2a2a5e 100%), 
              radial-gradient(ellipse at 50% 30%, #3a3a7e 0%, transparent 70%);
}
.scn-lovers-challenge-each-other .moon {
  position: absolute; top: 12%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,176,192,0.4);
  animation: lce-moon 8s ease-in-out infinite alternate;
}
.scn-lovers-challenge-each-other .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 60%, transparent 100%);
  animation: lce-sky 12s ease-in-out infinite alternate;
}
.scn-lovers-challenge-each-other .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: lce-ground 20s ease-in-out infinite;
}
.scn-lovers-challenge-each-other .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #151530 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lce-figure-left 3s ease-in-out infinite;
}
.scn-lovers-challenge-each-other .figure-right {
  position: absolute; bottom: 30%; right: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #151530 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lce-figure-right 3s ease-in-out infinite 1s;
}
.scn-lovers-challenge-each-other .shadow {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: lce-shadow 3s ease-in-out infinite;
}
.scn-lovers-challenge-each-other .spark {
  position: absolute; bottom: 50%; left: 48%; width: 4px; height: 4px;
  background: #f0e8c0;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #f0e8c0, 0 0 20px 4px rgba(240,232,192,0.3);
  animation: lce-spark 1.5s ease-in-out infinite alternate;
}
@keyframes lce-moon {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(0.95); opacity: 1; }
  100% { transform: translateX(-50%) scale(1.02); opacity: 0.85; }
}
@keyframes lce-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lce-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes lce-figure-left {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(0deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-5px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes lce-figure-right {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-5px) rotate(0deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(5px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes lce-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
}
@keyframes lce-spark {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

.scn-hermia-fight-helena {
  background: linear-gradient(180deg, #050520 0%, #101030 40%, #202040 100%),
              radial-gradient(ellipse at 50% 20%, #25256a 0%, transparent 80%);
}
.scn-hermia-fight-helena .bg-deep {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #0a0a2a 0%, #151540 60%, transparent 100%);
  animation: hfh-deep 15s ease-in-out infinite alternate;
}
.scn-hermia-fight-helena .bg-mid {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.5);
}
.scn-hermia-fight-helena .figure-anger {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfh-anger 2s ease-in-out infinite;
}
.scn-hermia-fight-helena .figure-fear {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfh-fear 2s ease-in-out infinite 0.5s;
}
.scn-hermia-fight-helena .arm-raise {
  position: absolute; bottom: 48%; left: 40%; width: 4px; height: 24px;
  background: #0a0a1a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: hfh-arm 1s ease-in-out infinite alternate;
}
.scn-hermia-fight-helena .tree {
  position: absolute; bottom: 20%; left: 20%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(5deg);
  animation: hfh-tree 12s ease-in-out infinite alternate;
}
.scn-hermia-fight-helena .fog {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(20,20,50,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: hfh-fog 8s ease-in-out infinite alternate;
}
@keyframes hfh-deep {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hfh-anger {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(5deg); }
  75% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes hfh-fear {
  0% { transform: translateX(0) rotate(3deg); }
  25% { transform: translateX(-5px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(3deg); }
}
@keyframes hfh-arm {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(20deg); }
}
@keyframes hfh-tree {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(0.98); }
  100% { transform: rotate(7deg) scaleY(1.02); }
}
@keyframes hfh-fog {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(10px); }
  100% { opacity: 0.2; transform: translateX(-10px); }
}

.scn-height-insults {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%),
              radial-gradient(ellipse at 50% 15%, #3a3a7e 0%, transparent 80%);
}
.scn-height-insults .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #0b0b2f 0%, #1a1a4f 60%, transparent 100%);
  animation: hii-sky 10s ease-in-out infinite alternate;
}
.scn-height-insults .stars {
  position: absolute; top: 8%; left: 20%; width: 3px; height: 3px;
  background: #c0c0e0;
  border-radius: 50%;
  box-shadow: 50px 20px 0 #c0c0e0, -30px 40px 0 #b0b0d0, 80px 70px 0 #d0d0f0;
  animation: hii-stars 20s linear infinite;
}
.scn-height-insults .figure-tall {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hii-tall 4s ease-in-out infinite;
}
.scn-height-insults .figure-short {
  position: absolute; bottom: 30%; right: 25%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hii-short 4s ease-in-out infinite 0.7s;
}
.scn-height-insults .measure-stick {
  position: absolute; bottom: 20%; left: 45%; width: 4px; height: 80px;
  background: #3a3a5a;
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: hii-stick 6s ease-in-out infinite alternate;
}
.scn-height-insults .moon-huge {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(160,176,192,0.5);
  animation: hii-moon 8s ease-in-out infinite alternate;
}
.scn-height-insults .cloud-left {
  position: absolute; top: 15%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: hii-cloud-l 30s linear infinite;
}
.scn-height-insults .cloud-right {
  position: absolute; top: 25%; right: 5%; width: 55px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.03) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hii-cloud-r 40s linear infinite reverse;
}
@keyframes hii-sky {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes hii-stars {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes hii-tall {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(8px) rotate(2deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(-8px) rotate(-2deg); }
  80% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hii-short {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(-10px) rotate(-3deg) scaleY(0.95); }
  60% { transform: translateX(0) rotate(0deg) scaleY(1); }
  100% { transform: translateX(5px) rotate(2deg) scaleY(1.02); }
}
@keyframes hii-stick {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(1deg); }
}
@keyframes hii-moon {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(0.96); opacity: 1; }
  100% { transform: scale(1.02); opacity: 0.85; }
}
@keyframes hii-cloud-l {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(150vw); }
}
@keyframes hii-cloud-r {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-hermia-threatens-attack {
  background: linear-gradient(180deg, #050520 0%, #101030 40%, #1a1a3a 100%),
              radial-gradient(ellipse at 50% 25%, #202055 0%, transparent 80%);
}
.scn-hermia-threatens-attack .bg-night {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #080828 0%, #12123a 60%, transparent 100%);
  animation: hta-bg 12s ease-in-out infinite alternate;
}
.scn-hermia-threatens-attack .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a1a0a 0%, #050f05 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-hermia-threatens-attack .figure-attacker {
  position: absolute; bottom: 28%; left: 32%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #151535 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hta-attack 2s ease-in-out infinite;
}
.scn-hermia-threatens-attack .figure-retreat {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #151535 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hta-retreat 2.5s ease-in-out infinite 0.3s;
}
.scn-hermia-threatens-attack .hand-out {
  position: absolute; bottom: 45%; left: 40%; width: 6px; height: 18px;
  background: #0a0a1a;
  border-radius: 30% 70% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: hta-hand 1s ease-in-out infinite alternate;
}
.scn-hermia-threatens-attack .branch {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(8deg);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: hta-branch 15s ease-in-out infinite alternate;
}
.scn-hermia-threatens-attack .particle {
  position: absolute; bottom: 35%; left: 35%; width: 3px; height: 3px;
  background: #c0c0e0;
  border-radius: 50%;
  box-shadow: 0 0 4px #c0c0e0;
  animation: hta-particle 2s ease-in-out infinite alternate;
}
.scn-hermia-threatens-attack .particle-delayed {
  position: absolute; bottom: 35%; left: 40%; width: 3px; height: 3px;
  background: #c0c0e0;
  border-radius: 50%;
  box-shadow: 0 0 4px #c0c0e0;
  animation: hta-particle 2s ease-in-out infinite alternate 1s;
}
@keyframes hta-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hta-attack {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(10px) rotate(0deg); }
  50% { transform: translateX(0) rotate(3deg); }
  75% { transform: translateX(-5px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes hta-retreat {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-8px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes hta-hand {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(-40deg); }
}
@keyframes hta-branch {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(10deg); }
}
@keyframes hta-particle {
  0% { transform: translate(0,0); opacity: 0.3; }
  100% { transform: translate(-15px, -20px); opacity: 0.8; }
}

/* theseus-hippolyta-nuptial */
.scn-theseus-hippolyta-nuptial {
  background: linear-gradient(180deg, #f9e4c8 0%, #e6c6a0 30%, #d4b080 100%), radial-gradient(ellipse at 30% 20%, #ffeecc 0%, transparent 50%);
}
.scn-theseus-hippolyta-nuptial .thn-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #eaceb0 0%, #c89f70 100%); opacity: 0.6; animation: thn-bg 20s ease-in-out infinite;
}
.scn-theseus-hippolyta-nuptial .thn-moon {
  position: absolute; top: 8%; right: 12%; width: 40px; height: 40px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #fffbe6 0%, #f5e6c0 70%, #c8a880 100%); box-shadow: 0 0 40px 15px rgba(255,235,180,0.5); animation: thn-moon 15s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-nuptial .thn-curtain-l {
  position: absolute; top: 0; left: 0; width: 18%; height: 100%; background: linear-gradient(90deg, #aa7755 0%, #885533 40%, #663322 100%); border-radius: 0 30% 30% 0; transform-origin: left center; animation: thn-curtain 10s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-nuptial .thn-curtain-r {
  position: absolute; top: 0; right: 0; width: 18%; height: 100%; background: linear-gradient(270deg, #aa7755 0%, #885533 40%, #663322 100%); border-radius: 30% 0 0 30%; transform-origin: right center; animation: thn-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-theseus-hippolyta-nuptial .thn-throne {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 100px; background: linear-gradient(180deg, #8b5e3c 0%, #5a3a22 100%); border-radius: 15% 15% 8% 8%; box-shadow: 0 10px 20px rgba(0,0,0,0.4); animation: thn-throne 8s ease-in-out infinite;
}
.scn-theseus-hippolyta-nuptial .thn-hippolyta {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 70px; background: linear-gradient(180deg, #e0c0a0 0%, #b08868 50%, #806048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thn-figure 6s ease-in-out infinite;
}
.scn-theseus-hippolyta-nuptial .thn-lightbeam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%; background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, rgba(255,240,200,0.05) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: thn-beam 12s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-nuptial .thn-column {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 120px; background: linear-gradient(90deg, #d4b080 0%, #f0ded0 40%, #d4b080 100%); border-radius: 5px; box-shadow: inset 0 0 10px rgba(0,0,0,0.2); animation: thn-pillar 20s ease-in-out infinite;
}
.scn-theseus-hippolyta-nuptial .thn-garland {
  position: absolute; top: 12%; left: 20%; width: 60%; height: 20px; background: repeating-linear-gradient(90deg, #7aac5a 0px, #7aac5a 10px, #b8d08a 10px, #b8d08a 20px); border-radius: 60% 60% 0 0; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2)); animation: thn-garland 25s linear infinite;
}
@keyframes thn-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes thn-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes thn-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes thn-throne { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes thn-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes thn-beam { 0% { opacity: 0.6; transform: skewX(-5deg); } 50% { opacity: 1; transform: skewX(0deg); } 100% { opacity: 0.6; transform: skewX(5deg); } }
@keyframes thn-pillar { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(1); } }
@keyframes thn-garland { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }

/* theseus-gather-mirth */
.scn-theseus-gather-mirth {
  background: linear-gradient(180deg, #f7e9c0 0%, #f0d8a0 40%, #e0c080 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 60%);
}
.scn-theseus-gather-mirth .gth-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 40%, #fce4b0 0%, #e8c890 70%); animation: gth-bg 20s ease-in-out infinite;
}
.scn-theseus-gather-mirth .gth-stage {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 45%; background: linear-gradient(180deg, #d4a87a 0%, #bf8f60 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,0.3); animation: gth-stage 12s ease-in-out infinite;
}
.scn-theseus-gather-mirth .gth-dancer1 {
  position: absolute; bottom: 32%; left: 35%; width: 24px; height: 60px; background: linear-gradient(180deg, #6ba0c8 0%, #4070a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gth-dance1 3s ease-in-out infinite;
}
.scn-theseus-gather-mirth .gth-dancer2 {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 60px; background: linear-gradient(180deg, #dbb07a 0%, #b88850 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gth-dance2 3.5s ease-in-out infinite;
}
.scn-theseus-gather-mirth .gth-confetti1 {
  position: absolute; top: 15%; left: 30%; width: 8px; height: 8px; background: #f08060; border-radius: 50%; animation: gth-confetti 5s linear infinite;
}
.scn-theseus-gather-mirth .gth-confetti2 {
  position: absolute; top: 10%; left: 55%; width: 6px; height: 10px; background: #60c080; border-radius: 2px; animation: gth-confetti 6s linear infinite 1s;
}
.scn-theseus-gather-mirth .gth-confetti3 {
  position: absolute; top: 20%; left: 45%; width: 12px; height: 6px; background: #c0a060; border-radius: 2px; animation: gth-confetti 7s linear infinite 2s;
}
.scn-theseus-gather-mirth .gth-musician {
  position: absolute; bottom: 28%; left: 22%; width: 20px; height: 50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gth-musician 4s ease-in-out infinite;
}
@keyframes gth-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes gth-stage { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes gth-dance1 { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(5deg) translateX(10px); } 50% { transform: rotate(-5deg) translateX(20px); } 75% { transform: rotate(10deg) translateX(10px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes gth-dance2 { 0% { transform: rotate(10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-10px); } 50% { transform: rotate(5deg) translateX(-20px); } 75% { transform: rotate(-10deg) translateX(-10px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes gth-confetti { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(100px) rotate(180deg); opacity: 0.8; } 100% { transform: translateY(200px) rotate(360deg); opacity: 0; } }
@keyframes gth-musician { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

/* egeus-complaint-hermia */
.scn-egeus-complaint-hermia {
  background: linear-gradient(180deg, #d9c8b0 0%, #b8a080 40%, #907050 100%), radial-gradient(ellipse at 60% 30%, #eed8c0 0%, transparent 70%);
}
.scn-egeus-complaint-hermia .ech-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8b090 0%, #a08868 100%); opacity: 0.5; animation: ech-bg 15s ease-in-out infinite;
}
.scn-egeus-complaint-hermia .ech-pillar-l {
  position: absolute; bottom: 0; left: 5%; width: 24px; height: 85%; background: linear-gradient(90deg, #b09878 0%, #d0bea0 30%, #b09878 100%); border-radius: 6px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: ech-pillar 20s ease-in-out infinite;
}
.scn-egeus-complaint-hermia .ech-pillar-r {
  position: absolute; bottom: 0; right: 5%; width: 24px; height: 85%; background: linear-gradient(270deg, #b09878 0%, #d0bea0 30%, #b09878 100%); border-radius: 6px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: ech-pillar 20s ease-in-out infinite reverse;
}
.scn-egeus-complaint-hermia .ech-egeus {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 80px; background: linear-gradient(180deg, #503820 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ech-egeus 5s ease-in-out infinite;
}
.scn-egeus-complaint-hermia .ech-hermia {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 60px; background: linear-gradient(180deg, #e0c0a0 0%, #b08868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ech-hermia 6s ease-in-out infinite;
}
.scn-egeus-complaint-hermia .ech-demetrius {
  position: absolute; bottom: 22%; left: 58%; width: 28px; height: 75px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ech-demetrius 7s ease-in-out infinite;
}
.scn-egeus-complaint-hermia .ech-shadow {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: ech-shadow 8s ease-in-out infinite;
}
@keyframes ech-bg { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes ech-pillar { 0% { filter: brightness(1); } 50% { filter: brightness(0.8); } 100% { filter: brightness(1); } }
@keyframes ech-egeus { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ech-hermia { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ech-demetrius { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes ech-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* egeus-accuses-love-tokens */
.scn-egeus-accuses-love-tokens {
  background: linear-gradient(180deg, #c8b8a0 0%, #a08870 40%, #806050 100%), radial-gradient(ellipse at 40% 30%, #dec8b0 0%, transparent 70%);
}
.scn-egeus-accuses-love-tokens .elt-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b8a088 0%, #988068 100%); opacity: 0.6; animation: elt-bg 18s ease-in-out infinite;
}
.scn-egeus-accuses-love-tokens .elt-table {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 15%; background: linear-gradient(180deg, #b09a80 0%, #8a7058 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: elt-table 10s ease-in-out infinite;
}
.scn-egeus-accuses-love-tokens .elt-bracelet {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 14px; border-radius: 50%; background: radial-gradient(circle, #d4a060 0%, #a08050 60%); box-shadow: 0 0 8px 2px rgba(200,160,80,0.5); animation: elt-token 4s ease-in-out infinite;
}
.scn-egeus-accuses-love-tokens .elt-ring {
  position: absolute; bottom: 23%; left: 42%; width: 8px; height: 8px; border-radius: 50%; background: radial-gradient(circle, #e0c080 0%, #c0a060 60%); box-shadow: 0 0 6px 2px rgba(200,180,80,0.4); animation: elt-token 5s ease-in-out infinite 0.5s;
}
.scn-egeus-accuses-love-tokens .elt-nosegay {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 18px; background: radial-gradient(ellipse at 50% 30%, #b8d0a0 0%, #80a060 80%); border-radius: 60% 60% 20% 20%; box-shadow: 0 0 6px 2px rgba(128,160,96,0.4); animation: elt-token 6s ease-in-out infinite 1s;
}
.scn-egeus-accuses-love-tokens .elt-hand {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 40px; background: linear-gradient(180deg, #c89878 0%, #a07050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: elt-hand 7s ease-in-out infinite;
}
.scn-egeus-accuses-love-tokens .elt-egeus {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 80px; background: linear-gradient(180deg, #503820 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: elt-egeus 5s ease-in-out infinite;
}
@keyframes elt-bg { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes elt-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes elt-token { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(20deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.8; } }
@keyframes elt-hand { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(5px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-5deg) translateX(-5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes elt-egeus { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: puck-clears-house */
.scn-puck-clears-house {
  background: linear-gradient(180deg, #0a0a14 0%, #1b1a2a 30%, #2a2a3a 60%, #1a1510 100%),
              radial-gradient(ellipse at 80% 20%, #1f2a3a 0%, transparent 70%);
}
.scn-puck-clears-house .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1c1b28 0%, #2a2635 50%, #1c1b28 100%);
  animation: pch-wall 12s ease-in-out infinite alternate;
}
.scn-puck-clears-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2c2818 0%, #1a1710 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-puck-clears-house .bed {
  position: absolute; bottom: 18%; left: 10%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pch-bed 8s ease-in-out infinite;
}
.scn-puck-clears-house .figure-sleeping {
  position: absolute; bottom: 22%; left: 14%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pch-snore 3s ease-in-out infinite;
}
.scn-puck-clears-house .fireplace {
  position: absolute; bottom: 28%; right: 15%; width: 70px; height: 80px;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a2a10 50%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px #1a0a00;
  animation: pch-fireplace 15s ease-in-out infinite alternate;
}
.scn-puck-clears-house .fire-glow {
  position: absolute; bottom: 38%; right: 20%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, #ff8c40 0%, #ff6020 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 12px #ff7018, 0 0 80px 24px rgba(255,96,16,.3);
  animation: pch-fireglow 2s ease-in-out infinite alternate;
}
.scn-puck-clears-house .window {
  position: absolute; top: 12%; right: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1218 100%);
  border-radius: 4px; box-shadow: inset 0 0 12px #2a3a4a;
  animation: pch-window 20s ease-in-out infinite alternate;
}
.scn-puck-clears-house .owl-perch {
  position: absolute; top: 10%; right: 32%; width: 10px; height: 14px;
  background: #2a3a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg); animation: pch-owl 6s ease-in-out infinite;
}
.scn-puck-clears-house .moonlight {
  position: absolute; top: 5%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(180,200,220,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: pch-moonlight 30s linear infinite alternate;
}
@keyframes pch-wall { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes pch-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes pch-snore { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pch-fireplace { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pch-fireglow { 0% { opacity: .6; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.95) } }
@keyframes pch-window { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .5 } }
@keyframes pch-owl { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes pch-moonlight { 0% { transform: translateX(-10px) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(-5px) scale(.95) } }

/* Scene: oberon-titania-bless-house */
.scn-oberon-titania-bless-house {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1628 40%, #2a2230 80%, #1e1a14 100%),
              radial-gradient(ellipse at 30% 50%, #2a3a3a 0%, transparent 60%);
}
.scn-oberon-titania-bless-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2418 0%, #1a1610 100%);
}
.scn-oberon-titania-bless-house .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1c1830 0%, #2a2440 50%, #1c1830 100%);
  animation: otbh-wall 15s ease-in-out infinite alternate;
}
.scn-oberon-titania-bless-house .fireplace-low {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a0a 0%, #4a2a10 50%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 15px #1a0a00;
  animation: otbh-fire 12s ease-in-out infinite alternate;
}
.scn-oberon-titania-bless-house .fairy-left {
  position: absolute; bottom: 20%; left: 20%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #6a8a9a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: otbh-dance-l 4s ease-in-out infinite;
}
.scn-oberon-titania-bless-house .fairy-right {
  position: absolute; bottom: 20%; right: 20%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #8a7a5a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: otbh-dance-r 4.2s ease-in-out infinite;
}
.scn-oberon-titania-bless-house .fairy-center {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #aabb88 0%, #4a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: otbh-dance-c 4.5s ease-in-out infinite;
}
.scn-oberon-titania-bless-house .sparkle-1 {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 4px;
  background: radial-gradient(circle, #d0e8a0 0%, transparent 80%);
  border-radius: 50%; filter: blur(1px);
  animation: otbh-sparkle 3s ease-in-out infinite;
}
.scn-oberon-titania-bless-house .sparkle-2 {
  position: absolute; bottom: 45%; right: 40%; width: 5px; height: 5px;
  background: radial-gradient(circle, #a0d0e8 0%, transparent 80%);
  border-radius: 50%; filter: blur(1px);
  animation: otbh-sparkle 3.5s ease-in-out infinite -1s;
}
.scn-oberon-titania-bless-house .bless-light {
  position: absolute; top: 15%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,150,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: otbh-light 20s ease-in-out infinite alternate;
}
@keyframes otbh-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes otbh-fire { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes otbh-dance-l { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-10px) rotate(2deg) translateY(-8px) } }
@keyframes otbh-dance-r { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(10px) rotate(-2deg) translateY(-6px) } }
@keyframes otbh-dance-c { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-45%) rotate(-3deg) translateY(-10px) } 75% { transform: translateX(-55%) rotate(3deg) translateY(-10px) } }
@keyframes otbh-sparkle { 0% { opacity: 0; transform: scale(.5) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: 0; transform: scale(.5) } }
@keyframes otbh-light { 0% { opacity: .2; transform: scale(.8) } 50% { opacity: .5; transform: scale(1.2) } 100% { opacity: .3; transform: scale(1) } }

/* Scene: fairies-bless-bed-chambers */
.scn-fairies-bless-bed-chambers {
  background: linear-gradient(180deg, #0a0a18 0%, #14122a 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 60%);
}
.scn-fairies-bless-bed-chambers .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1a12 0%, #12100a 100%);
}
.scn-fairies-bless-bed-chambers .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #14122a 0%, #1a183a 50%, #14122a 100%);
  animation: fbbc-wall 18s ease-in-out infinite alternate;
}
.scn-fairies-bless-bed-chambers .bed-chamber {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10px; box-shadow: 0 4px 15px rgba(0,0,0,.6);
  animation: fbbc-bed 10s ease-in-out infinite;
}
.scn-fairies-bless-bed-chambers .figure-resting {
  position: absolute; bottom: 22%; left: 52%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #3a2820 0%, #1c1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: fbbc-rest 4s ease-in-out infinite;
}
.scn-fairies-bless-bed-chambers .fairy-chamber-1 {
  position: absolute; bottom: 35%; left: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #7aa8b8 0%, #2a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fbbc-fly1 6s ease-in-out infinite;
}
.scn-fairies-bless-bed-chambers .fairy-chamber-2 {
  position: absolute; bottom: 38%; right: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #b8a87a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fbbc-fly2 6.5s ease-in-out infinite -2s;
}
.scn-fairies-bless-bed-chambers .dew-drop {
  position: absolute; top: 20%; left: 40%; width: 6px; height: 8px;
  background: radial-gradient(ellipse, #c0e0f0 0%, transparent 70%);
  border-radius: 50%; filter: blur(1px);
  animation: fbbc-dew 8s ease-in-out infinite alternate;
}
.scn-fairies-bless-bed-chambers .bless-aura {
  position: absolute; top: 15%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(140,200,220,.2) 0%, transparent 70%);
  border-radius: 50%; filter: blur(12px);
  animation: fbbc-aura 15s ease-in-out infinite alternate;
}
.scn-fairies-bless-bed-chambers .peace-symbol {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c0d8a0 0%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(192,216,160,.3);
  animation: fbbc-peace 5s ease-in-out infinite;
}
@keyframes fbbc-wall { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes fbbc-bed { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes fbbc-rest { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } }
@keyframes fbbc-fly1 { 0%,100% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(-8px, -12px) rotate(3deg) } }
@keyframes fbbc-fly2 { 0%,100% { transform: translate(0,0) rotate(2deg) } 50% { transform: translate(8px, -10px) rotate(-3deg) } }
@keyframes fbbc-dew { 0% { opacity: .3; transform: translateY(0) } 50% { opacity: .8; transform: translateY(-5px) } 100% { opacity: .4; transform: translateY(0) } }
@keyframes fbbc-aura { 0% { transform: scale(.9); opacity: .2 } 50% { transform: scale(1.2); opacity: .5 } 100% { transform: scale(1); opacity: .3 } }
@keyframes fbbc-peace { 0%,100% { transform: translateX(-50%) scale(.8); opacity: .4 } 50% { transform: translateX(-50%) scale(1.2); opacity: .8 } }

/* Scene: puck-epilogue */
.scn-puck-epilogue {
  background: linear-gradient(180deg, #08080c 0%, #141220 50%, #1a1828 100%),
              radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-puck-epilogue .stage-backdrop {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 50%);
  animation: pe-backdrop 30s ease-in-out infinite alternate;
}
.scn-puck-epilogue .puck-silhouette {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,.5);
  animation: pe-puck 8s ease-in-out infinite;
}
.scn-puck-epilogue .puck-cap {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 12px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  animation: pe-cap 4s ease-in-out infinite alternate;
}
.scn-puck-epilogue .puck-hand {
  position: absolute; bottom: 15%; left: 40%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom; animation: pe-hand 3s ease-in-out infinite;
}
.scn-puck-epilogue .dream-bubble-1 {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(180,200,220,.15) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: pe-bubble1 20s ease-in-out infinite alternate;
}
.scn-puck-epilogue .dream-bubble-2 {
  position: absolute; top: 30%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,180,.1) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: pe-bubble2 25s ease-in-out infinite alternate -5s;
}
.scn-puck-epilogue .dream-bubble-3 {
  position: absolute; top: 20%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(220,200,180,.12) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: pe-bubble3 15s ease-in-out infinite alternate -10s;
}
.scn-puck-epilogue .shadow-vision {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(90deg, rgba(30,30,40,.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: pe-vision 12s ease-in-out infinite;
}
@keyframes pe-backdrop { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }
@keyframes pe-puck { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-2deg) translateY(-2px) } 75% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } }
@keyframes pe-cap { 0% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes pe-hand { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } }
@keyframes pe-bubble1 { 0% { transform: translate(0,0) scale(1); opacity: .1 } 50% { transform: translate(10px,-10px) scale(1.2); opacity: .3 } 100% { transform: translate(-5px,5px) scale(.9); opacity: .2 } }
@keyframes pe-bubble2 { 0% { transform: translate(0,0) scale(1); opacity: .1 } 50% { transform: translate(-8px,8px) scale(1.1); opacity: .25 } 100% { transform: translate(4px,-4px) scale(.95); opacity: .15 } }
@keyframes pe-bubble3 { 0% { transform: translate(0,0) scale(1); opacity: .15 } 50% { transform: translate(6px,-6px) scale(1.15); opacity: .3 } 100% { transform: translate(-3px,3px) scale(.9); opacity: .2 } }
@keyframes pe-vision { 0%,100% { transform: scaleX(1); opacity: .2 } 50% { transform: scaleX(1.5); opacity: .4 } }

/* Scene: puck-mistakes-lysander */
.scn-puck-mistakes-lysander {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 50%, #1a2a3a 100%), radial-gradient(ellipse at 70% 20%, #3b5e8a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-puck-mistakes-lysander .moon {
  position: absolute;
  top: 8%;
  right: 18%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #e2e8f0 30%, #cbd5e1 60%, #94a3b8 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(203,213,225,0.3);
  animation: pm-moon 12s ease-in-out infinite alternate;
}
.scn-puck-mistakes-lysander .sky-stars {
  position: absolute;
  inset: 0 0 60% 0;
  background: radial-gradient(1px 1px at 20% 10%, #fff 0%, transparent 100%) repeat, radial-gradient(1px 1px at 60% 25%, #fff 0%, transparent 100%) repeat;
  background-size: 60px 60px, 80px 80px;
  opacity: 0.5;
  animation: pm-stars 20s linear infinite;
}
.scn-puck-mistakes-lysander .tree-left {
  position: absolute;
  bottom: 15%;
  left: 5%;
  width: 40px;
  height: 200px;
  background: linear-gradient(180deg, #1e3a2f 0%, #0f1f18 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform: skewX(-5deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: pm-tree 9s ease-in-out infinite alternate;
}
.scn-puck-mistakes-lysander .tree-right {
  position: absolute;
  bottom: 10%;
  right: 10%;
  width: 50px;
  height: 220px;
  background: linear-gradient(180deg, #2a4a3a 0%, #142a1e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: skewX(8deg);
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  animation: pm-tree 11s ease-in-out infinite alternate-reverse;
}
.scn-puck-mistakes-lysander .bush-back {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 120px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #1a3a2a 0%, #0f1f18 80%);
  border-radius: 50% 50% 30% 30% / 100% 100% 40% 40%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: pm-bush 6s ease-in-out infinite alternate;
}
.scn-puck-mistakes-lysander .couple-sleeping {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 80px;
  height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: pm-couple 4s ease-in-out infinite;
}
.scn-puck-mistakes-lysander .puck-peering {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform: rotate(-10deg);
  animation: pm-puck 3s ease-in-out infinite alternate;
}
.scn-puck-mistakes-lysander .glow-1, .scn-puck-mistakes-lysander .glow-2 {
  position: absolute;
  width: 8px;
  height: 8px;
  background: #fde68a;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #fde68a;
  animation: pm-firefly 4s ease-in-out infinite;
}
.scn-puck-mistakes-lysander .glow-1 {
  top: 50%;
  left: 20%;
  animation-delay: 0s;
}
.scn-puck-mistakes-lysander .glow-2 {
  top: 40%;
  right: 30%;
  animation-delay: -2s;
}
@keyframes pm-moon {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  100% { transform: translateY(-8px) scale(1.02); opacity: 1; }
}
@keyframes pm-stars {
  0% { background-position: 0 0, 0 0; }
  100% { background-position: 60px 60px, 80px 80px; }
}
@keyframes pm-tree {
  0% { transform: skewX(-5deg) rotate(0deg); }
  100% { transform: skewX(-5deg) rotate(2deg); }
}
@keyframes pm-bush {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.95); }
}
@keyframes pm-couple {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pm-puck {
  0% { transform: rotate(-10deg) translateX(0); }
  100% { transform: rotate(-5deg) translateX(5px); }
}
@keyframes pm-firefly {
  0% { opacity: 0.3; transform: translateY(0) scale(0.8); }
  50% { opacity: 1; transform: translateY(-10px) scale(1.2); }
  100% { opacity: 0.5; transform: translateY(10px) scale(0.9); }
}

/* Scene: demetrius-helena-chase */
.scn-demetrius-helena-chase {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0f0f1f 100%), radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-demetrius-helena-chase .moon-dark {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #94a3b8 30%, #475569 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(71,85,105,0.3);
  animation: dh-moon 15s ease-in-out infinite alternate;
}
.scn-demetrius-helena-chase .woods-bg {
  position: absolute;
  inset: 0 0 40% 0;
  background: repeating-linear-gradient(90deg, #0f1a1a 0%, #0f1a1a 30px, transparent 30px, transparent 50px);
  background-size: 100% 100%;
  opacity: 0.4;
  animation: dh-woods 8s linear infinite;
}
.scn-demetrius-helena-chase .tree-trunk-left {
  position: absolute;
  bottom: 10%;
  left: 8%;
  width: 30px;
  height: 250px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1414 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: skewX(-3deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.6);
  animation: dh-trunk 6s ease-in-out infinite alternate;
}
.scn-demetrius-helena-chase .tree-trunk-right {
  position: absolute;
  bottom: 5%;
  right: 12%;
  width: 35px;
  height: 280px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: skewX(4deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.6);
  animation: dh-trunk 7s ease-in-out infinite alternate-reverse;
}
.scn-demetrius-helena-chase .helena-run {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #3a5068 0%, #2a3a50 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: dh-run 1.5s ease-in-out infinite;
}
.scn-demetrius-helena-chase .demetrius-chase {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 30px;
  height: 65px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(25deg);
  animation: dh-chase 1.8s ease-in-out infinite;
}
.scn-demetrius-helena-chase .shadow-stretch {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 50px;
  height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: dh-shadow 2s ease-in-out infinite;
}
.scn-demetrius-helena-chase .branch-shake {
  position: absolute;
  bottom: 40%;
  left: 70%;
  width: 12px;
  height: 40px;
  background: none;
  border-left: 3px solid #1a2a2a;
  transform: rotate(30deg);
  animation: dh-branch 0.5s ease-in-out infinite alternate;
}
@keyframes dh-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  100% { transform: translateX(-5px) scale(0.95); opacity: 0.5; }
}
@keyframes dh-woods {
  0% { background-position: 0 0; }
  100% { background-position: 50px 0; }
}
@keyframes dh-trunk {
  0% { transform: skewX(-3deg) rotate(0deg); }
  100% { transform: skewX(-3deg) rotate(1deg); }
}
@keyframes dh-run {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(8px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes dh-chase {
  0% { transform: rotate(25deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(10px); }
  100% { transform: rotate(25deg) translateX(0); }
}
@keyframes dh-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.5); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes dh-branch {
  0% { transform: rotate(30deg); }
  100% { transform: rotate(35deg); }
}

/* Scene: helena-finds-lysander-awake */
.scn-helena-finds-lysander-awake {
  background: linear-gradient(180deg, #0f1a2e 0%, #1a2a3e 40%, #0f172a 100%), radial-gradient(ellipse at 50% 30%, #3b5e8a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-helena-finds-lysander-awake .moon-pale {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle, #cbd5e1 30%, #94a3b8 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(148,163,184,0.2);
  animation: ha-moon 20s ease-in-out infinite alternate;
}
.scn-helena-finds-lysander-awake .ground-forest {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #0a1a1a 0%, #0f1f1f 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
  animation: ha-ground 10s ease-in-out infinite alternate;
}
.scn-helena-finds-lysander-awake .lysander-sleep {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 40px;
  height: 25px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ha-lysander 4s ease-in-out infinite;
}
.scn-helena-finds-lysander-awake .helena-kneel {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 30px;
  height: 45px;
  background: linear-gradient(180deg, #3a4a5e 0%, #2a3a4e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: ha-helena 3s ease-in-out infinite alternate;
}
.scn-helena-finds-lysander-awake .glow-wake {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #fde68a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(253,230,138,0.4);
  animation: ha-glow 2s ease-in-out infinite alternate;
}
.scn-helena-finds-lysander-awake .tree-trunk-back {
  position: absolute;
  bottom: 10%;
  right: 15%;
  width: 40px;
  height: 200px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: skewX(5deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.6);
  animation: ha-tree 8s ease-in-out infinite alternate;
}
.scn-helena-finds-lysander-awake .bush-close {
  position: absolute;
  bottom: 15%;
  left: 5%;
  width: 80px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #1a3a2a 0%, #0f1f18 80%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  animation: ha-bush 5s ease-in-out infinite alternate;
}
@keyframes ha-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  100% { transform: translateX(10px) scale(1.03); opacity: 0.9; }
}
@keyframes ha-ground {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes ha-lysander {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes ha-helena {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-3px); }
}
@keyframes ha-glow {
  0% { box-shadow: 0 0 20px 5px rgba(253,230,138,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 15px rgba(253,230,138,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(253,230,138,0.4); opacity: 0.8; }
}
@keyframes ha-tree {
  0% { transform: skewX(5deg) rotate(0deg); }
  100% { transform: skewX(5deg) rotate(-2deg); }
}
@keyframes ha-bush {
  0% { transform: scaleY(1); opacity: 0.8; }
  100% { transform: scaleY(0.92); opacity: 1; }
}

/* Scene: lysander-rejects-hermia */
.scn-lysander-rejects-hermia {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 60% 30%, #4a3a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-lysander-rejects-hermia .moon-gold {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 75px;
  height: 75px;
  background: radial-gradient(circle, #fde68a 30%, #d97706 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(217,119,6,0.2);
  animation: lr-moon 14s ease-in-out infinite alternate;
}
.scn-lysander-rejects-hermia .clearing-earth {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: lr-earth 8s ease-in-out infinite alternate;
}
.scn-lysander-rejects-hermia .hermia-sad {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #3a4a5e 0%, #2a3a4e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: lr-hermia 4s ease-in-out infinite alternate;
}
.scn-lysander-rejects-hermia .lysander-turn {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: lr-lysander 3s ease-in-out infinite;
}
.scn-lysander-rejects-hermia .flower-left {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 10px;
  height: 15px;
  background: radial-gradient(ellipse, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: lr-flower 6s ease-in-out infinite alternate;
}
.scn-lysander-rejects-hermia .flower-right {
  position: absolute;
  bottom: 32%;
  right: 25%;
  width: 12px;
  height: 18px;
  background: radial-gradient(ellipse, #b87878 0%, #5e1a1d 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: lr-flower 7s ease-in-out infinite alternate-reverse;
}
.scn-lysander-rejects-hermia .glow-aura {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #fde68a 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lr-aura 5s ease-in-out infinite alternate;
}
.scn-lysander-rejects-hermia .drifting-petal {
  position: absolute;
  top: 60%;
  left: 10%;
  width: 8px;
  height: 12px;
  background: #c8553d;
  border-radius: 50% 0 50% 0;
  transform: rotate(45deg);
  animation: lr-petal 12s linear infinite;
}
@keyframes lr-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.8; }
  100% { transform: translateX(5px) scale(1.02); opacity: 1; }
}
@keyframes lr-earth {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-2px) scale(0.98); }
}
@keyframes lr-hermia {
  0% { transform: rotate(-5deg) translateX(0); }
  100% { transform: rotate(-8deg) translateX(-3px); }
}
@keyframes lr-lysander {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(5px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes lr-flower {
  0% { transform: rotate(0deg) scale(1); opacity: 0.7; }
  100% { transform: rotate(10deg) scale(1.1); opacity: 1; }
}
@keyframes lr-aura {
  0% { opacity: 0.3; filter: blur(8px); }
  100% { opacity: 0.7; filter: blur(4px); }
}
@keyframes lr-petal {
  0% { transform: translateX(0) translateY(0) rotate(45deg); }
  25% { transform: translateX(30px) translateY(-20px) rotate(60deg); }
  50% { transform: translateX(60px) translateY(-10px) rotate(30deg); }
  75% { transform: translateX(90px) translateY(-30px) rotate(50deg); }
  100% { transform: translateX(120px) translateY(0) rotate(45deg); }
}

/* Scene 1: oberon-demands-changeling (tense, moonlit) */
.scn-oberon-demands-changeling {
  background: linear-gradient(180deg, #0f1a2e 0%, #1a2a4a 40%, #2a3a5a 100%),
              radial-gradient(ellipse at 60% 20%, #3a5a8a 0%, transparent 60%);
}
.scn-oberon-demands-changeling .moon {
  position: absolute; top: 8%; left: 75%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0e4f0 0%, #a0c4e0 70%); border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(160, 196, 224, 0.5);
  animation: ob-moon-pulse 8s ease-in-out infinite alternate;
}
.scn-oberon-demands-changeling .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0f1a2e 0%, transparent 100%);
  animation: ob-sky-breathe 12s ease-in-out infinite alternate;
}
.scn-oberon-demands-changeling .trees-bg {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  opacity: 0.7;
  animation: ob-trees-sway 15s ease-in-out infinite alternate;
}
.scn-oberon-demands-changeling .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a2a3e 0%, #0f1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ob-fig-left 4s ease-in-out infinite alternate;
}
.scn-oberon-demands-changeling .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 35px; height: 72px;
  background: linear-gradient(180deg, #1a2a3e 0%, #0f1a2a 100%);
  border-radius: 40% 50% 50% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ob-fig-right 4s ease-in-out infinite alternate-reverse;
}
.scn-oberon-demands-changeling .child {
  position: absolute; bottom: 22%; left: 50%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: ob-child-tremble 2.5s ease-in-out infinite;
}
.scn-oberon-demands-changeling .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #0f1a2a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-oberon-demands-changeling .moonbeam {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 55%;
  background: linear-gradient(180deg, rgba(200, 220, 240, 0.8) 0%, transparent 100%);
  transform: translateX(-50%) rotate(-20deg);
  filter: blur(6px);
  animation: ob-beam-flicker 6s ease-in-out infinite alternate;
}
@keyframes ob-moon-pulse { 0% { box-shadow: 0 0 30px 10px rgba(160,196,224,0.4); } 50% { box-shadow: 0 0 50px 20px rgba(160,196,224,0.7); } 100% { box-shadow: 0 0 35px 12px rgba(160,196,224,0.5); } }
@keyframes ob-sky-breathe { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ob-trees-sway { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.98) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ob-fig-left { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes ob-fig-right { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-3px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes ob-child-tremble { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-52%) rotate(-1deg); } 75% { transform: translateX(-47%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ob-beam-flicker { 0% { opacity: 0.3; transform: translateX(-50%) rotate(-20deg) scaleY(1); } 50% { opacity: 0.7; transform: translateX(-50%) rotate(-18deg) scaleY(1.05); } 100% { opacity: 0.4; transform: translateX(-50%) rotate(-22deg) scaleY(0.95); } }

/* Scene 2: titania-refuses-oberon (dark, moonlit) */
.scn-titania-refuses-oberon {
  background: linear-gradient(180deg, #0a0f1a 0%, #151f30 50%, #1a2a3e 100%),
              radial-gradient(ellipse at 30% 10%, #2a3a5a 0%, transparent 70%);
}
.scn-titania-refuses-oberon .moon {
  position: absolute; top: 12%; left: 30%; width: 35px; height: 35px;
  background: radial-gradient(circle, #c8dce8 0%, #8aacd0 70%); border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(138, 172, 208, 0.5);
  animation: ti-moon-glow 10s ease-in-out infinite alternate;
}
.scn-titania-refuses-oberon .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a0f1a 0%, transparent 100%);
  animation: ti-sky-fade 15s ease-in-out infinite alternate;
}
.scn-titania-refuses-oberon .trees-shadow {
  position: absolute; bottom: 25%; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #0f1a2a 0%, #050a12 100%);
  border-radius: 40% 30% 0 0 / 50% 40% 0 0;
  opacity: 0.6;
  animation: ti-trees-sway 20s ease-in-out infinite alternate;
}
.scn-titania-refuses-oberon .figure-holding {
  position: absolute; bottom: 20%; left: 40%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #151f2e 0%, #0a0f1a 100%);
  border-radius: 50% 45% 40% 45% / 60% 55% 40% 45%;
  transform-origin: bottom center;
  animation: ti-figure-hold 6s ease-in-out infinite alternate;
}
.scn-titania-refuses-oberon .child {
  position: absolute; bottom: 24%; left: 42%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ti-child-cradle 4s ease-in-out infinite;
}
.scn-titania-refuses-oberon .willow {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ti-willow-sway 8s ease-in-out infinite alternate;
}
.scn-titania-refuses-oberon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0f1a 0%, #151f2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.7);
}
@keyframes ti-moon-glow { 0% { box-shadow: 0 0 20px 5px rgba(138,172,208,0.3); } 50% { box-shadow: 0 0 35px 12px rgba(138,172,208,0.6); } 100% { box-shadow: 0 0 25px 8px rgba(138,172,208,0.4); } }
@keyframes ti-sky-fade { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ti-trees-sway { 0% { transform: translateX(-2%) scaleY(1); } 50% { transform: translateX(2%) scaleY(0.97); } 100% { transform: translateX(-1%) scaleY(1); } }
@keyframes ti-figure-hold { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes ti-child-cradle { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ti-willow-sway { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.98); } 100% { transform: rotate(-4deg) scaleY(1); } }

/* Scene 3: oberon-plots-revenge (tense, moonlit) */
.scn-oberon-plots-revenge {
  background: linear-gradient(180deg, #0c1420 0%, #1a2a40 50%, #2a3a5a 100%),
              radial-gradient(ellipse at 70% 30%, #3a5a8a 0%, transparent 60%);
}
.scn-oberon-plots-revenge .moon {
  position: absolute; top: 6%; left: 80%; width: 45px; height: 45px;
  background: radial-gradient(circle, #d4e4f0 0%, #a0bcd8 70%); border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(160, 188, 216, 0.5);
  animation: pl-moon-intense 7s ease-in-out infinite alternate;
}
.scn-oberon-plots-revenge .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a1220 0%, #1a2a3e 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: pl-sea-wave 10s ease-in-out infinite alternate;
}
.scn-oberon-plots-revenge .promontory {
  position: absolute; bottom: 25%; left: 15%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #1a2a3e 0%, #0f1a2a 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: pl-promo-breathe 12s ease-in-out infinite alternate;
}
.scn-oberon-plots-revenge .figure-oberon {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a2a3e 0%, #0a0f1a 100%);
  border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-oberon-shift 5s ease-in-out infinite alternate;
}
.scn-oberon-plots-revenge .mermaid {
  position: absolute; bottom: 32%; left: 60%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pl-mermaid-swim 8s ease-in-out infinite alternate;
}
.scn-oberon-plots-revenge .dolphin {
  position: absolute; bottom: 28%; left: 65%; width: 35px; height: 12px;
  background: linear-gradient(90deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 40% 50% 50%;
  transform: rotate(-5deg);
  animation: pl-dolphin-leap 6s ease-in-out infinite alternate;
}
.scn-oberon-plots-revenge .stars {
  position: absolute; top: 5%; left: 10%; width: 3px; height: 3px;
  background: #d0d8e0; border-radius: 50%;
  box-shadow: 20px 15px 0 #d0d8e0, 40px 5px 0 #d0d8e0, 60px 25px 0 #d0d8e0, 80px 10px 0 #d0d8e0;
  animation: pl-stars-twinkle 4s ease-in-out infinite alternate;
}
@keyframes pl-moon-intense { 0% { box-shadow: 0 0 40px 10px rgba(160,188,216,0.4); } 50% { box-shadow: 0 0 60px 25px rgba(160,188,216,0.7); } 100% { box-shadow: 0 0 45px 15px rgba(160,188,216,0.5); } }
@keyframes pl-sea-wave { 0% { transform: translateX(-5%) scaleY(1); } 50% { transform: translateX(5%) scaleY(0.97); } 100% { transform: translateX(-3%) scaleY(1); } }
@keyframes pl-promo-breathe { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes pl-oberon-shift { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(3deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes pl-mermaid-swim { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes pl-dolphin-leap { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-6px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pl-stars-twinkle { 0% { opacity: 0.4; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* Scene 4: item-love-in-idleness-flower (calm, moonlit) */
.scn-item-love-in-idleness-flower {
  background: linear-gradient(180deg, #0a1220 0%, #15202e 50%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 40%, #2a3a5a 0%, transparent 50%);
}
.scn-item-love-in-idleness-flower .bg-blur {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a2a3e 0%, transparent 80%);
  animation: fl-bg-pulse 20s ease-in-out infinite alternate;
}
.scn-item-love-in-idleness-flower .moonbeam {
  position: absolute; top: 0; left: 45%; width: 6px; height: 70%;
  background: linear-gradient(180deg, rgba(200, 220, 240, 0.5) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(8px);
  animation: fl-beam-drift 12s ease-in-out infinite alternate;
}
.scn-item-love-in-idleness-flower .flower-stem {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 3px;
  transform: translateX(-50%);
  animation: fl-stem-sway 6s ease-in-out infinite alternate;
}
.scn-item-love-in-idleness-flower .petal {
  position: absolute; bottom: 65%; left: 50%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0bcd8 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-item-love-in-idleness-flower .petal-1 {
  transform: translateX(-50%) rotate(-30deg);
  animation: fl-petal-1 4s ease-in-out infinite alternate;
}
.scn-item-love-in-idleness-flower .petal-2 {
  transform: translateX(-50%) rotate(30deg);
  animation: fl-petal-2 4.5s ease-in-out infinite alternate-reverse;
}
.scn-item-love-in-idleness-flower .petal-3 {
  transform: translateX(-50%) rotate(0deg);
  animation: fl-petal-3 5s ease-in-out infinite alternate;
}
.scn-item-love-in-idleness-flower .glow-center {
  position: absolute; bottom: 68%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e8f0ff 0%, #a0bcd8 70%); border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(160, 188, 216, 0.6);
  animation: fl-center-glow 3s ease-in-out infinite alternate;
}
@keyframes fl-bg-pulse { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes fl-beam-drift { 0% { transform: rotate(12deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.05); } 100% { transform: rotate(14deg) scaleY(0.95); } }
@keyframes fl-stem-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes fl-petal-1 { 0% { transform: translateX(-50%) rotate(-30deg) scale(1); } 50% { transform: translateX(-50%) rotate(-25deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-32deg) scale(0.95); } }
@keyframes fl-petal-2 { 0% { transform: translateX(-50%) rotate(30deg) scale(1); } 50% { transform: translateX(-50%) rotate(25deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(32deg) scale(0.95); } }
@keyframes fl-petal-3 { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.03); } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.97); } }
@keyframes fl-center-glow { 0% { box-shadow: 0 0 15px 5px rgba(160,188,216,0.4); opacity: 0.7; } 50% { box-shadow: 0 0 30px 12px rgba(160,188,216,0.8); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(160,188,216,0.5); opacity: 0.8; } }

/* Scene: oberon-titania-quarrel (otq) */
.scn-oberon-titania-quarrel {
  background: linear-gradient(180deg, #0b0b1e 0%, #171744 40%, #1f2a4a 100%), radial-gradient(ellipse at 50% 120%, #2a3a5a 0%, transparent 60%);
}
.scn-oberon-titania-quarrel .moon {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d0d4e0 0%, #a0a8b8 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(160,168,184,0.5), 0 0 80px 30px rgba(160,168,184,0.2);
  animation: otq-moon 8s ease-in-out infinite alternate;
}
.scn-oberon-titania-quarrel .clouds {
  position: absolute; top: 12%; left: 10%; right: 10%; height: 30px;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, transparent 100%);
  filter: blur(8px); animation: otq-drift 45s linear infinite;
}
.scn-oberon-titania-quarrel .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.6);
  animation: otq-breathe 12s ease-in-out infinite;
}
.scn-oberon-titania-quarrel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #0d1a12 0%, #050d08 100%);
  border-radius: 20% 30% 0 0 / 40% 60% 0 0;
}
.scn-oberon-titania-quarrel .figure-left {
  position: absolute; bottom: 28%; left: 28%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otq-figure-left 3s ease-in-out infinite alternate;
}
.scn-oberon-titania-quarrel .figure-right {
  position: absolute; bottom: 28%; right: 32%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otq-figure-right 3.5s ease-in-out infinite alternate;
}
.scn-oberon-titania-quarrel .sparks {
  position: absolute; top: 38%; left: 45%; width: 4px; height: 4px;
  background: #d0d4e0; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,200,220,0.8), 0 0 16px 4px rgba(200,200,220,0.4);
  animation: otq-spark 2s ease-in-out infinite;
}
@keyframes otq-moon {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.05) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.95) translateY(3px); opacity: 0.85; }
}
@keyframes otq-drift { 0% { transform: translateX(-20vw); } 100% { transform: translateX(120vw); } }
@keyframes otq-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes otq-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
}
@keyframes otq-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(3deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(2px) translateY(1px) rotate(2deg); }
}
@keyframes otq-spark {
  0% { transform: scale(1) translateY(0); opacity: 1; }
  50% { transform: scale(1.5) translateY(-6px); opacity: 0.6; }
  100% { transform: scale(0.8) translateY(4px); opacity: 0.9; }
}

/* Scene: titania-accuses-oberon-jealousy (taj) */
.scn-titania-accuses-oberon-jealousy {
  background: linear-gradient(180deg, #0c0c24 0%, #101840 40%, #202850 100%), radial-gradient(ellipse at 40% 50%, #1a2a4a 0%, transparent 70%);
}
.scn-titania-accuses-oberon-jealousy .moon-crescent {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 50%, #d0d0e0 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(180,180,200,0.4);
  animation: taj-crescent 10s ease-in-out infinite alternate;
}
.scn-titania-accuses-oberon-jealousy .stars {
  position: absolute; top: 5%; left: 5%; right: 5%; height: 30%;
  background: radial-gradient(circle at 20% 30%, #ffffff 0%, transparent 2%),
              radial-gradient(circle at 60% 15%, #ffffff 0%, transparent 3%),
              radial-gradient(circle at 80% 40%, #ffffff 0%, transparent 1.5%),
              radial-gradient(circle at 35% 50%, #ffffff 0%, transparent 2%),
              radial-gradient(circle at 90% 10%, #ffffff 0%, transparent 2.5%);
  background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
  animation: taj-twinkle 4s ease-in-out infinite alternate;
}
.scn-titania-accuses-oberon-jealousy .path {
  position: absolute; bottom: 32%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(180,180,200,0.3), transparent);
  border-radius: 50%; filter: blur(2px);
  animation: taj-path 6s ease-in-out infinite;
}
.scn-titania-accuses-oberon-jealousy .figure-titania {
  position: absolute; bottom: 34%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: taj-titania 4s ease-in-out infinite alternate;
}
.scn-titania-accuses-oberon-jealousy .figure-oberon {
  position: absolute; bottom: 32%; right: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: taj-oberon 5s ease-in-out infinite alternate;
}
.scn-titania-accuses-oberon-jealousy .shadow {
  position: absolute; bottom: 28%; left: 25%; right: 30%; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 60%);
  filter: blur(4px);
  animation: taj-shadow 4s ease-in-out infinite alternate;
}
@keyframes taj-crescent {
  0% { transform: rotate(0deg) translateX(0); opacity: 0.8; }
  50% { transform: rotate(10deg) translateX(2px); opacity: 1; }
  100% { transform: rotate(-5deg) translateX(-1px); opacity: 0.9; }
}
@keyframes taj-twinkle {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes taj-path {
  0% { transform: scaleX(0.9) translateX(-2px); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateX(0); opacity: 0.7; }
  100% { transform: scaleX(0.9) translateX(2px); opacity: 0.4; }
}
@keyframes taj-titania {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-2px) translateY(1px) rotate(3deg); }
}
@keyframes taj-oberon {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(1px) translateY(0) rotate(0deg); }
}
@keyframes taj-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(0.8) translateX(3px); opacity: 0.4; }
  100% { transform: scaleX(1.2) translateX(-2px); opacity: 0.7; }
}

/* Scene: titania-describes-chaos (tdc) */
.scn-titania-describes-chaos {
  background: linear-gradient(180deg, #13133a 0%, #1a1a44 40%, #0e0e28 100%), radial-gradient(ellipse at 30% 20%, #2a2a5a 0%, transparent 70%);
}
.scn-titania-describes-chaos .sky-storm {
  position: absolute; top: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a34 100%);
  animation: tdc-sky 15s ease-in-out infinite alternate;
}
.scn-titania-describes-chaos .flood-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: tdc-flood 8s ease-in-out infinite alternate;
}
.scn-titania-describes-chaos .river-overflow {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(90deg, #2a4a5a 0%, #3a5a6a 50%, #2a4a5a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  filter: blur(4px);
  animation: tdc-river 12s ease-in-out infinite;
}
.scn-titania-describes-chaos .ox {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tdc-ox 5s ease-in-out infinite alternate;
}
.scn-titania-describes-chaos .broken-yoke {
  position: absolute; bottom: 42%; left: 38%; width: 20px; height: 4px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: tdc-yoke 4s ease-in-out infinite;
}
.scn-titania-describes-chaos .plow {
  position: absolute; bottom: 34%; right: 30%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: rotate(30deg);
  animation: tdc-plow 6s ease-in-out infinite alternate;
}
.scn-titania-describes-chaos .rain {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(transparent, transparent 2px, rgba(180,200,220,0.1) 2px, rgba(180,200,220,0.1) 4px);
  animation: tdc-rain 0.8s linear infinite;
}
@keyframes tdc-sky {
  0% { opacity: 0.8; background-position-y: 0; }
  50% { opacity: 1; background-position-y: 10%; }
  100% { opacity: 0.7; background-position-y: 5%; }
}
@keyframes tdc-flood {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(-2px); }
}
@keyframes tdc-river {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.05); }
  100% { transform: translateX(-5px) scaleX(0.95); }
}
@keyframes tdc-ox {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-1px) translateY(1px) rotate(2deg); }
}
@keyframes tdc-yoke {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(3px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes tdc-plow {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(25deg) translateY(0); }
}
@keyframes tdc-rain {
  0% { background-position-y: 0; }
  100% { background-position-y: 4px; }
}

/* Scene: titania-blames-oberon (tbo) */
.scn-titania-blames-oberon {
  background: linear-gradient(180deg, #0f0f2e 0%, #151540 30%, #0e0e22 70%), radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 60%);
}
.scn-titania-blames-oberon .moon-pale {
  position: absolute; top: 8%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0e0e8 0%, #b0b0c0 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(180,180,200,0.5), 0 0 80px 30px rgba(180,180,200,0.2);
  animation: tbo-moon 9s ease-in-out infinite alternate;
}
.scn-titania-blames-oberon .frost {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 15%;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(200,210,230,0.15) 4px, rgba(200,210,230,0.15) 6px);
  border-radius: 20% 20% 0 0;
  animation: tbo-frost 10s ease-in-out infinite alternate;
}
.scn-titania-blames-oberon .rose-large {
  position: absolute; bottom: 30%; left: 20%; width: 28px; height: 28px;
  background: radial-gradient(circle, #b87878 0%, #7a3a3a 60%, #4a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: tbo-rose 6s ease-in-out infinite alternate;
}
.scn-titania-blames-oberon .crown-icy {
  position: absolute; top: 35%; right: 25%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #a0b0c0 0%, #607080 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  clip-path: polygon(0% 100%, 20% 20%, 40% 60%, 60% 20%, 80% 60%, 100% 20%, 100% 100%);
  box-shadow: 0 0 10px 3px rgba(160,190,220,0.4);
  animation: tbo-crown 7s ease-in-out infinite alternate;
}
.scn-titania-blames-oberon .ground-frost {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-titania-blames-oberon .mist {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,210,230,0.2) 0%, transparent 60%);
  filter: blur(15px);
  animation: tbo-mist 20s ease-in-out infinite alternate;
}
@keyframes tbo-moon {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.06) rotate(5deg); }
  100% { transform: translateX(-50%) scale(0.94) rotate(-3deg); }
}
@keyframes tbo-frost {
  0% { opacity: 0.6; background-position: 0 0; }
  50% { opacity: 0.8; background-position: 10px 10px; }
  100% { opacity: 0.5; background-position: -5px -5px; }
}
@keyframes tbo-rose {
  0% { transform: scale(1) rotate(0deg) translateY(0); }
  50% { transform: scale(1.08) rotate(10deg) translateY(-2px); }
  100% { transform: scale(0.95) rotate(-5deg) translateY(1px); }
}
@keyframes tbo-crown {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.05); }
  100% { transform: rotate(-10deg) scale(0.95); }
}
@keyframes tbo-mist {
  0% { opacity: 0.4; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(10px); }
  100% { opacity: 0.3; transform: translateX(-10px); }
}

.scn-lysander-enlists-hermia {
  background: linear-gradient(180deg, #f5e6d0 0%, #eed5b0 40%, #c9a87c 100%), radial-gradient(ellipse at 30% 40%, #fce4c0 0%, transparent 70%);
}
.scn-lysander-enlists-hermia .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #f0dab0 0%, #e0c090 100%);
  border-bottom: 2px solid #b09070;
  animation: le-wall 20s ease-in-out infinite alternate;
}
.scn-lysander-enlists-hermia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b09070 0%, #8a7a5a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-lysander-enlists-hermia .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #fff8e0 0%, #ffe8b0 60%, #d0b080 100%);
  border: 6px solid #a08060;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #ffe8b0;
  animation: le-win 6s ease-in-out infinite alternate;
}
.scn-lysander-enlists-hermia .light-ray {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(135deg, rgba(255,240,180,0.3) 0%, transparent 80%);
  transform: skewY(-10deg);
  filter: blur(6px);
  animation: le-ray 8s ease-in-out infinite;
}
.scn-lysander-enlists-hermia .figure-left {
  position: absolute; bottom: 32%; left: 28%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-fig-l 5s ease-in-out infinite;
}
.scn-lysander-enlists-hermia .figure-right {
  position: absolute; bottom: 32%; right: 28%; width: 36px; height: 76px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-fig-r 5s ease-in-out infinite 1.2s;
}
.scn-lysander-enlists-hermia .table {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 4%;
  background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%);
  border-radius: 4px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
}
.scn-lysander-enlists-hermia .candle {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #d0b060 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px 4px #ffe8a0;
  animation: le-candle 3s ease-in-out infinite alternate;
}
.scn-lysander-enlists-hermia .glow {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,230,150,0.4) 0%, transparent 80%);
  filter: blur(12px);
  animation: le-glow 4s ease-in-out infinite;
}
@keyframes le-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes le-win {
  0% { box-shadow: inset 0 0 20px #ffe8b0; opacity: 0.85; }
  50% { box-shadow: inset 0 0 40px #fff0c0; opacity: 1; }
  100% { box-shadow: inset 0 0 25px #ffe8b0; opacity: 0.9; }
}
@keyframes le-ray {
  0% { transform: skewY(-10deg) translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: skewY(-8deg) translateX(5px) scaleX(1.1); opacity: 0.5; }
  100% { transform: skewY(-10deg) translateX(0) scaleX(1); opacity: 0.3; }
}
@keyframes le-fig-l {
  0%,100% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(4px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(0deg); }
}
@keyframes le-fig-r {
  0%,100% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-3px) rotate(-1deg); }
  60% { transform: translateX(2px) rotate(0deg); }
}
@keyframes le-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; box-shadow: 0 0 12px 4px #ffe8a0; }
  50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; box-shadow: 0 0 18px 6px #ffe8a0; }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.85; box-shadow: 0 0 14px 5px #ffe8a0; }
}
@keyframes le-glow {
  0%,100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.2); opacity: 0.6; }
}

.scn-theseus-departs-with-dukes {
  background: linear-gradient(180deg, #eddcc0 0%, #d0bfa0 50%, #b09880 100%), radial-gradient(ellipse at 50% 20%, #f5e8d0 0%, transparent 60%);
}
.scn-theseus-departs-with-dukes .hall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e0cfb0 0%, #c0b098 100%);
  border-bottom: 2px solid #9a8a72;
}
.scn-theseus-departs-with-dukes .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #a09078 0px, #a09078 20px, #b0a088 20px, #b0a088 40px);
  background-size: 40px 100%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
}
.scn-theseus-departs-with-dukes .column-left {
  position: absolute; top: 5%; left: 15%; width: 4%; height: 55%;
  background: linear-gradient(90deg, #c0b098 0%, #d8c8b0 30%, #c0b098 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-theseus-departs-with-dukes .column-right {
  position: absolute; top: 5%; right: 15%; width: 4%; height: 55%;
  background: linear-gradient(270deg, #c0b098 0%, #d8c8b0 30%, #c0b098 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
}
.scn-theseus-departs-with-dukes .arch {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #e0cfb0 0%, #c0b098 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.1);
}
.scn-theseus-departs-with-dukes .group-figures {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,80,60,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: td-group 12s ease-in-out infinite;
}
.scn-theseus-departs-with-dukes .banner-left {
  position: absolute; top: 2%; left: 18%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #b06030 0%, #804020 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: td-banner-l 6s ease-in-out infinite alternate;
}
.scn-theseus-departs-with-dukes .banner-right {
  position: absolute; top: 2%; right: 18%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #b06030 0%, #804020 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: td-banner-r 6s ease-in-out infinite alternate 0.8s;
}
@keyframes td-group {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(-2px) scaleY(1.05); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}
@keyframes td-banner-l {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.03); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes td-banner-r {
  0% { transform: rotate(2deg) scaleY(1); }
  50% { transform: rotate(-2deg) scaleY(1.03); }
  100% { transform: rotate(2deg) scaleY(1); }
}

.scn-lovers-alone-lament {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1e1e36 100%), radial-gradient(ellipse at 50% 30%, #2a2a44 0%, transparent 70%);
}
.scn-lovers-alone-lament .dark-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%);
  border-bottom: 2px solid #3a3a5e;
}
.scn-lovers-alone-lament .dark-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1e36 0%, #0e0e1e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-lovers-alone-lament .window-moon {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #b0b8d0 0%, #6070a0 60%, #2a2a44 100%);
  border: 4px solid #404060;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #8090c0, 0 0 20px rgba(100,120,180,0.2);
  animation: la-moon 10s ease-in-out infinite alternate;
}
.scn-lovers-alone-lament .moonlight {
  position: absolute; top: 25%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(180deg, rgba(180,200,240,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: la-mlight 12s ease-in-out infinite;
}
.scn-lovers-alone-lament .silhouette-left {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 90px;
  background: #0a0a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-sil-l 7s ease-in-out infinite;
}
.scn-lovers-alone-lament .silhouette-right {
  position: absolute; bottom: 28%; right: 20%; width: 36px; height: 85px;
  background: #0a0a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-sil-r 7s ease-in-out infinite 1.5s;
}
.scn-lovers-alone-lament .candle-light {
  position: absolute; bottom: 32%; left: 46%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f0c080 0%, #d08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #d08040, 0 0 40px 12px rgba(200,120,60,0.4);
  animation: la-candle 4s ease-in-out infinite alternate;
}
.scn-lovers-alone-lament .shadow-pool {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(10px);
  animation: la-shadow 5s ease-in-out infinite;
}
@keyframes la-moon {
  0% { opacity: 0.7; transform: scale(0.98); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.75; transform: scale(0.99); }
}
@keyframes la-mlight {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(-5px) scaleY(1.1); opacity: 0.8; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.6; }
}
@keyframes la-sil-l {
  0%,100% { transform: translateX(0) rotate(-1deg); }
  40% { transform: translateX(3px) rotate(2deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes la-sil-r {
  0%,100% { transform: translateX(0) rotate(1deg); }
  40% { transform: translateX(-3px) rotate(-2deg); }
  70% { transform: translateX(2px) rotate(1deg); }
}
@keyframes la-candle {
  0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 6px #d08040; }
  50% { transform: scaleY(0.9) scaleX(1.1); box-shadow: 0 0 30px 10px #e09050; opacity: 1; }
  100% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 20px 6px #d08040; }
}
@keyframes la-shadow {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) scaleY(1.3); opacity: 0.7; }
}

.scn-love-crossed-conditions {
  background: linear-gradient(180deg, #1c1c2c 0%, #2e2e46 50%, #1a1a30 100%), radial-gradient(ellipse at 50% 80%, #2e2e46 0%, transparent 60%);
}
.scn-love-crossed-conditions .cell-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2e2e46 0%, #1c1c2c 100%);
  border-bottom: 2px solid #3a3a5a;
}
.scn-love-crossed-conditions .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e1e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-love-crossed-conditions .window-bar {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #8090b0 0%, #2e2e46 70%);
  border: 4px solid #404060;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: inset 0 0 20px #606080;
  animation: lc-window 12s ease-in-out infinite alternate;
}
.scn-love-crossed-conditions .window-bar::after {
  content: '';
  position: absolute; inset: 10% 15% 10% 15%;
  border: 3px solid #505070;
  border-top: none; border-bottom: none;
  box-shadow: inset 0 0 8px #404060;
}
.scn-love-crossed-conditions .book {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 10%;
  background: linear-gradient(90deg, #8a6040 0%, #b08060 50%, #8a6040 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: lc-book 8s ease-in-out infinite;
}
.scn-love-crossed-conditions .candle-tall {
  position: absolute; bottom: 26%; left: 48%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #d0a070 0%, #a06030 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 16px 4px #b07040, 0 0 32px 8px rgba(180,100,50,0.4);
  animation: lc-candle 3s ease-in-out infinite alternate;
}
.scn-love-crossed-conditions .hand {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: top left;
  animation: lc-hand 6s ease-in-out infinite;
}
.scn-love-crossed-conditions .shadow-bar {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 80%);
  filter: blur(15px);
  animation: lc-bar 8s ease-in-out infinite;
}
@keyframes lc-window {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes lc-book {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes lc-candle {
  0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 16px 4px #b07040; }
  50% { transform: scaleY(0.9) scaleX(1.1); box-shadow: 0 0 24px 8px #c08050; opacity: 0.9; }
  100% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 16px 4px #b07040; }
}
@keyframes lc-hand {
  0%,100% { transform: rotate(0deg) scale(1); }
  30% { transform: rotate(-8deg) scale(1.1); }
  60% { transform: rotate(5deg) scale(0.95); }
}
@keyframes lc-bar {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.4; }
}

.scn-puck-applies-antidote {
  background: linear-gradient(180deg, #0b0b26 0%, #14144a 40%, #1a1a5e 70%), radial-gradient(ellipse at 50% 30%, #1a1a5e 0%, transparent 60%);
}
.scn-puck-applies-antidote .bg-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0f0f2a 0%, transparent 100%);
  animation: paa-sky 15s ease-in-out infinite alternate;
}
.scn-puck-applies-antidote .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a0f0a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: paa-ground 20s ease-in-out infinite alternate;
}
.scn-puck-applies-antidote .lysander-head {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 70px;
  background: linear-gradient(120deg, #1a1a2a 0%, #0a0a1a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: paa-head 6s ease-in-out infinite;
}
.scn-puck-applies-antidote .puck-hand {
  position: absolute; bottom: 35%; left: 48%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  animation: paa-hand 4s ease-in-out infinite alternate;
}
.scn-puck-applies-antidote .magic-drop {
  position: absolute; bottom: 42%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #7aa8c0 0%, #3a5a7a 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(100,180,220,.4);
  animation: paa-drop 3s ease-in-out infinite;
}
.scn-puck-applies-antidote .sparkle-1 {
  position: absolute; bottom: 44%; left: 52%; width: 4px; height: 4px;
  background: #b0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(150,200,220,.6);
  animation: paa-sparkle 2.5s ease-in-out infinite 0.5s;
}
.scn-puck-applies-antidote .sparkle-2 {
  position: absolute; bottom: 40%; left: 46%; width: 3px; height: 3px;
  background: #b0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(150,200,220,.5);
  animation: paa-sparkle 2.5s ease-in-out infinite 1.2s;
}

@keyframes paa-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes paa-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes paa-head { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }
@keyframes paa-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(2px) } 100% { transform: rotate(-22deg) translateX(0) } }
@keyframes paa-drop { 0% { opacity: .3; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .3; transform: scale(0.8) } }
@keyframes paa-sparkle { 0% { opacity: 0; transform: scale(0) } 50% { opacity: .8; transform: scale(1.5) } 100% { opacity: 0; transform: scale(0) } }

.scn-titania-bottom-wood {
  background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 50%, #1a2a3e 100%), radial-gradient(ellipse at 50% 60%, #2a3a5e 0%, transparent 60%);
}
.scn-titania-bottom-wood .bg-moon {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3a5e 0%, #1a2a4a 100%);
  animation: tbw-bg 12s ease-in-out infinite alternate;
}
.scn-titania-bottom-wood .flower-bed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: tbw-bed 18s ease-in-out infinite alternate;
}
.scn-titania-bottom-wood .bottom-head {
  position: absolute; bottom: 28%; left: 40%; width: 70px; height: 80px;
  background: linear-gradient(120deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: tbw-head 8s ease-in-out infinite;
}
.scn-titania-bottom-wood .ear {
  position: absolute; bottom: 42%; width: 18px; height: 28px;
  background: linear-gradient(90deg, #4a4a3a, #2a2a1a);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
}
.scn-titania-bottom-wood .ear.left { left: 35%; transform: rotate(-15deg); }
.scn-titania-bottom-wood .ear.right { left: 55%; transform: rotate(15deg); }
.scn-titania-bottom-wood .flower-crown {
  position: absolute; bottom: 42%; left: 36%; width: 100px; height: 20px;
  background: radial-gradient(circle at 32% 50%, #d4a0a0 0%, transparent 30%), radial-gradient(circle at 50% 50%, #c08080 0%, transparent 30%), radial-gradient(circle at 68% 50%, #d4a0a0 0%, transparent 30%);
  border-radius: 50%;
  filter: blur(2px);
  animation: tbw-crown 10s ease-in-out infinite;
}
.scn-titania-bottom-wood .titania-arm {
  position: absolute; bottom: 32%; left: 50%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: tbw-arm 6s ease-in-out infinite alternate;
}

@keyframes tbw-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes tbw-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tbw-head { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }
@keyframes tbw-crown { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes tbw-arm { 0% { transform: rotate(18deg) } 50% { transform: rotate(22deg) } 100% { transform: rotate(18deg) } }

.scn-bottom-complains-hairy {
  background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 50%, #1a2a3e 100%), radial-gradient(ellipse at 50% 20%, #3a4a6e 0%, transparent 60%);
}
.scn-bottom-complains-hairy .bg-moon {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a3a5e 0%, #1a2a4a 100%);
  animation: bch-bg 14s ease-in-out infinite alternate;
}
.scn-bottom-complains-hairy .ground-moon {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-bottom-complains-hairy .bottom-figure {
  position: absolute; bottom: 18%; left: 35%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: bch-figure 5s ease-in-out infinite;
}
.scn-bottom-complains-hairy .head-scratch {
  position: absolute; bottom: 50%; left: 38%; width: 50px; height: 50px;
  background: linear-gradient(120deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-10deg);
  animation: bch-head 4s ease-in-out infinite alternate;
}
.scn-bottom-complains-hairy .scratch-hand {
  position: absolute; bottom: 55%; left: 32%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-40deg);
  animation: bch-hand 2s ease-in-out infinite;
}
.scn-bottom-complains-hairy .tongs {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 20px;
  background: #6a5a4a;
  border-radius: 40%;
  transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: bch-tongs 3s ease-in-out infinite alternate;
}
.scn-bottom-complains-hairy .bones {
  position: absolute; bottom: 45%; left: 60%; width: 6px; height: 14px;
  background: #7a7a6a;
  border-radius: 30%;
  transform: rotate(-15deg);
  animation: bch-bones 3.5s ease-in-out infinite alternate-reverse;
}

@keyframes bch-bg { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes bch-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes bch-head { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-8deg) } }
@keyframes bch-hand { 0% { transform: rotate(-40deg) translateX(0) } 50% { transform: rotate(-30deg) translateX(3px) } 100% { transform: rotate(-40deg) translateX(0) } }
@keyframes bch-tongs { 0% { transform: rotate(18deg) scaleX(1) } 50% { transform: rotate(22deg) scaleX(1.1) } 100% { transform: rotate(18deg) scaleX(1) } }
@keyframes bch-bones { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(1.2) } 100% { transform: rotate(-15deg) scaleY(1) } }

.scn-titania-cradles-bottom {
  background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 60%, #1a2a3e 100%), radial-gradient(ellipse at 50% 70%, #2a4a6a 0%, transparent 50%);
}
.scn-titania-cradles-bottom .bg-moon {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a3a5e 0%, #1a2a4a 100%);
  animation: tcb-bg 16s ease-in-out infinite alternate;
}
.scn-titania-cradles-bottom .flower-bed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: tcb-bed 20s ease-in-out infinite alternate;
}
.scn-titania-cradles-bottom .bottom-head {
  position: absolute; bottom: 25%; left: 40%; width: 70px; height: 80px;
  background: linear-gradient(120deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: tcb-head 10s ease-in-out infinite;
}
.scn-titania-cradles-bottom .titania-wrap {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  opacity: .8;
  animation: tcb-wrap 8s ease-in-out infinite alternate;
}
.scn-titania-cradles-bottom .ivy-vine {
  position: absolute; bottom: 28%; left: 38%; width: 90px; height: 30px;
  background: radial-gradient(circle at 20% 50%, #4a6a4a 0%, transparent 40%), radial-gradient(circle at 50% 50%, #3a5a3a 0%, transparent 40%), radial-gradient(circle at 80% 50%, #4a6a4a 0%, transparent 40%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tcb-vine 12s ease-in-out infinite;
}
.scn-titania-cradles-bottom .star-1 {
  position: absolute; top: 15%; left: 25%; width: 4px; height: 4px;
  background: #c0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(150,180,200,.5);
  animation: tcb-star 4s ease-in-out infinite;
}
.scn-titania-cradles-bottom .star-2 {
  position: absolute; top: 20%; right: 30%; width: 3px; height: 3px;
  background: #c0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 5px 1px rgba(150,180,200,.4);
  animation: tcb-star 4s ease-in-out infinite 1.5s;
}

@keyframes tcb-bg { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes tcb-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tcb-head { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tcb-wrap { 0% { transform: rotate(-8deg) scaleX(0.95) } 50% { transform: rotate(-12deg) scaleX(1.05) } 100% { transform: rotate(-8deg) scaleX(0.95) } }
@keyframes tcb-vine { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes tcb-star { 0% { opacity: .2; transform: scale(0.8) } 50% { opacity: .9; transform: scale(1.3) } 100% { opacity: .2; transform: scale(0.8) } }

.scn-audience-mocks-prologue {
  background: linear-gradient(180deg, #f8e8c0 0%, #e8d098 30%, #d4b870 60%, #b89850 100%),
              radial-gradient(ellipse at 50% 100%, #ffe080 0%, transparent 70%);
}
.scn-audience-mocks-prologue .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #bfd8ff, #89b0ff);
  animation: aud-sky 12s ease-in-out infinite alternate;
}
.scn-audience-mocks-prologue .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b89850 0%, #8a7038 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
}
.scn-audience-mocks-prologue .curtain-l {
  position: absolute; left: 0; top: 0; width: 28%; height: 100%;
  background: linear-gradient(90deg, #a04030 0%, #c06050 50%, #b05040 100%);
  border-radius: 0 30% 100% 0 / 0 20% 80% 0;
  animation: aud-curtain 8s ease-in-out infinite alternate;
}
.scn-audience-mocks-prologue .curtain-r {
  position: absolute; right: 0; top: 0; width: 28%; height: 100%;
  background: linear-gradient(270deg, #a04030 0%, #c06050 50%, #b05040 100%);
  border-radius: 30% 0 0 100% / 20% 0 0 80%;
  animation: aud-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-audience-mocks-prologue .prologue {
  position: absolute; bottom: 30%; left: 48%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aud-pose 4s ease-in-out infinite;
}
.scn-audience-mocks-prologue .audience {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 18%;
  background: repeating-linear-gradient(90deg, #3a3a3a 0px, #3a3a3a 12px, transparent 12px, transparent 20px);
  border-radius: 20% 20% 0 0;
}
.scn-audience-mocks-prologue .spotlight {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 90px;
  background: radial-gradient(ellipse at center, rgba(255,230,180,0.8) 0%, transparent 70%);
  animation: aud-spot 6s ease-in-out infinite alternate;
}
@keyframes aud-sky {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; transform: scaleY(1.05); }
}
@keyframes aud-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(-15px); }
}
@keyframes aud-pose {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes aud-spot {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

.scn-wall-speaks {
  background: linear-gradient(180deg, #c0d8ff 0%, #a0c0e8 40%, #8098c0 100%),
              radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-wall-speaks .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #bfd8ff, #89b0ff);
  animation: wsp-sky 20s ease-in-out infinite alternate;
}
.scn-wall-speaks .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9a5a, #4a6a3a);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-wall-speaks .wall-body {
  position: absolute; left: 25%; right: 25%; bottom: 25%; height: 50%;
  background: linear-gradient(135deg, #b08868 0%, #907058 50%, #705040 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: wsp-wall 10s ease-in-out infinite alternate;
}
.scn-wall-speaks .wall-crack {
  position: absolute; left: 42%; right: 42%; bottom: 45%; height: 4px;
  background: #2a2a0a;
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #ffd060;
  animation: wsp-crack 3s ease-in-out infinite alternate;
}
.scn-wall-speaks .torch {
  position: absolute; left: 65%; bottom: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a6020, #4a3810);
  border-radius: 2px;
  animation: wsp-torch 4s ease-in-out infinite;
}
.scn-wall-speaks .torch::after {
  content: ''; position: absolute; top: -12px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080, #f0a030);
  border-radius: 50%;
  animation: wsp-flame 0.5s ease-in-out infinite alternate;
}
.scn-wall-speaks .lion-shadow {
  position: absolute; left: 10%; bottom: 22%; width: 40px; height: 30px;
  background: rgba(50,40,30,0.6);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: skewX(-10deg);
  animation: wsp-lion 6s ease-in-out infinite;
}
@keyframes wsp-sky {
  0% { opacity: 0.8; }
  100% { opacity: 1; transform: scaleY(1.03); }
}
@keyframes wsp-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes wsp-crack {
  0% { height: 3px; width: 20%; left: 40%; }
  50% { height: 12px; width: 30%; left: 35%; }
  100% { height: 5px; width: 22%; left: 39%; }
}
@keyframes wsp-torch {
  0%,100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}
@keyframes wsp-flame {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.3); opacity: 1; }
}
@keyframes wsp-lion {
  0% { transform: translateX(0) skewX(-10deg); }
  50% { transform: translateX(15px) skewX(5deg); }
  100% { transform: translateX(0) skewX(-10deg); }
}

.scn-pyramus-approaches-wall {
  background: linear-gradient(180deg, #c8d8ff 0%, #a8b8e8 50%, #8098c8 100%),
              radial-gradient(ellipse at 70% 30%, #ffe8b0 0%, transparent 60%);
}
.scn-pyramus-approaches-wall .bg-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a8a5a, #3a5a2a);
  border-radius: 40% 60% 0 0 / 30% 70% 0 0;
}
.scn-pyramus-approaches-wall .wall-left {
  position: absolute; left: 20%; bottom: 25%; width: 25%; height: 55%;
  background: linear-gradient(135deg, #b08868 0%, #907058 50%, #705040 100%);
  border-radius: 4% 0 0 4%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-pyramus-approaches-wall .wall-right {
  position: absolute; right: 20%; bottom: 25%; width: 25%; height: 55%;
  background: linear-gradient(225deg, #b08868 0%, #907058 50%, #705040 100%);
  border-radius: 0 4% 4% 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-pyramus-approaches-wall .wall-left::after,
.scn-pyramus-approaches-wall .wall-right::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 8px;
  background: #5a4a3a;
}
.scn-pyramus-approaches-wall .pyramus {
  position: absolute; left: 38%; bottom: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pyr-walk 4s ease-in-out infinite;
}
.scn-pyramus-approaches-wall .torch-pyr {
  position: absolute; left: 36%; bottom: 45%; width: 6px; height: 15px;
  background: #6a5020;
  border-radius: 2px;
}
.scn-pyramus-approaches-wall .torch-pyr::before {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080, #f0a030);
  border-radius: 50%;
  animation: pyr-flame 0.6s ease-in-out infinite alternate;
}
.scn-pyramus-approaches-wall .moon-beam {
  position: absolute; top: 10%; left: 45%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(200,220,255,0.5) 0%, transparent 80%);
  animation: pyr-beam 8s ease-in-out infinite alternate;
}
@keyframes pyr-walk {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(6px) rotate(1deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(18px) rotate(1deg); }
  100% { transform: translateX(24px) rotate(0); }
}
@keyframes pyr-flame {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.4); opacity: 1; }
}
@keyframes pyr-beam {
  0% { transform: rotate(-5deg); opacity: 0.3; }
  50% { transform: rotate(2deg); opacity: 0.6; }
  100% { transform: rotate(-5deg); opacity: 0.3; }
}

.scn-thisbe-arrives {
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 40%, #0a1a3a 100%),
              radial-gradient(ellipse at 50% 20%, #8098c0 0%, transparent 60%);
}
.scn-thisbe-arrives .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2a4a, #0a1a3a);
  animation: thb-sky 15s ease-in-out infinite alternate;
}
.scn-thisbe-arrives .wall-centre {
  position: absolute; left: 30%; right: 30%; bottom: 20%; height: 55%;
  background: linear-gradient(180deg, #705040 0%, #5a4030 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 0 20px rgba(100,80,60,0.5);
}
.scn-thisbe-arrives .thisbe {
  position: absolute; right: 25%; bottom: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: thb-enter 6s ease-in-out infinite;
}
.scn-thisbe-arrives .pyramus-shadow {
  position: absolute; left: 30%; bottom: 28%; width: 22px; height: 48px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: thb-shadow 6s ease-in-out infinite;
}
.scn-thisbe-arrives .floral-vine {
  position: absolute; left: 45%; bottom: 75%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a8a3a, #4a6a2a);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: thb-vine 8s ease-in-out infinite alternate;
}
.scn-thisbe-arrives .lantern {
  position: absolute; left: 50%; bottom: 40%; width: 10px; height: 14px;
  background: #d0a060;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.4);
  animation: thb-lantern 4s ease-in-out infinite alternate;
}
@keyframes thb-sky {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes thb-enter {
  0% { transform: translateX(40px) rotate(3deg); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translateX(0) rotate(0); }
  80% { opacity: 1; }
  100% { transform: translateX(-10px) rotate(-2deg); }
}
@keyframes thb-shadow {
  0% { transform: scaleX(-1) translateX(40px); opacity: 0; }
  20% { opacity: 0.4; }
  50% { transform: scaleX(-1) translateX(0); }
  100% { transform: scaleX(-1) translateX(-10px); }
}
@keyframes thb-vine {
  0% { transform: scaleY(1) rotate(5deg); }
  50% { transform: scaleY(1.2) rotate(-5deg); }
  100% { transform: scaleY(1) rotate(5deg); }
}
@keyframes thb-lantern {
  0% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.4); }
  100% { box-shadow: 0 0 30px 10px #ffe0a0, 0 0 50px 18px rgba(255,224,160,0.6); }
}

/* titania-dotes-on-bottom */
.scn-titania-dotes-on-bottom {
  background: 
    linear-gradient(180deg, #0b0e2a 0%, #1c2255 50%, #2a3366 100%),
    radial-gradient(ellipse at 50% 20%, #445599 0%, transparent 60%);
}
.scn-titania-dotes-on-bottom .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0d2e 0%, transparent 100%);
  animation: td1-sky 20s ease-in-out infinite alternate;
}
.scn-titania-dotes-on-bottom .moon {
  position: absolute; top: 8%; left: 70%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #dde8ff 0%, #aabbee 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(170,187,238,0.5);
  animation: td1-moon 30s ease-in-out infinite;
}
.scn-titania-dotes-on-bottom .trees-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1520 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  animation: td1-trees 12s ease-in-out infinite alternate;
}
.scn-titania-dotes-on-bottom .trees-front {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0d1a2a 0%, #050d15 100%);
  border-radius: 40% 60% 0 0 / 70% 30% 0 0;
  animation: td1-trees 15s ease-in-out infinite alternate-reverse;
}
.scn-titania-dotes-on-bottom .titania {
  position: absolute; bottom: 35%; left: 30%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #b8d0e8 0%, #6a80a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td1-float 6s ease-in-out infinite;
}
.scn-titania-dotes-on-bottom .bottom-head {
  position: absolute; bottom: 28%; left: 55%;
  width: 40px; height: 45px;
  background: linear-gradient(180deg, #c0b090 0%, #806050 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  animation: td1-bob 4s ease-in-out infinite;
}
.scn-titania-dotes-on-bottom .bottom-ear-left {
  position: absolute; bottom: 34%; left: 52%;
  width: 10px; height: 22px;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  transform: rotate(-20deg);
  animation: td1-ear 3s ease-in-out infinite alternate;
}
.scn-titania-dotes-on-bottom .bottom-ear-right {
  position: absolute; bottom: 34%; left: 61%;
  width: 10px; height: 22px;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  transform: rotate(20deg);
  animation: td1-ear 3s ease-in-out infinite alternate-reverse;
}
.scn-titania-dotes-on-bottom .flower {
  position: absolute; bottom: 30%; left: 45%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #c8a8e8 0%, #9870b8 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(152,112,184,0.5);
  animation: td1-flower 5s ease-in-out infinite;
}
@keyframes td1-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes td1-moon { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-5px) scale(1.02); } 100% { transform:translateX(0) scale(1); } }
@keyframes td1-trees { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes td1-float { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-8px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes td1-bob { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes td1-ear { 0% { transform:rotate(-20deg) scaleY(1); } 100% { transform:rotate(-15deg) scaleY(1.1); } }
@keyframes td1-flower { 0% { opacity:0.6; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }

/* titania-orders-fairies */
.scn-titania-orders-fairies {
  background: 
    linear-gradient(180deg, #0d1225 0%, #1a2445 50%, #2c3a5a 100%),
    radial-gradient(ellipse at 50% 60%, #3a5a8a 0%, transparent 70%);
}
.scn-titania-orders-fairies .forest-canopy {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(0deg, #142030 0%, #0a1018 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: tof2-canopy 18s ease-in-out infinite alternate;
}
.scn-titania-orders-fairies .moonbeam {
  position: absolute; top: -10%; left: 40%;
  width: 60px; height: 120%;
  background: linear-gradient(180deg, rgba(220,230,255,0.15) 0%, rgba(220,230,255,0.05) 100%);
  transform: rotate(10deg);
  animation: tof2-beam 6s ease-in-out infinite alternate;
}
.scn-titania-orders-fairies .titania-throne {
  position: absolute; bottom: 18%; left: 35%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #88aacc 0%, #446688 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  animation: tof2-throne 10s ease-in-out infinite;
}
.scn-titania-orders-fairies .fairy-peaseblossom {
  position: absolute; bottom: 28%; left: 20%;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #ffccee 0%, #dd99bb 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(221,153,187,0.6);
  animation: tof2-fairy 4s ease-in-out infinite, tof2-drift 12s linear infinite;
}
.scn-titania-orders-fairies .fairy-cobweb {
  position: absolute; bottom: 30%; left: 50%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #aaffdd 0%, #66ccaa 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(102,204,170,0.5);
  animation: tof2-fairy 5s ease-in-out infinite 1s, tof2-drift 15s linear infinite;
}
.scn-titania-orders-fairies .fairy-moth {
  position: absolute; bottom: 25%; left: 60%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffeeaa 0%, #ddcc77 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(221,204,119,0.5);
  animation: tof2-fairy 3s ease-in-out infinite 2s, tof2-drift 18s linear infinite reverse;
}
.scn-titania-orders-fairies .fairy-mustardseed {
  position: absolute; bottom: 32%; left: 70%;
  width: 11px; height: 11px;
  background: radial-gradient(circle, #ccffaa 0%, #99dd77 100%);
  border-radius: 50%;
  box-shadow: 0 0 9px 2px rgba(153,221,119,0.5);
  animation: tof2-fairy 4.5s ease-in-out infinite 0.5s, tof2-drift 14s linear infinite;
}
.scn-titania-orders-fairies .glow-orb {
  position: absolute; bottom: 35%; left: 45%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffeecc 0%, transparent 100%);
  border-radius: 50%;
  animation: tof2-glow 3s ease-in-out infinite alternate;
}
@keyframes tof2-canopy { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.02) translateY(-2px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes tof2-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes tof2-throne { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(0); } }
@keyframes tof2-fairy { 0% { transform:scale(0.8) rotate(0deg); } 50% { transform:scale(1.2) rotate(20deg); } 100% { transform:scale(0.8) rotate(0deg); } }
@keyframes tof2-drift { 0% { transform:translateX(0) translateY(0); } 100% { transform:translateX(60px) translateY(-30px); } }
@keyframes tof2-glow { 0% { opacity:0.5; } 100% { opacity:0.9; } }

/* bottom-commands-fairies */
.scn-bottom-commands-fairies {
  background: 
    linear-gradient(180deg, #0b0e1a 0%, #1a2035 50%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #3a5a7a 0%, transparent 60%);
}
.scn-bottom-commands-fairies .ground-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #0a1018 0%, #050a10 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-bottom-commands-fairies .bottom-torso {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bcf3-torso 8s ease-in-out infinite;
}
.scn-bottom-commands-fairies .bottom-head-profile {
  position: absolute; bottom: 45%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #c0b090 0%, #806050 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%;
  transform: rotate(10deg);
  animation: bcf3-head 6s ease-in-out infinite;
}
.scn-bottom-commands-fairies .butterfly-wing-left {
  position: absolute; bottom: 50%; left: 20%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #ffaa66 0%, #cc7744 100%);
  border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%;
  animation: bcf3-wing 0.8s ease-in-out infinite alternate;
}
.scn-bottom-commands-fairies .butterfly-wing-right {
  position: absolute; bottom: 50%; right: 20%; width: 30%; height: 25%;
  background: linear-gradient(225deg, #ffaa66 0%, #cc7744 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  animation: bcf3-wing 0.8s ease-in-out infinite alternate-reverse;
}
.scn-bottom-commands-fairies .fairy-cobweb {
  position: absolute; bottom: 60%; left: 45%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #aaffdd 0%, #66ccaa 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(102,204,170,0.5);
  animation: bcf3-bob 3s ease-in-out infinite, bcf3-drift 10s linear infinite;
}
.scn-bottom-commands-fairies .moonbeam-ray {
  position: absolute; top: -10%; left: 40%;
  width: 4px; height: 130%;
  background: linear-gradient(180deg, rgba(200,200,255,0.3) 0%, transparent 100%);
  transform: rotate(5deg);
  animation: bcf3-ray 4s ease-in-out infinite alternate;
}
.scn-bottom-commands-fairies .nodding-elf {
  position: absolute; bottom: 55%; left: 30%;
  width: 10px; height: 18px;
  background: linear-gradient(180deg, #88aadd 0%, #446688 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bcf3-nod 2s ease-in-out infinite;
}
@keyframes bcf3-torso { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-3px) scaleX(0.98); } 100% { transform:translateY(0); } }
@keyframes bcf3-head { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-2px); } 100% { transform:rotate(10deg) translateY(0); } }
@keyframes bcf3-wing { 0% { transform:scaleY(1) rotate(0deg); } 100% { transform:scaleY(1.5) rotate(10deg); } }
@keyframes bcf3-bob { 0% { transform:translateY(0) scale(0.9); } 50% { transform:translateY(-5px) scale(1.1); } 100% { transform:translateY(0) scale(0.9); } }
@keyframes bcf3-drift { 0% { transform:translateX(0); } 100% { transform:translateX(40px); } }
@keyframes bcf3-ray { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes bcf3-nod { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(-2px); } 100% { transform:rotate(0deg) translateY(0); } }

/* titania-leads-bottom-away */
.scn-titania-leads-bottom-away {
  background: 
    linear-gradient(180deg, #0a0d1a 0%, #141c2e 50%, #1c2842 100%),
    radial-gradient(ellipse at 50% 15%, #446699 0%, transparent 70%);
}
.scn-titania-leads-bottom-away .moonlit-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0e20 0%, transparent 100%);
  animation: tlb4-sky 25s ease-in-out infinite alternate;
}
.scn-titania-leads-bottom-away .silver-moon {
  position: absolute; top: 8%; left: 80%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #d4e0ff 0%, #a0b4e0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(160,180,224,0.4);
  animation: tlb4-moon 20s ease-in-out infinite;
}
.scn-titania-leads-bottom-away .distant-forest {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #142030 0%, #0a1018 100%);
  clip-path: polygon(0 100%, 0 40%, 20% 30%, 40% 35%, 60% 25%, 80% 30%, 100% 20%, 100% 100%);
  animation: tlb4-forest 15s ease-in-out infinite alternate;
}
.scn-titania-leads-bottom-away .path-glow {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(90deg, transparent 0%, rgba(80,120,160,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: tlb4-path 6s ease-in-out infinite;
}
.scn-titania-leads-bottom-away .titania-silhouette {
  position: absolute; bottom: 12%; left: 30%;
  width: 20px; height: 70px;
  background: #0a0d1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tlb4-walk 6s ease-in-out infinite;
}
.scn-titania-leads-bottom-away .bottom-silhouette {
  position: absolute; bottom: 10%; left: 48%;
  width: 30px; height: 65px;
  background: #0a0d1a;
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  animation: tlb4-walk 6s ease-in-out infinite 0.5s;
}
.scn-titania-leads-bottom-away .lantern-flower {
  position: absolute; bottom: 18%; left: 35%;
  width: 8px; height: 14px;
  background: radial-gradient(circle, #ffcc88 0%, #dd9944 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(221,153,68,0.6);
  animation: tlb4-lantern 3s ease-in-out infinite alternate;
}
.scn-titania-leads-bottom-away .firefly-swarm {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,255,200,0.08) 0%, transparent 100%);
  animation: tlb4-fireflies 8s ease-in-out infinite;
}
@keyframes tlb4-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes tlb4-moon { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-5px) scale(1.03); } 100% { transform:translateX(0) scale(1); } }
@keyframes tlb4-forest { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes tlb4-path { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes tlb4-walk { 0% { transform:translateX(0) translateY(0); } 25% { transform:translateX(5px) translateY(-2px); } 50% { transform:translateX(10px) translateY(0); } 75% { transform:translateX(15px) translateY(-2px); } 100% { transform:translateX(20px) translateY(0); } }
@keyframes tlb4-lantern { 0% { transform:scale(0.9) rotate(-5deg); } 100% { transform:scale(1.1) rotate(5deg); } }
@keyframes tlb4-fireflies { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-fairy-meets-puck {
  background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 40%, #2a2a5e 70%, #1f1f4a 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a6e 0%, transparent 60%);
}

.scn-fairy-meets-puck .moon {
  position: absolute;
  top: 8%;
  right: 20%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #e0e8f0 0%, #c8d0e0 70%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,210,230,0.3), 0 0 60px 20px rgba(200,210,230,0.15);
  animation: fmp-moonglow 6s ease-in-out infinite alternate;
}

.scn-fairy-meets-puck .tree-left {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 50px;
  height: 180px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1f 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  transform-origin: bottom center;
  animation: fmp-sway 12s ease-in-out infinite;
}

.scn-fairy-meets-puck .tree-right {
  position: absolute;
  bottom: 25%;
  right: 15%;
  width: 40px;
  height: 160px;
  background: linear-gradient(180deg, #22223a 0%, #12122a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  transform-origin: bottom center;
  animation: fmp-sway 14s ease-in-out infinite reverse;
}

.scn-fairy-meets-puck .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #1e2a1e 0%, #0f1a0f 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: fmp-ground 20s ease-in-out infinite alternate;
}

.scn-fairy-meets-puck .fairy {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 16px;
  height: 28px;
  background: linear-gradient(180deg, #6088b0 0%, #305070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fmp-flutter 3s ease-in-out infinite;
}

.scn-fairy-meets-puck .puck {
  position: absolute;
  bottom: 30%;
  left: 52%;
  width: 20px;
  height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fmp-bow 5s ease-in-out infinite;
}

.scn-fairy-meets-puck .glow-flower {
  position: absolute;
  bottom: 22%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #b0d8f0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(176,216,240,0.6);
  animation: fmp-glitter 4s ease-in-out infinite alternate;
}

.scn-fairy-meets-puck .left-flower {
  left: 38%;
  animation-delay: 0s;
}

.scn-fairy-meets-puck .right-flower {
  right: 32%;
  animation-delay: 1.5s;
}

@keyframes fmp-moonglow {
  0% { box-shadow: 0 0 20px 8px rgba(200,210,230,0.2), 0 0 40px 15px rgba(200,210,230,0.1); }
  50% { box-shadow: 0 0 35px 12px rgba(200,210,230,0.4), 0 0 70px 25px rgba(200,210,230,0.2); }
  100% { box-shadow: 0 0 25px 10px rgba(200,210,230,0.3), 0 0 50px 20px rgba(200,210,230,0.15); }
}

@keyframes fmp-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-1deg); }
}

@keyframes fmp-ground {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(1); }
}

@keyframes fmp-flutter {
  0% { transform: translate(0, 0) rotate(-2deg); }
  25% { transform: translate(3px, -2px) rotate(1deg); }
  50% { transform: translate(6px, 0) rotate(2deg); }
  75% { transform: translate(3px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(-2deg); }
}

@keyframes fmp-bow {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(0, -3px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes fmp-glitter {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

/* ---- scene 2 ---- */

.scn-puck-describes-oberon-titania {
  background: linear-gradient(180deg, #0a0a28 0%, #1a1a4a 50%, #25255a 80%, #151540 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a5a 0%, transparent 60%);
}

.scn-puck-describes-oberon-titania .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0f0f3a 0%, #1a1a4a 50%, transparent 100%);
  animation: pdt-sky 15s ease-in-out infinite alternate;
}

.scn-puck-describes-oberon-titania .throne-left {
  position: absolute;
  bottom: 30%;
  left: 12%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a4a 0%, #12122a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(100,100,180,0.2);
  transform-origin: bottom center;
  animation: pdt-throne 20s ease-in-out infinite alternate;
}

.scn-puck-describes-oberon-titania .throne-right {
  position: absolute;
  bottom: 30%;
  right: 12%;
  width: 55px;
  height: 75px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(140,100,180,0.2);
  transform-origin: bottom center;
  animation: pdt-throne 22s ease-in-out infinite reverse;
}

.scn-puck-describes-oberon-titania .puck-figure {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 18px;
  height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pdt-speak 4s ease-in-out infinite;
}

.scn-puck-describes-oberon-titania .changeling {
  position: absolute;
  bottom: 29%;
  left: 50%;
  width: 12px;
  height: 20px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pdt-float 6s ease-in-out infinite;
}

.scn-puck-describes-oberon-titania .moon-crescent {
  position: absolute;
  top: 10%;
  left: 25%;
  width: 30px;
  height: 30px;
  background: transparent;
  border-radius: 50%;
  box-shadow: -8px 0 0 0 #b8c8e0, 0 0 20px 5px rgba(184,200,224,0.3);
  animation: pdt-moon 8s ease-in-out infinite alternate;
}

.scn-puck-describes-oberon-titania .stars {
  position: absolute;
  width: 4px;
  height: 4px;
  background: #d0d8f0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(208,216,240,0.6);
  animation: pdt-twinkle 3s ease-in-out infinite alternate;
}

.scn-puck-describes-oberon-titania .star-a {
  top: 12%;
  right: 30%;
  animation-delay: 0s;
}

.scn-puck-describes-oberon-titania .star-b {
  top: 20%;
  left: 40%;
  animation-delay: 1.5s;
}

@keyframes pdt-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}

@keyframes pdt-throne {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

@keyframes pdt-speak {
  0% { transform: translate(0, 0) rotate(-3deg); }
  25% { transform: translate(2px, -1px) rotate(2deg); }
  50% { transform: translate(4px, 0) rotate(-2deg); }
  75% { transform: translate(2px, -1px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(-3deg); }
}

@keyframes pdt-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}

@keyframes pdt-moon {
  0% { box-shadow: -6px 0 0 0 #b8c8e0, 0 0 15px 3px rgba(184,200,224,0.2); }
  50% { box-shadow: -10px 0 0 0 #c8d8f0, 0 0 25px 8px rgba(184,200,224,0.4); }
  100% { box-shadow: -6px 0 0 0 #b8c8e0, 0 0 15px 3px rgba(184,200,224,0.2); }
}

@keyframes pdt-twinkle {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.4; transform: scale(1); }
}

/* ---- scene 3 ---- */

.scn-puck-recognized-mischief {
  background: linear-gradient(180deg, #0d0d30 0%, #1c1c4a 40%, #2a2a5a 70%, #1a1a40 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a6a 0%, transparent 50%);
}

.scn-puck-recognized-mischief .cottage {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 120px;
  height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: prm-cottage 10s ease-in-out infinite alternate;
}

.scn-puck-recognized-mischief .chimney {
  position: absolute;
  bottom: 78%;
  left: 52%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: prm-chimney 8s ease-in-out infinite alternate;
}

.scn-puck-recognized-mischief .window {
  position: absolute;
  bottom: 32%;
  left: 42%;
  width: 20px;
  height: 24px;
  background: radial-gradient(circle, #e8c060 0%, #a08030 70%);
  border-radius: 5px;
  box-shadow: 0 0 15px 3px rgba(200,160,80,0.5);
  animation: prm-windowglow 4s ease-in-out infinite alternate;
}

.scn-puck-recognized-mischief .maiden {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prm-churn 3s ease-in-out infinite;
}

.scn-puck-recognized-mischief .puck-shadow {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 18px;
  height: 32px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prm-skulk 5s ease-in-out infinite;
}

.scn-puck-recognized-mischief .milk-churn {
  position: absolute;
  bottom: 21%;
  left: 45%;
  width: 24px;
  height: 30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 10% 10%/ 40% 40% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
  animation: prm-churn 3.5s ease-in-out infinite alternate;
}

.scn-puck-recognized-mischief .spill {
  position: absolute;
  bottom: 18%;
  left: 47%;
  width: 20px;
  height: 6px;
  background: linear-gradient(180deg, rgba(200,200,220,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: prm-spill 4s ease-in-out infinite;
}

@keyframes prm-cottage {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes prm-chimney {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

@keyframes prm-windowglow {
  0% { box-shadow: 0 0 10px 2px rgba(200,160,80,0.3); opacity:0.7; }
  50% { box-shadow: 0 0 20px 6px rgba(200,160,80,0.6); opacity:1; }
  100% { box-shadow: 0 0 12px 3px rgba(200,160,80,0.4); opacity:0.8; }
}

@keyframes prm-churn {
  0% { transform: translate(0, 0) rotate(-1deg); }
  25% { transform: translate(1px, -1px) rotate(2deg); }
  50% { transform: translate(2px, 0) rotate(-2deg); }
  75% { transform: translate(1px, -1px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(-1deg); }
}

@keyframes prm-skulk {
  0% { transform: translate(0, 0) rotate(-2deg); }
  25% { transform: translate(3px, -2px) rotate(3deg); }
  50% { transform: translate(6px, 0) rotate(-3deg); }
  75% { transform: translate(3px, -2px) rotate(2deg); }
  100% { transform: translate(0, 0) rotate(-2deg); }
}

@keyframes prm-spill {
  0% { transform: scaleX(0.8) translateX(0); opacity:0.5; }
  50% { transform: scaleX(1.2) translateX(4px); opacity:0.8; }
  100% { transform: scaleX(0.9) translateX(0); opacity:0.4; }
}

/* ---- scene 4 ---- */

.scn-puck-boasts-tricks {
  background: linear-gradient(180deg, #0c0c2e 0%, #1e1e4e 40%, #2e2e5e 70%, #1a1a40 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a5a 0%, transparent 50%),
              radial-gradient(ellipse at 70% 30%, #3a3a6a 0%, transparent 40%);
}

.scn-puck-boasts-tricks .moon {
  position: absolute;
  top: 8%;
  left: 48%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #d8e0f0 0%, #b8c8e0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(184,200,224,0.3);
  animation: pbt-moon 8s ease-in-out infinite alternate;
}

.scn-puck-boasts-tricks .horse-silhouette {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 60px;
  height: 50px;
  background: #1a1a2a;
  clip-path: polygon(0% 50%, 20% 20%, 40% 10%, 60% 20%, 70% 40%, 80% 50%, 70% 80%, 50% 90%, 30% 80%, 10% 70%);
  animation: pbt-horse 6s ease-in-out infinite;
  transform-origin: bottom center;
}

.scn-puck-boasts-tricks .crab-silhouette {
  position: absolute;
  bottom: 35%;
  right: 25%;
  width: 50px;
  height: 30px;
  background: #1a1a2a;
  clip-path: polygon(0% 50%, 20% 20%, 40% 40%, 50% 0%, 60% 40%, 80% 20%, 100% 50%, 80% 80%, 60% 60%, 50% 100%, 40% 60%, 20% 80%);
  animation: pbt-crab 4s ease-in-out infinite;
  transform-origin: center;
}

.scn-puck-boasts-tricks .gossip-bowl {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 40px;
  height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pbt-bowl 5s ease-in-out infinite alternate;
}

.scn-puck-boasts-tricks .puck-crouch {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 20px;
  height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbt-crouch 3s ease-in-out infinite;
}

.scn-puck-boasts-tricks .ale-waves {
  position: absolute;
  bottom: 30%;
  left: 46%;
  width: 30px;
  height: 8px;
  background: linear-gradient(180deg, rgba(180,160,140,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: pbt-waves 2s ease-in-out infinite alternate;
}

@keyframes pbt-moon {
  0% { box-shadow: 0 0 20px 8px rgba(184,200,224,0.2); }
  50% { box-shadow: 0 0 35px 12px rgba(184,200,224,0.4); }
  100% { box-shadow: 0 0 25px 10px rgba(184,200,224,0.3); }
}

@keyframes pbt-horse {
  0% { transform: translate(0, 0) rotate(-2deg); }
  25% { transform: translate(5px, -3px) rotate(1deg); }
  50% { transform: translate(10px, 0) rotate(2deg); }
  75% { transform: translate(5px, -2px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(-2deg); }
}

@keyframes pbt-crab {
  0% { transform: translate(0, 0) scale(1) rotate(0deg); }
  33% { transform: translate(4px, -2px) scale(1.05) rotate(5deg); }
  66% { transform: translate(-2px, 0) scale(0.95) rotate(-5deg); }
  100% { transform: translate(0, 0) scale(1) rotate(0deg); }
}

@keyframes pbt-bowl {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

@keyframes pbt-crouch {
  0% { transform: translate(0, 0) rotate(-5deg); }
  25% { transform: translate(2px, -2px) rotate(3deg); }
  50% { transform: translate(4px, 0) rotate(-4deg); }
  75% { transform: translate(2px, -2px) rotate(5deg); }
  100% { transform: translate(0, 0) rotate(-5deg); }
}

@keyframes pbt-waves {
  0% { transform: scaleX(0.8) translateX(-2px); opacity:0.3; }
  50% { transform: scaleX(1.2) translateX(2px); opacity:0.7; }
  100% { transform: scaleX(0.9) translateX(0px); opacity:0.4; }
}

.scn-puck-fetches-flower {
  background: linear-gradient(180deg, #0f1b2f 0%, #1b2a45 50%, #284060 100%), radial-gradient(ellipse at 50% 60%, #1b2a45 0%, transparent 70%);
}
.scn-puck-fetches-flower .moon-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0f1b2f 0%, #1b2a45 80%); animation: pf-sky 10s ease-in-out infinite alternate; }
.scn-puck-fetches-flower .moon { position:absolute; top:10%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #d8e4f0 0%, #aec2d6 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(168,194,214,0.4), 0 0 60px 20px rgba(168,194,214,0.2); animation: pf-moon 6s ease-in-out infinite alternate; }
.scn-puck-fetches-flower .trees-back { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #0d1a2a 0%, #141f33 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: pf-trees 20s ease-in-out infinite; }
.scn-puck-fetches-flower .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1c2a3a 0%, #0e1a24 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-puck-fetches-flower .flower-glow { position:absolute; bottom:25%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #c8e0ff 0%, #5a7a9a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(100,150,200,0.3); animation: pf-glow 3s ease-in-out infinite alternate; }
.scn-puck-fetches-flower .flower { position:absolute; bottom:20%; left:35%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-flower 5s ease-in-out infinite; }
.scn-puck-fetches-flower .puck-silhouette { position:absolute; bottom:28%; left:60%; width:22px; height:40px; background: linear-gradient(180deg, #0a0f1a 0%, #05080f 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pf-puck 4s ease-in-out infinite; }
@keyframes pf-sky { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.8 } }
@keyframes pf-moon { 0%{ transform:translate(0,0) scale(1) } 50%{ transform:translate(2px,-1px) scale(1.02) } 100%{ transform:translate(-2px,1px) scale(.98) } }
@keyframes pf-trees { 0%{ transform:translateY(0) } 50%{ transform:translateY(-2px) } 100%{ transform:translateY(1px) } }
@keyframes pf-glow { 0%{ opacity:.4; box-shadow:0 0 20px 5px rgba(100,150,200,0.2) } 50%{ opacity:.8; box-shadow:0 0 50px 20px rgba(100,150,200,0.4) } 100%{ opacity:.6; box-shadow:0 0 30px 10px rgba(100,150,200,0.3) } }
@keyframes pf-flower { 0%{ transform:rotate(-2deg) } 50%{ transform:rotate(2deg) } 100%{ transform:rotate(-1deg) } }
@keyframes pf-puck { 0%{ transform:translateX(0) translateY(0) rotate(2deg) } 25%{ transform:translateX(10px) translateY(-3px) rotate(-1deg) } 50%{ transform:translateX(20px) translateY(0) rotate(3deg) } 75%{ transform:translateX(30px) translateY(-2px) rotate(0deg) } 100%{ transform:translateX(40px) translateY(0) rotate(1deg) } }

.scn-demetrius-rejects-helena {
  background: linear-gradient(180deg, #0d1828 0%, #1a2a3e 40%, #2a3a50 100%), radial-gradient(ellipse at 60% 70%, #1a2a3e 0%, transparent 60%);
}
.scn-demetrius-rejects-helena .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0d1828 0%, #1a2a3e 100%); animation: drh-sky 12s ease-in-out infinite alternate; }
.scn-demetrius-rejects-helena .moon { position:absolute; top:12%; left:70%; width:35px; height:35px; background: radial-gradient(circle, #c8d8e8 0%, #90a8c0 70%); border-radius:50%; box-shadow: 0 0 25px 8px rgba(144,168,192,0.5); animation: drh-moon 8s ease-in-out infinite; }
.scn-demetrius-rejects-helena .trees-left { position:absolute; bottom:30%; left:0; width:40%; height:40%; background: linear-gradient(180deg, #0a1520 0%, #101e2c 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.4); animation: drh-tree-l 18s ease-in-out infinite; }
.scn-demetrius-rejects-helena .trees-right { position:absolute; bottom:30%; right:0; width:45%; height:35%; background: linear-gradient(180deg, #0a1520 0%, #101e2c 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; animation: drh-tree-r 18s ease-in-out infinite reverse; }
.scn-demetrius-rejects-helena .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1c2a38 0%, #0e1620 100%); border-radius: 10% 10% 0 0; }
.scn-demetrius-rejects-helena .demetrius-stance { position:absolute; bottom:20%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #101a28 0%, #080c14 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: drh-dem 4s ease-in-out infinite; }
.scn-demetrius-rejects-helena .helena-kneel { position:absolute; bottom:15%; left:15%; width:20px; height:32px; background: linear-gradient(180deg, #182430 0%, #0e1620 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: drh-hel 5s ease-in-out infinite; }
.scn-demetrius-rejects-helena .shadow-line { position:absolute; bottom:10%; left:10%; width:80%; height:2px; background: rgba(0,0,0,0.3); filter: blur(2px); animation: drh-shadow 6s ease-in-out infinite alternate; }
@keyframes drh-sky { 0%{ opacity:.6 } 50%{ opacity:1 } 100%{ opacity:.7 } }
@keyframes drh-moon { 0%{ transform:translate(0,0) } 50%{ transform:translate(3px,2px) } 100%{ transform:translate(-2px,-1px) } }
@keyframes drh-tree-l { 0%{ transform:translateY(0) scale(1) } 50%{ transform:translateY(-3px) scale(1.02) } 100%{ transform:translateY(2px) scale(0.98) } }
@keyframes drh-tree-r { 0%{ transform:translateY(0) scale(1) } 50%{ transform:translateY(2px) scale(0.98) } 100%{ transform:translateY(-2px) scale(1.02) } }
@keyframes drh-dem { 0%{ transform:translate(0,0) rotate(-1deg) } 25%{ transform:translate(2px,0) rotate(1deg) } 50%{ transform:translate(0,0) rotate(-2deg) } 75%{ transform:translate(-2px,0) rotate(0deg) } 100%{ transform:translate(0,0) rotate(1deg) } }
@keyframes drh-hel { 0%{ transform:translate(0,0) scale(1) } 50%{ transform:translate(3px,-2px) scale(0.95) } 100%{ transform:translate(0,0) scale(1) } }
@keyframes drh-shadow { 0%{ width:80%; opacity:.3 } 50%{ width:70%; opacity:.5 } 100%{ width:90%; opacity:.2 } }

.scn-helena-pleads-to-demetrius {
  background: linear-gradient(180deg, #0a0f1a 0%, #141c2a 50%, #1c2838 100%), radial-gradient(ellipse at 50% 80%, #141c2a 0%, transparent 70%);
}
.scn-helena-pleads-to-demetrius .dark-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0f1a 0%, #141c2a 100%); animation: hpd-sky 15s ease-in-out infinite alternate; }
.scn-helena-pleads-to-demetrius .moon { position:absolute; top:8%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #b0c4d8 0%, #7088a0 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(112,136,160,0.3); animation: hpd-moon 7s ease-in-out infinite alternate; }
.scn-helena-pleads-to-demetrius .forest-bg { position:absolute; bottom:35%; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a121e 0%, #101c2a 100%); border-radius: 20% 30% 0 0 / 30% 40% 0 0; box-shadow: inset 0 12px 25px rgba(0,0,0,0.6); animation: hpd-forest 20s ease-in-out infinite; }
.scn-helena-pleads-to-demetrius .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #141e2a 0%, #0a1018 100%); }
.scn-helena-pleads-to-demetrius .helena-crawl { position:absolute; bottom:20%; left:25%; width:22px; height:28px; background: linear-gradient(180deg, #1a2430 0%, #0e1420 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: hpd-crawl 6s ease-in-out infinite; }
.scn-helena-pleads-to-demetrius .demetrius-standing { position:absolute; bottom:18%; left:55%; width:26px; height:52px; background: linear-gradient(180deg, #0b121e 0%, #050a10 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: hpd-stand 4s ease-in-out infinite; }
.scn-helena-pleads-to-demetrius .shadow-pool { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); animation: hpd-shadow 8s ease-in-out infinite alternate; }
.scn-helena-pleads-to-demetrius .dull-glow { position:absolute; top:15%; right:30%; width:15px; height:15px; background: radial-gradient(circle, #6a809a 0%, #2a3a4a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 25px 5px rgba(106,128,154,0.2); animation: hpd-glow 5s ease-in-out infinite alternate; }
@keyframes hpd-sky { 0%{ opacity:.5 } 50%{ opacity:.8 } 100%{ opacity:.6 } }
@keyframes hpd-moon { 0%{ transform:scale(1) } 50%{ transform:scale(0.95) } 100%{ transform:scale(1.05) } }
@keyframes hpd-forest { 0%{ transform:translateY(0) } 50%{ transform:translateY(-2px) } 100%{ transform:translateY(1px) } }
@keyframes hpd-crawl { 0%{ transform:translateX(0) translateY(0) rotate(2deg) } 25%{ transform:translateX(5px) translateY(-1px) rotate(-1deg) } 50%{ transform:translateX(10px) translateY(0) rotate(3deg) } 75%{ transform:translateX(15px) translateY(-2px) rotate(0deg) } 100%{ transform:translateX(20px) translateY(0) rotate(1deg) } }
@keyframes hpd-stand { 0%{ transform:translate(0,0) rotate(-1deg) } 50%{ transform:translate(2px,0) rotate(2deg) } 100%{ transform:translate(-1px,0) rotate(-2deg) } }
@keyframes hpd-shadow { 0%{ width:60%; opacity:.3 } 50%{ width:70%; opacity:.5 } 100%{ width:55%; opacity:.2 } }
@keyframes hpd-glow { 0%{ opacity:.3 } 50%{ opacity:.7 } 100%{ opacity:.4 } }

.scn-demetrius-threatens-to-leave {
  background: linear-gradient(180deg, #0e1828 0%, #1c2a3c 50%, #2a3a4e 100%), radial-gradient(ellipse at 40% 70%, #1c2a3c 0%, transparent 60%);
}
.scn-demetrius-threatens-to-leave .moonlit-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0e1828 0%, #1c2a3c 100%); animation: dtl-sky 14s ease-in-out infinite alternate; }
.scn-demetrius-threatens-to-leave .moon { position:absolute; top:10%; right:15%; width:38px; height:38px; background: radial-gradient(circle, #c8d4e4 0%, #889cb0 70%); border-radius:50%; box-shadow: 0 0 35px 12px rgba(136,156,176,0.4); animation: dtl-moon 9s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .forest-wall { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #0b1520 0%, #14202e 100%); border-radius: 30% 40% 0 0 / 40% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: dtl-forest 22s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .path { position:absolute; bottom:0; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #1e2c3a 0%, #0e1622 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; transform: perspective(200px) rotateX(5deg); animation: dtl-path 10s ease-in-out infinite alternate; }
.scn-demetrius-threatens-to-leave .demetrius-point { position:absolute; bottom:18%; left:40%; width:26px; height:54px; background: linear-gradient(180deg, #101c28 0%, #080e16 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: dtl-point 4s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .helena-reach { position:absolute; bottom:15%; left:25%; width:22px; height:36px; background: linear-gradient(180deg, #182430 0%, #0c1420 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dtl-reach 5s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .stone { position:absolute; bottom:12%; left:55%; width:30px; height:15px; background: linear-gradient(180deg, #2a3848 0%, #14202c 100%); border-radius: 30% 30% 50% 50%; animation: dtl-stone 8s ease-in-out infinite; }
.scn-demetrius-threatens-to-leave .flicker-light { position:absolute; top:15%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #d0dcea 0%, #70849a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(112,132,154,0.3); animation: dtl-flicker 2s steps(2) infinite; }
@keyframes dtl-sky { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.8 } }
@keyframes dtl-moon { 0%{ transform:translate(0,0) scale(1) } 50%{ transform:translate(3px,2px) scale(1.03) } 100%{ transform:translate(-2px,-1px) scale(0.97) } }
@keyframes dtl-forest { 0%{ transform:translateY(0) } 50%{ transform:translateY(-3px) } 100%{ transform:translateY(1px) } }
@keyframes dtl-path { 0%{ transform:perspective(200px) rotateX(5deg) scaleY(1) } 50%{ transform:perspective(200px) rotateX(2deg) scaleY(0.98) } 100%{ transform:perspective(200px) rotateX(7deg) scaleY(1.02) } }
@keyframes dtl-point { 0%{ transform:translate(0,0) rotate(-2deg) } 25%{ transform:translate(3px,0) rotate(2deg) } 50%{ transform:translate(0,0) rotate(-3deg) } 75%{ transform:translate(-2px,0) rotate(1deg) } 100%{ transform:translate(0,0) rotate(-1deg) } }
@keyframes dtl-reach { 0%{ transform:translateY(0) scale(1) } 50%{ transform:translateY(-4px) scale(0.95) } 100%{ transform:translateY(0) scale(1) } }
@keyframes dtl-stone { 0%{ transform:translateY(0) } 50%{ transform:translateY(-1px) } 100%{ transform:translateY(0) } }
@keyframes dtl-flicker { 0%{ opacity:.4 } 50%{ opacity:1 } 100%{ opacity:.6 } }

.scn-oberon-releases-titania {
  background: linear-gradient(180deg, #0f1b2d 0%, #1a2a44 50%, #2a3a5e 100%), radial-gradient(ellipse at 70% 8%, #3a5a7e 0%, transparent 80%);
}
.scn-oberon-releases-titania .moon {
  position:absolute; top:6%; left:72%; width:50px; height:50px;
  background: radial-gradient(circle, #dce6f0 0%, #a0b4d0 70%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 30px 8px #a0b4d0, 0 0 60px 16px rgba(160,180,208,0.3);
  animation: ort-moon 12s ease-in-out infinite alternate;
}
.scn-oberon-releases-titania .clearing {
  position:absolute; bottom:25%; left:10%; right:10%; height:35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: ort-clearing 18s ease-in-out infinite alternate;
}
.scn-oberon-releases-titania .trees-back {
  position:absolute; bottom:35%; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a2a3a 0%, #0a1a2a 100%);
  clip-path: polygon(0% 100%, 5% 40%, 10% 80%, 15% 30%, 20% 70%, 25% 20%, 30% 60%, 35% 10%, 40% 50%, 45% 5%, 50% 45%, 55% 10%, 60% 50%, 65% 20%, 70% 60%, 75% 15%, 80% 55%, 85% 25%, 90% 65%, 95% 30%, 100% 100%);
  opacity:0.6; animation: ort-trees-back 8s ease-in-out infinite alternate;
}
.scn-oberon-releases-titania .trees-fore {
  position:absolute; bottom:20%; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #0a1520 0%, #050f1a 100%);
  clip-path: polygon(0% 100%, 3% 60%, 8% 90%, 12% 50%, 18% 80%, 22% 40%, 28% 70%, 32% 30%, 38% 60%, 42% 20%, 48% 50%, 52% 10%, 58% 40%, 62% 5%, 68% 35%, 72% 0%, 78% 25%, 82% 0%, 88% 15%, 92% 0%, 100% 100%);
  animation: ort-trees-fore 6s ease-in-out infinite alternate;
}
.scn-oberon-releases-titania .titania {
  position:absolute; bottom:30%; left:35%; width:20px; height:45px;
  background: linear-gradient(180deg, #c8d4e0 0%, #8898a8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ort-figure 4s ease-in-out infinite;
}
.scn-oberon-releases-titania .oberon {
  position:absolute; bottom:30%; left:55%; width:22px; height:48px;
  background: linear-gradient(180deg, #b0c0d0 0%, #607080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ort-figure 4.5s ease-in-out infinite reverse;
}
.scn-oberon-releases-titania .fairy-dust {
  position:absolute; top:40%; left:20%; right:20%; height:30%;
  background: radial-gradient(circle at 30% 50%, rgba(200,220,255,0.4) 0%, transparent 60%),
              radial-gradient(circle at 70% 30%, rgba(200,220,255,0.2) 0%, transparent 40%);
  filter: blur(8px);
  animation: ort-dust 6s ease-in-out infinite alternate;
}
.scn-oberon-releases-titania .glow {
  position:absolute; top:30%; left:40%; width:80px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,240,0.15) 0%, transparent 100%);
  filter: blur(12px);
  animation: ort-glow 8s ease-in-out infinite alternate;
}
@keyframes ort-moon { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-4px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes ort-clearing { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ort-trees-back { 0% { opacity:0.5; transform: translateX(0); } 50% { opacity:0.7; transform: translateX(2px); } 100% { opacity:0.5; transform: translateX(-2px); } }
@keyframes ort-trees-fore { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ort-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ort-dust { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes ort-glow { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-oberon-removes-ass-head {
  background: linear-gradient(180deg, #0a1420 0%, #162030 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 70%);
}
.scn-oberon-removes-ass-head .bg-deep {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0a1420 0%, #162030 100%);
  animation: ora-bg-deep 15s ease-in-out infinite alternate;
}
.scn-oberon-removes-ass-head .bg-mid {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a2535 0%, #0f1a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
.scn-oberon-removes-ass-head .bottom-figure {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%);
  width:50px; height:70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ora-bottom 5s ease-in-out infinite;
}
.scn-oberon-removes-ass-head .oberon-hand {
  position:absolute; bottom:40%; left:44%; width:12px; height:20px;
  background: linear-gradient(180deg, #c8d4e0 0%, #8898a8 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  animation: ora-hand 3s ease-in-out infinite alternate;
}
.scn-oberon-removes-ass-head .puck-figure {
  position:absolute; bottom:28%; left:30%; width:18px; height:38px;
  background: linear-gradient(180deg, #b0b8c0 0%, #606870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ora-puck 4s ease-in-out infinite;
}
.scn-oberon-removes-ass-head .moonlight-beam {
  position:absolute; top:15%; left:45%; width:80px; height:120px;
  background: linear-gradient(180deg, rgba(180,200,240,0.3) 0%, transparent 100%);
  filter: blur(10px);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: ora-beam 6s ease-in-out infinite alternate;
}
.scn-oberon-removes-ass-head .shadow {
  position:absolute; bottom:20%; left:35%; right:35%; height:15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: ora-shadow 4s ease-in-out infinite alternate;
}
@keyframes ora-bg-deep { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ora-bottom { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ora-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ora-puck { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(-2deg); } 66% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ora-beam { 0% { opacity:0.3; transform: scaleY(0.9); } 50% { opacity:0.6; transform: scaleY(1.1); } 100% { opacity:0.3; transform: scaleY(0.9); } }
@keyframes ora-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }

.scn-oberon-reconciles-titania {
  background: linear-gradient(180deg, #0f1420 0%, #1a1e30 50%, #2a2e40 100%), radial-gradient(ellipse at 50% 20%, #3a4e60 0%, transparent 80%);
}
.scn-oberon-reconciles-titania .bg-night {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0e18 0%, #1a1e2e 100%);
  animation: orc-bg 20s ease-in-out infinite alternate;
}
.scn-oberon-reconciles-titania .moon {
  position:absolute; top:5%; left:65%; width:45px; height:45px;
  background: radial-gradient(circle, #dce4f0 0%, #a0b0c8 70%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 25px 6px #a0b0c8, 0 0 50px 12px rgba(160,176,200,0.3);
  animation: orc-moon 10s ease-in-out infinite alternate;
}
.scn-oberon-reconciles-titania .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0f1a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-oberon-reconciles-titania .titania-reclining {
  position:absolute; bottom:25%; left:35%; width:40px; height:25px;
  background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: orc-recline 6s ease-in-out infinite alternate;
}
.scn-oberon-reconciles-titania .oberon-kneeling {
  position:absolute; bottom:20%; left:55%; width:18px; height:40px;
  background: linear-gradient(180deg, #b0c0d0 0%, #607080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: orc-kneel 5s ease-in-out infinite;
}
.scn-oberon-reconciles-titania .music-notes {
  position:absolute; top:30%; left:20%; right:20%; height:40%;
  background: radial-gradient(circle at 30% 40%, rgba(200,210,240,0.3) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,210,240,0.2) 0%, transparent 40%);
  filter: blur(12px);
  animation: orc-notes 8s ease-in-out infinite alternate;
}
.scn-oberon-reconciles-titania .sleeping-fairies {
  position:absolute; bottom:15%; left:20%; right:20%; height:20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,200,230,0.2) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 50%, rgba(180,200,230,0.15) 0%, transparent 50%);
  filter: blur(6px);
  animation: orc-sleep 7s ease-in-out infinite alternate;
}
.scn-oberon-reconciles-titania .glow {
  position:absolute; top:15%; left:40%; width:100px; height:50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,240,0.12) 0%, transparent 100%);
  filter: blur(20px);
  animation: orc-glow 9s ease-in-out infinite alternate;
}
@keyframes orc-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes orc-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes orc-recline { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes orc-kneel { 0% { transform: translateY(0) rotate(2deg); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes orc-notes { 0% { opacity:0.2; transform: scale(0.9) translateY(0); } 50% { opacity:0.5; transform: scale(1.1) translateY(-5px); } 100% { opacity:0.2; transform: scale(0.9) translateY(0); } }
@keyframes orc-sleep { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes orc-glow { 0% { opacity:0.3; transform: scaleX(0.9); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(0.9); } }

.scn-theseus-hippolyta-hunt {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a7a8a 40%, #8aa0b0 70%, #b8c8d0 100%), radial-gradient(ellipse at 50% 0%, #b8c8d0 0%, transparent 80%);
}
.scn-theseus-hippolyta-hunt .sky-dawn {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a6a7a 0%, #7a9aaa 50%, #aac0d0 100%);
  animation: thh-sky 15s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-hunt .sun {
  position:absolute; top:20%; left:55%; width:70px; height:70px;
  background: radial-gradient(circle, #f0e6c0 0%, #d6b880 50%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 50px 15px #d6b880, 0 0 100px 30px rgba(214,184,128,0.3);
  animation: thh-sun 10s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-hunt .trees {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a3a2a 0%, #3a4a3a 100%);
  clip-path: polygon(0% 100%, 4% 50%, 8% 80%, 12% 40%, 16% 70%, 20% 20%, 24% 60%, 28% 10%, 32% 50%, 36% 0%, 40% 40%, 44% 0%, 48% 30%, 52% 0%, 56% 20%, 60% 0%, 64% 10%, 68% 0%, 72% 5%, 76% 0%, 80% 10%, 84% 0%, 88% 5%, 92% 0%, 96% 10%, 100% 100%);
  opacity:0.7; animation: thh-trees 8s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-hunt .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-theseus-hippolyta-hunt .theseus-horse {
  position:absolute; bottom:20%; left:30%; width:40px; height:30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: thh-horse 4s ease-in-out infinite;
}
.scn-theseus-hippolyta-hunt .hippolyta-horse {
  position:absolute; bottom:20%; left:55%; width:38px; height:28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: thh-horse 4.5s ease-in-out infinite reverse;
}
.scn-theseus-hippolyta-hunt .hounds {
  position:absolute; bottom:18%; left:20%; right:10%; height:15%;
  background: radial-gradient(ellipse at 20% 50%, rgba(180,160,140,0.5) 0%, transparent 60%),
              radial-gradient(ellipse at 40% 50%, rgba(180,160,140,0.4) 0%, transparent 50%),
              radial-gradient(ellipse at 60% 50%, rgba(180,160,140,0.3) 0%, transparent 40%),
              radial-gradient(ellipse at 80% 50%, rgba(180,160,140,0.2) 0%, transparent 30%);
  filter: blur(4px);
  animation: thh-hounds 6s ease-in-out infinite alternate;
}
.scn-theseus-hippolyta-hunt .mist {
  position:absolute; top:10%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, rgba(200,210,220,0.2) 0%, transparent 100%);
  filter: blur(15px);
  animation: thh-mist 20s linear infinite alternate;
}
@keyframes thh-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes thh-sun { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-3px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes thh-trees { 0% { transform: translateX(0); opacity:0.6; } 50% { transform: translateX(2px); opacity:0.8; } 100% { transform: translateX(-2px); opacity:0.6; } }
@keyframes thh-horse { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes thh-hounds { 0% { transform: translateX(0); opacity:0.3; } 50% { transform: translateX(5px); opacity:0.6; } 100% { transform: translateX(-5px); opacity:0.3; } }
@keyframes thh-mist { 0% { opacity:0.2; transform: translateX(-10px); } 50% { opacity:0.4; transform: translateX(10px); } 100% { opacity:0.2; transform: translateX(-10px); } }

/* pyramus-stabs-himself – funny, sunlit */
.scn-pyramus-stabs-himself {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #ffa500 60%, transparent 100%),
    radial-gradient(ellipse at 50% 100%, #daa520 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-pyramus-stabs-himself .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #ffd700 0%, #87ceeb 50%, #87cefa 100%);
  animation: ps-sky 5s ease-in-out infinite alternate;
}
.scn-pyramus-stabs-himself .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #cc7722 0%, #8b5a2b 50%, #5c3a1e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-pyramus-stabs-himself .wall {
  position:absolute; bottom:25%; left:28%; width:20px; height:70px;
  background: linear-gradient(90deg, #b8860b 0%, #daa520 50%, #b8860b 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: ps-wall 4s ease-in-out infinite;
}
.scn-pyramus-stabs-himself .lion-head {
  position:absolute; bottom:35%; left:50%; width:40px; height:30px;
  background: radial-gradient(circle at 50% 40%, #dc8c4a 0%, #a0522d 60%, #5c3a1e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform-origin: 50% 100%;
  animation: ps-lion 2s ease-in-out infinite alternate;
}
.scn-pyramus-stabs-himself .pyramus {
  position:absolute; bottom:20%; left:38%; width:24px; height:50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 60%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-pyramus 1s ease-in-out infinite alternate;
}
.scn-pyramus-stabs-himself .sword {
  position:absolute; bottom:30%; left:38%; width:3px; height:40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #c0c0c0 100%);
  border-radius: 2px;
  transform-origin: 50% 0;
  transform: rotate(30deg) translateX(-4px);
  animation: ps-sword 0.8s ease-in-out infinite alternate;
}
@keyframes ps-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ps-wall { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes ps-lion { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(-3deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes ps-pyramus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-sword { 0% { transform: rotate(30deg) translateX(-4px); } 50% { transform: rotate(40deg) translateX(-2px); } 100% { transform: rotate(30deg) translateX(-4px); } }

/* thisbe-returns-laments – funny, sunlit */
.scn-thisbe-returns-laments {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f5deb3 30%, #daa520 60%, transparent 100%),
    radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 70%);
}
.scn-thisbe-returns-laments .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #ffebcd 100%);
  animation: tr-sky 8s ease-in-out infinite alternate;
}
.scn-thisbe-returns-laments .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #debc8c 0%, #8b7355 50%, #5c4033 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-thisbe-returns-laments .pyramus-body {
  position:absolute; bottom:18%; left:40%; width:22px; height:40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 60%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-body 1.5s ease-in-out infinite;
}
.scn-thisbe-returns-laments .thisbe {
  position:absolute; bottom:25%; left:50%; width:24px; height:50px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 60%, #2a1500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-thisbe 3s ease-in-out infinite alternate;
}
.scn-thisbe-returns-laments .star {
  position:absolute; top:15%; left:30%; width:6px; height:6px;
  background: #ffd700;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,215,0,.8);
  animation: tr-star 2s ease-in-out infinite alternate;
}
@keyframes tr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tr-body { 0% { transform: scaleY(1); } 25% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes tr-thisbe { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-5deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tr-star { 0% { transform: scale(0.8); opacity:0.6; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.8); opacity:0.6; } }

/* play-concludes-epilogue-refused – funny, sunlit */
.scn-play-concludes-epilogue-refused {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #ffe4b5 30%, #daa520 60%, transparent 100%),
    radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 70%);
}
.scn-play-concludes-epilogue-refused .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffebcd 50%, #ffe4b5 100%);
  animation: pc-sky 10s ease-in-out infinite alternate;
}
.scn-play-concludes-epilogue-refused .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 50%, #5c3a1e 100%);
  border-radius: 10% 10% 0 0 / 8% 8% 0 0;
}
.scn-play-concludes-epilogue-refused .grave {
  position:absolute; bottom:18%; left:45%; width:30px; height:18px;
  background: radial-gradient(ellipse at 50% 100%, #6b3a2a 0%, #3a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: pc-grave 4s ease-in-out infinite;
}
.scn-play-concludes-epilogue-refused .wall-figure {
  position:absolute; bottom:22%; left:20%; width:28px; height:50px;
  background: linear-gradient(90deg, #b8860b 0%, #daa520 50%, #b8860b 100%);
  border-radius: 6px;
  animation: pc-wall-dance 2s ease-in-out infinite alternate;
}
.scn-play-concludes-epilogue-refused .lion-figure {
  position:absolute; bottom:18%; left:55%; width:40px; height:35px;
  background: radial-gradient(circle at 50% 40%, #dc8c4a 0%, #a0522d 60%, #5c3a1e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pc-lion-dance 1.5s ease-in-out infinite alternate;
}
.scn-play-concludes-epilogue-refused .moonshine-figure {
  position:absolute; bottom:24%; left:38%; width:26px; height:48px;
  background: linear-gradient(180deg, #f5f5dc 0%, #c0c0c0 60%, #808080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pc-moonshine-dance 2.5s ease-in-out infinite alternate;
}
@keyframes pc-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pc-grave { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes pc-wall-dance { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-lion-dance { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.1) rotate(-3deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes pc-moonshine-dance { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* theseus-sends-all-to-bed – calm, dark */
.scn-theseus-sends-all-to-bed {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 50%, #2a2a5e 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a7e 0%, transparent 60%);
}
.scn-theseus-sends-all-to-bed .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #151540 50%, #2020a0 100%);
  animation: ts-sky 12s ease-in-out infinite alternate;
}
.scn-theseus-sends-all-to-bed .moon {
  position:absolute; top:12%; left:60%; width:40px; height:40px;
  background: radial-gradient(circle, #f0e68c 0%, #daa520 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(218,165,32,0.5);
  animation: ts-moon 15s linear infinite alternate;
}
.scn-theseus-sends-all-to-bed .star1 {
  position:absolute; top:8%; left:20%; width:4px; height:4px;
  background: #fff; border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: ts-star1 3s ease-in-out infinite alternate;
}
.scn-theseus-sends-all-to-bed .star2 {
  position:absolute; top:20%; left:80%; width:3px; height:3px;
  background: #ffe4b5; border-radius:50%;
  box-shadow: 0 0 4px 1px rgba(255,228,181,0.6);
  animation: ts-star2 4s ease-in-out infinite alternate;
}
.scn-theseus-sends-all-to-bed .theseus {
  position:absolute; bottom:25%; left:35%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 60%, #0a0404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-theseus 5s ease-in-out infinite alternate;
}
.scn-theseus-sends-all-to-bed .bed {
  position:absolute; bottom:15%; left:40%; width:60px; height:40px;
  background: linear-gradient(180deg, #5c4033 0%, #3a2a1a 60%, #1a0a00 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: ts-bed 8s ease-in-out infinite;
}
@keyframes ts-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ts-moon { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes ts-star1 { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes ts-star2 { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.3); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes ts-theseus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ts-bed { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* lysander-proposes-escape */
.scn-lysander-proposes-escape {
  background: linear-gradient(180deg, #4a2c1a 0%, #3a1e0e 60%, #2a1408 100%),
              radial-gradient(ellipse at 50% 80%, #8b5a3a 0%, transparent 70%);
}
.scn-lysander-proposes-escape .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a4030 0%, #4a2c1a 100%);
  border-radius: 0 0 20% 20%;
  animation: lp1-room 20s ease-in-out infinite alternate;
}
.scn-lysander-proposes-escape .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2212 0%, #2a1408 100%);
  border-radius: 30% 0 0 0;
}
.scn-lysander-proposes-escape .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 50%, #1a1a3a 100%),
              radial-gradient(ellipse at 50% 30%, #4a6a8a 0%, transparent 70%);
  border: 4px solid #5a3a1a;
  border-radius: 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-lysander-proposes-escape .candle-glow {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #c08030 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f0c060, 0 0 80px 40px rgba(240,192,96,0.3);
  animation: lp1-candle-glow 3s ease-in-out infinite alternate;
}
.scn-lysander-proposes-escape .candle-flame {
  position: absolute; bottom: 42%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffdd80 0%, #f0a030 50%, #c06010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px #f0a030;
  animation: lp1-candle-flame 0.8s ease-in-out infinite alternate;
}
.scn-lysander-proposes-escape .fig-left {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-fig-left 6s ease-in-out infinite;
}
.scn-lysander-proposes-escape .fig-right {
  position: absolute; bottom: 30%; right: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-fig-right 7s ease-in-out infinite;
}

@keyframes lp1-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lp1-candle-glow { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.85; transform: translateX(-50%) scale(0.95); } }
@keyframes lp1-candle-flame { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(-1deg) scaleY(0.95); } }
@keyframes lp1-fig-left { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } }
@keyframes lp1-fig-right { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(4px) rotate(-1deg); } }

/* lysander-wood-meeting */
.scn-lysander-wood-meeting {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 80%);
}
.scn-lysander-wood-meeting .forest-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 60%, #000a00 100%);
  border-radius: 0 0 30% 30%;
  animation: lw2-forest 30s ease-in-out infinite alternate;
}
.scn-lysander-wood-meeting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 0 0 0;
}
.scn-lysander-wood-meeting .fire-glow {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0a030 0%, #c06010 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px #f0a030, 0 0 100px 50px rgba(240,160,48,0.4);
  animation: lw2-fire-glow 4s ease-in-out infinite alternate;
}
.scn-lysander-wood-meeting .fire-flame {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffdd80 0%, #f0a030 50%, #c06010 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 6px #f0a030;
  animation: lw2-fire-flame 0.6s ease-in-out infinite alternate;
}
.scn-lysander-wood-meeting .fig-left-seated {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw2-fig-left 8s ease-in-out infinite;
}
.scn-lysander-wood-meeting .fig-right-seated {
  position: absolute; bottom: 20%; right: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw2-fig-right 9s ease-in-out infinite;
}
.scn-lysander-wood-meeting .tree-left {
  position: absolute; top: 10%; left: 10%; width: 20px; height: 80%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0a00 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: lw2-tree-sway 12s ease-in-out infinite alternate;
}
.scn-lysander-wood-meeting .tree-right {
  position: absolute; top: 5%; right: 15%; width: 25px; height: 90%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0a00 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: lw2-tree-sway 14s ease-in-out infinite alternate-reverse;
}

@keyframes lw2-forest { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lw2-fire-glow { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.9); } }
@keyframes lw2-fire-flame { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.2); } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(0.9); } }
@keyframes lw2-fig-left { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes lw2-fig-right { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(1deg); } }
@keyframes lw2-tree-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* helena-envies-hermia */
.scn-helena-envies-hermia {
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 50%, #1a0a2a 100%),
              radial-gradient(ellipse at 50% 70%, #6a4a8a 0%, transparent 70%);
}
.scn-helena-envies-hermia .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 100%);
  border-radius: 0 0 20% 20%;
  animation: he3-room 25s ease-in-out infinite alternate;
}
.scn-helena-envies-hermia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 30% 0 0 0;
}
.scn-helena-envies-hermia .window {
  position: absolute; top: 12%; left: 40%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a2a4a 0%, #4a4a6a 50%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 40%, #8a8aaa 0%, transparent 70%);
  border: 3px solid #5a4a6a;
  border-radius: 8%;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.4);
}
.scn-helena-envies-hermia .light-beam {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(200,180,220,0.4) 0%, rgba(200,180,220,0.05) 100%);
  border-radius: 20%;
  filter: blur(8px);
  animation: he3-light-pulse 6s ease-in-out infinite alternate;
}
.scn-helena-envies-hermia .fig-hermia {
  position: absolute; bottom: 25%; left: 38%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he3-fig-hermia 7s ease-in-out infinite;
}
.scn-helena-envies-hermia .fig-helena {
  position: absolute; bottom: 25%; right: 38%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he3-fig-helena 8s ease-in-out infinite;
}
.scn-helena-envies-hermia .curtain {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #6a4a6a 0%, #4a2a4a 100%);
  border-radius: 0 30% 30% 0;
  animation: he3-curtain-sway 10s ease-in-out infinite alternate;
}

@keyframes he3-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes he3-light-pulse { 0% { opacity: 0.5; transform: scaleX(0.95); } 50% { opacity: 0.8; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(0.9); } }
@keyframes he3-fig-hermia { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes he3-fig-helena { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(2deg); } }
@keyframes he3-curtain-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

/* helena-dotes-on-demetrius */
.scn-helena-dotes-on-demetrius {
  background: linear-gradient(180deg, #0a0a14 0%, #14141e 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 90%, #2a2a3e 0%, transparent 80%);
}
.scn-helena-dotes-on-demetrius .dark-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 25% 25%;
  animation: hd4-bg 30s ease-in-out infinite alternate;
}
.scn-helena-dotes-on-demetrius .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 20% 0 0 0;
}
.scn-helena-dotes-on-demetrius .wall {
  position: absolute; top: 0; right: 0; width: 20%; height: 75%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
}
.scn-helena-dotes-on-demetrius .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0a030 0%, #c07020 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #f0a030, 0 0 60px 30px rgba(240,160,48,0.3);
  animation: hd4-candle-glow 4s ease-in-out infinite alternate;
}
.scn-helena-dotes-on-demetrius .candle-flame {
  position: absolute; bottom: 37%; left: 50%; width: 6px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffdd80 0%, #f0a030 50%, #c06010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px #f0a030;
  animation: hd4-candle-flame 0.7s ease-in-out infinite alternate;
}
.scn-helena-dotes-on-demetrius .fig-helena {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd4-fig-helena 6s ease-in-out infinite;
}
.scn-helena-dotes-on-demetrius .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  transform: skewX(-10deg);
  animation: hd4-shadow 6s ease-in-out infinite;
}

@keyframes hd4-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hd4-candle-glow { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.9); } }
@keyframes hd4-candle-flame { 0% { transform: translateX(-50%) rotate(-4deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.15); } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(0.95); } }
@keyframes hd4-fig-helena { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes hd4-shadow { 0%,100% { transform: skewX(-10deg) translateX(0); } 33% { transform: skewX(-12deg) translateX(3px); } 66% { transform: skewX(-8deg) translateX(-2px); } }

.scn-lf { background: linear-gradient(180deg, #1a2440 0%, #2a3550 40%, #3a4560 100%), radial-gradient(ellipse at 50% 100%, #3a4560 0%, transparent 70%); }
.scn-lf .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3550 0%, transparent 100%); animation: lf-sky 12s ease-in-out infinite alternate; }
.scn-lf .moon { position:absolute; top:8%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #e0e8f0 0%, #b0b8c0 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(180,190,210,.5); animation: lf-moon 15s ease-in-out infinite alternate; }
.scn-lf .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: lf-hills 20s ease-in-out infinite alternate; }
.scn-lf .stage { position:absolute; bottom:20%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-lf .lion-body { position:absolute; bottom:18%; left:40%; width:40px; height:25px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: lf-lion-bounce 3s ease-in-out infinite; }
.scn-lf .lion-head { position:absolute; bottom:22%; left:42%; width:18px; height:18px; background: radial-gradient(circle, #6a6a3a 0%, #4a4a1a 100%); border-radius: 50%; animation: lf-lion-nod 2s ease-in-out infinite; box-shadow: 0 0 0 4px #5a5a2a; }
.scn-lf .lady { position:absolute; bottom:16%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lf-lady-shake .8s ease-in-out infinite alternate; }
.scn-lf .lantern { position:absolute; bottom:24%; left:35%; width:6px; height:6px; background:#c8a868; border-radius:50%; box-shadow: 0 0 16px 6px rgba(200,168,104,.6); animation: lf-lantern 4s ease-in-out infinite alternate; }
.scn-lf .bush { position:absolute; bottom:22%; left:30%; width:35px; height:20px; background: radial-gradient(ellipse at 50% 100%, #3a4a2a 0%, #1a2a0a 100%); border-radius: 50%; filter: blur(3px); animation: lf-sway 6s ease-in-out infinite; }
@keyframes lf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lf-moon { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-3px) } }
@keyframes lf-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lf-lion-bounce { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.02) } 50% { transform: translateY(-4px) scale(1.05) } 75% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes lf-lion-nod { 0% { transform: rotate(0) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0) } }
@keyframes lf-lady-shake { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes lf-lantern { 0% { transform: translate(0,0) rotate(-5deg); opacity:.8 } 50% { transform: translate(1px,-1px) rotate(3deg); opacity:1 } 100% { transform: translate(0,0) rotate(-2deg); opacity:.9 } }
@keyframes lf-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }

.scn-bs { background: linear-gradient(180deg, #1a2440 0%, #2a3550 40%, #4a5570 100%), radial-gradient(ellipse at 50% 100%, #4a5570 0%, transparent 70%); }
.scn-bs .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3550 0%, transparent 100%); animation: bs-sky 12s ease-in-out infinite alternate; }
.scn-bs .moon { position:absolute; top:6%; left:20%; width:22px; height:22px; background: radial-gradient(circle, #e8eef8 0%, #b8c0d0 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(180,190,210,.5); animation: bs-moon 20s ease-in-out infinite alternate; }
.scn-bs .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 50% 0 0 / 70% 60% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.6); animation: bs-hills 18s ease-in-out infinite alternate; }
.scn-bs .stage { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; }
.scn-bs .figure { position:absolute; bottom:18%; left:42%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-figure 3s ease-in-out infinite; }
.scn-bs .lion-mask { position:absolute; bottom:26%; left:38%; width:20px; height:16px; background: radial-gradient(circle, #7a7a4a 0%, #5a5a2a 100%); border-radius: 50%; box-shadow: 0 0 0 4px #4a4a1a; animation: bs-mask 2s ease-in-out infinite alternate; }
.scn-bs .lantern { position:absolute; bottom:24%; left:55%; width:6px; height:6px; background:#b8a868; border-radius:50%; box-shadow: 0 0 18px 6px rgba(184,168,104,.5); animation: bs-lantern 4s ease-in-out infinite alternate; }
@keyframes bs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bs-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(1.02) } 100% { transform: translateX(2px) scale(1) } }
@keyframes bs-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bs-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(12px) rotate(-5deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes bs-mask { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes bs-lantern { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-4deg) } }

.scn-wp { background: linear-gradient(180deg, #1a2840 0%, #2a3850 40%, #4a5870 100%), radial-gradient(ellipse at 50% 100%, #4a5870 0%, transparent 70%); }
.scn-wp .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3850 0%, transparent 100%); animation: wp-sky 12s ease-in-out infinite alternate; }
.scn-wp .moon { position:absolute; top:10%; right:10%; width:18px; height:18px; background: radial-gradient(circle, #e0e8f0 0%, #a0a8b8 100%); border-radius:50%; box-shadow: 0 0 35px 8px rgba(160,168,184,.4); animation: wp-moon 16s ease-in-out infinite alternate; }
.scn-wp .stage { position:absolute; bottom:20%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; }
.scn-wp .wall { position:absolute; bottom:18%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 50%, #4a4a4a 100%); border-radius: 10% 10% 10% 10%; box-shadow: inset 0 0 8px rgba(0,0,0,.5); animation: wp-wall 8s ease-in-out infinite alternate; }
.scn-wp .chink { position:absolute; bottom:32%; left:48%; width:4px; height:10px; background: #1a1a2a; border-radius: 20%; box-shadow: 0 0 12px 2px rgba(200,180,120,.6); animation: wp-chink-glow 3s ease-in-out infinite alternate; }
.scn-wp .peeker-fig { position:absolute; bottom:17%; left:45%; width:10px; height:18px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-peek 4s ease-in-out infinite; }
.scn-wp .approach-fig { position:absolute; bottom:16%; left:60%; width:12px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-approach 5s ease-in-out infinite; }
.scn-wp .bush { position:absolute; bottom:20%; left:30%; width:30px; height:16px; background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a2a0a 100%); border-radius: 50%; filter: blur(3px); animation: wp-sway 7s ease-in-out infinite; }
@keyframes wp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wp-moon { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes wp-wall { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) } }
@keyframes wp-chink-glow { 0% { box-shadow: 0 0 8px 1px rgba(200,180,120,.5) } 50% { box-shadow: 0 0 16px 4px rgba(200,180,120,.8) } 100% { box-shadow: 0 0 10px 2px rgba(200,180,120,.4) } }
@keyframes wp-peek { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wp-approach { 0% { transform: translateX(0) } 30% { transform: translateX(-4px) } 60% { transform: translateX(-8px) } 100% { transform: translateX(-12px) } }
@keyframes wp-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

.scn-mb { background: linear-gradient(180deg, #142030 0%, #243040 40%, #3a4a6a 100%), radial-gradient(ellipse at 50% 100%, #3a4a6a 0%, transparent 70%); }
.scn-mb .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #243040 0%, transparent 100%); animation: mb-sky 14s ease-in-out infinite alternate; }
.scn-mb .moon { position:absolute; top:5%; left:45%; width:24px; height:24px; background: radial-gradient(circle, #eef4fc 0%, #c0c8d8 100%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(180,190,210,.3); animation: mb-moon 20s ease-in-out infinite alternate; }
.scn-mb .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5); animation: mb-hills 18s ease-in-out infinite alternate; }
.scn-mb .stage { position:absolute; bottom:18%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40%; }
.scn-mb .pyramus { position:absolute; bottom:20%; left:30%; width:14px; height:28px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-pyramus 4s ease-in-out infinite; }
.scn-mb .thisbe { position:absolute; bottom:19%; left:50%; width:12px; height:25px; background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-thisbe 5s ease-in-out infinite alternate; }
.scn-mb .bottom { position:absolute; bottom:18%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-bottom 3s ease-in-out infinite; }
.scn-mb .other { position:absolute; bottom:17%; left:65%; width:12px; height:22px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-other 6s ease-in-out infinite; }
.scn-mb .scroll { position:absolute; bottom:26%; left:22%; width:20px; height:6px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 10% 50% 50% 10%; transform: rotate(-20deg); animation: mb-scroll 4s ease-in-out infinite alternate; }
@keyframes mb-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mb-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.03) } 100% { transform: translateY(2px) scale(1) } }
@keyframes mb-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mb-pyramus { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(4px) rotate(5deg) } 75% { transform: translateX(6px) rotate(0) } 100% { transform: translateX(8px) rotate(-3deg) } }
@keyframes mb-thisbe { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(8deg) } 100% { transform: translateY(0) rotate(-4deg) } }
@keyframes mb-bottom { 0% { transform: translateX(0) scale(1) rotate(0) } 33% { transform: translateX(2px) scale(1.05) rotate(10deg) } 66% { transform: translateX(-2px) scale(1.05) rotate(-10deg) } 100% { transform: translateX(0) scale(1) rotate(0) } }
@keyframes mb-other { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes mb-scroll { 0% { transform: rotate(-25deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(2px) } 100% { transform: rotate(-20deg) translateX(0) } }

/* Scene: hermia-furies-demetrius (dark, moonlit, intense) */
.scn-hermia-furies-demetrius {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #12102e 30%, #1a1840 60%, #0e0c20 100%),
    radial-gradient(ellipse at 50% 20%, #2a2870 0%, transparent 60%);
}
.scn-hermia-furies-demetrius .hm-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0c2a 0%, #161440 40%, transparent 100%);
  animation: hm-sky 14s ease-in-out infinite alternate;
}
.scn-hermia-furies-demetrius .hm-moon {
  position: absolute; top: 8%; left: 50%; width: 70px; height: 70px; transform: translateX(-50%);
  background: radial-gradient(circle, #d0d8f0 0%, #a0a8d0 60%, #6068a0 100%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(160,168,208,0.5), 0 0 120px 60px rgba(96,104,160,0.2);
  animation: hm-moon 20s ease-in-out infinite alternate;
}
.scn-hermia-furies-demetrius .hm-moonrays {
  position: absolute; top: 0; left: 50%; width: 2px; height: 100%; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(208,216,240,0.3) 0%, transparent 70%);
  box-shadow: -40px 0 8px 2px rgba(208,216,240,0.08), 40px 0 8px 2px rgba(208,216,240,0.08);
  animation: hm-rays 8s ease-in-out infinite alternate;
}
.scn-hermia-furies-demetrius .hm-tree-left {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 85%;
  background: linear-gradient(180deg, #0a0a14 0%, #141420 50%, #1a1a2e 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0; transform-origin: bottom left;
  animation: hm-tree 16s ease-in-out infinite alternate;
}
.scn-hermia-furies-demetrius .hm-tree-right {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 85%;
  background: linear-gradient(180deg, #0a0a14 0%, #141420 50%, #1a1a2e 100%);
  border-radius: 40% 0 0 0 / 80% 0 0 0; transform-origin: bottom right;
  animation: hm-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-hermia-furies-demetrius .hm-figure-hermia {
  position: absolute; bottom: 14%; left: 38%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1e1e3a 0%, #141428 60%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: hm-hermia 4s ease-in-out infinite;
}
.scn-hermia-furies-demetrius .hm-figure-demetrius {
  position: absolute; bottom: 16%; left: 54%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #222244 0%, #181838 60%, #0e0e28 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center;
  animation: hm-demetrius 6s ease-in-out infinite;
}
.scn-hermia-furies-demetrius .hm-shadow {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: hm-shadow 5s ease-in-out infinite alternate;
}
.scn-hermia-furies-demetrius .hm-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(160,168,208,0.08) 0%, transparent 100%);
  filter: blur(12px); animation: hm-mist 22s ease-in-out infinite alternate;
}
@keyframes hm-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hm-moon { 0% { transform: translateX(-50%) scale(1); filter: brightness(1); } 50% { transform: translateX(-45%) scale(1.03); filter: brightness(1.1); } 100% { transform: translateX(-55%) scale(0.97); filter: brightness(0.9); } }
@keyframes hm-rays { 0% { opacity: 0.4; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 0.8; transform: translateX(-50%) rotate(0deg); } 100% { opacity: 0.3; transform: translateX(-50%) rotate(3deg); } }
@keyframes hm-tree { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.01) scaleX(0.99); } 100% { transform: scaleY(0.99) scaleX(1.01); } }
@keyframes hm-hermia { 0% { transform: translateX(0) translateY(0) rotate(-4deg); } 30% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-1px) translateY(1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(-4deg); } }
@keyframes hm-demetrius { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-3px) rotate(-3deg); } 70% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes hm-mist { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-4px); } 100% { opacity: 0.2; transform: translateY(4px); } }

/* Scene: demetrius-denies-killing (calm, moonlit, gentle) */
.scn-demetrius-denies-killing {
  background:
    linear-gradient(180deg, #0c0e2e 0%, #181c46 30%, #242860 60%, #181c46 100%),
    radial-gradient(ellipse at 50% 15%, #3a40a0 0%, transparent 70%);
}
.scn-demetrius-denies-killing .dm-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #121640 0%, #1a2050 40%, transparent 100%);
  animation: dm-sky 20s ease-in-out infinite alternate;
}
.scn-demetrius-denies-killing .dm-moon {
  position: absolute; top: 6%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(circle, #e0e8ff 0%, #c0c8f0 40%, #8890c0 100%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(192,200,240,0.4), 0 0 160px 80px rgba(136,144,192,0.15);
  animation: dm-moon 24s ease-in-out infinite alternate;
}
.scn-demetrius-denies-killing .dm-stars {
  position: absolute; top: 4%; left: 0; right: 0; height: 20%;
  background: radial-gradient(2px 2px at 20% 30%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 10%, #ffffff 0%, transparent 100%),
              radial-gradient(1.5px 1.5px at 60% 25%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 15%, #ffffff 0%, transparent 100%);
  animation: dm-stars 30s linear infinite;
}
.scn-demetrius-denies-killing .dm-tree-left {
  position: absolute; bottom: 0; left: 0; width: 25%; height: 80%;
  background: linear-gradient(180deg, #0e0e28 0%, #16163a 50%, #1a1a44 100%);
  border-radius: 0 50% 0 0 / 0 90% 0 0; animation: dm-tree 22s ease-in-out infinite alternate;
}
.scn-demetrius-denies-killing .dm-tree-right {
  position: absolute; bottom: 0; right: 0; width: 25%; height: 80%;
  background: linear-gradient(180deg, #0e0e28 0%, #16163a 50%, #1a1a44 100%);
  border-radius: 50% 0 0 0 / 90% 0 0 0; animation: dm-tree 22s ease-in-out infinite alternate-reverse;
}
.scn-demetrius-denies-killing .dm-figure-demetrius {
  position: absolute; bottom: 16%; left: 52%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #202058 0%, #181848 60%, #101038 100%);
  border-radius: 50% 50% 30% 30% / 65% 65% 35% 35%; transform-origin: bottom center;
  animation: dm-demetrius 8s ease-in-out infinite;
}
.scn-demetrius-denies-killing .dm-figure-hermia {
  position: absolute; bottom: 14%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a4e 0%, #121242 60%, #0a0a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: dm-hermia 7s ease-in-out infinite;
}
.scn-demetrius-denies-killing .dm-stream {
  position: absolute; bottom: 8%; left: 36%; right: 36%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(160,180,255,0.3) 30%, rgba(160,180,255,0.5) 50%, rgba(160,180,255,0.3) 70%, transparent 100%);
  filter: blur(2px); animation: dm-stream 5s ease-in-out infinite alternate;
}
.scn-demetrius-denies-killing .dm-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, rgba(192,200,240,0.06) 0%, transparent 100%);
  filter: blur(18px); animation: dm-mist 18s ease-in-out infinite alternate;
}
@keyframes dm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dm-moon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(1.02); box-shadow: 0 0 90px 45px rgba(192,200,240,0.5); } 100% { transform: translateX(-52%) scale(0.98); } }
@keyframes dm-stars { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.5; transform: translateY(0); } }
@keyframes dm-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(0.995); } }
@keyframes dm-demetrius { 0% { transform: translateX(0) rotate(2deg); } 40% { transform: translateX(4px) rotate(-1deg); } 70% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes dm-hermia { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dm-stream { 0% { opacity: 0.3; transform: scaleX(0.8); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.2; transform: scaleX(0.9); } }
@keyframes dm-mist { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-3px); } 100% { opacity: 0.1; transform: translateY(3px); } }

/* Scene: oberon-corrects-error (tense, moonlit, sharp) */
.scn-oberon-corrects-error {
  background:
    linear-gradient(180deg, #0a0a1c 0%, #141034 30%, #1a1450 60%, #0e0a28 100%),
    radial-gradient(ellipse at 50% 25%, #302870 0%, transparent 60%);
}
.scn-oberon-corrects-error .oc-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0a2a 0%, #161448 40%, transparent 100%);
  animation: oc-sky 8s ease-in-out infinite alternate;
}
.scn-oberon-corrects-error .oc-moon {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px; transform: translateX(-50%);
  background: radial-gradient(circle, #c8d0ff 0%, #a0a8e0 40%, #6068a0 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(160,168,224,0.4), 0 0 80px 40px rgba(96,104,160,0.15);
  animation: oc-moon 12s ease-in-out infinite alternate;
}
.scn-oberon-corrects-error .oc-branches-top {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, #0a0a1a 0%, transparent 100%),
    radial-gradient(ellipse 60% 50% at 80% 0%, #0a0a1a 0%, transparent 100%);
  animation: oc-branches 10s ease-in-out infinite alternate;
}
.scn-oberon-corrects-error .oc-tree-left {
  position: absolute; bottom: 0; left: 0; width: 28%; height: 90%;
  background: linear-gradient(180deg, #0e0e22 0%, #16162e 50%, #1a1a3a 100%);
  border-radius: 0 40% 0 0 / 0 90% 0 0; transform-origin: bottom left;
  animation: oc-tree 14s ease-in-out infinite alternate;
}
.scn-oberon-corrects-error .oc-tree-right {
  position: absolute; bottom: 0; right: 0; width: 28%; height: 90%;
  background: linear-gradient(180deg, #0e0e22 0%, #16162e 50%, #1a1a3a 100%);
  border-radius: 40% 0 0 0 / 90% 0 0 0; transform-origin: bottom right;
  animation: oc-tree 14s ease-in-out infinite alternate-reverse;
}
.scn-oberon-corrects-error .oc-figure-oberon {
  position: absolute; bottom: 18%; left: 48%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #2a2868 0%, #1e1c50 50%, #121040 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center;
  animation: oc-oberon 3s ease-in-out infinite;
}
.scn-oberon-corrects-error .oc-figure-puck {
  position: absolute; bottom: 14%; left: 32%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1850 0%, #121040 60%, #0a0830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: oc-puck 2.5s ease-in-out infinite;
}
.scn-oberon-corrects-error .oc-particles {
  position: absolute; top: 20%; left: 40%; right: 40%; height: 60%;
  background:
    radial-gradient(2px 2px at 30% 40%, #c0c8ff 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 50% 60%, #a0a8e0 0%, transparent 100%),
    radial-gradient(2px 2px at 70% 30%, #c0c8ff 0%, transparent 100%),
    radial-gradient(1px 1px at 40% 80%, #a0a8e0 0%, transparent 100%);
  animation: oc-particles 4s ease-in-out infinite alternate;
}
.scn-oberon-corrects-error .oc-shadow {
  position: absolute; bottom: 10%; left: 28%; right: 28%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: oc-shadow 3s ease-in-out infinite alternate;
}
@keyframes oc-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes oc-moon { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-45%) scale(1.05) rotate(2deg); filter: brightness(1.2); } 100% { transform: translateX(-55%) scale(0.95) rotate(-2deg); } }
@keyframes oc-branches { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes oc-tree { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(0.98) scaleX(1.02); } }
@keyframes oc-oberon { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 30% { transform: translateX(3px) rotate(3deg) scaleY(1.02); } 60% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(-2deg) scaleY(1); } }
@keyframes oc-puck { 0% { transform: translateX(0) translateY(0) rotate(5deg) scaleX(1); } 25% { transform: translateX(-4px) translateY(-3px) rotate(-3deg) scaleX(0.95); } 50% { transform: translateX(3px) translateY(-1px) rotate(4deg) scaleX(1.05); } 75% { transform: translateX(-2px) translateY(-4px) rotate(-2deg) scaleX(0.95); } 100% { transform: translateX(0) translateY(0) rotate(5deg) scaleX(1); } }
@keyframes oc-particles { 0% { opacity: 0.3; transform: translateY(0) scale(1); } 50% { opacity: 0.8; transform: translateY(-10px) scale(1.2); } 100% { opacity: 0.2; transform: translateY(8px) scale(0.8); } }
@keyframes oc-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.15); } 100% { opacity: 0.3; transform: scaleX(0.85); } }

/* Scene: oberon-charms-demetrius (calm, moonlit, magical) */
.scn-oberon-charms-demetrius {
  background:
    linear-gradient(180deg, #121040 0%, #1e1c58 30%, #2a2870 60%, #1e1c58 100%),
    radial-gradient(ellipse at 50% 20%, #4040a0 0%, transparent 70%);
}
.scn-oberon-charms-demetrius .od-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #141248 0%, #1e1c60 40%, transparent 100%);
  animation: od-sky 18s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .od-venus-star {
  position: absolute; top: 6%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffffff 0%, #ffffc0 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px rgba(255,255,192,0.6), 0 0 40px 16px rgba(255,255,192,0.3);
  animation: od-venus 5s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .od-tree-left {
  position: absolute; bottom: 0; left: 0; width: 22%; height: 82%;
  background: linear-gradient(180deg, #0e0e2a 0%, #16164a 50%, #1a1a54 100%);
  border-radius: 0 50% 0 0 / 0 90% 0 0; animation: od-tree 20s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .od-tree-right {
  position: absolute; bottom: 0; right: 0; width: 22%; height: 82%;
  background: linear-gradient(180deg, #0e0e2a 0%, #16164a 50%, #1a1a54 100%);
  border-radius: 50% 0 0 0 / 90% 0 0 0; animation: od-tree 20s ease-in-out infinite alternate-reverse;
}
.scn-oberon-charms-demetrius .od-figure-demetrius {
  position: absolute; bottom: 12%; left: 42%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1e1c58 0%, #161450 60%, #0e0c40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: od-demetrius 10s ease-in-out infinite;
}
.scn-oberon-charms-demetrius .od-figure-oberon {
  position: absolute; bottom: 18%; left: 52%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a2870 0%, #1e1c58 50%, #141048 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center;
  animation: od-oberon 9s ease-in-out infinite;
}
.scn-oberon-charms-demetrius .od-flower-glow {
  position: absolute; bottom: 32%; left: 47%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d0a0ff 0%, #9060d0 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 24px 10px rgba(208,160,255,0.5), 0 0 60px 24px rgba(144,96,208,0.2);
  animation: od-flower 4s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .od-magic-dust {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 70%;
  background:
    radial-gradient(1.5px 1.5px at 30% 20%, #d0a0ff 0%, transparent 100%),
    radial-gradient(1px 1px at 45% 35%, #c080e0 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 60% 25%, #d0a0ff 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 50%, #c080e0 0%, transparent 100%);
  animation: od-dust 7s ease-in-out infinite alternate;
}
.scn-oberon-charms-demetrius .od-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(192,160,240,0.06) 0%, transparent 100%);
  filter: blur(20px); animation: od-mist 16s ease-in-out infinite alternate;
}
@keyframes od-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes od-venus { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 16px 6px rgba(255,255,192,0.6); } 50% { transform: scale(1.3) translateY(-3px); box-shadow: 0 0 24px 10px rgba(255,255,192,0.8); } 100% { transform: scale(0.9) translateY(0); box-shadow: 0 0 12px 4px rgba(255,255,192,0.4); } }
@keyframes od-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.004); } 100% { transform: scaleY(0.996); } }
@keyframes od-demetrius { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 40% { transform: translateX(2px) rotate(1deg) scaleY(1.01); } 70% { transform: translateX(-1px) rotate(-1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes od-oberon { 0% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(3px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes od-flower { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 20px 8px rgba(208,160,255,0.4); } 50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 36px 16px rgba(208,160,255,0.7); } 100% { transform: scale(0.9); opacity: 0.6; box-shadow: 0 0 16px 6px rgba(208,160,255,0.3); } }
@keyframes od-dust { 0% { opacity: 0.2; transform: translateY(0) scale(1); } 50% { opacity: 0.7; transform: translateY(-8px) scale(1.1); } 100% { opacity: 0.1; transform: translateY(6px) scale(0.9); } }
@keyframes od-mist { 0% { opacity: 0.15; transform: translateY(0); } 50% { opacity: 0.4; transform: translateY(-3px); } 100% { opacity: 0.1; transform: translateY(3px); } }

/* Scene: helena-thinks-mocked */
.scn-helena-thinks-mocked{background:linear-gradient(180deg,#0d0d2b,#16163a,#202050),radial-gradient(ellipse at 50% 20%,#3a4a6a,transparent 70%)}
.scn-helena-thinks-mocked .moon{position:absolute;top:8%;left:48%;width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d0d8e0,#a0a8b8);box-shadow:0 0 30px 8px rgba(160,168,184,.4);animation:hm-mp 6s ease-in-out infinite alternate}
.scn-helena-thinks-mocked .figure{position:absolute;bottom:28%;left:42%;width:18px;height:42px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:hm-fs 4s ease-in-out infinite}
.scn-helena-thinks-mocked .tree{position:absolute;bottom:18%;left:12%;width:24px;height:70px;background:linear-gradient(180deg,#1a2a1a,#0f1a0f,#050a05);border-radius:10% 10% 20% 20%/40% 40% 60% 60%;box-shadow:inset 0 0 8px rgba(0,0,0,.6);animation:hm-ts 7s ease-in-out infinite alternate}
.scn-helena-thinks-mocked .ground{position:absolute;bottom:0;left:0;right:0;height:28%;background:linear-gradient(180deg,#1a2a1a,#0d1a0d);border-radius:40% 60% 0/80% 70% 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.5);animation:hm-gb 12s ease-in-out infinite alternate}
.scn-helena-thinks-mocked .shadow{position:absolute;bottom:28%;left:40%;width:28px;height:8px;background:rgba(0,0,0,.4);border-radius:50%;filter:blur(3px);animation:hm-sp 4s ease-in-out infinite}
.scn-helena-thinks-mocked .cloud-a{position:absolute;top:15%;left:-60px;width:70px;height:16px;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.05));border-radius:50%;filter:blur(5px);animation:hm-cd 35s linear infinite}
@keyframes hm-mp{0%{box-shadow:0 0 20px 5px rgba(160,168,184,.3)}50%{box-shadow:0 0 40px 12px rgba(160,168,184,.6)}100%{box-shadow:0 0 25px 8px rgba(160,168,184,.4)}}
@keyframes hm-fs{0%{transform:translateX(0) rotate(-2deg)}50%{transform:translateX(3px) rotate(2deg)}100%{transform:translateX(0) rotate(-2deg)}}
@keyframes hm-ts{0%{transform:rotate(-3deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-3deg)}}
@keyframes hm-gb{0%{transform:scaleY(1)}50%{transform:scaleY(1.015)}100%{transform:scaleY(1)}}
@keyframes hm-sp{0%{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}100%{opacity:.3;transform:scale(1)}}
@keyframes hm-cd{0%{transform:translateX(0)}100%{transform:translateX(120vw)}}

/* Scene: hermia-wakes-alone */
.scn-hermia-wakes-alone{background:linear-gradient(180deg,#0a0a25,#12123a,#1c1c50),radial-gradient(ellipse at 60% 30%,#2a3a5a,transparent 70%)}
.scn-hermia-wakes-alone .moon{position:absolute;top:10%;right:20%;width:45px;height:45px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#c8d0d8,#9098a8);box-shadow:0 0 25px 6px rgba(144,152,168,.5);animation:hwa-mp 7s ease-in-out infinite alternate}
.scn-hermia-wakes-alone .figure{position:absolute;bottom:22%;left:45%;width:24px;height:36px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform:rotate(20deg);transform-origin:center;animation:hwa-ft 3s ease-in-out infinite}
.scn-hermia-wakes-alone .serpent{position:absolute;top:38%;left:30%;width:35px;height:8px;background:linear-gradient(90deg,#2a3a2a,#1a2a1a);border-radius:50% 50% 20% 20%/50% 50% 30% 30%;transform:rotate(-25deg);animation:hwa-ss 5s ease-in-out infinite}
.scn-hermia-wakes-alone .ground{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#1a2a1a,#0d1a0d);border-radius:50% 50% 0/80% 70% 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.5);animation:hwa-gb 10s ease-in-out infinite alternate}
.scn-hermia-wakes-alone .tree{position:absolute;bottom:20%;right:5%;width:20px;height:80px;background:linear-gradient(180deg,#1a2a1a,#0f1a0f,#050a05);border-radius:10% 10% 20% 20%/40% 40% 60% 60%;box-shadow:inset 0 0 8px rgba(0,0,0,.6);animation:hwa-ts 8s ease-in-out infinite alternate}
.scn-hermia-wakes-alone .rock{position:absolute;bottom:26%;left:10%;width:25px;height:18px;background:linear-gradient(180deg,#2a2a3a,#1a1a2a);border-radius:30% 30% 50% 50%/40% 40% 60% 60%;animation:hwa-rk 12s ease-in-out infinite alternate}
.scn-hermia-wakes-alone .cloud-a{position:absolute;top:12%;left:-50px;width:60px;height:14px;background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,.03));border-radius:50%;filter:blur(4px);animation:hwa-cd1 40s linear infinite}
.scn-hermia-wakes-alone .cloud-b{position:absolute;top:20%;right:-40px;width:50px;height:12px;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.02));border-radius:50%;filter:blur(4px);animation:hwa-cd2 50s linear infinite}
@keyframes hwa-mp{0%{box-shadow:0 0 20px 5px rgba(144,152,168,.3)}50%{box-shadow:0 0 35px 10px rgba(144,152,168,.6)}100%{box-shadow:0 0 25px 8px rgba(144,152,168,.4)}}
@keyframes hwa-ft{0%{transform:rotate(20deg) scale(1)}50%{transform:rotate(23deg) scale(1.02)}100%{transform:rotate(20deg) scale(1)}}
@keyframes hwa-ss{0%{transform:translateX(0) rotate(-25deg)}50%{transform:translateX(8px) rotate(5deg)}100%{transform:translateX(0) rotate(-25deg)}}
@keyframes hwa-gb{0%{transform:scaleY(1)}50%{transform:scaleY(1.015)}100%{transform:scaleY(1)}}
@keyframes hwa-ts{0%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}100%{transform:rotate(-2deg)}}
@keyframes hwa-rk{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@keyframes hwa-cd1{0%{transform:translateX(0)}100%{transform:translateX(130vw)}}
@keyframes hwa-cd2{0%{transform:translateX(0)}100%{transform:translateX(-120vw)}}

/* Scene: mechanicals-rehearse-wood */
.scn-mechanicals-rehearse-wood{background:linear-gradient(180deg,#121a2a,#1a2a3a,#22334a),radial-gradient(ellipse at 50% 15%,#3a5a6a,transparent 60%)}
.scn-mechanicals-rehearse-wood .moon{position:absolute;top:6%;left:52%;width:55px;height:55px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d0d8e0,#a0a8b8);box-shadow:0 0 35px 10px rgba(160,168,184,.5);animation:mrw-mp 8s ease-in-out infinite alternate}
.scn-mechanicals-rehearse-wood .ground{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,#1a2a1a,#0d1a0d);border-radius:20% 80% 0/40% 60% 0;box-shadow:inset 0 6px 15px rgba(0,0,0,.4);animation:mrw-gb 10s ease-in-out infinite alternate}
.scn-mechanicals-rehearse-wood .stage{position:absolute;bottom:18%;left:15%;width:70%;height:15%;background:linear-gradient(180deg,#2a4a2a,#1a3a1a);border-radius:50% 50% 0/60% 60% 0;box-shadow:0 4px 10px rgba(0,0,0,.3);animation:mrw-sp 8s ease-in-out infinite alternate}
.scn-mechanicals-rehearse-wood .tree{position:absolute;bottom:15%;left:5%;width:18px;height:90px;background:linear-gradient(180deg,#1a2a1a,#0f1a0f,#050a05);border-radius:10% 10% 20% 20%/40% 40% 60% 60%;box-shadow:inset 0 0 8px rgba(0,0,0,.6);animation:mrw-ts 9s ease-in-out infinite alternate}
.scn-mechanicals-rehearse-wood .figure-1{position:absolute;bottom:24%;left:25%;width:14px;height:30px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:mrw-fb1 4s ease-in-out infinite}
.scn-mechanicals-rehearse-wood .figure-2{position:absolute;bottom:24%;left:45%;width:14px;height:30px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:mrw-fb2 5s ease-in-out infinite;animation-delay:-1s}
.scn-mechanicals-rehearse-wood .figure-3{position:absolute;bottom:24%;right:25%;width:14px;height:30px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:mrw-fb3 4.5s ease-in-out infinite;animation-delay:-2s}
.scn-mechanicals-rehearse-wood .bush{position:absolute;bottom:12%;right:12%;width:28px;height:18px;background:linear-gradient(180deg,#1a3a1a,#0d2a0d);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:mrw-bs 12s ease-in-out infinite alternate}
@keyframes mrw-mp{0%{box-shadow:0 0 25px 6px rgba(160,168,184,.3)}50%{box-shadow:0 0 45px 14px rgba(160,168,184,.6)}100%{box-shadow:0 0 30px 10px rgba(160,168,184,.4)}}
@keyframes mrw-gb{0%{transform:scaleY(1)}50%{transform:scaleY(1.02)}100%{transform:scaleY(1)}}
@keyframes mrw-sp{0%{transform:scale(1)}50%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes mrw-ts{0%{transform:rotate(-3deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-3deg)}}
@keyframes mrw-fb1{0%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}100%{transform:translateY(0) rotate(-3deg)}}
@keyframes mrw-fb2{0%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-4px) rotate(-2deg)}100%{transform:translateY(0) rotate(2deg)}}
@keyframes mrw-fb3{0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(4deg)}100%{transform:translateY(0) rotate(-1deg)}}
@keyframes mrw-bs{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}

/* Scene: bottom-proposes-prologue */
.scn-bottom-proposes-prologue{background:linear-gradient(180deg,#0f0f2a,#181842,#22225a),radial-gradient(ellipse at 40% 30%,#2a3a5a,transparent 65%)}
.scn-bottom-proposes-prologue .moon{position:absolute;top:8%;left:30%;width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d0d8e0,#a0a8b8);box-shadow:0 0 30px 8px rgba(160,168,184,.4);animation:bpp-mp 6s ease-in-out infinite alternate}
.scn-bottom-proposes-prologue .figure{position:absolute;bottom:28%;left:40%;width:24px;height:48px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:bpp-fg 4s ease-in-out infinite}
.scn-bottom-proposes-prologue .scroll{position:absolute;bottom:44%;left:45%;width:18px;height:6px;background:linear-gradient(90deg,#d0c8a0,#b8b090);border-radius:10%;box-shadow:0 0 6px rgba(0,0,0,.3);animation:bpp-sw 3s ease-in-out infinite alternate}
.scn-bottom-proposes-prologue .hat{position:absolute;bottom:58%;left:41%;width:14px;height:8px;background:linear-gradient(180deg,#3a2a1a,#2a1a0a);border-radius:30% 30% 10% 10%;animation:bpp-hb 4s ease-in-out infinite}
.scn-bottom-proposes-prologue .tree{position:absolute;bottom:20%;right:8%;width:18px;height:70px;background:linear-gradient(180deg,#1a2a1a,#0f1a0f,#050a05);border-radius:10% 10% 20% 20%/40% 40% 60% 60%;box-shadow:inset 0 0 8px rgba(0,0,0,.6);animation:bpp-ts 8s ease-in-out infinite alternate}
.scn-bottom-proposes-prologue .ground{position:absolute;bottom:0;left:0;right:0;height:25%;background:linear-gradient(180deg,#1a2a1a,#0d1a0d);border-radius:40% 60% 0/80% 70% 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.5);animation:bpp-gb 12s ease-in-out infinite alternate}
.scn-bottom-proposes-prologue .cloud-a{position:absolute;top:14%;left:-50px;width:65px;height:15px;background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,.04));border-radius:50%;filter:blur(4px);animation:bpp-cd1 40s linear infinite}
.scn-bottom-proposes-prologue .cloud-b{position:absolute;top:22%;right:-40px;width:45px;height:11px;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.02));border-radius:50%;filter:blur(4px);animation:bpp-cd2 50s linear infinite}
@keyframes bpp-mp{0%{box-shadow:0 0 20px 5px rgba(160,168,184,.3)}50%{box-shadow:0 0 40px 12px rgba(160,168,184,.6)}100%{box-shadow:0 0 25px 8px rgba(160,168,184,.4)}}
@keyframes bpp-fg{0%{transform:translateX(0) rotate(-4deg)}50%{transform:translateX(6px) rotate(4deg)}100%{transform:translateX(0) rotate(-4deg)}}
@keyframes bpp-sw{0%{transform:rotate(-8deg) scale(1)}50%{transform:rotate(12deg) scale(1.08)}100%{transform:rotate(-8deg) scale(1)}}
@keyframes bpp-hb{0%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-3px) rotate(4deg)}100%{transform:translateY(0) rotate(-4deg)}}
@keyframes bpp-ts{0%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}100%{transform:rotate(-2deg)}}
@keyframes bpp-gb{0%{transform:scaleY(1)}50%{transform:scaleY(1.015)}100%{transform:scaleY(1)}}
@keyframes bpp-cd1{0%{transform:translateX(0)}100%{transform:translateX(120vw)}}
@keyframes bpp-cd2{0%{transform:translateX(0)}100%{transform:translateX(-110vw)}}

.scn-wall-problem-solved {
  background: linear-gradient(180deg, #0a1628 0%, #1b2a4a 40%, #2c3e6a 100%), radial-gradient(ellipse at 50% 0%, #7a9abf 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-wall-problem-solved .bg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,22,40,0.8) 0%, transparent 50%); }
.scn-wall-problem-solved .moon { position: absolute; top: 8%; left: 70%; width: 50px; height: 50px; background: radial-gradient(circle, #e0e8ff 0%, #b0c4de 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(176,196,222,0.5); animation: wp-moon 12s ease-in-out infinite alternate; }
.scn-wall-problem-solved .wall { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 60%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 20%, #5a4a3a 80%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.7), inset 0 2px 4px rgba(255,255,255,0.1); animation: wp-wall 18s ease-in-out infinite; }
.scn-wall-problem-solved .chink { position: absolute; bottom: 45%; left: 48%; width: 12px; height: 16px; background: #0a0a0a; border-radius: 2px; box-shadow: inset 0 0 4px #2a1a0a, 0 0 8px 2px rgba(200,180,100,0.3); animation: wp-chink 3s ease-in-out infinite alternate; }
.scn-wall-problem-solved .moonshine { position: absolute; bottom: 20%; left: 12%; width: 40px; height: 70px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-moonshine 5s ease-in-out infinite; }
.scn-wall-problem-solved .lantern { position: absolute; bottom: 50%; left: 10%; width: 10px; height: 10px; background: radial-gradient(circle, #ffd680 0%, #b08040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,214,128,0.7), 0 0 40px 12px rgba(255,214,128,0.3); animation: wp-lantern 2s ease-in-out infinite alternate; }
.scn-wall-problem-solved .bush { position: absolute; bottom: 22%; left: 14%; width: 30px; height: 30px; background: radial-gradient(circle at 30% 30%, #3a5a2a, #1a2a1a); border-radius: 50%; filter: blur(2px); box-shadow: 0 0 0 4px #2a4a1a, 0 0 0 10px #1a3a1a; animation: wp-bush 4s ease-in-out infinite; }
.scn-wall-problem-solved .figure-left { position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-figure-left 6s ease-in-out infinite; }
.scn-wall-problem-solved .figure-right { position: absolute; bottom: 20%; right: 28%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-figure-right 6s ease-in-out infinite 2s; }
@keyframes wp-moon { 0% { transform: translateY(0); opacity: 0.7; } 50% { transform: translateY(4px); opacity: 1; } 100% { transform: translateY(-2px); opacity: 0.8; } }
@keyframes wp-wall { 0% { transform: scale(1); } 50% { transform: scale(1.01, 1.005); } 100% { transform: scale(1); } }
@keyframes wp-chink { 0% { box-shadow: inset 0 0 4px #2a1a0a, 0 0 8px 2px rgba(200,180,100,0.2); } 50% { box-shadow: inset 0 0 8px #4a2a0a, 0 0 14px 4px rgba(200,180,100,0.6); } 100% { box-shadow: inset 0 0 4px #2a1a0a, 0 0 8px 2px rgba(200,180,100,0.2); } }
@keyframes wp-moonshine { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(2px, -1px) rotate(1deg); } 50% { transform: translate(-1px, 1px) rotate(-1deg); } 75% { transform: translate(3px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes wp-lantern { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes wp-bush { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(5deg) scale(1.02); } 50% { transform: rotate(-5deg) scale(0.98); } 75% { transform: rotate(3deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes wp-figure-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wp-figure-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(3deg); } 50% { transform: translateX(-6px) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-mechanicals-begin-rehearsal {
  background: linear-gradient(180deg, #0b1a2e 0%, #1a2d4a 40%, #2a4060 100%), radial-gradient(ellipse at 50% 0%, #6a8abf 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-mechanicals-begin-rehearsal .bg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,26,46,0.6) 0%, transparent 60%); }
.scn-mechanicals-begin-rehearsal .moon { position: absolute; top: 5%; left: 50%; width: 60px; height: 60px; background: radial-gradient(circle, #d0d8f0 0%, #a0b0d0 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(160,176,208,0.5); animation: mb-moon 14s ease-in-out infinite alternate; }
.scn-mechanicals-begin-rehearsal .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: mb-ground 20s ease-in-out infinite; }
.scn-mechanicals-begin-rehearsal .tree-trunk { position: absolute; bottom: 30%; right: 15%; width: 12px; height: 60%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.3); }
.scn-mechanicals-begin-rehearsal .tree-canopy { position: absolute; bottom: 50%; right: 10%; width: 60px; height: 50px; background: radial-gradient(circle at 40% 40%, #1a3a1a, #0a1a0a); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(10,26,10,0.5); animation: mb-tree 8s ease-in-out infinite; }
.scn-mechanicals-begin-rehearsal .puck { position: absolute; bottom: 40%; right: 18%; width: 18px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-puck 5s ease-in-out infinite; }
.scn-mechanicals-begin-rehearsal .pyramus { position: absolute; bottom: 18%; left: 30%; width: 22px; height: 55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-pyramus 6s ease-in-out infinite; }
.scn-mechanicals-begin-rehearsal .thisbe { position: absolute; bottom: 18%; left: 50%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-thisbe 6s ease-in-out infinite 1s; }
.scn-mechanicals-begin-rehearsal .quince { position: absolute; bottom: 18%; left: 15%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-quince 7s ease-in-out infinite; }
@keyframes mb-moon { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(5px) scale(1.02); opacity: 1; } 100% { transform: translateY(-3px) scale(0.98); opacity: 0.7; } }
@keyframes mb-ground { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes mb-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes mb-puck { 0% { transform: translate(0, 0) rotate(0deg); } 20% { transform: translate(3px, -2px) rotate(-3deg); } 40% { transform: translate(-2px, 1px) rotate(2deg); } 60% { transform: translate(4px, -1px) rotate(-1deg); } 80% { transform: translate(-3px, 2px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes mb-pyramus { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mb-thisbe { 0% { transform: translateX(0) scale(1); } 33% { transform: translateX(-3px) scale(1.02); } 66% { transform: translateX(2px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes mb-quince { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(1px); } 75% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }

.scn-lion-fear-discussed {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a7e 0%, transparent 60%);
}
.scn-lion-fear-discussed .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a4e 0%, transparent); animation: lf1-sky 12s ease-in-out infinite alternate; }
.scn-lion-fear-discussed .moon { position:absolute; top:8%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #c0d0f0 0%, #a0b0e0 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(160,176,224,0.4); animation: lf1-moon 15s ease-in-out infinite alternate; }
.scn-lion-fear-discussed .tree-left { position:absolute; bottom:30%; left:5%; width:80px; height:200px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; transform-origin: bottom center; animation: lf1-tree 8s ease-in-out infinite; }
.scn-lion-fear-discussed .tree-right { position:absolute; bottom:30%; right:5%; width:70px; height:180px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; transform-origin: bottom center; animation: lf1-tree 10s ease-in-out infinite reverse; }
.scn-lion-fear-discussed .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 50% 50% 0 0; }
.scn-lion-fear-discussed .fig1 { position:absolute; bottom:18%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lf1-fig1 4s ease-in-out infinite; }
.scn-lion-fear-discussed .fig2 { position:absolute; bottom:20%; left:40%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lf1-fig2 5s ease-in-out infinite; }
.scn-lion-fear-discussed .fig3 { position:absolute; bottom:22%; left:60%; width:22px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lf1-fig3 3.5s ease-in-out infinite; }
.scn-lion-fear-discussed .lantern { position:absolute; bottom:25%; left:50%; width:8px; height:8px; background: #d0d090; border-radius:50%; box-shadow: 0 0 20px 10px rgba(208,208,144,0.6); animation: lf1-lantern 2s ease-in-out infinite alternate; }
@keyframes lf1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lf1-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes lf1-tree { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes lf1-fig1 { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lf1-fig2 { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes lf1-fig3 { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(-5px) translateY(-1px) } 66% { transform: translateX(5px) translateY(1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes lf1-lantern { 0% { box-shadow: 0 0 15px 5px rgba(208,208,144,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 15px rgba(208,208,144,0.8); opacity:1 } 100% { box-shadow: 0 0 20px 8px rgba(208,208,144,0.5); opacity:0.9 } }

.scn-bottom-suggests-lion-actor {
  background: linear-gradient(180deg, #0a0a2e 0%, #151540 50%, #1a1a4e 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 70%);
}
.scn-bottom-suggests-lion-actor .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #0a1a0a 80%); }
.scn-bottom-suggests-lion-actor .spotlight { position:absolute; top:0; left:20%; width:60%; height:100%; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,255,0.15) 0%, transparent 70%); animation: bsla-spot 6s ease-in-out infinite alternate; }
.scn-bottom-suggests-lion-actor .body { position:absolute; bottom:15%; left:45%; width:50px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bsla-body 3s ease-in-out infinite; }
.scn-bottom-suggests-lion-actor .head { position:absolute; bottom:55%; left:48%; width:30px; height:30px; background: radial-gradient(circle, #3a3a4a 0%, #2a2a3a 100%); border-radius:50%; animation: bsla-head 3s ease-in-out infinite; }
.scn-bottom-suggests-lion-actor .mane { position:absolute; bottom:50%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 50%, #5a5a3a 0%, #3a3a2a 40%, transparent 70%); border-radius:50%; filter: blur(4px); animation: bsla-mane 4s ease-in-out infinite; }
.scn-bottom-suggests-lion-actor .arm-l { position:absolute; bottom:30%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: bsla-arm 2.5s ease-in-out infinite; }
.scn-bottom-suggests-lion-actor .arm-r { position:absolute; bottom:30%; left:55%; width:8px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: bsla-arm 2.7s ease-in-out infinite reverse; }
@keyframes bsla-spot { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes bsla-body { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bsla-head { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(2px) translateY(-1px) rotate(5deg) } 66% { transform: translateX(-2px) translateY(0) rotate(-5deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes bsla-mane { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes bsla-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }

.scn-mb {
  background:
    linear-gradient(180deg, #0d1b2a 0%, #1b2838 40%, #2c3a4f 100%),
    radial-gradient(ellipse at 70% 20%, #4a6980 0%, transparent 60%);
}
.scn-mb .moon {
  position: absolute;
  top: 6%;
  right: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle at 60% 40%, #d4e6f1 0%, #a0b8cc 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(164, 188, 204, 0.5), 0 0 80px 24px rgba(120, 150, 180, 0.3);
  animation: mb-moon 8s ease-in-out infinite alternate;
}
.scn-mb .trees {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 40%;
  background:
    linear-gradient(180deg, transparent 0%, #1a2e2a 40%, #0f1f1c 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: mb-trees 20s ease-in-out infinite alternate;
}
.scn-mb .stage {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #2d4a3c 0%, #1a2e22 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: mb-stage 6s ease-in-out infinite;
}
.scn-mb .figure-left {
  position: absolute;
  bottom: 28%;
  left: 18%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figure-left 4s ease-in-out infinite;
}
.scn-mb .figure-center {
  position: absolute;
  bottom: 25%;
  left: 44%;
  width: 26px;
  height: 56px;
  background: linear-gradient(180deg, #34495e 0%, #1c2833 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figure-center 3.5s ease-in-out infinite;
}
.scn-mb .figure-right {
  position: absolute;
  bottom: 27%;
  right: 20%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #273746 0%, #17212a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figure-right 5s ease-in-out infinite;
}
.scn-mb .lantern {
  position: absolute;
  bottom: 32%;
  left: 35%;
  width: 10px;
  height: 14px;
  background: radial-gradient(circle, #f5d76e 0%, #c9a33b 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px rgba(245, 215, 110, 0.6), 0 0 40px 12px rgba(245, 215, 110, 0.3);
  transform-origin: top center;
  animation: mb-lantern 3s ease-in-out infinite alternate;
}
.scn-mb .cloud-a {
  position: absolute;
  top: 12%;
  left: 10%;
  width: 100px;
  height: 20px;
  background: linear-gradient(180deg, rgba(200, 212, 224, 0.4) 0%, rgba(200, 212, 224, 0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mb-cloud-a 40s linear infinite;
}
.scn-mb .cloud-b {
  position: absolute;
  top: 18%;
  right: 10%;
  width: 70px;
  height: 14px;
  background: linear-gradient(180deg, rgba(180, 196, 212, 0.3) 0%, rgba(180, 196, 212, 0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mb-cloud-b 55s linear infinite reverse;
}
@keyframes mb-moon {
  0% { transform: scale(1); box-shadow: 0 0 40px 12px rgba(164, 188, 204, 0.5); }
  50% { transform: scale(1.03); box-shadow: 0 0 60px 20px rgba(164, 188, 204, 0.7); }
  100% { transform: scale(0.98); box-shadow: 0 0 35px 10px rgba(164, 188, 204, 0.4); }
}
@keyframes mb-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px) scale(1.005); }
  100% { transform: translateY(0); }
}
@keyframes mb-stage {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.01) translateY(-1px); }
}
@keyframes mb-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes mb-figure-center {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-3px) rotate(-5deg) scaleY(1.05); }
  50% { transform: translateX(0) rotate(5deg) scaleY(0.95); }
  75% { transform: translateX(3px) rotate(-3deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes mb-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  40% { transform: translateX(-5px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes mb-lantern {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes mb-cloud-a {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes mb-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-bottom-suggests-lion-actor {
  background: linear-gradient(180deg, #0f1520 0%, #1a2a3a 40%, #2a3d55 100%),
              radial-gradient(ellipse at 50% 20%, #4a6a8a 0%, transparent 60%);
}
.scn-bottom-suggests-lion-actor .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a3d55 0%, transparent 100%);
  animation: si-lion-sky 12s ease-in-out infinite alternate;
}
.scn-bottom-suggests-lion-actor .moon {
  position: absolute;
  top: 12%;
  left: 70%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(180,200,230,0.3);
  animation: si-lion-moon 4s ease-in-out infinite alternate;
}
.scn-bottom-suggests-lion-actor .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-bottom-suggests-lion-actor .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-lion-figure 2s ease-in-out infinite;
}
.scn-bottom-suggests-lion-actor .mane {
  position: absolute;
  bottom: 66%;
  left: 48%;
  width: 44px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, #3a2a1a 60%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 80% 80% 50% 50%;
  transform: translate(-4px, 0);
  animation: si-lion-mane 0.8s ease-in-out infinite alternate;
}
.scn-bottom-suggests-lion-actor .tree-a {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 20px;
  height: 80px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: si-lion-sway 8s ease-in-out infinite;
}
.scn-bottom-suggests-lion-actor .tree-b {
  position: absolute;
  bottom: 22%;
  right: 20%;
  width: 16px;
  height: 70px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: si-lion-sway 8s ease-in-out infinite 2s;
}
.scn-bottom-suggests-lion-actor .lantern {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(192,128,48,0.6);
  animation: si-lion-lantern 3s ease-in-out infinite alternate;
}
@keyframes si-lion-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes si-lion-moon {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(180,200,230,0.2); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(180,200,230,0.4); }
  100% { transform: scale(0.98); box-shadow: 0 0 35px 18px rgba(180,200,230,0.3); }
}
@keyframes si-lion-figure {
  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 si-lion-mane {
  0% { transform: translate(-4px, 0) scale(1); }
  50% { transform: translate(-4px, -2px) scale(1.05); }
  100% { transform: translate(-4px, 0) scale(0.98); }
}
@keyframes si-lion-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1.5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes si-lion-lantern {
  0% { transform: rotate(-5deg); opacity: 0.8; }
  50% { transform: rotate(5deg); opacity: 1; }
  100% { transform: rotate(-3deg); opacity: 0.9; }
}

.scn-lion-fear-discussed { 
  background: 
    linear-gradient(180deg, #0b0e2a 0%, #1b1f45 40%, #2c3e6b 100%),
    radial-gradient(ellipse at 50% 15%, #c0d4e8 0%, #2c3e6b 40%, transparent 70%);
}
.scn-lion-fear-discussed .moon {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 80px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0f5ff 0%, #d0dae8 60%, #8a9bb5 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192, 210, 230, 0.4);
  animation: lf-moon-pulse 6s ease-in-out infinite alternate;
}
.scn-lion-fear-discussed .stars {
  position: absolute;
  width: 4px;
  height: 4px;
  background: #e8efff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(232, 239, 255, 0.5);
}
.scn-lion-fear-discussed .star-1 { top: 12%; left: 20%; animation: lf-twinkle 3s ease-in-out 0s infinite; }
.scn-lion-fear-discussed .star-2 { top: 18%; left: 75%; animation: lf-twinkle 3s ease-in-out 1s infinite; }
.scn-lion-fear-discussed .star-3 { top: 5%; left: 55%; animation: lf-twinkle 3s ease-in-out 2s infinite; }

.scn-lion-fear-discussed .lion-body {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1c2740 0%, #0f1424 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: lf-body-bounce 4s ease-in-out infinite;
}
.scn-lion-fear-discussed .lion-mane {
  position: absolute;
  bottom: 55%;
  left: 50%;
  width: 100px;
  height: 70px;
  transform: translateX(-50%);
  background: 
    radial-gradient(ellipse 70% 60% at 50% 60%, #2d3b5c 0%, #1c2740 50%, transparent 70%),
    linear-gradient(180deg, #1c2740 0%, #2d3b5c 30%, #1c2740 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: lf-mane-sway 5s ease-in-out infinite alternate;
}
.scn-lion-fear-discussed .lion-tail {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 50px;
  height: 14px;
  background: linear-gradient(90deg, #0f1424 0%, #1c2740 70%);
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  animation: lf-tail-wag 2.5s ease-in-out infinite;
}
.scn-lion-fear-discussed .lion-snout {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 30px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2d3b5c 0%, #1c2740 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4);
}
.scn-lion-fear-discussed .lady {
  position: absolute;
  bottom: 22%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2a3a5c 0%, #1a2440 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
}
.scn-lion-fear-discussed .peep-left {
  left: 25%;
  animation: lf-peek-left 5s ease-in-out 0s infinite;
}
.scn-lion-fear-discussed .peep-right {
  right: 25%;
  transform: scaleX(-1);
  animation: lf-peek-right 5s ease-in-out 0.5s infinite;
}

@keyframes lf-moon-pulse {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 15px rgba(192, 210, 230, 0.3); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 70px 25px rgba(192, 210, 230, 0.5); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 50px 18px rgba(192, 210, 230, 0.35); }
}
@keyframes lf-twinkle {
  0%, 100% { opacity: 0.4; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes lf-body-bounce {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
@keyframes lf-mane-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes lf-tail-wag {
  0%, 100% { transform: rotate(-15deg); }
  25% { transform: rotate(0deg); }
  50% { transform: rotate(20deg); }
  75% { transform: rotate(5deg); }
}
@keyframes lf-peek-left {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(10px) translateY(-5px) rotate(5deg); }
  40% { transform: translateX(0) translateY(0) rotate(0deg); }
  60% { transform: translateX(-5px) translateY(-3px) rotate(-3deg); }
  80% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes lf-peek-right {
  0%, 100% { transform: scaleX(-1) translateX(0) translateY(0) rotate(0deg); }
  20% { transform: scaleX(-1) translateX(-10px) translateY(-5px) rotate(-5deg); }
  40% { transform: scaleX(-1) translateX(0) translateY(0) rotate(0deg); }
  60% { transform: scaleX(-1) translateX(5px) translateY(-3px) rotate(3deg); }
  80% { transform: scaleX(-1) translateX(0) translateY(0) rotate(0deg); }
}

.scn-wall-problem-solved {
  background: 
    linear-gradient(180deg, #0a1a2e 0%, #1e3840 40%, #2c5055 100%),
    radial-gradient(ellipse at 20% 30%, #7a9aa0 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, #5a7a80 0%, transparent 40%);
}
.scn-wall-problem-solved .moon {
  position: absolute; top: 8%; left: 70%; width: 70px; height: 70px;
  background: radial-gradient(circle at 40% 30%, #d0e0e8 0%, #7a9aa0 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(120, 160, 170, 0.5), 0 0 80px 30px rgba(120, 160, 170, 0.2);
  animation: wps-moon 12s ease-in-out infinite alternate;
}
.scn-wall-problem-solved .wall {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #4a4a40 0%, #3a3a30 30%, #2a2a20 70%, #1a1a12 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6), 0 4px 10px rgba(0,0,0,0.4);
  overflow: visible;
}
.scn-wall-problem-solved .chink {
  position: absolute; bottom: 48%; left: 48%; width: 6px; height: 18px;
  background: radial-gradient(circle, #f0e0a0 0%, #c8b070 50%, transparent 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #c8b070, 0 0 40px 12px rgba(200,176,112,0.3);
  animation: wps-chink 2s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-wall-problem-solved .pyramus {
  position: absolute; bottom: 30%; left: 18%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2a2e 0%, #0e1a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wps-figure-left 3s ease-in-out infinite;
}
.scn-wall-problem-solved .thisby {
  position: absolute; bottom: 30%; right: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a2a2e 0%, #0e1a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wps-figure-right 3s ease-in-out infinite 1.5s;
}
.scn-wall-problem-solved .lantern {
  position: absolute; bottom: 55%; left: 42%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0e080 0%, #c8a050 60%, transparent 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 30px 8px #c8a050, 0 0 60px 16px rgba(200,160,80,0.3);
  transform-origin: top center;
  animation: wps-lantern 4s ease-in-out infinite;
}
.scn-wall-problem-solved .cloud-a {
  position: absolute; top: 15%; left: 5%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(180,200,210,0.4) 0%, rgba(180,200,210,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: wps-drift 30s linear infinite reverse;
}
.scn-wall-problem-solved .cloud-b {
  position: absolute; top: 22%; left: 80%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(180,200,210,0.3) 0%, rgba(180,200,210,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: wps-drift 40s linear infinite;
}
@keyframes wps-moon {
  0% { opacity: 0.8; transform: translateY(0) scale(1); }
  50% { opacity: 1; transform: translateY(-4px) scale(1.02); box-shadow: 0 0 50px 20px rgba(120,160,170,0.6), 0 0 100px 40px rgba(120,160,170,0.25); }
  100% { opacity: 0.85; transform: translateY(0) scale(0.98); }
}
@keyframes wps-chink {
  0% { opacity: 0.6; box-shadow: 0 0 10px 3px #a09060, 0 0 20px 6px rgba(160,144,96,0.2); transform: scaleY(0.9); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #d0b880, 0 0 50px 15px rgba(208,184,128,0.4); transform: scaleY(1.1); }
  100% { opacity: 0.7; box-shadow: 0 0 15px 5px #a09060, 0 0 30px 10px rgba(160,144,96,0.25); transform: scaleY(0.95); }
}
@keyframes wps-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes wps-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-4px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes wps-lantern {
  0% { transform: rotate(-5deg); opacity: 0.8; }
  50% { transform: rotate(5deg); opacity: 1; }
  100% { transform: rotate(-3deg); opacity: 0.9; }
}
@keyframes wps-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.arms { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.bg-mist { position: absolute; pointer-events: none; }
.donkey { position: absolute; pointer-events: none; }
.large { position: absolute; pointer-events: none; }
.tiny { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-fairy-blessing-puck-epilogue {
  background: 
    linear-gradient(180deg, #f9d9b7 0%, #f2b887 30%, #e8916a 60%, #c97050 100%),
    radial-gradient(ellipse at 50% 0%, #fdf0d5 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-fairy-blessing-puck-epilogue .dawn-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce5c8 0%, #f5c29e 40%, #e8a67a 70%, #d07a55 100%);
  animation: fb-sky 15s ease-in-out infinite alternate;
}

.scn-fairy-blessing-puck-epilogue .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #d9a982 0%, #b8855e 40%, #8a5e3d 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.3);
}

.scn-fairy-blessing-puck-epilogue .arch {
  position: absolute;
  top: 5%;
  left: 10%;
  right: 10%;
  height: 55%;
  background: linear-gradient(135deg, #cfa776 0%, #b58a5e 50%, #8f6b44 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 0 60px rgba(255,220,160,0.3);
  animation: fb-arch 20s ease-in-out infinite;
}

.scn-fairy-blessing-puck-epilogue .column {
  position: absolute;
  bottom: 20%;
  width: 6%;
  height: 60%;
  background: linear-gradient(90deg, #cba075 0%, #e0b892 30%, #cba075 60%, #b28a62 100%);
  border-radius: 6px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2), inset 4px 0 8px rgba(255,255,200,0.2);
}
.scn-fairy-blessing-puck-epilogue .column.left {
  left: 12%;
}
.scn-fairy-blessing-puck-epilogue .column.right {
  right: 12%;
}

.scn-fairy-blessing-puck-epilogue .fairy {
  position: absolute;
  width: 18px;
  height: 30px;
  background: linear-gradient(180deg, #ffe0a0 0%, #ffcc80 40%, #ffb366 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(255,200,120,0.6);
}
.scn-fairy-blessing-puck-epilogue .fairy-1 {
  bottom: 38%;
  left: 30%;
  animation: fb-fairy1 4s ease-in-out infinite;
}
.scn-fairy-blessing-puck-epilogue .fairy-2 {
  bottom: 42%;
  right: 35%;
  width: 15px;
  height: 24px;
  animation: fb-fairy2 5s ease-in-out infinite 1s;
}

.scn-fairy-blessing-puck-epilogue .sparkles {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 70%, #fff5d0 0%, transparent 3%),
              radial-gradient(circle at 40% 30%, #ffd699 0%, transparent 4%),
              radial-gradient(circle at 70% 50%, #ffe4a0 0%, transparent 3%),
              radial-gradient(circle at 90% 80%, #fff0c0 0%, transparent 5%);
  background-size: 200% 200%;
  animation: fb-sparkle 8s ease-in-out infinite alternate;
  opacity: 0.7;
}

.scn-fairy-blessing-puck-epilogue .light-rays {
  position: absolute;
  top: 0;
  left: 20%;
  right: 20%;
  height: 40%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: fb-rays 6s ease-in-out infinite alternate;
}

@keyframes fb-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; background: linear-gradient(180deg, #fce5c8 0%, #f0b88a 40%, #da8c63 70%, #c06a40 100%); }
  100% { opacity: 0.85; background: linear-gradient(180deg, #f5cfb0 0%, #eaa77a 40%, #d8825a 70%, #b8653a 100%); }
}

@keyframes fb-arch {
  0% { transform: scaleY(1); filter: brightness(1); }
  50% { transform: scaleY(1.02); filter: brightness(1.1); }
  100% { transform: scaleY(0.98); filter: brightness(0.95); }
}

@keyframes fb-fairy1 {
  0% { transform: translate(0, 0) rotate(-5deg); opacity: 0.8; }
  25% { transform: translate(8px, -6px) rotate(3deg); opacity: 1; }
  50% { transform: translate(16px, -10px) rotate(5deg); opacity: 0.9; }
  75% { transform: translate(24px, -4px) rotate(-2deg); opacity: 1; }
  100% { transform: translate(32px, 0) rotate(0deg); opacity: 0.8; }
}

@keyframes fb-fairy2 {
  0% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(-12px, -8px) scale(1.1); }
  66% { transform: translate(-24px, -16px) scale(0.9); }
  100% { transform: translate(-36px, -20px) scale(1); }
}

@keyframes fb-sparkle {
  0% { background-position: 0% 0%; opacity: 0.6; }
  50% { background-position: 50% 50%; opacity: 1; }
  100% { background-position: 100% 100%; opacity: 0.7; }
}

@keyframes fb-rays {
  0% { opacity: 0.4; transform: translateX(-5%) skewX(-3deg); }
  50% { opacity: 0.8; transform: translateX(0) skewX(0deg); }
  100% { opacity: 0.5; transform: translateX(5%) skewX(3deg); }
}

/* Scene: item-magical-flower (tense, overcast) */
.scn-item-magical-flower {
  background: linear-gradient(180deg, #2e3a2e 0%, #3a4a3a 40%, #1e2e1e 100%), radial-gradient(ellipse at 40% 60%, #4a5a4a 0%, transparent 70%);
}
.scn-item-magical-flower .bg-forest {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2b3b2b 0%, #1a2a1a 100%);
  animation: fl-forest 12s ease-in-out infinite alternate;
}
.scn-item-magical-flower .tree-shadow {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%;
  filter: blur(6px);
  animation: fl-shadow 18s ease-in-out infinite alternate;
}
.scn-item-magical-flower .flower-stem {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 90px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: fl-stem 6s ease-in-out infinite;
}
.scn-item-magical-flower .flower-petal {
  position: absolute; bottom: 50%; left: 54%; width: 30px; height: 40px;
  background: radial-gradient(circle at 40% 30%, #c8553d 0%, #8a3a2a 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: fl-petal 8s ease-in-out infinite alternate;
}
.scn-item-magical-flower .flower-glow {
  position: absolute; bottom: 48%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.4);
  animation: fl-glow 3s ease-in-out infinite alternate;
}
.scn-item-magical-flower .oberon-silhouette {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(8deg);
  animation: fl-oberon 10s ease-in-out infinite;
}
.scn-item-magical-flower .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(30,40,30,0.6) 100%);
  filter: blur(8px);
  animation: fl-mist 15s ease-in-out infinite alternate;
}
@keyframes fl-forest {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes fl-shadow {
  0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.9); } 100% { transform: translateX(-5px) scaleX(1.1); }
}
@keyframes fl-stem {
  0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); }
}
@keyframes fl-petal {
  0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.05); } 100% { transform: rotate(-25deg) scale(0.95); }
}
@keyframes fl-glow {
  0% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 30px rgba(255,208,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #b08040, 0 0 50px 15px rgba(176,128,64,0.35); opacity: 0.9; }
}
@keyframes fl-oberon {
  0% { transform: translateX(0) rotate(8deg); } 25% { transform: translateX(-8px) rotate(6deg); } 50% { transform: translateX(0) rotate(10deg); } 75% { transform: translateX(8px) rotate(4deg); } 100% { transform: translateX(0) rotate(8deg); }
}
@keyframes fl-mist {
  0% { opacity: 0.3; transform: translateY(5px); } 50% { opacity: 0.6; transform: translateY(0); } 100% { opacity: 0.4; transform: translateY(10px); }
}

/* Scene: demetrius-rejects-helena (tense, overcast) */
.scn-demetrius-rejects-helena {
  background: linear-gradient(180deg, #2c2c3c 0%, #3a3a4a 50%, #1c1c2c 100%), radial-gradient(ellipse at 30% 70%, #3a3a4a 0%, transparent 80%);
}
.scn-demetrius-rejects-helena .bg-dark-wood {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: dr-wood 14s ease-in-out infinite alternate;
}
.scn-demetrius-rejects-helena .ground-path {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: dr-path 8s ease-in-out infinite;
}
.scn-demetrius-rejects-helena .demetrius-figure {
  position: absolute; bottom: 25%; left: 65%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-12deg);
  animation: dr-demetrius 6s ease-in-out infinite;
}
.scn-demetrius-rejects-helena .helena-figure {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: dr-helena 4s ease-in-out infinite;
}
.scn-demetrius-rejects-helena .helena-arms {
  position: absolute; bottom: 30%; left: 43%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  animation: dr-arms 3s ease-in-out infinite alternate;
}
.scn-demetrius-rejects-helena .shadow-tree {
  position: absolute; bottom: 0; left: 15%; width: 100px; height: 180px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(4px);
  animation: dr-tree 20s ease-in-out infinite alternate;
}
@keyframes dr-wood {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes dr-path {
  0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.98); } 100% { transform: translateY(-1px) scaleY(1.02); }
}
@keyframes dr-demetrius {
  0% { transform: translateX(0) rotate(-12deg); } 25% { transform: translateX(8px) rotate(-10deg); } 50% { transform: translateX(0) rotate(-14deg); } 75% { transform: translateX(-8px) rotate(-8deg); } 100% { transform: translateX(0) rotate(-12deg); }
}
@keyframes dr-helena {
  0% { transform: translateY(0) rotate(5deg); } 25% { transform: translateY(6px) rotate(3deg); } 50% { transform: translateY(0) rotate(7deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(5deg); }
}
@keyframes dr-arms {
  0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(20deg) translateX(5px); } 100% { transform: rotate(35deg) translateX(-3px); }
}
@keyframes dr-tree {
  0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(0.95) translateX(-5px); }
}

/* Scene: puck-mistake-helena-loves (tense, overcast) */
.scn-puck-mistake-helena-loves {
  background: linear-gradient(180deg, #1c1c2c 0%, #2a2a3a 50%, #0e0e1e 100%), radial-gradient(ellipse at 60% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-puck-mistake-helena-loves .bg-wood-night {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  animation: pm-wood 16s ease-in-out infinite alternate;
}
.scn-puck-mistake-helena-loves .lysander-sleep {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: pm-lysander 10s ease-in-out infinite;
}
.scn-puck-mistake-helena-loves .hermia-sleep {
  position: absolute; bottom: 12%; left: 60%; width: 28px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: pm-hermia 8s ease-in-out infinite;
}
.scn-puck-mistake-helena-loves .puck-figure {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(20deg) scaleX(-1);
  animation: pm-puck 5s ease-in-out infinite;
}
.scn-puck-mistake-helena-loves .potion-drop {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b08040 0%, #704020 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #b08040;
  animation: pm-drop 3s ease-in-out infinite;
}
.scn-puck-mistake-helena-loves .mist-layer {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,20,30,0.5) 100%);
  filter: blur(6px);
  animation: pm-mist 12s ease-in-out infinite alternate;
}
@keyframes pm-wood {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes pm-lysander {
  0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(3px); } 100% { transform: rotate(12deg) translateY(-2px); }
}
@keyframes pm-hermia {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(2px); } 100% { transform: rotate(-7deg) translateY(-1px); }
}
@keyframes pm-puck {
  0% { transform: rotate(20deg) scaleX(-1) translateX(0); } 25% { transform: rotate(15deg) scaleX(-1) translateX(-8px); } 50% { transform: rotate(25deg) scaleX(-1) translateX(0); } 75% { transform: rotate(10deg) scaleX(-1) translateX(8px); } 100% { transform: rotate(20deg) scaleX(-1) translateX(0); }
}
@keyframes pm-drop {
  0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(10px) scale(0.8); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes pm-mist {
  0% { opacity: 0.3; transform: translateY(5px); } 50% { opacity: 0.6; transform: translateY(-5px); } 100% { opacity: 0.4; transform: translateY(0); }
}

/* Scene: bottom-transformed-ass (funny, overcast) */
.scn-bottom-transformed-ass {
  background: linear-gradient(180deg, #3a4a3a 0%, #4a5a4a 50%, #2a3a2a 100%), radial-gradient(ellipse at 50% 80%, #5a6a5a 0%, transparent 80%);
}
.scn-bottom-transformed-ass .bg-wood-clearing {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  animation: bt-wood 14s ease-in-out infinite alternate;
}
.scn-bottom-transformed-ass .bottom-body {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 60% 60%;
  transform: rotate(5deg);
  animation: bt-body 6s ease-in-out infinite;
}
.scn-bottom-transformed-ass .bottom-ass-head {
  position: absolute; bottom: 58%; left: 38%; width: 50px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 8px 0 #3a2a1a;
  animation: bt-head 4s ease-in-out infinite alternate;
}
.scn-bottom-transformed-ass .titania-sleeping {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: bt-titania 10s ease-in-out infinite;
}
.scn-bottom-transformed-ass .script-paper {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-15deg);
  animation: bt-paper 8s ease-in-out infinite;
}
.scn-bottom-transformed-ass .crown-flowers {
  position: absolute; bottom: 65%; left: 42%; width: 40px; height: 14px;
  background: linear-gradient(90deg, #c8553d 0%, #b87878 30%, #a0461a 60%, #c8553d 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: bt-crown 5s ease-in-out infinite alternate;
}
@keyframes bt-wood {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes bt-body {
  0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-5px); } 100% { transform: rotate(7deg) translateY(2px); }
}
@keyframes bt-head {
  0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.08); } 100% { transform: rotate(-15deg) scale(0.95); }
}
@keyframes bt-titania {
  0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(4px); } 100% { transform: rotate(22deg) translateY(-2px); }
}
@keyframes bt-paper {
  0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(3px); } 100% { transform: rotate(-20deg) translateY(-1px); }
}
@keyframes bt-crown {
  0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-3px); } 100% { transform: scaleY(0.9) translateY(2px); }
}

.scn-egeus-complaint { background: linear-gradient(160deg, #f5e6c8 0%, #dac29c 40%, #b8956a 100%), radial-gradient(ellipse at 60% 30%, #fff8e7 0%, transparent 70%); }
.scn-egeus-complaint .sunbeam { position:absolute; top:0; left:20%; width:35%; height:75%; background: linear-gradient(135deg, rgba(255,245,200,0.4) 0%, rgba(255,245,200,0.0) 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 20% 100%); animation: ec-sun 16s ease-in-out infinite alternate; }
.scn-egeus-complaint .columns { position:absolute; bottom:25%; width:8%; height:75%; background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.1); }
.scn-egeus-complaint .column-a { left:15%; }
.scn-egeus-complaint .column-b { right:15%; }
.scn-egeus-complaint .throne { position:absolute; bottom:25%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #b8935a 0%, #7a5c32 100%); border-radius: 12px 12px 4px 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-egeus-complaint .egeus-figure { position:absolute; bottom:26%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #4a3d2e 0%, #2a2218 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-bow 10s ease-in-out infinite; }
.scn-egeus-complaint .hermia-figure { position:absolute; bottom:26%; left:48%; width:14px; height:36px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; }
.scn-egeus-complaint .theseus-figure { position:absolute; bottom:28%; left:56%; width:18px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%); border-radius: 40% 40% 30% 30% / 65% 65% 35% 35%; }
.scn-egeus-complaint .floor-glow { position:absolute; bottom:21%; left:25%; right:25%; height:8%; background: radial-gradient(ellipse at center, rgba(230,200,150,0.3) 0%, transparent 80%); animation: ec-glow 12s ease-in-out infinite alternate; }
@keyframes ec-sun { 0% { opacity:0.6; transform: translateX(-5%) skewX(-2deg); } 50% { opacity:0.9; transform: translateX(2%) skewX(1deg); } 100% { opacity:0.7; transform: translateX(-2%) skewX(-1deg); } }
@keyframes ec-bow { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-4deg); } 75% { transform: translateY(-1px) rotate(4deg); } }
@keyframes ec-glow { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

.scn-theseus-warning { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 40% 50%, #4a4a5a 0%, transparent 80%); }
.scn-theseus-warning .shadow-bars { position:absolute; top:0; left:10%; width:80%; height:100%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 8%, rgba(0,0,0,0.3) 8%, rgba(0,0,0,0.3) 12%, transparent 12%); animation: tw-shift 6s ease-in-out infinite alternate; }
.scn-theseus-warning .theseus-warn { position:absolute; bottom:24%; left:40%; width:20px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 65% 65% 35% 35%; transform-origin: bottom center; animation: tw-tower 3s ease-in-out infinite; }
.scn-theseus-warning .hermia-bowed { position:absolute; bottom:24%; left:52%; width:14px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius: 45% 45% 40% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: tw-bow 5s ease-in-out infinite; }
.scn-theseus-warning .law-scroll { position:absolute; bottom:32%; left:45%; width:12px; height:16px; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); border-radius: 2px 2px 4px 4px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: tw-scroll 12s ease-in-out infinite; }
.scn-theseus-warning .halo-tense { position:absolute; top:10%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(200,180,120,0.15) 0%, transparent 60%); pointer-events:none; }
.scn-theseus-warning .altar-stone { position:absolute; bottom:18%; left:50%; width:60px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-theseus-warning .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 70% 40%, rgba(200,200,180,0.1) 0%, transparent 50%); animation: tw-dust 8s ease-in-out infinite alternate; }
@keyframes tw-shift { 0% { transform: translateX(0); opacity:0.7; } 50% { transform: translateX(-3%); opacity:1; } 100% { transform: translateX(2%); opacity:0.8; } }
@keyframes tw-tower { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-2deg); } 70% { transform: translateY(1px) rotate(2deg); } }
@keyframes tw-bow { 0%,100% { transform: translateY(0) scaleY(1); } 40% { transform: translateY(-1px) scaleY(0.95); } 80% { transform: translateY(1px) scaleY(1.02); } }
@keyframes tw-scroll { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }
@keyframes tw-dust { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-lovers-escape-plan { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 80%); }
.scn-lovers-escape-plan .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a18 0%, #141428 100%); }
.scn-lovers-escape-plan .lamp-glow { position:absolute; bottom:45%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #ffcc66 0%, #cc8822 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,180,60,0.4), 0 0 80px 40px rgba(255,180,60,0.2); animation: le-flicker 2s steps(2) infinite; }
.scn-lovers-escape-plan .lysander-whisper { position:absolute; bottom:28%; left:42%; width:16px; height:38px; background: linear-gradient(180deg, #2a2218 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: le-lean 4s ease-in-out infinite; }
.scn-lovers-escape-plan .hermia-listen { position:absolute; bottom:28%; right:44%; width:14px; height:34px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: le-lean 4s ease-in-out infinite reverse; }
.scn-lovers-escape-plan .table-map { position:absolute; bottom:24%; left:50%; width:50px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.6); animation: le-map 8s ease-in-out infinite; }
.scn-lovers-escape-plan .shadow-crawl-a { position:absolute; bottom:20%; left:10%; width:40%; height:20%; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: le-crawl 15s linear infinite; }
.scn-lovers-escape-plan .shadow-crawl-b { position:absolute; bottom:18%; right:10%; width:30%; height:15%; background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation: le-crawl 20s linear infinite reverse; }
.scn-lovers-escape-plan .flicker-overlay { position:absolute; inset:0; background: radial-gradient(circle at 45% 50%, rgba(255,200,100,0.1) 0%, transparent 60%); animation: le-flicker 3s steps(3) infinite; pointer-events:none; }
@keyframes le-lean { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-6deg); } 75% { transform: translateY(-1px) rotate(6deg); } }
@keyframes le-flicker { 0% { opacity:0.8; } 33% { opacity:1; } 66% { opacity:0.7; } 100% { opacity:0.9; } }
@keyframes le-map { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-48%) scaleX(0.95); } }
@keyframes le-crawl { 0% { transform: translateX(0); opacity:0.3; } 50% { opacity:0.6; } 100% { transform: translateX(40px); opacity:0.2; } }

.scn-craftsmen-rehearsal-puck { background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 20%, #9a8a7a 0%, transparent 70%); }
.scn-craftsmen-rehearsal-puck .floor-planks { position:absolute; bottom:15%; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #5a4a3a 0%, #5a4a3a 8%, #4a3a2a 8%, #4a3a2a 16%); border-radius: 4px; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); }
.scn-craftsmen-rehearsal-puck .quince-center { position:absolute; bottom:28%; left:50%; width:18px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; animation: cr-bob 3s ease-in-out infinite; }
.scn-craftsmen-rehearsal-puck .bottom-bounce { position:absolute; bottom:30%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-bounce 0.8s ease-in-out infinite; }
.scn-craftsmen-rehearsal-puck .flute-others { position:absolute; bottom:28%; left:58%; width:14px; height:32px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius: 45% 45% 35% 35% / 50% 50% 50% 50%; animation: cr-bob 3.5s ease-in-out infinite 0.5s; }
.scn-craftsmen-rehearsal-puck .script-flutter { position:absolute; bottom:38%; left:48%; width:16px; height:20px; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); border-radius: 2px; transform-origin: bottom left; animation: cr-flutter 2s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-craftsmen-rehearsal-puck .puck-shadow { position:absolute; top:8%; right:12%; width:24px; height:16px; background: linear-gradient(180deg, rgba(30,20,10,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: cr-swoop 6s ease-in-out infinite; }
.scn-craftsmen-rehearsal-puck .window-dim { position:absolute; top:10%; left:10%; width:30%; height:40%; background: linear-gradient(135deg, rgba(180,170,150,0.2) 0%, transparent 70%); border-radius: 4px; }
.scn-craftsmen-rehearsal-puck .rafter-beam { position:absolute; bottom:75%; left:0; right:0; height:6px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
@keyframes cr-bob { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes cr-bounce { 0%,100% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-6px) scaleY(0.9); } 50% { transform: translateY(0) scaleY(1.1); } 75% { transform: translateY(-3px) scaleY(0.95); } }
@keyframes cr-flutter { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-2px); } 75% { transform: rotate(-6deg) translateY(-1px); } }
@keyframes cr-swoop { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0.3; } 25% { transform: translateX(-20px) translateY(10px) rotate(-10deg); opacity:0.7; } 50% { transform: translateX(-40px) translateY(5px) rotate(5deg); opacity:0.5; } 75% { transform: translateX(-10px) translateY(-5px) rotate(15deg); opacity:0.8; } }

/* Scene: theseus-decrees-marriages */
.scn-theseus-decrees-marriages {
  background:
    linear-gradient(180deg, #f5e6b3 0%, #e8c982 40%, #c9a86c 100%),
    radial-gradient(ellipse at 50% 20%, #fff5d6 0%, transparent 60%);
}
.scn-theseus-decrees-marriages .palace-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d4b88a 0%, #b89a6a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.2);
  animation: tdm-floor 20s ease-in-out infinite;
}
.scn-theseus-decrees-marriages .palace-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(135deg, #f0dbb0 0%, #d4b88a 50%, #bfa578 100%);
  border-bottom: 4px solid #a08050;
}
.scn-theseus-decrees-marriages .arch {
  position: absolute; top: 8%; left: 50%; width: 40%; height: 50%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #fff5e0 0%, #e8d4ac 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.1);
  animation: tdm-arch 8s ease-in-out infinite alternate;
}
.scn-theseus-decrees-marriages .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, rgba(255,245,210,0.6) 0%, rgba(255,245,210,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: tdm-sunbeam 6s ease-in-out infinite alternate;
}
.scn-theseus-decrees-marriages .figure-left {
  position: absolute; bottom: 22%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2618 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdm-figure-left 4s ease-in-out infinite;
}
.scn-theseus-decrees-marriages .figure-right {
  position: absolute; bottom: 22%; right: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdm-figure-right 4s ease-in-out infinite reverse;
}
.scn-theseus-decrees-marriages .fairy-a {
  position: absolute; top: 18%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffdd99 0%, #ffcc80 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,220,150,0.6);
  animation: tdm-fairy-a 12s linear infinite;
}
.scn-theseus-decrees-marriages .fairy-b {
  position: absolute; top: 25%; right: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffdd99 0%, #ffcc80 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255,220,150,0.4);
  animation: tdm-fairy-b 15s linear infinite reverse;
}
.scn-theseus-decrees-marriages .blessing-glow {
  position: absolute; top: 12%; left: 50%; width: 80px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,240,200,0.3) 0%, transparent 80%);
  filter: blur(10px);
  animation: tdm-glow 3s ease-in-out infinite alternate;
}
@keyframes tdm-floor { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes tdm-arch { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes tdm-sunbeam { 0% { opacity: 0.6; transform: skewX(-2deg); } 100% { opacity: 1; transform: skewX(2deg); } }
@keyframes tdm-figure-left { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tdm-figure-right { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes tdm-fairy-a { 0% { transform: translate(0, 0); } 25% { transform: translate(30px, -20px); } 50% { transform: translate(60px, -10px); } 75% { transform: translate(30px, -30px); } 100% { transform: translate(0, 0); } }
@keyframes tdm-fairy-b { 0% { transform: translate(0, 0); } 25% { transform: translate(-20px, -25px); } 50% { transform: translate(-40px, -15px); } 75% { transform: translate(-20px, -30px); } 100% { transform: translate(0, 0); } }
@keyframes tdm-glow { 0% { opacity: 0.3; transform: translateX(-50%) scale(1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1.2); } }

/* Scene: theseus-chooses-play */
.scn-theseus-chooses-play {
  background:
    linear-gradient(180deg, #fdf5e6 0%, #edd9c6 50%, #d9bca5 100%),
    radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 70%);
}
.scn-theseus-chooses-play .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #b08860 0%, #8a6a4a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-theseus-chooses-play .lantern {
  position: absolute; top: 18%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd580 0%, #e8b050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 12px #ffc060, 0 0 60px 24px rgba(255,192,96,0.4);
  animation: tcp-lantern 2s ease-in-out infinite alternate;
}
.scn-theseus-chooses-play .bottom-profile {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 60% 40% 40% 60% / 60% 60% 40% 40%;
  transform: scaleX(-1); /* profile facing right */
  animation: tcp-profile 3s ease-in-out infinite;
}
.scn-theseus-chooses-play .craftsman-1 {
  position: absolute; bottom: 26%; left: 55%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(1);
  animation: tcp-craftsman-1 4s ease-in-out infinite;
}
.scn-theseus-chooses-play .craftsman-2 {
  position: absolute; bottom: 24%; left: 68%; width: 32px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tcp-craftsman-2 4.5s ease-in-out infinite;
}
.scn-theseus-chooses-play .script-scroll {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 6px;
  background: #f5e8c0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tcp-scroll 6s ease-in-out infinite;
}
.scn-theseus-chooses-play .chair-1 {
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-theseus-chooses-play .chair-2 {
  position: absolute; bottom: 12%; right: 30%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%);
  border-radius: 10% 10% 30% 30%;
}
@keyframes tcp-lantern { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.1) rotate(3deg); } }
@keyframes tcp-profile { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 50% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(-2deg); } }
@keyframes tcp-craftsman-1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tcp-craftsman-2 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tcp-scroll { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: item-moonshine-lantern */
.scn-item-moonshine-lantern {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #3a3a6e 40%, #4a4a8e 100%),
    radial-gradient(ellipse at 50% 30%, #5a5aae 0%, transparent 80%);
}
.scn-item-moonshine-lantern .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-top: 3px solid #f0c870;
}
.scn-item-moonshine-lantern .backdrop {
  position: absolute; top: 0; left: 10%; right: 10%; height: 75%;
  background: radial-gradient(ellipse at 50% 40%, #4a4a8e 0%, #2a2a5e 100%);
  border: 2px solid #f0c870;
  border-radius: 20px 20px 0 0;
}
.scn-item-moonshine-lantern .wall-actor {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: iml-wall 5s ease-in-out infinite;
}
.scn-item-moonshine-lantern .wall-actor::after {
  content: '';
  position: absolute; top: 20%; left: 20%; width: 12px; height: 6px; background: #f0c870; border-radius: 2px; box-shadow: 12px 0 0 #f0c870;
}
.scn-item-moonshine-lantern .moonshine-lantern {
  position: absolute; top: 10%; left: 50%; width: 24px; height: 36px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd580 0%, #e8b050 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 20px #ffcc60, 0 0 100px 40px rgba(255,200,80,0.3);
  animation: iml-moon 8s ease-in-out infinite alternate;
}
.scn-item-moonshine-lantern .pyramus {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 55px; transform: translateX(-100%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iml-pyramus 6s ease-in-out infinite;
}
.scn-item-moonshine-lantern .thisbe {
  position: absolute; bottom: 22%; right: 50%; width: 30px; height: 55px; transform: translateX(100%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iml-thisbe 6s ease-in-out infinite reverse;
}
.scn-item-moonshine-lantern .chink-glow {
  position: absolute; bottom: 28%; left: 50%; width: 10px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,240,200,0.7) 0%, transparent 100%);
  filter: blur(4px);
  animation: iml-chink 3s ease-in-out infinite alternate;
}
@keyframes iml-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes iml-moon { 0% { transform: translateX(-50%) scale(1); opacity: 0.9; } 100% { transform: translateX(-50%) scale(1.1); opacity: 1; } }
@keyframes iml-pyramus { 0% { transform: translateX(-100%) translateY(0) rotate(0deg); } 25% { transform: translateX(-100%) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-100%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-100%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-100%) translateY(0) rotate(0deg); } }
@keyframes iml-thisbe { 0% { transform: translateX(100%) translateY(0) rotate(0deg); } 25% { transform: translateX(100%) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(100%) translateY(0) rotate(2deg); } 75% { transform: translateX(100%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(100%) translateY(0) rotate(0deg); } }
@keyframes iml-chink { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 100% { opacity: 1; transform: translateX(-50%) scale(1.5); } }

/* Scene: item-bloody-mantle */
.scn-item-bloody-mantle {
  background:
    linear-gradient(180deg, #4a2a2a 0%, #6a3a3a 40%, #8a4a4a 100%),
    radial-gradient(ellipse at 50% 40%, #9a4a4a 0%, transparent 70%);
}
.scn-item-bloody-mantle .stage-bg {
  position: absolute; top: 0; left: 5%; right: 5%; height: 70%;
  background: linear-gradient(180deg, #3a1a1a 0%, #5a2a2a 100%);
  border: 2px solid #c87050;
  border-radius: 30px 30px 0 0;
}
.scn-item-bloody-mantle .pyramus-figure {
  position: absolute; bottom: 20%; left: 50%; width: 35px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ibm-pyramus 5s ease-in-out infinite;
}
.scn-item-bloody-mantle .bloody-mantle {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 20% 80% 20% 80% / 60% 40% 60% 40%;
  box-shadow: 0 0 12px 4px rgba(200,80,60,0.5);
  animation: ibm-mantle 3s ease-in-out infinite alternate;
}
.scn-item-bloody-mantle .dagger {
  position: absolute; bottom: 18%; left: 53%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: ibm-dagger 4s ease-in-out infinite;
}
.scn-item-bloody-mantle .thisbe-corpse {
  position: absolute; bottom: 15%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ibm-corpse 6s ease-in-out infinite;
}
.scn-item-bloody-mantle .dramatic-spotlight {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(12px);
  animation: ibm-spotlight 8s ease-in-out infinite alternate;
}
.scn-item-bloody-mantle .confetti {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,200,100,0.1) 10px, rgba(255,200,100,0.1) 12px);
  background-size: 20px 20px;
  animation: ibm-confetti 15s linear infinite;
}
@keyframes ibm-pyramus { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-5deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ibm-mantle { 0% { transform: translateX(-50%) rotate(0deg); opacity: 0.8; } 100% { transform: translateX(-50%) rotate(15deg); opacity: 1; } }
@keyframes ibm-dagger { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ibm-corpse { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ibm-spotlight { 0% { opacity: 0.3; transform: skewX(0deg); } 100% { opacity: 0.6; transform: skewX(5deg); } }
@keyframes ibm-confetti { 0% { background-position: 0 0; } 100% { background-position: 20px 20px; } }

.scn-titania-dotes-bottom {
  background: 
    linear-gradient(180deg, #5a6b5c 0%, #3d4e3f 30%, #2e3d30 100%),
    radial-gradient(ellipse at 50% 0%, #6a7b6c 0%, transparent 70%);
}
.scn-titania-dotes-bottom .bg {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 30%, #7a8b7c 0%, transparent 60%);
  animation: tdb-breathe 8s ease-in-out infinite alternate;
}
.scn-titania-dotes-bottom .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #2e3d30 0%, #1e2d20 100%);
  border-radius: 60% 40% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-titania-dotes-bottom .bottom {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: tdb-breathe 6s ease-in-out infinite;
}
.scn-titania-dotes-bottom .ears {
  position: absolute; bottom: 70%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
}
.scn-titania-dotes-bottom .ears::before {
  content: ''; position: absolute; top: -15px; left: 5px; width: 10px; height: 25px;
  background: #5a4a3a; border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
}
.scn-titania-dotes-bottom .ears::after {
  content: ''; position: absolute; top: -15px; right: 5px; width: 10px; height: 25px;
  background: #5a4a3a; border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
}
.scn-titania-dotes-bottom .fairy {
  position: absolute; width: 12px; height: 12px; 
  background: radial-gradient(circle, #e0c080 0%, #c0a060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,192,128,0.4);
  animation: tdb-float 10s ease-in-out infinite;
}
.scn-titania-dotes-bottom .fairy-1 { top: 30%; left: 20%; animation-delay: 0s; }
.scn-titania-dotes-bottom .fairy-2 { top: 45%; left: 70%; animation-delay: -3s; }
.scn-titania-dotes-bottom .fairy-3 { top: 55%; left: 40%; animation-delay: -6s; }
.scn-titania-dotes-bottom .glow {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(224,192,128,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: tdb-glow 4s ease-in-out infinite alternate;
}
@keyframes tdb-breathe {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes tdb-float {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(10px, -15px) rotate(30deg); }
  50% { transform: translate(-8px, -25px) rotate(-10deg); }
  75% { transform: translate(12px, -18px) rotate(20deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes tdb-glow {
  0% { opacity: 0.5; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.2); }
}

.scn-demetrius-helena-rivalry {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 30% 50%, #4a5a6a 0%, transparent 60%);
}
.scn-demetrius-helena-rivalry .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 40%, #4a5a6a 0%, transparent 50%);
  animation: dhr-pulse 6s ease-in-out infinite alternate;
}
.scn-demetrius-helena-rivalry .ground-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 100%, 20% 30%, 40% 100%, 60% 20%, 80% 100%, 100% 40%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-demetrius-helena-rivalry .lysander {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  box-shadow: -4px 0 10px rgba(0,0,0,0.4);
  animation: dhr-shake 2s ease-in-out infinite;
}
.scn-demetrius-helena-rivalry .demetrius {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 4px 0 10px rgba(0,0,0,0.4);
  animation: dhr-shake 2s ease-in-out infinite reverse;
}
.scn-demetrius-helena-rivalry .helena {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.3);
  animation: dhr-pulse 3s ease-in-out infinite;
}
.scn-demetrius-helena-rivalry .shadow-left {
  position: absolute; bottom: 0; left: 10%; width: 20%; height: 40%;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: dhr-pulse 4s ease-in-out infinite alternate;
}
.scn-demetrius-helena-rivalry .spark {
  position: absolute; width: 4px; height: 4px;
  background: #a0b0c0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,176,192,0.5);
  animation: dhr-oscillate 1.5s ease-in-out infinite;
}
.scn-demetrius-helena-rivalry .spark-1 { top: 30%; left: 40%; animation-delay: 0s; }
.scn-demetrius-helena-rivalry .spark-2 { top: 60%; left: 60%; animation-delay: -0.5s; }
@keyframes dhr-pulse {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dhr-shake {
  0% { transform: rotate(3deg) translateX(0); }
  25% { transform: rotate(-3deg) translateX(2px); }
  50% { transform: rotate(2deg) translateX(-2px); }
  75% { transform: rotate(-2deg) translateX(1px); }
  100% { transform: rotate(3deg) translateX(0); }
}
@keyframes dhr-oscillate {
  0% { transform: translate(0, 0); }
  50% { transform: translate(5px, -10px); }
  100% { transform: translate(0, 0); }
}

.scn-lovers-quarrel-woods {
  background:
    linear-gradient(180deg, #2a3a3a 0%, #3a4a4a 40%, #1a2a2a 100%),
    radial-gradient(ellipse at 50% 20%, #4a5a5a 0%, transparent 80%);
}
.scn-lovers-quarrel-woods .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 30%, #3a4a4a 0%, transparent 60%);
  animation: lqw-pulse 5s ease-in-out infinite alternate;
}
.scn-lovers-quarrel-woods .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-lovers-quarrel-woods .figure-1 {
  position: absolute; bottom: 20%; left: 15%; width: 25px; height: 75px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(8deg);
  animation: lqw-jitter 1.8s ease-in-out infinite;
}
.scn-lovers-quarrel-woods .figure-2 {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 25% 25%;
  transform: rotate(-10deg);
  animation: lqw-jitter 1.8s ease-in-out infinite reverse;
}
.scn-lovers-quarrel-woods .figure-3 {
  position: absolute; bottom: 20%; right: 35%; width: 25px; height: 75px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
  animation: lqw-jitter 2s ease-in-out infinite -0.5s;
}
.scn-lovers-quarrel-woods .figure-4 {
  position: absolute; bottom: 22%; right: 15%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 25% 25%;
  transform: rotate(7deg);
  animation: lqw-jitter 2s ease-in-out infinite -0.2s;
}
.scn-lovers-quarrel-woods .woods {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: repeating-linear-gradient(90deg, 
    transparent 0%, transparent 5%,
    #1a2a1a 5%, #1a2a1a 8%,
    transparent 8%, transparent 15%);
  mask-image: linear-gradient(180deg, black 60%, transparent 100%);
  animation: lqw-sway 8s ease-in-out infinite;
}
.scn-lovers-quarrel-woods .flash {
  position: absolute; inset: 0;
  background: rgba(200,220,200,0.08);
  animation: lqw-flash 3s ease-in-out infinite;
}
@keyframes lqw-jitter {
  0% { transform: rotate(5deg) translateX(0); }
  15% { transform: rotate(-3deg) translateX(3px); }
  30% { transform: rotate(4deg) translateX(-2px); }
  45% { transform: rotate(-4deg) translateX(2px); }
  60% { transform: rotate(2deg) translateX(-1px); }
  75% { transform: rotate(-2deg) translateX(1px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes lqw-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes lqw-flash {
  0% { opacity: 0; }
  10% { opacity: 1; }
  20% { opacity: 0; }
  100% { opacity: 0; }
}
@keyframes lqw-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

.scn-oberon-fixes-confusion {
  background:
    linear-gradient(180deg, #f4d8b0 0%, #e8c090 30%, #c8a080 60%, #a08870 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 80%);
}
.scn-oberon-fixes-confusion .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b090 50%, #a08870 100%);
  animation: ofc-glow 10s ease-in-out infinite alternate;
}
.scn-oberon-fixes-confusion .sun {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, #e0c080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,224,160,0.4);
  animation: ofc-risesun 20s ease-in-out infinite alternate;
}
.scn-oberon-fixes-confusion .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09880 0%, #8a7868 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
  animation: ofc-sway 12s ease-in-out infinite;
}
.scn-oberon-fixes-confusion .oberon {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-2deg);
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: ofc-breathe 6s ease-in-out infinite;
}
.scn-oberon-fixes-confusion .titania {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 78px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%;
  transform: rotate(2deg);
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: ofc-breathe 6s ease-in-out infinite reverse;
}
.scn-oberon-fixes-confusion .puck {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: ofc-breathe 4s ease-in-out infinite -1s;
}
.scn-oberon-fixes-confusion .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.15) 0%, transparent 70%);
  animation: ofc-glow 8s ease-in-out infinite alternate;
}
.scn-oberon-fixes-confusion .mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,180,160,0.15) 100%);
  filter: blur(10px);
  animation: ofc-mist 15s ease-in-out infinite alternate;
}
@keyframes ofc-risesun {
  0% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(-15px); }
}
@keyframes ofc-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ofc-glow {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes ofc-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes ofc-mist {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}
/* end per-scene blocks */
