/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-fortinbras-takes-command {
  background: linear-gradient(180deg, #5f6a72 0%, #3d454e 60%, #2a3038 100%),
              radial-gradient(ellipse at 50% 100%, #4a525a 0%, transparent 70%);
}
.scn-fortinbras-takes-command .sky-overcast {
  position:absolute; inset:0; background:linear-gradient(180deg, #6a7880 0%, #3d454e 100%);
  animation: ftc-sky 14s ease-in-out infinite alternate;
}
.scn-fortinbras-takes-command .fog-mist {
  position:absolute; inset:20% 0 30% 0; background: linear-gradient(90deg, transparent, rgba(200,210,220,.15), transparent);
  filter:blur(12px); transform:translateX(-10%); animation: ftc-fog 18s ease-in-out infinite alternate;
}
.scn-fortinbras-takes-command .stone-platform {
  position:absolute; bottom:15%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #6b5e50 0%, #3a332b 100%); border-radius:4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: ftc-platform 8s ease-in-out infinite;
}
.scn-fortinbras-takes-command .silhouette-figure {
  position:absolute; bottom:28%; left:45%; width:22px; height:48px;
  background: linear-gradient(180deg, #1a1e20 0%, #05070a 100%);
  border-radius:50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center; animation: ftc-figure 6s ease-in-out infinite;
}
.scn-fortinbras-takes-command .furled-banner {
  position:absolute; bottom:32%; left:48%; width:32px; height:18px;
  background: linear-gradient(180deg, #4b3e30 0%, #221b14 100%);
  border-radius:0 40% 40% 0; transform-origin: left center;
  animation: ftc-banner 5s ease-in-out infinite;
}
.scn-fortinbras-takes-command .row-spears {
  position:absolute; bottom:20%; left:30%; right:30%; height:40%;
  background: repeating-linear-gradient(90deg, #3a3028 0px 2px, transparent 2px 14px);
  mask-image: linear-gradient(0deg, transparent 0%, #000 40%, #000 70%, transparent 100%);
  animation: ftc-spears 9s ease-in-out infinite alternate;
}
.scn-fortinbras-takes-command .distant-ground {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #2e342e 0%, #1a1e1a 100%);
  border-radius:20% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4);
}

@keyframes ftc-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ftc-fog { 0% { transform:translateX(-15%) } 50% { transform:translateX(5%) } 100% { transform:translateX(-10%) } }
@keyframes ftc-platform { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes ftc-figure { 0% { transform:rotate(-1deg) translateY(0) } 25% { transform:rotate(.5deg) translateY(-1px) } 50% { transform:rotate(1deg) translateY(0) } 75% { transform:rotate(-.5deg) translateY(-1px) } 100% { transform:rotate(-1deg) translateY(0) } }
@keyframes ftc-banner { 0% { transform:skewX(0deg) rotate(0) } 25% { transform:skewX(3deg) rotate(2deg) } 50% { transform:skewX(-2deg) rotate(-1deg) } 75% { transform:skewX(2deg) rotate(3deg) } 100% { transform:skewX(0deg) rotate(0) } }
@keyframes ftc-spears { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }

.scn-final-tribute {
  background: linear-gradient(180deg, #4a4f55 0%, #2d333a 60%, #1c2024 100%),
              radial-gradient(ellipse at 50% 100%, #343b42 0%, transparent 70%);
}
.scn-final-tribute .sky-heavy {
  position:absolute; inset:0; background:linear-gradient(180deg, #5a636c 0%, #2d333a 100%);
  animation: ftb-sky 16s ease-in-out infinite alternate;
}
.scn-final-tribute .wooden-stage {
  position:absolute; bottom:20%; left:15%; right:15%; height:10%;
  background: linear-gradient(180deg, #5c4e3e 0%, #35291e 100%);
  border-radius:6% 6% 0 0; box-shadow: 0 6px 14px rgba(0,0,0,.4);
  animation: ftb-stage 10s ease-in-out infinite;
}
.scn-final-tribute .bier-body {
  position:absolute; bottom:30%; left:40%; width:60px; height:14px;
  background: linear-gradient(180deg, #4a3e32 0%, #2a221a 100%);
  border-radius:40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ftb-bier 7s ease-in-out infinite alternate;
}
.scn-final-tribute .soldiers-line {
  position:absolute; bottom:30%; left:20%; width:80px; height:40px;
  background: repeating-linear-gradient(90deg, #1e2428 0px 10px, transparent 10px 18px);
  mask-image: radial-gradient(ellipse at 50% 100%, transparent 30%, #000 60%);
  animation: ftb-soldiers 9s ease-in-out infinite alternate;
}
.scn-final-tribute .drum-circle {
  position:absolute; bottom:28%; left:48%; width:18px; height:18px;
  background: radial-gradient(circle, #6a6050 0%, #3a3024 100%);
  border-radius:50%; box-shadow: inset 0 -3px 6px rgba(0,0,0,.3);
  animation: ftb-drum 4s ease-in-out infinite;
}
.scn-final-tribute .torch-glow {
  position:absolute; bottom:38%; left:25%; width:10px; height:10px;
  background: radial-gradient(circle, #b89050 0%, #6a5020 70%);
  border-radius:50%; box-shadow: 0 0 20px 6px rgba(184,144,80,.5);
  animation: ftb-torch 3s ease-in-out infinite alternate;
}
.scn-final-tribute .tribute-ground {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #2e332e 0%, #1a1e1a 100%);
  border-radius:30% 70% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.3);
}

@keyframes ftb-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ftb-stage { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes ftb-bier { 0% { transform:translateX(0) } 50% { transform:translateX(3px) } 100% { transform:translateX(0) } }
@keyframes ftb-soldiers { 0% { opacity:.6; transform:translateY(0) } 50% { opacity:1; transform:translateY(-1px) } 100% { opacity:.7; transform:translateY(0) } }
@keyframes ftb-drum { 0% { transform:scale(1) } 50% { transform:scale(1.04) } 100% { transform:scale(1) } }
@keyframes ftb-torch { 0% { box-shadow:0 0 16px 4px rgba(184,144,80,.4); opacity:.8 } 50% { box-shadow:0 0 28px 8px rgba(184,144,80,.7); opacity:1 } 100% { box-shadow:0 0 20px 5px rgba(184,144,80,.5); opacity:.9 } }

/* ghost-vision: dim interior, tense, ghostly figure */
.scn-ghost-vision {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 50%, #2a2a4a 100%),
              radial-gradient(ellipse at 60% 80%, #2a2a4a 0%, transparent 70%);
}
.scn-ghost-vision .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-ghost-vision .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-ghost-vision .window { position:absolute; top:10%; left:20%; width:60px; height:80px; background: #2a2a3e; border-radius: 4px; box-shadow: 0 0 0 4px #1a1a2e; }
.scn-ghost-vision .moonlight { position:absolute; top:15%; left:23%; width:60%; height:50%; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%); transform: skewX(-20deg); animation: gv-moon 15s ease-in-out infinite alternate; }
.scn-ghost-vision .ghost { position:absolute; bottom:30%; left:50%; width:50px; height:80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(200,220,255,0.5) 0%, rgba(200,220,255,0.1) 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gv-ghost 8s ease-in-out infinite; }
.scn-ghost-vision .candle { position:absolute; bottom:20%; left:30%; width:8px; height:25px; background: linear-gradient(180deg, #ffcc88 0%, #ddaa66 50%, #8a6a4a 100%); border-radius: 4px 4px 2px 2px; animation: gv-candle 4s ease-in-out infinite alternate; }
.scn-ghost-vision .shadow { position:absolute; bottom:10%; left:40%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: gv-shadow 10s linear infinite; }
@keyframes gv-moon { 0% { opacity:0.3; transform: skewX(-20deg) translateX(0); } 50% { opacity:0.7; transform: skewX(-20deg) translateX(10px); } 100% { opacity:0.3; transform: skewX(-20deg) translateX(0); } }
@keyframes gv-ghost { 0% { opacity:0; transform: translateX(-50%) scale(0.95); } 30% { opacity:1; transform: translateX(-50%) scale(1); } 70% { opacity:1; transform: translateX(-50%) scale(1.02); } 100% { opacity:0; transform: translateX(-50%) scale(0.9); } }
@keyframes gv-candle { 0% { opacity:0.8; box-shadow: 0 0 10px 2px #ffcc88; } 50% { opacity:1; box-shadow: 0 0 20px 6px #ffcc88; } 100% { opacity:0.9; box-shadow: 0 0 12px 3px #ffcc88; } }
@keyframes gv-shadow { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }

/* ghost-nothing: tense, dim interior, empty room with chair and figure */
.scn-ghost-nothing {
  background: linear-gradient(180deg, #12121a 0%, #1e1e28 50%, #2a2a34 100%),
              radial-gradient(ellipse at 30% 70%, #2a2a34 0%, transparent 70%);
}
.scn-ghost-nothing .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1e1e28 0%, #12121a 100%); }
.scn-ghost-nothing .doorway { position:absolute; top:5%; right:10%; width:70px; height:120px; background: #0a0a10; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-ghost-nothing .chair { position:absolute; bottom:20%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: gn-chair 12s ease-in-out infinite alternate; }
.scn-ghost-nothing .figure { position:absolute; bottom:30%; left:60%; width:30px; height:70px; background: radial-gradient(ellipse at 50% 40%, rgba(40,40,50,0.9) 0%, rgba(10,10,15,0.9) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gn-figure 10s ease-in-out infinite; }
.scn-ghost-nothing .shadow-shape { position:absolute; bottom:15%; left:50%; width:100px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); animation: gn-shadow 20s linear infinite; }
.scn-ghost-nothing .lamp-glow { position:absolute; top:30%; left:15%; width:10px; height:10px; background: radial-gradient(circle, #aa8844 0%, transparent 70%); box-shadow: 0 0 40px 15px rgba(170,136,68,0.4); animation: gn-lamp 3s ease-in-out infinite alternate; }
@keyframes gn-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg) translateY(2px); } 100% { transform: rotate(0deg); } }
@keyframes gn-figure { 0% { opacity:0.8; transform: rotate(0deg) scale(1); } 25% { opacity:1; transform: rotate(3deg) scale(1.02); } 50% { opacity:0.9; transform: rotate(-2deg) scale(0.98); } 75% { opacity:1; transform: rotate(2deg) scale(1.01); } 100% { opacity:0.8; transform: rotate(0deg) scale(1); } }
@keyframes gn-shadow { 0% { transform: translateX(-20px); opacity:0.5; } 50% { transform: translateX(20px); opacity:1; } 100% { transform: translateX(-20px); opacity:0.5; } }
@keyframes gn-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 8px rgba(170,136,68,0.3); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(170,136,68,0.6); } 100% { opacity:0.7; box-shadow: 0 0 25px 10px rgba(170,136,68,0.35); } }

/* ghost-pulse: tense, dim interior, close-up of chest/heart glow */
.scn-ghost-pulse {
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 50%, #1e1e2a 100%),
              radial-gradient(ellipse at 50% 60%, #1e1e2a 0%, transparent 70%);
}
.scn-ghost-pulse .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #12121c 0%, #080810 100%); }
.scn-ghost-pulse .chest-glow { position:absolute; bottom:20%; left:50%; width:60px; height:70px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(120,200,255,0.4) 0%, transparent 70%); border-radius: 50%; animation: gp-chest 4s ease-in-out infinite alternate; }
.scn-ghost-pulse .hand { position:absolute; bottom:15%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a24 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: gp-hand 6s ease-in-out infinite; }
.scn-ghost-pulse .pulse-ring { position:absolute; bottom:35%; left:50%; width:80px; height:80px; transform: translateX(-50%); border: 2px solid rgba(100,180,255,0.3); border-radius: 50%; animation: gp-ring 4s ease-out infinite; }
.scn-ghost-pulse .vein { position:absolute; bottom:30%; left:42%; width:2px; height:30px; background: linear-gradient(180deg, rgba(50,100,150,0.6) 0%, transparent 100%); transform: rotate(-10deg); animation: gp-vein 5s ease-in-out infinite alternate; }
.scn-ghost-pulse .shadow-arm { position:absolute; bottom:10%; right:15%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%); animation: gp-arm-shadow 8s ease-in-out infinite; }
@keyframes gp-chest { 0% { transform: translateX(-50%) scale(0.95); opacity:0.5; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:0.5; } }
@keyframes gp-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes gp-ring { 0% { transform: translateX(-50%) scale(0.8); opacity:0.6; } 50% { transform: translateX(-50%) scale(1.2); opacity:0.2; } 100% { transform: translateX(-50%) scale(1.5); opacity:0; } }
@keyframes gp-vein { 0% { opacity:0.3; height:30px; } 50% { opacity:0.8; height:40px; } 100% { opacity:0.3; height:30px; } }
@keyframes gp-arm-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

/* closet-confess: tense, dim interior, confessional with pillars */
.scn-closet-confess {
  background: linear-gradient(180deg, #0e0e14 0%, #1a1a22 40%, #22222e 100%),
              radial-gradient(ellipse at 50% 70%, #22222e 0%, transparent 80%);
}
.scn-closet-confess .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0e 0%, #141418 100%); }
.scn-closet-confess .pillar-left { position:absolute; top:0; left:15%; width:20px; height:100%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.5); }
.scn-closet-confess .pillar-right { position:absolute; top:0; right:15%; width:20px; height:100%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.5); }
.scn-closet-confess .altar { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-closet-confess .kneeler { position:absolute; bottom:10%; left:50%; width:50px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a34 0%, #1a1a22 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: cc-kneeler 15s ease-in-out infinite alternate; }
.scn-closet-confess .candle-left { position:absolute; bottom:45%; left:25%; width:6px; height:20px; background: linear-gradient(180deg, #ffcc88 0%, #cc8844 100%); border-radius: 3px; box-shadow: 0 0 12px 4px rgba(255,200,120,0.5); animation: cc-candle 5s ease-in-out infinite alternate; }
.scn-closet-confess .candle-right { position:absolute; bottom:45%; right:25%; width:6px; height:20px; background: linear-gradient(180deg, #ffcc88 0%, #cc8844 100%); border-radius: 3px; box-shadow: 0 0 12px 4px rgba(255,200,120,0.5); animation: cc-candle 5s ease-in-out infinite alternate-reverse; }
.scn-closet-confess .light-beam { position:absolute; top:10%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, rgba(255,200,120,0.15) 0%, transparent 100%); transform: skewX(-15deg); animation: cc-beam 20s ease-in-out infinite alternate; }
@keyframes cc-kneeler { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cc-candle { 0% { opacity:0.7; box-shadow: 0 0 8px 2px rgba(255,200,120,0.4); } 50% { opacity:1; box-shadow: 0 0 20px 8px rgba(255,200,120,0.7); } 100% { opacity:0.8; box-shadow: 0 0 10px 3px rgba(255,200,120,0.5); } }
@keyframes cc-beam { 0% { opacity:0.2; transform: skewX(-15deg) scaleY(1); } 50% { opacity:0.6; transform: skewX(-15deg) scaleY(1.1); } 100% { opacity:0.2; transform: skewX(-15deg) scaleY(1); } }

.scn-hamlet-fair-ophelia {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%);
  position: relative;
  overflow: hidden;
}
.scn-hamlet-fair-ophelia .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 60%, transparent 100%);
  animation: hfo-sky 12s ease-in-out infinite alternate;
}
.scn-hamlet-fair-ophelia .grave-mound {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 80% 80% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
  animation: hfo-mound 20s ease-in-out infinite;
}
.scn-hamlet-fair-ophelia .ophelia {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfo-kneel 6s ease-in-out infinite;
}
.scn-hamlet-fair-ophelia .flower {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #7a4a4a 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hfo-flower 8s ease-in-out infinite;
}
.scn-hamlet-fair-ophelia .flower-1 { left: 20%; bottom: 35%; animation-delay: 0s; }
.scn-hamlet-fair-ophelia .flower-2 { left: 50%; bottom: 30%; animation-delay: 2s; }
.scn-hamlet-fair-ophelia .flower-3 { left: 70%; bottom: 25%; animation-delay: 4s; }
.scn-hamlet-fair-ophelia .cross {
  position: absolute; bottom: 38%; left: 60%; width: 4px; height: 50px;
  background: #5a4a3a;
  border-radius: 2px;
  box-shadow: 0 -12px 0 #5a4a3a, 0 -12px 0 0 #5a4a3a; /* crossbar */
  animation: hfo-cross 3s ease-in-out infinite;
}
@keyframes hfo-sky { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes hfo-mound { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hfo-kneel { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(1px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes hfo-flower { 0% { transform: translateY(0) rotate(0) scale(1) } 25% { transform: translateY(-6px) rotate(20deg) scale(.9) } 50% { transform: translateY(3px) rotate(10deg) scale(1.1) } 75% { transform: translateY(-3px) rotate(-10deg) scale(.95) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes hfo-cross { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-laertes-treble-woe {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #050510 100%);
  position: relative;
  overflow: hidden;
}
.scn-laertes-treble-woe .pit-bg {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 0;
  background: radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, #0a0a15 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  animation: ltw-pit 20s ease-in-out infinite;
}
.scn-laertes-treble-woe .pit-dark {
  position: absolute; top: 40%; left: 25%; right: 25%; bottom: 10%;
  background: #050510;
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
}
.scn-laertes-treble-woe .laertes {
  position: absolute; top: 15%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: ltw-leap 4s ease-in-out infinite;
}
.scn-laertes-treble-woe .ophelia-body {
  position: absolute; bottom: 25%; left: 42%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: ltw-body 6s ease-in-out infinite;
}
.scn-laertes-treble-woe .dust {
  position: absolute; width: 6px; height: 6px;
  background: #4a3a2a;
  border-radius: 50%;
  filter: blur(2px);
  animation: ltw-dust 5s ease-in-out infinite;
}
.scn-laertes-treble-woe .dust-1 { top: 20%; left: 30%; animation-delay: 0s; }
.scn-laertes-treble-woe .dust-2 { top: 25%; left: 55%; animation-delay: 1.5s; }
.scn-laertes-treble-woe .dust-3 { top: 30%; left: 40%; animation-delay: 3s; }
@keyframes ltw-pit { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes ltw-leap { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-30px) rotate(10deg) } 50% { transform: translateY(10px) rotate(-2deg) } 75% { transform: translateY(-15px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ltw-body { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } }
@keyframes ltw-dust { 0% { transform: translateY(0) scale(1); opacity: .8 } 25% { transform: translateY(-15px) scale(1.5); opacity: .4 } 50% { transform: translateY(5px) scale(.8); opacity: .6 } 75% { transform: translateY(-8px) scale(1.2); opacity: .2 } 100% { transform: translateY(0) scale(1); opacity: .8 } }

.scn-hamlet-what-grief {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0a0a1a 100%);
  position: relative;
  overflow: hidden;
}
.scn-hamlet-what-grief .landscape {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: hwg-land 40s ease-in-out infinite alternate;
}
.scn-hamlet-what-grief .stars {
  position: absolute; inset: 0 0 60% 0;
  background-image: radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,.3), transparent),
                    radial-gradient(2px 2px at 40% 70%, rgba(255,255,255,.2), transparent),
                    radial-gradient(2px 2px at 60% 20%, rgba(255,255,255,.25), transparent),
                    radial-gradient(2px 2px at 80% 50%, rgba(255,255,255,.15), transparent),
                    radial-gradient(2px 2px at 10% 90%, rgba(255,255,255,.2), transparent),
                    radial-gradient(2px 2px at 90% 10%, rgba(255,255,255,.3), transparent);
  animation: hwg-stars 8s ease-in-out infinite alternate;
}
.scn-hamlet-what-grief .hamlet {
  position: absolute; bottom: 25%; left: 40%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hwg-walk 5s ease-in-out infinite;
}
.scn-hamlet-what-grief .cape {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: top left;
  animation: hwg-cape 3s ease-in-out infinite;
}
.scn-hamlet-what-grief .ground-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: hwg-shadow 5s ease-in-out infinite;
}
.scn-hamlet-what-grief .flutter {
  position: absolute; bottom: 35%; left: 55%; width: 15px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  animation: hwg-flutter 4s ease-in-out infinite;
}
@keyframes hwg-land { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes hwg-stars { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }
@keyframes hwg-walk { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(10px) rotate(1deg) } 75% { transform: translateX(15px) rotate(-1deg) } }
@keyframes hwg-cape { 0%,100% { transform: rotate(0) scaleX(1) } 25% { transform: rotate(10deg) scaleX(0.9) } 50% { transform: rotate(-5deg) scaleX(1.1) } 75% { transform: rotate(5deg) scaleX(0.95) } }
@keyframes hwg-shadow { 0%,100% { opacity: .8; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(0.8) } }
@keyframes hwg-flutter { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(15deg) } 50% { transform: translateY(2px) rotate(-10deg) } 75% { transform: translateY(-1px) rotate(5deg) } }

.scn-hamlet-prayest-not {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a15 100%);
  position: relative;
  overflow: hidden;
}
.scn-hamlet-prayest-not .bg-storm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, #3a3a4a 0%, transparent 70%);
  animation: hpn-storm 10s ease-in-out infinite alternate;
}
.scn-hamlet-prayest-not .hamlet-fig {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: hpn-struggle 3s ease-in-out infinite;
}
.scn-hamlet-prayest-not .laertes-fig {
  position: absolute; bottom: 20%; left: 45%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: hpn-struggle 3s ease-in-out infinite reverse;
}
.scn-hamlet-prayest-not .hand-grip {
  position: absolute; bottom: 50%; left: 46%; width: 20px; height: 10px;
  background: #3a2a2a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  animation: hpn-grip 1.5s ease-in-out infinite;
}
.scn-hamlet-prayest-not .splash {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse at center, #3a3a4a 0%, transparent 100%);
  filter: blur(4px);
  animation: hpn-splash 4s ease-in-out infinite;
}
.scn-hamlet-prayest-not .debris {
  position: absolute; width: 8px; height: 8px;
  background: #4a3a2a;
  border-radius: 50%;
  filter: blur(1px);
  animation: hpn-debris 6s ease-in-out infinite;
}
.scn-hamlet-prayest-not .debris-1 { top: 30%; left: 20%; animation-delay: 0s; }
.scn-hamlet-prayest-not .debris-2 { top: 40%; left: 70%; animation-delay: 2s; }
@keyframes hpn-storm { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes hpn-struggle { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(-3px) rotate(-3deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hpn-grip { 0%,100% { transform: rotate(30deg) scale(1) } 50% { transform: rotate(40deg) scale(1.1) } }
@keyframes hpn-splash { 0%,100% { opacity: .4; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(0.5) } }
@keyframes hpn-debris { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-15px) rotate(45deg) } 50% { transform: translateY(5px) rotate(-20deg) } 75% { transform: translateY(-10px) rotate(30deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-pre-duel-conversation { background: linear-gradient(180deg, #e8d8c0 0%, #c8b89a 40%, #a0886a 100%), radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 70%); }
.scn-pre-duel-conversation .bg-deep { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); }
.scn-pre-duel-conversation .bg-mid { position:absolute; inset:15% 0 35% 0; background: linear-gradient(180deg, #b8a890 0%, #a09080 100%); }
.scn-pre-duel-conversation .window-light { position:absolute; top:18%; left:50%; width:40%; height:50%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #e8d8c0 40%, transparent 70%); border-radius:0 0 20% 20%; animation: pd1-glow 4s ease-in-out infinite alternate; }
.scn-pre-duel-conversation .figure-left { position:absolute; bottom:30%; left:25%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd1-shift-l 5s ease-in-out infinite; }
.scn-pre-duel-conversation .figure-right { position:absolute; bottom:30%; right:25%; width:12%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd1-shift-r 5s ease-in-out infinite .5s; }
.scn-pre-duel-conversation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:60% 60% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-pre-duel-conversation .shadow-sharp { position:absolute; bottom:30%; left:20%; width:60%; height:4%; background: linear-gradient(90deg, transparent, #2a1a0a 20%, #2a1a0a 80%, transparent); filter: blur(2px); animation: pd1-flicker 2s ease-in-out infinite alternate; }
@keyframes pd1-glow { 0% { opacity:.85; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:.9; transform:translateX(-50%) scale(1); } }
@keyframes pd1-shift-l { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd1-shift-r { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd1-flicker { 0% { opacity:.6; filter: blur(2px); } 50% { opacity:.8; filter: blur(1px); } 100% { opacity:.5; filter: blur(3px); } }

.scn-hamlet-providence-speech { background: linear-gradient(180deg, #d8cbb8 0%, #b8a890 50%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 80%); }
.scn-hamlet-providence-speech .bg-deep { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
.scn-hamlet-providence-speech .bg-mid { position:absolute; inset:25% 0 40% 0; background: linear-gradient(180deg, #c8b89a 0%, #a89880 100%); }
.scn-hamlet-providence-speech .column-left { position:absolute; top:10%; left:8%; width:6%; height:70%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4% 4% 0 0; box-shadow: 8px 0 12px rgba(0,0,0,.2); transform: scale(.95); }
.scn-hamlet-providence-speech .column-right { position:absolute; top:10%; right:8%; width:6%; height:70%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4% 4% 0 0; box-shadow: -8px 0 12px rgba(0,0,0,.2); transform: scale(.95); }
.scn-hamlet-providence-speech .figure-center { position:absolute; bottom:35%; left:50%; width:14%; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hp2-sway 7s ease-in-out infinite; }
.scn-hamlet-providence-speech .hand-gesture { position:absolute; bottom:45%; left:48%; width:6%; height:8%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hp2-hand 3s ease-in-out infinite; }
.scn-hamlet-providence-speech .light-ray { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,248,232,.3) 0%, transparent 100%); transform: skewX(-10deg); filter: blur(4px); animation: hp2-ray 6s ease-in-out infinite alternate; }
@keyframes hp2-sway { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(1deg); } 75% { transform:translateX(-50%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes hp2-hand { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 30% { transform:translateX(-50%) translateY(-4px) rotate(-10deg); } 60% { transform:translateX(-50%) translateY(-2px) rotate(5deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hp2-ray { 0% { opacity:.3; transform:skewX(-10deg) scaleY(1); } 50% { opacity:.6; transform:skewX(-5deg) scaleY(1.1); } 100% { opacity:.2; transform:skewX(-15deg) scaleY(.9); } }

.scn-duel-arrival { background: linear-gradient(180deg, #c8b89a 0%, #a89880 40%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%); }
.scn-duel-arrival .bg-deep { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); }
.scn-duel-arrival .bg-mid { position:absolute; inset:10% 0 30% 0; background: linear-gradient(180deg, #b8a890 0%, #a09080 100%); }
.scn-duel-arrival .throne { position:absolute; top:15%; left:50%; width:20%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-duel-arrival .path { position:absolute; bottom:0; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: da3-fade 8s ease-in-out infinite alternate; }
.scn-duel-arrival .banner-left { position:absolute; top:12%; left:15%; width:8%; height:45%; background: linear-gradient(180deg, #a0461a 0%, #702213 100%); border-radius:2% 2% 10% 10%; transform-origin: top center; animation: da3-sway-l 6s ease-in-out infinite; }
.scn-duel-arrival .banner-right { position:absolute; top:12%; right:15%; width:8%; height:45%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius:2% 2% 10% 10%; transform-origin: top center; animation: da3-sway-r 6s ease-in-out infinite 1s; }
.scn-duel-arrival .figure-king { position:absolute; bottom:28%; left:35%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: da3-enter 10s ease-in-out infinite; }
.scn-duel-arrival .figure-queen { position:absolute; bottom:28%; left:45%; width:7%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: da3-enter 10s ease-in-out infinite 2s; }
.scn-duel-arrival .figure-laertes { position:absolute; bottom:28%; left:55%; width:7%; height:34%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: da3-enter 10s ease-in-out infinite 4s; }
@keyframes da3-fade { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes da3-sway-l { 0% { transform:rotate(0deg); } 30% { transform:rotate(5deg); } 60% { transform:rotate(-3deg); } 100% { transform:rotate(0deg); } }
@keyframes da3-sway-r { 0% { transform:rotate(0deg); } 30% { transform:rotate(-5deg); } 60% { transform:rotate(3deg); } 100% { transform:rotate(0deg); } }
@keyframes da3-enter { 0% { opacity:0; transform:translateY(20px); } 20% { opacity:1; transform:translateY(0); } 80% { opacity:1; } 100% { opacity:0; transform:translateY(-10px); } }

.scn-hamlet-apology-laertes { background: linear-gradient(180deg, #d8cbb8 0%, #c8b89a 50%, #b8a890 100%), radial-gradient(ellipse at 60% 20%, #f0e8d8 0%, transparent 70%); }
.scn-hamlet-apology-laertes .bg-warm { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b89a 0%, #a89880 100%); }
.scn-hamlet-apology-laertes .bg-soft { position:absolute; inset:20% 0 40% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 100%); }
.scn-hamlet-apology-laertes .figure-left { position:absolute; bottom:30%; left:28%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha4-bow-l 8s ease-in-out infinite; }
.scn-hamlet-apology-laertes .figure-right { position:absolute; bottom:30%; right:28%; width:12%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha4-bow-r 8s ease-in-out infinite 1s; }
.scn-hamlet-apology-laertes .handshake { position:absolute; bottom:40%; left:50%; width:10%; height:6%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: ha4-press 5s ease-in-out infinite; }
.scn-hamlet-apology-laertes .light-soft { position:absolute; top:5%; right:20%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(240,232,216,.4) 0%, transparent 70%); filter: blur(10px); animation: ha4-breath 9s ease-in-out infinite alternate; }
.scn-hamlet-apology-laertes .shadow-soft { position:absolute; bottom:0; left:20%; width:60%; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1) 100%); filter: blur(5px); }
@keyframes ha4-bow-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-5deg); } 50% { transform: translateX(-1px) rotate(0deg); } 75% { transform: translateX(1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ha4-bow-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(5deg); } 50% { transform: translateX(1px) rotate(0deg); } 75% { transform: translateX(-1px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ha4-press { 0% { transform:translateX(-50%) scale(1); opacity:.8; } 50% { transform:translateX(-50%) scale(1.05); opacity:1; } 100% { transform:translateX(-50%) scale(1); opacity:.8; } }
@keyframes ha4-breath { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(.95); } }

/* closet-heart-cleaved */
.scn-closet-heart-cleaved {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 40%, #1a1a2e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #2a1a4e 0%, transparent 60%);
}
.scn-closet-heart-cleaved .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0a0a1a 60%); animation: chc-bg-deep 8s ease-in-out infinite alternate; }
.scn-closet-heart-cleaved .bg-mid { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a1a3e 0%, #1a1a2e 100%); opacity:0.6; }
.scn-closet-heart-cleaved .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:30% 30% 0 0 / 40% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-closet-heart-cleaved .figure-left { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: chc-fig-left 6s ease-in-out infinite; }
.scn-closet-heart-cleaved .figure-right { position:absolute; bottom:20%; left:70%; width:20px; height:50px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: chc-fig-right 6s ease-in-out infinite reverse; }
.scn-closet-heart-cleaved .heart-split { position:absolute; bottom:40%; left:50%; width:24px; height:24px; transform:translate(-50%,50%); background:radial-gradient(circle, #5e1a1d 0%, #3a0a0d 70%); border-radius:50% 50% 0 50%; box-shadow: 0 0 20px 6px rgba(94,26,29,0.5); animation: chc-heart 4s ease-in-out infinite alternate; }
.scn-closet-heart-cleaved .window { position:absolute; top:10%; left:50%; width:60px; height:80px; transform:translateX(-50%); background:linear-gradient(180deg, #2a3a5e 0%, #1a2a4e 100%); border:2px solid #1a1a2e; border-radius:4px; box-shadow: inset 0 0 30px rgba(74,90,130,0.3); animation: chc-window 12s ease-in-out infinite alternate; }
.scn-closet-heart-cleaved .curtain-left { position:absolute; top:10%; left:30%; width:30px; height:80px; background:linear-gradient(180deg, #3a1a2a 0%, #1a0a1a 100%); border-radius:0 60% 60% 0 / 0 40% 40% 0; filter:blur(2px); animation: chc-curtain 8s ease-in-out infinite alternate; }
.scn-closet-heart-cleaved .curtain-right { position:absolute; top:10%; right:30%; width:30px; height:80px; background:linear-gradient(180deg, #3a1a2a 0%, #1a0a1a 100%); border-radius:60% 0 0 60% / 40% 0 0 40%; filter:blur(2px); animation: chc-curtain 8s ease-in-out infinite alternate-reverse; }
@keyframes chc-bg-deep { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes chc-fig-left { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform:translateX(-50%) translateY(-3px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(0) rotate(2deg) } }
@keyframes chc-fig-right { 0% { transform:translateX(-50%) translateY(0) rotate(2deg) } 50% { transform:translateX(-50%) translateY(-3px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes chc-heart { 0% { transform:translate(-50%,50%) scale(1) } 50% { transform:translate(-50%,50%) scale(1.1) rotate(-5deg) } 100% { transform:translate(-50%,50%) scale(0.9) rotate(5deg) } }
@keyframes chc-window { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes chc-curtain { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* closet-advice */
.scn-closet-advice {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 30%, #1a1a2e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a4e 0%, transparent 70%);
}
.scn-closet-advice .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0a0a1a 50%); animation: cad-bg-deep 10s ease-in-out infinite alternate; }
.scn-closet-advice .bg-mid { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #2a1a3e 0%, #1a1a2e 100%); opacity:0.5; }
.scn-closet-advice .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-closet-advice .figure-advice-left { position:absolute; bottom:22%; left:35%; width:18px; height:45px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: cad-fig-l 5s ease-in-out infinite; }
.scn-closet-advice .figure-advice-right { position:absolute; bottom:22%; left:65%; width:18px; height:45px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(10deg); animation: cad-fig-r 5s ease-in-out infinite reverse; }
.scn-closet-advice .table { position:absolute; bottom:25%; left:50%; width:40px; height:10px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,0.4); }
.scn-closet-advice .candle { position:absolute; bottom:38%; left:50%; width:6px; height:18px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 0 10px 2px #b08040; }
.scn-closet-advice .glow { position:absolute; bottom:38%; left:50%; width:30px; height:30px; transform:translate(-50%,50%); background:radial-gradient(circle, rgba(176,128,64,0.4) 0%, transparent 70%); border-radius:50%; animation: cad-glow 3s ease-in-out infinite alternate; }
@keyframes cad-bg-deep { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cad-fig-l { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) rotate(-2deg) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes cad-fig-r { 0% { transform:translateX(-50%) rotate(10deg) } 50% { transform:translateX(-50%) rotate(8deg) } 100% { transform:translateX(-50%) rotate(12deg) } }
@keyframes cad-glow { 0% { opacity:0.5; transform:translate(-50%,50%) scale(1) } 50% { opacity:1; transform:translate(-50%,50%) scale(1.2) } 100% { opacity:0.6; transform:translate(-50%,50%) scale(0.9) } }

/* closet-blessing */
.scn-closet-blessing {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 35%, #1a1a2e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a4e 0%, transparent 60%);
}
.scn-closet-blessing .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0a0a1a 50%); animation: cbl-bg-deep 12s ease-in-out infinite alternate; }
.scn-closet-blessing .bg-mid { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #2a1a3e 0%, #1a1a2e 100%); opacity:0.4; }
.scn-closet-blessing .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-closet-blessing .figure-blessing-standing { position:absolute; bottom:20%; left:60%; width:22px; height:55px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(-5deg); animation: cbl-stand 7s ease-in-out infinite; }
.scn-closet-blessing .figure-blessing-kneeling { position:absolute; bottom:15%; left:40%; width:18px; height:35px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(5deg); animation: cbl-kneel 7s ease-in-out infinite reverse; }
.scn-closet-blessing .body-prone { position:absolute; bottom:10%; left:50%; width:30px; height:12px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50%; opacity:0.7; animation: cbl-body 10s ease-in-out infinite alternate; }
.scn-closet-blessing .window { position:absolute; top:10%; left:50%; width:50px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg, #2a3a5e 0%, #1a2a4e 100%); border:2px solid #1a1a2e; border-radius:4px; box-shadow:inset 0 0 30px rgba(74,90,130,0.2); animation: cbl-window 15s ease-in-out infinite alternate; }
.scn-closet-blessing .curtain-left { position:absolute; top:10%; left:25%; width:25px; height:70px; background:linear-gradient(180deg, #3a1a2a 0%, #1a0a1a 100%); border-radius:0 60% 60% 0 / 0 40% 40% 0; filter:blur(1px); animation: cbl-curtain 9s ease-in-out infinite alternate; }
.scn-closet-blessing .curtain-right { position:absolute; top:10%; right:25%; width:25px; height:70px; background:linear-gradient(180deg, #3a1a2a 0%, #1a0a1a 100%); border-radius:60% 0 0 60% / 40% 0 0 40%; filter:blur(1px); animation: cbl-curtain 9s ease-in-out infinite alternate-reverse; }
@keyframes cbl-bg-deep { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes cbl-stand { 0% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-50%) rotate(-7deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(-3deg) } }
@keyframes cbl-kneel { 0% { transform:translateX(-50%) rotate(5deg) } 50% { transform:translateX(-50%) rotate(7deg) translateY(-1px) } 100% { transform:translateX(-50%) rotate(3deg) } }
@keyframes cbl-body { 0% { opacity:0.5; transform:translateX(-50%) scale(1) } 50% { opacity:0.8; transform:translateX(-50%) scale(1.05) } 100% { opacity:0.6; transform:translateX(-50%) scale(0.95) } }
@keyframes cbl-window { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.3 } }
@keyframes cbl-curtain { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }

/* closet-instructions */
.scn-closet-instructions {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 25%, #1a1a2e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a1a4e 0%, transparent 80%);
}
.scn-closet-instructions .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0a0a1a 40%); animation: cin-bg-deep 9s ease-in-out infinite alternate; }
.scn-closet-instructions .bg-mid { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a1a3e 0%, #1a1a2e 100%); opacity:0.5; }
.scn-closet-instructions .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:25% 25% 0 0 / 35% 35% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-closet-instructions .figure-instructions-left { position:absolute; bottom:25%; left:35%; width:20px; height:48px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(5deg); animation: cin-fig-l 5s ease-in-out infinite; }
.scn-closet-instructions .figure-instructions-right { position:absolute; bottom:25%; left:65%; width:20px; height:48px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(-5deg); animation: cin-fig-r 5s ease-in-out infinite reverse; }
.scn-closet-instructions .bed { position:absolute; bottom:15%; left:50%; width:70px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow:0 6px 12px rgba(0,0,0,0.4); }
.scn-closet-instructions .pillow { position:absolute; bottom:23%; left:40%; width:18px; height:10px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40%; transform:translateX(-50%); animation: cin-pillow 7s ease-in-out infinite alternate; }
.scn-closet-instructions .candle { position:absolute; bottom:35%; left:50%; width:5px; height:15px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 0 10px 2px #b08040; }
.scn-closet-instructions .glow { position:absolute; bottom:35%; left:50%; width:25px; height:25px; transform:translate(-50%,50%); background:radial-gradient(circle, rgba(176,128,64,0.4) 0%, transparent 70%); border-radius:50%; animation: cin-glow 3s ease-in-out infinite alternate; }
@keyframes cin-bg-deep { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cin-fig-l { 0% { transform:translateX(-50%) rotate(5deg) } 50% { transform:translateX(-50%) rotate(7deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(3deg) } }
@keyframes cin-fig-r { 0% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-50%) rotate(-7deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(-3deg) } }
@keyframes cin-pillow { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-1px) scale(1.02) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes cin-glow { 0% { opacity:0.5; transform:translate(-50%,50%) scale(1) } 50% { opacity:1; transform:translate(-50%,50%) scale(1.2) } 100% { opacity:0.6; transform:translate(-50%,50%) scale(0.9) } }

/* Scene: ghost-second-appearance */
.scn-ghost-second-appearance { background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3e 40%, #2a2044 70%, #1c1430 100%), radial-gradient(ellipse at 80% 30%, #2d2950 0%, transparent 60%); }
.scn-ghost-second-appearance .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #10102a 0%, #1a1a40 40%, #20204a 70%, #1a1a30 100%); animation: gsa-sky 15s ease-in-out infinite alternate; }
.scn-ghost-second-appearance .battlement { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 40% 0 0 / 60% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-ghost-second-appearance .battlement::before { content:''; position:absolute; top:-8%; left:20%; width:15%; height:20px; background:#2a2a2a; border-radius:3px; box-shadow: 15px 0 0 0 #2a2a2a, 30px 0 0 0 #2a2a2a, 45px 0 0 0 #2a2a2a; }
.scn-ghost-second-appearance .ghost-figure { position:absolute; bottom:25%; left:50%; width:40px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse 50% 50% at 50% 30%, rgba(200,220,255,.4) 0%, rgba(180,200,255,.2) 50%, transparent 80%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gsa-ghost 8s ease-in-out infinite; }
.scn-ghost-second-appearance .mist-layer { position:absolute; bottom:20%; left:0; width:120%; height:30%; background: linear-gradient(90deg, transparent 0%, rgba(180,200,255,.08) 30%, rgba(180,200,255,.12) 50%, rgba(180,200,255,.08) 70%, transparent 100%); filter: blur(10px); }
.scn-ghost-second-appearance .mist-a { animation: gsa-mist 20s linear infinite; }
.scn-ghost-second-appearance .mist-b { bottom:10%; animation: gsa-mist 25s linear infinite reverse; animation-delay: -5s; }
.scn-ghost-second-appearance .star { position:absolute; width:3px; height:3px; background:#fff; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,255,.6); animation: gsa-twinkle 4s ease-in-out infinite; }
.scn-ghost-second-appearance .star-1 { top:15%; left:20%; animation-delay:0s; }
.scn-ghost-second-appearance .star-2 { top:25%; right:30%; width:4px; height:4px; animation-delay:1.5s; }
@keyframes gsa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes gsa-ghost { 0% { transform:translateX(-50%) scaleY(1); opacity:.9 } 30% { transform:translateX(-50%) scaleY(1.05) scaleX(.95); opacity:1 } 60% { transform:translateX(-50%) scaleY(.95) scaleX(1.05); opacity:.8 } 100% { transform:translateX(-50%) scaleY(1); opacity:.9 } }
@keyframes gsa-mist { 0% { transform:translateX(-20%) } 100% { transform:translateX(20%) } }
@keyframes gsa-twinkle { 0%,100% { opacity:.4; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } }

/* Scene: item-partisan */
.scn-item-partisan { background: linear-gradient(180deg, #1a1a40 0%, #2a2a50 30%, #4a3a30 60%, #8a6040 80%, #d0a060 100%), radial-gradient(ellipse at 50% 100%, #c08040 0%, transparent 60%); }
.scn-item-partisan .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a40 0%, #3a2a40 30%, #6a5040 60%, #b08040 100%); animation: ipa-dawn 20s ease-in-out infinite alternate; }
.scn-item-partisan .castle-wall { position:absolute; bottom:15%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 5px 20px rgba(0,0,0,.5); }
.scn-item-partisan .rooster-shape { position:absolute; bottom:40%; left:15%; width:30px; height:40px; background: #2a1a1a; border-radius: 60% 40% 50% 30% / 50% 40% 60% 50%; animation: ipa-rooster 4s ease-in-out infinite; }
.scn-item-partisan .rooster-shape::after { content:''; position:absolute; top:-10px; left:15px; width:12px; height:18px; background:#2a1a1a; border-radius:50% 50% 0 0; transform:rotate(-20deg); }
.scn-item-partisan .fading-spirit { position:absolute; bottom:30%; right:20%; width:35px; height:90px; background: radial-gradient(ellipse 50% 50% at 50% 20%, rgba(200,200,255,.3) 0%, rgba(100,120,200,.1) 60%, transparent 90%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ipa-spirit 12s ease-in-out infinite; }
.scn-item-partisan .light-ray { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(180deg, transparent 0%, rgba(255,220,150,.05) 40%, rgba(255,200,100,.1) 60%, transparent 80%); animation: ipa-rays 8s ease-in-out infinite; }
.scn-item-partisan .light-ray.ray-1 { animation-delay:0s; }
.scn-item-partisan .light-ray.ray-2 { transform:rotate(10deg); animation-delay:2s; }
.scn-item-partisan .ground-mist { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(180,160,120,.1) 30%, rgba(180,160,120,.15) 60%, transparent 100%); filter: blur(12px); animation: ipa-mist 18s linear infinite; }
@keyframes ipa-dawn { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ipa-rooster { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-3px) rotate(5deg) } 60% { transform:translateY(-1px) rotate(-3deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes ipa-spirit { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.2; transform:scale(.9) } 100% { opacity:.5; transform:scale(1) } }
@keyframes ipa-rays { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes ipa-mist { 0% { transform:translateX(-10%) } 100% { transform:translateX(10%) } }

/* Scene: decision-to-tell-hamlet */
.scn-decision-to-tell-hamlet { background: linear-gradient(180deg, #2a2840 0%, #4a3a50 30%, #8a6040 60%, #c08030 85%, #e0a050 100%), radial-gradient(ellipse at 50% 0%, #d09040 0%, transparent 60% ); }
.scn-decision-to-tell-hamlet .russet-morn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a40 0%, #6a4a40 30%, #9a6040 60%, #c08040 100%); animation: dth-sky 20s ease-in-out infinite alternate; }
.scn-decision-to-tell-hamlet .east-hill { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.4); animation: dth-hill 15s ease-in-out infinite alternate; }
.scn-decision-to-tell-hamlet .dew-grass { position:absolute; bottom:20%; left:0; width:100%; height:15%; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-decision-to-tell-hamlet .figure-left { position:absolute; bottom:28%; left:20%; 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; animation: dth-figL 6s ease-in-out infinite; }
.scn-decision-to-tell-hamlet .figure-right { position:absolute; bottom:28%; left:40%; width:22px; height:52px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: dth-figR 7s ease-in-out infinite 1s; }
.scn-decision-to-tell-hamlet .sunrise-glow { position:absolute; top:10%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,200,100,.25) 0%, rgba(255,180,80,.1) 40%, transparent 70%); animation: dth-glow 10s ease-in-out infinite; }
.scn-decision-to-tell-hamlet .cloud-veil { position:absolute; top:5%; left:-10%; width:120%; height:20%; background: linear-gradient(180deg, rgba(200,160,120,.08) 0%, transparent 100%); filter: blur(8px); animation: dth-cloud 40s linear infinite; }
@keyframes dth-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dth-hill { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes dth-figL { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } }
@keyframes dth-figR { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(-2deg) } }
@keyframes dth-glow { 0% { opacity:.4; transform:translateX(-50%) scale(1) } 50% { opacity:.8; transform:translateX(-50%) scale(1.1) } 100% { opacity:.4; transform:translateX(-50%) scale(1) } }
@keyframes dth-cloud { 0% { transform:translateX(-10%) } 100% { transform:translateX(10%) } }

/* Scene: room-of-state-court */
.scn-room-of-state-court { background: linear-gradient(180deg, #3a2a20 0%, #5a3a2a 30%, #8a5a3a 60%, #b08050 80%, #d0a060 100%), radial-gradient(ellipse at 50% 20%, #c09050 0%, transparent 50%); }
.scn-room-of-state-court .interior-wall { position:absolute; inset:0; background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 30%, #7a5a4a 50%, #6a4a3a 70%, #4a3a2a 100%); opacity:.9; }
.scn-room-of-state-court .throne-back { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:100px; height:120px; background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.4); }
.scn-room-of-state-court .king-figure { position:absolute; bottom:22%; left:42%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rsc-king 5s ease-in-out infinite; }
.scn-room-of-state-court .queen-figure { position:absolute; bottom:22%; left:56%; width:28px; height:75px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rsc-queen 6s ease-in-out infinite 0.5s; }
.scn-room-of-state-court .courtier-row { position:absolute; bottom:20%; left:15%; width:70%; height:50px; background: transparent; }
.scn-room-of-state-court .courtier-row::before { content:''; position:absolute; bottom:0; left:0; width:12%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:30% 30% 0 0; box-shadow: 15px 0 0 0 #3a2a1a, 30px 0 0 0 #3a2a1a, 45px 0 0 0 #3a2a1a; animation: rsc-courtier 8s ease-in-out infinite; }
.scn-room-of-state-court .window-light { position:absolute; top:10%; left:15%; width:60px; height:100px; background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,.25) 0%, rgba(255,200,100,.1) 40%, transparent 70%); border-radius:10px; animation: rsc-window 10s ease-in-out infinite; }
.scn-room-of-state-court .candle-glow { position:absolute; bottom:35%; left:30%; width:8px; height:8px; background: #ffd080; border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,208,128,.5); animation: rsc-candle 3s ease-in-out infinite; }
.scn-room-of-state-court .carpet-edge { position:absolute; bottom:0; left:5%; width:90%; height:8%; background: linear-gradient(180deg, #6a2a1a 0%, #4a1a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
@keyframes rsc-king { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes rsc-queen { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes rsc-courtier { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rsc-window { 0% { opacity:.6; transform:scale(1) } 50% { opacity:.9; transform:scale(1.05) } 100% { opacity:.6; transform:scale(1) } }
@keyframes rsc-candle { 0% { box-shadow:0 0 15px 4px rgba(255,208,128,.4); } 50% { box-shadow:0 0 25px 8px rgba(255,208,128,.7); } 100% { box-shadow:0 0 15px 4px rgba(255,208,128,.4); } }

/* Scene: murder-gonzago-plan (mgg) */
.scn-murder-gonzago-plan {
  background: linear-gradient(180deg, #d4a96a 0%, #c89050 40%, #9e6e3a 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 60%);
}
.scn-murder-gonzago-plan .stage-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #f5e1b0 0%, #b08040 100%); animation: mgg-pulse 8s ease-in-out infinite alternate; }
.scn-murder-gonzago-plan .curtains { position:absolute; top:0; left:5%; right:5%; height:60%; background: linear-gradient(135deg, #8a3a2a 0%, #6a2a1a 40%, #4a1a0a 100%); border-radius: 0 0 40% 40% / 20% 20% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); animation: mgg-sway 6s ease-in-out infinite alternate; }
.scn-murder-gonzago-plan .players { position:absolute; bottom:22%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mgg-bow 4s ease-in-out infinite; }
.scn-murder-gonzago-plan .script { position:absolute; bottom:32%; left:48%; width:8%; height:14%; background: #e0c080; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-10deg); animation: mgg-flip 7s ease-in-out infinite; }
.scn-murder-gonzago-plan .candle { position:absolute; bottom:10%; left:25%; width:2%; height:12%; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-murder-gonzago-plan .candle-flame { position:absolute; bottom:20%; left:25.5%; width:1.5%; height:4%; background: radial-gradient(ellipse, #ffd080 0%, #e08030 50%, transparent 100%); border-radius: 50%; animation: mgg-flicker 0.8s ease-in-out infinite alternate; }
.scn-murder-gonzago-plan .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-murder-gonzago-plan .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(8px); animation: mgg-shift 10s ease-in-out infinite alternate; }
@keyframes mgg-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mgg-sway { 0% { transform: skewX(0deg) scaleX(1) } 50% { transform: skewX(2deg) scaleX(1.02) } 100% { transform: skewX(-2deg) scaleX(0.98) } }
@keyframes mgg-bow { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mgg-flip { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-4px) } }
@keyframes mgg-flicker { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:.7 } }
@keyframes mgg-shift { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(-10px) scale(0.95) } }

/* Scene: hamlet-soliloquy-rogue (hsr) */
.scn-hamlet-soliloquy-rogue {
  background: linear-gradient(180deg, #141830 0%, #1c2250 40%, #2a3460 80%, #101428 100%),
              radial-gradient(ellipse at 70% 20%, #4a5a8a 0%, transparent 60%);
}
.scn-hamlet-soliloquy-rogue .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1c2038 0%, #0a0e1e 100%); }
.scn-hamlet-soliloquy-rogue .window { position:absolute; top:8%; left:60%; width:20%; height:30%; background: linear-gradient(180deg, #3a4a7a 0%, #2a3a5a 100%); border: 4px solid #1a1a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,140,200,.3), 0 0 30px rgba(100,140,200,.2); animation: hsr-moonlight 12s ease-in-out infinite alternate; }
.scn-hamlet-soliloquy-rogue .chair { position:absolute; bottom:18%; left:45%; width:12%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: hsr-creak 8s ease-in-out infinite; }
.scn-hamlet-soliloquy-rogue .hamlet { position:absolute; bottom:18%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsr-pace 5s ease-in-out infinite; }
.scn-hamlet-soliloquy-rogue .candle { position:absolute; bottom:10%; left:30%; width:1.5%; height:10%; background: linear-gradient(180deg, #e8d8b0 0%, #c0a870 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-hamlet-soliloquy-rogue .candle-glow { position:absolute; bottom:18%; left:30%; width:6%; height:10%; background: radial-gradient(ellipse, #ffd080 0%, #c08040 40%, transparent 100%); filter: blur(4px); animation: hsr-candle 2s ease-in-out infinite alternate; }
.scn-hamlet-soliloquy-rogue .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0a14 0%, #000 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: hsr-shadow-move 10s ease-in-out infinite alternate; }
@keyframes hsr-moonlight { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(100,140,200,.2), 0 0 20px rgba(100,140,200,.1) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(100,140,200,.4), 0 0 50px rgba(100,140,200,.3) } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(100,140,200,.2), 0 0 30px rgba(100,140,200,.1) } }
@keyframes hsr-creak { 0% { transform: rotate(0deg) translateY(0) } 20% { transform: rotate(-2deg) translateY(-1px) } 40% { transform: rotate(2deg) translateY(1px) } 60% { transform: rotate(-1deg) translateY(0) } 80% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes hsr-pace { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hsr-candle { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:.6 } }
@keyframes hsr-shadow-move { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

/* Scene: claudius-interrogation (cli) */
.scn-claudius-interrogation {
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b898 50%, #a0886a 100%),
              radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 50%);
}
.scn-claudius-interrogation .throne-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #e8dcc8 0%, #b8a88a 100%); animation: cli-breathe 10s ease-in-out infinite alternate; }
.scn-claudius-interrogation .column-left { position:absolute; top:0; left:10%; width:8%; height:100%; background: linear-gradient(180deg, #a09078 0%, #7a6a52 100%); border-radius: 10% 10% 0 0; box-shadow: inset -4px 0 12px rgba(0,0,0,.3); }
.scn-claudius-interrogation .column-right { position:absolute; top:0; right:10%; width:8%; height:100%; background: linear-gradient(180deg, #a09078 0%, #7a6a52 100%); border-radius: 10% 10% 0 0; box-shadow: inset 4px 0 12px rgba(0,0,0,.3); }
.scn-claudius-interrogation .throne { position:absolute; bottom:15%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #7a624a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.scn-claudius-interrogation .claudius { position:absolute; bottom:30%; left:44%; width:8%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cli-lean 6s ease-in-out infinite alternate; }
.scn-claudius-interrogation .guard-left { position:absolute; bottom:10%; left:25%; width:6%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: cli-at-ease 8s ease-in-out infinite; }
.scn-claudius-interrogation .guard-right { position:absolute; bottom:10%; right:25%; width:6%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: cli-at-ease 8s ease-in-out infinite reverse; }
.scn-claudius-interrogation .shadow-stripe { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: cli-stripe 12s ease-in-out infinite alternate; }
@keyframes cli-breathe { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cli-lean { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(-1px) } }
@keyframes cli-at-ease { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cli-stripe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.8) } }

/* Scene: claudius-ophelia-ploy (cop) */
.scn-claudius-ophelia-ploy {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4a8 40%, #b8a88a 100%),
              radial-gradient(ellipse at 30% 50%, #f0e8d8 0%, transparent 60%);
}
.scn-claudius-ophelia-ploy .chamber-wall { position:absolute; inset:0; background: linear-gradient(135deg, #dcd0b8 0%, #b8a88a 100%); }
.scn-claudius-ophelia-ploy .curtain { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 0 60% 60% 0 / 0 40% 40% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.4); animation: cop-curtain 10s ease-in-out infinite alternate; }
.scn-claudius-ophelia-ploy .prayer-stool { position:absolute; bottom:10%; left:40%; width:10%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-claudius-ophelia-ploy .ophelia { position:absolute; bottom:20%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cop-kneel 9s ease-in-out infinite; }
.scn-claudius-ophelia-ploy .book { position:absolute; bottom:32%; left:47%; width:4%; height:6%; background: #e0d0b0; border-radius: 2px; transform: rotate(-15deg); animation: cop-read 6s ease-in-out infinite alternate; }
.scn-claudius-ophelia-ploy .spy-left { position:absolute; bottom:25%; left:25%; width:6%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: cop-peek 5s ease-in-out infinite; }
.scn-claudius-ophelia-ploy .spy-right { position:absolute; bottom:25%; right:25%; width:6%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: cop-peek 5s ease-in-out infinite reverse; }
.scn-claudius-ophelia-ploy .light-beam { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); animation: cop-beam 7s ease-in-out infinite alternate; }
@keyframes cop-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes cop-kneel { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(2deg) translateY(-2px) } 60% { transform: rotate(-2deg) translateY(1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes cop-read { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(1.02) } 100% { transform: rotate(-15deg) scaleY(0.98) } }
@keyframes cop-peek { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.1) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cop-beam { 0% { opacity:.4; filter: blur(0px) } 50% { opacity:.7; filter: blur(2px) } 100% { opacity:.3; filter: blur(1px) } }

.scn-laertes-response {
  background: linear-gradient(180deg, #d4b88a 0%, #b8986a 30%, #c4a470 100%), radial-gradient(ellipse at 50% 0%, #e8d4b0 0%, transparent 70%);
}
.scn-laertes-response .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b08a6a 0%, #c49e7e 40%, #b08a6a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-laertes-response .window {
  position: absolute; top: 8%; left: 50%; width: 120px; height: 160px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d8b0 100%);
  border-radius: 4px; box-shadow: 0 0 60px rgba(255,232,192,0.3), inset 0 0 20px rgba(0,0,0,0.1);
  animation: lr-window 8s ease-in-out infinite alternate;
}
.scn-laertes-response .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8a724a 0%, #a88a62 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-laertes-response .figure-silhouette {
  position: absolute; bottom: 25%; left: 45%; width: 80px; height: 180px;
  background: linear-gradient(0deg, #2a2018 0%, #4a3828 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figure 4s ease-in-out infinite;
}
.scn-laertes-response .shadow {
  position: absolute; bottom: 10%; left: 42%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: lr-shadow 4s ease-in-out infinite alternate;
}
.scn-laertes-response .chair {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(0deg, #5a3a2a 0%, #7a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: lr-chair 6s ease-in-out infinite;
}
@keyframes lr-window {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.2); }
  100% { filter: brightness(0.95); }
}
@keyframes lr-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(1deg); }
}
@keyframes lr-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(1.3); opacity: 0.8; }
}
@keyframes lr-chair {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

.scn-duel-preparation {
  background: linear-gradient(180deg, #d4b88a 0%, #c4a470 30%, #b8986a 60%, #8a724a 100%), radial-gradient(ellipse at 50% 80%, #d4b88a 0%, transparent 80%);
}
.scn-duel-preparation .hall-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #a88a62 0%, #c4a470 50%, #a88a62 100%);
  box-shadow: inset 0 -30px 40px rgba(0,0,0,0.1);
}
.scn-duel-preparation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #6a5a3a 0%, #8a724a 100%);
}
.scn-duel-preparation .table {
  position: absolute; bottom: 15%; left: 50%; width: 200px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(0deg, #5a4a2a 0%, #7a6a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dp-table 5s ease-in-out infinite;
}
.scn-duel-preparation .cup-left {
  position: absolute; bottom: 20%; left: 40%; width: 16px; height: 24px;
  background: linear-gradient(0deg, #b88a5a 0%, #d4a87a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: dp-cup 4s ease-in-out infinite;
}
.scn-duel-preparation .cup-right {
  position: absolute; bottom: 20%; right: 40%; width: 16px; height: 24px;
  background: linear-gradient(0deg, #b88a5a 0%, #d4a87a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.2);
  animation: dp-cup 4s ease-in-out infinite 0.5s;
}
.scn-duel-preparation .foil-left {
  position: absolute; bottom: 30%; left: 25%; width: 4px; height: 100px;
  background: linear-gradient(0deg, #a0a0a0 0%, #c0c0c0 50%, #e0e0e0 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: dp-foil 6s ease-in-out infinite;
}
.scn-duel-preparation .foil-right {
  position: absolute; bottom: 30%; right: 25%; width: 4px; height: 100px;
  background: linear-gradient(0deg, #a0a0a0 0%, #c0c0c0 50%, #e0e0e0 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: dp-foil 6s ease-in-out infinite 0.3s;
}
.scn-duel-preparation .figure-left {
  position: absolute; bottom: 25%; left: 22%; width: 60px; height: 150px;
  background: linear-gradient(0deg, #2a1a1a 0%, #4a2a2a 100%);
  border-radius: 40% 40% 25% 25% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dp-figure 5s ease-in-out infinite;
}
.scn-duel-preparation .figure-right {
  position: absolute; bottom: 25%; right: 22%; width: 60px; height: 150px;
  background: linear-gradient(0deg, #2a1a1a 0%, #4a2a2a 100%);
  border-radius: 40% 40% 25% 25% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dp-figure 5s ease-in-out infinite 0.2s;
}
@keyframes dp-table {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes dp-cup {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes dp-foil {
  0%,100% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg); }
}
@keyframes dp-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}

.scn-duel-begins {
  background: linear-gradient(180deg, #d4b88a 0%, #c4a470 30%, #a88a62 70%, #7a6a4a 100%), radial-gradient(ellipse at 50% 0%, #e8d4b0 0%, transparent 80%);
}
.scn-duel-begins .arena {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #8a724a 0%, transparent 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.1);
  border-radius: 0 0 50% 50% / 20%;
}
.scn-duel-begins .spectator-bg {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 8px, #5a4a3a 8px, #5a4a3a 16px);
  opacity: 0.3;
  animation: db-spectator 12s ease-in-out infinite;
}
.scn-duel-begins .foil-cross {
  position: absolute; top: 20%; left: 50%; width: 6px; height: 200px;
  background: linear-gradient(0deg, #b0b0b0 0%, #e0e0e0 50%, #b0b0b0 100%);
  transform: translateX(-50%) rotate(0deg);
  box-shadow: 0 0 20px rgba(200,200,200,0.2);
  animation: db-foil-cross 2s ease-in-out infinite;
}
.scn-duel-begins .figure-a {
  position: absolute; bottom: 28%; left: 25%; width: 70px; height: 150px;
  background: linear-gradient(0deg, #2a1a1a 0%, #4a2a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: db-figure 3s ease-in-out infinite;
}
.scn-duel-begins .figure-b {
  position: absolute; bottom: 28%; right: 25%; width: 70px; height: 150px;
  background: linear-gradient(0deg, #2a1a1a 0%, #4a2a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: db-figure 3s ease-in-out infinite 0.1s;
}
.scn-duel-begins .spark {
  position: absolute; top: 30%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #ffcc40 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: db-spark 0.8s ease-in-out infinite alternate;
}
.scn-duel-begins .dust {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,160,120,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: db-dust 4s ease-in-out infinite;
}
@keyframes db-spectator {
  0%,100% { opacity: 0.2; }
  50% { opacity: 0.4; }
}
@keyframes db-foil-cross {
  0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(5deg) scaleY(1.05); }
}
@keyframes db-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(-2deg); }
  40% { transform: translateY(0) rotate(2deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  80% { transform: translateY(0) rotate(1deg); }
}
@keyframes db-spark {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.5); opacity: 1; }
}
@keyframes db-dust {
  0%,100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(10px) scale(1.2); }
}

.scn-item-cup-union {
  background: linear-gradient(180deg, #d4b88a 0%, #b8986a 40%, #8a724a 100%), radial-gradient(ellipse at 50% 20%, #e8d4b0 0%, transparent 60%);
}
.scn-item-cup-union .table-top {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(0deg, #6a5a3a 0%, #8a724a 100%);
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cu-table 8s ease-in-out infinite;
}
.scn-item-cup-union .cup-body {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(90deg, #b08050 0%, #d4a87a 50%, #b08050 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px rgba(200,160,100,0.3), inset 0 -10px 10px rgba(0,0,0,0.2);
  animation: cu-cup 4s ease-in-out infinite;
}
.scn-item-cup-union .union-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 50%, #ffcc40 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(255,224,128,0.6), 0 0 80px rgba(255,224,128,0.3);
  animation: cu-union 2s ease-in-out infinite alternate;
}
.scn-item-cup-union .hand {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(0deg, #c89a6a 0%, #e0b88a 100%);
  border-radius: 30% 30% 15% 15% / 50% 50% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: cu-hand 5s ease-in-out infinite;
}
.scn-item-cup-union .wine-drop {
  position: absolute; bottom: 40%; left: 52%; width: 6px; height: 8px;
  background: linear-gradient(0deg, #5e1a1d 0%, #a0461a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: cu-drop 3s ease-in-out infinite;
}
.scn-item-cup-union .shadow-cast {
  position: absolute; bottom: 5%; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: cu-shadow 6s ease-in-out infinite alternate;
}
@keyframes cu-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cu-cup {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
}
@keyframes cu-union {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.8; }
}
@keyframes cu-hand {
  0%,100% { transform: rotate(-30deg); }
  25% { transform: rotate(-25deg); }
  50% { transform: rotate(-35deg); }
  75% { transform: rotate(-20deg); }
}
@keyframes cu-drop {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(8px); opacity: 0.2; }
  100% { transform: translateY(0); opacity: 0.8; }
}
@keyframes cu-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  100% { transform: scaleX(1.5); opacity: 0.5; }
}

.scn-captain-garrisoned { background: linear-gradient(180deg, #6b7b7b 0%, #4a5a5a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 100%, #3a4a4a 0%, transparent 70%); }
.scn-captain-garrisoned .sky    { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #8a9a9a 0%, #5a6a6a 100%); animation: cg1-sky 15s ease-in-out infinite alternate; }
.scn-captain-garrisoned .hills  { position: absolute; bottom: 35%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 50% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.3); animation: cg1-hills 12s ease-in-out infinite alternate; }
.scn-captain-garrisoned .castle { position: absolute; bottom: 42%; left: 38%; width: 80px; height: 60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cg1-float 8s ease-in-out infinite; }
.scn-captain-garrisoned .wall   { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 4px; background: #4a5a4a; border-radius: 2px; box-shadow: 0 -10px 0 #3a4a3a, 0 -20px 0 #2a3a2a; animation: cg1-wall 10s ease-in-out infinite alternate; }
.scn-captain-garrisoned .flag-a { position: absolute; bottom: 68%; left: 42%; width: 12px; height: 18px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); transform-origin: bottom center; border-radius: 0 60% 0 0; animation: cg1-flag 3s ease-in-out infinite; }
.scn-captain-garrisoned .flag-b { position: absolute; bottom: 68%; left: 50%; width: 10px; height: 14px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); transform-origin: bottom center; border-radius: 0 50% 0 0; animation: cg1-flag 3.5s ease-in-out infinite reverse; }
.scn-captain-garrisoned .soldier{ position: absolute; bottom: 28%; left: 55%; width: 10px; height: 28px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform: scale(1,1); animation: cg1-walk 5s linear infinite; }
.scn-captain-garrisoned .banner { position: absolute; bottom: 45%; left: 44%; width: 6px; height: 30px; background: #4a5a4a; transform: rotate(5deg); box-shadow: 0 0 4px rgba(0,0,0,.3); animation: cg1-banner 6s ease-in-out infinite alternate; }
@keyframes cg1-sky    { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes cg1-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cg1-float  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2.5px) } }
@keyframes cg1-wall   { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cg1-flag   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes cg1-walk   { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(20px) } }
@keyframes cg1-banner { 0% { transform: rotate(2deg) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(1.05) } 100% { transform: rotate(3deg) scaleY(1) } }

.scn-hamlet-follow { background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%), radial-gradient(circle at 30% 40%, #5a5a5a 0%, transparent 80%); }
.scn-hamlet-follow .wall   { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-bottom: 4px solid #1a1a1a; animation: hf2-wall 12s ease-in-out infinite alternate; }
.scn-hamlet-follow .floor  { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-hamlet-follow .window { position: absolute; top: 15%; left: 20%; width: 30%; height: 40%; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); border: 4px solid #1a1a1a; box-shadow: inset 0 0 20px rgba(100,100,100,.3); border-radius: 2px; animation: hf2-window 8s ease-in-out infinite alternate; }
.scn-hamlet-follow .table  { position: absolute; bottom: 30%; left: 25%; width: 50px; height: 20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-hamlet-follow .chair  { position: absolute; bottom: 26%; left: 30%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); }
.scn-hamlet-follow .hamlet { position: absolute; bottom: 16%; left: 48%; width: 20px; height: 46px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: hf2-gesture 4s ease-in-out infinite; }
.scn-hamlet-follow .shadow { position: absolute; bottom: 10%; left: 40%; width: 40px; height: 8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: hf2-shadow 4s ease-in-out infinite; }
@keyframes hf2-wall    { 0% { background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%) } 50% { background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%) } 100% { background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%) } }
@keyframes hf2-window  { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes hf2-gesture { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hf2-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-hamlet-soliloquy-occasions { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #000010 100%), radial-gradient(circle at 50% 30%, #2a2a4a 0%, transparent 70%); }
.scn-hamlet-soliloquy-occasions .bg-dark   { position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 100%); }
.scn-hamlet-soliloquy-occasions .light-shaft { position: absolute; top: 0; left: 40%; width: 20%; height: 80%; background: linear-gradient(180deg, rgba(200,200,210,.08) 0%, rgba(200,200,210,.02) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: hso3-shaft 6s ease-in-out infinite alternate; }
.scn-hamlet-soliloquy-occasions .head     { position: absolute; bottom: 42%; left: 42%; width: 24px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #151525 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hso3-head 4s ease-in-out infinite; }
.scn-hamlet-soliloquy-occasions .hand-l   { position: absolute; bottom: 38%; left: 36%; width: 8px; height: 20px; background: linear-gradient(180deg, #2a2a3a 0%, #151525 100%); border-radius: 40% 40% 30% 30%; transform: rotate(15deg); animation: hso3-hand 5s ease-in-out infinite; }
.scn-hamlet-soliloquy-occasions .hand-r   { position: absolute; bottom: 38%; right: 36%; width: 8px; height: 20px; background: linear-gradient(180deg, #2a2a3a 0%, #151525 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-15deg); animation: hso3-hand 5s ease-in-out infinite reverse; }
.scn-hamlet-soliloquy-occasions .book     { position: absolute; bottom: 35%; left: 45%; width: 20px; height: 26px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: hso3-book 7s ease-in-out infinite; }
.scn-hamlet-soliloquy-occasions .fog      { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(100,100,120,.1) 0%, transparent 70%); pointer-events: none; animation: hso3-fog 10s ease-in-out infinite alternate; }
@keyframes hso3-shaft { 0% { opacity: .2 } 50% { opacity: .6 } 100% { opacity: .3 } }
@keyframes hso3-head  { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hso3-hand  { 0% { transform: translateY(0) rotate(15deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(15deg) } }
@keyframes hso3-book  { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(7deg) scale(1.02) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes hso3-fog   { 0% { opacity: .1 } 50% { opacity: .4 } 100% { opacity: .15 } }

.scn-hamlet-examples { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 50%, #1a2a2a 100%), radial-gradient(ellipse at 50% 100%, #2a3a3a 0%, transparent 70%); }
.scn-hamlet-examples .sky    { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #6a7a7a 0%, #3a4a4a 100%); animation: he4-sky 14s ease-in-out infinite alternate; }
.scn-hamlet-examples .field  { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-hamlet-examples .tent-l{ position: absolute; bottom: 28%; left: 20%; width: 50px; height: 40px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: scaleX(.8); animation: he4-tent 9s ease-in-out infinite alternate; }
.scn-hamlet-examples .tent-r{ position: absolute; bottom: 28%; right: 20%; width: 50px; height: 40px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: scaleX(.8); animation: he4-tent 9s ease-in-out infinite alternate-reverse; }
.scn-hamlet-examples .army  { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%; background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 4px, transparent 4px, transparent 8px); mask-image: linear-gradient(180deg, transparent 0%, #000 100%); -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 100%); animation: he4-army 5s linear infinite; }
.scn-hamlet-examples .prince{ position: absolute; bottom: 18%; left: 45%; width: 18px; height: 40px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: he4-prince 4s ease-in-out infinite; }
.scn-hamlet-examples .distant-trees{ position: absolute; bottom: 45%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: he4-trees 12s ease-in-out infinite alternate; }
.scn-hamlet-examples .smoke { position: absolute; top: 10%; left: 30%; width: 40px; height: 80px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,200,.15) 0%, transparent 70%); animation: he4-smoke 8s ease-out infinite; }
@keyframes he4-sky    { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes he4-tent   { 0% { transform: scaleX(.8) translateY(0) } 50% { transform: scaleX(.85) translateY(-2px) } 100% { transform: scaleX(.8) translateY(0) } }
@keyframes he4-army   { 0% { background-position: 0 0 } 100% { background-position: -20px 0 } }
@keyframes he4-prince { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes he4-trees  { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes he4-smoke  { 0% { transform: translateY(0) scale(1); opacity: .5 } 50% { transform: translateY(-20px) scale(1.5); opacity: .2 } 100% { transform: translateY(-40px) scale(2); opacity: 0 } }

.scn-laertes-let-this-be {
  background:
    radial-gradient(ellipse at 30% 40%, #e8dcc8 0%, transparent 50%),
    radial-gradient(ellipse at 70% 60%, #c4b49a 0%, transparent 40%),
    linear-gradient(180deg, #d4c4a8 0%, #b8a88a 50%, #9a8870 100%);
}
.scn-laertes-let-this-be .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.15);
}
.scn-laertes-let-this-be .wall-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,.12) 50%, transparent 60%);
  animation: ltb-shadow 6s ease-in-out infinite alternate;
}
.scn-laertes-let-this-be .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a64 0%, #6a5a48 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.3);
}
.scn-laertes-let-this-be .bier {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a48 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ltb-bier 8s ease-in-out infinite;
}
.scn-laertes-let-this-be .shroud {
  position: absolute; bottom: 16%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0d4c4 0%, #c8b8a0 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: ltb-shroud 4s ease-in-out infinite alternate;
}
.scn-laertes-let-this-be .candle-left {
  position: absolute; bottom: 20%; left: 35%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 80%, #8a6a3a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 20px 6px #e0b060;
  animation: ltb-candle 3s ease-in-out infinite alternate;
}
.scn-laertes-let-this-be .candle-right {
  position: absolute; bottom: 20%; right: 35%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 80%, #8a6a3a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 20px 6px #e0b060;
  animation: ltb-candle 3s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-laertes-let-this-be .figure-laertes {
  position: absolute; bottom: 12%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: ltb-figure 6s ease-in-out infinite;
}
@keyframes ltb-shadow {
  0% { opacity: .3; transform: translateX(0); }
  50% { opacity: .6; transform: translateX(10px); }
  100% { opacity: .3; transform: translateX(0); }
}
@keyframes ltb-bier {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes ltb-shroud {
  0% { opacity: .9; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.02); }
  100% { opacity: .9; transform: translateX(-50%) scaleY(1); }
}
@keyframes ltb-candle {
  0% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 15px 4px #e0b060; }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 30px 8px #e0b060; }
  100% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 15px 4px #e0b060; }
}
@keyframes ltb-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); }
}

.scn-horatio-sailors {
  background:
    radial-gradient(ellipse at 40% 30%, #f0e8d8 0%, transparent 50%),
    radial-gradient(ellipse at 70% 60%, #d8ccb8 0%, transparent 40%),
    linear-gradient(180deg, #dcd0c0 0%, #c0b4a0 50%, #a89c88 100%);
}
.scn-horatio-sailors .chamber-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d0c4b0 0%, #b8ac98 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.1);
}
.scn-horatio-sailors .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #9a8e7a 0%, #7a6e5a 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,.2);
}
.scn-horatio-sailors .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: hs-door 12s ease-in-out infinite alternate;
}
.scn-horatio-sailors .door-light {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, transparent 70%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 30px 10px #e0c890;
  animation: hs-doorlight 8s ease-in-out infinite alternate;
}
.scn-horatio-sailors .figure-horatio {
  position: absolute; bottom: 15%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
  animation: hs-figure 6s ease-in-out infinite;
}
.scn-horatio-sailors .figure-sailor {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
  animation: hs-sailor 8s ease-in-out infinite alternate;
}
.scn-horatio-sailors .letter-hand {
  position: absolute; bottom: 25%; left: 52%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #d0b880 0%, #b09860 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: hs-hand 4s ease-in-out infinite;
}
@keyframes hs-door {
  0%,100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
}
@keyframes hs-doorlight {
  0% { opacity: .6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: .6; transform: translateX(-50%) scale(1); }
}
@keyframes hs-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hs-sailor {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hs-hand {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}

.scn-sailor-god-bless {
  background:
    radial-gradient(ellipse at 50% 40%, #f0e4d0 0%, transparent 50%),
    radial-gradient(ellipse at 30% 60%, #d8c8b0 0%, transparent 40%),
    linear-gradient(180deg, #d4c8b4 0%, #b8ac98 50%, #9c9080 100%);
}
.scn-sailor-god-bless .tavern-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8bca8 0%, #b0a490 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.1);
}
.scn-sailor-god-bless .tavern-table {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a64 0%, #6a5a48 100%);
  border-radius: 3px;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: sgb-table 10s ease-in-out infinite;
}
.scn-sailor-god-bless .tankard {
  position: absolute; bottom: 20%; left: 44%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #b09870 0%, #8a7050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: sgb-tankard 5s ease-in-out infinite;
}
.scn-sailor-god-bless .figure-sailor-close {
  position: absolute; bottom: 12%; left: 50%; width: 30px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: sgb-sailor 6s ease-in-out infinite;
}
.scn-sailor-god-bless .arm-extend {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4px 8px 8px 4px;
  transform-origin: left center;
  transform: rotate(-15deg);
  animation: sgb-arm 4s ease-in-out infinite;
}
.scn-sailor-god-bless .letter-seal {
  position: absolute; bottom: 24%; left: 60%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #c8b080 0%, #a89060 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transform: rotate(-10deg);
  animation: sgb-seal 4s ease-in-out infinite;
}
.scn-sailor-god-bless .window-light {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, transparent 70%);
  border-radius: 4px;
  box-shadow: 0 0 30px 8px #e0c890;
  animation: sgb-window 7s ease-in-out infinite alternate;
}
@keyframes sgb-table {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes sgb-tankard {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes sgb-sailor {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes sgb-arm {
  0%,100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
}
@keyframes sgb-seal {
  0%,100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
}
@keyframes sgb-window {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(1); }
}

.scn-horatio-reads-letter {
  background:
    radial-gradient(ellipse at 60% 30%, #e0d4c0 0%, transparent 45%),
    radial-gradient(ellipse at 30% 50%, #c8bca8 0%, transparent 40%),
    linear-gradient(180deg, #ccc0ac 0%, #b0a490 50%, #948878 100%);
}
.scn-horatio-reads-letter .study-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c0b4a0 0%, #a89c88 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.1);
}
.scn-horatio-reads-letter .study-desk {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a54 0%, #5a4a3a 100%);
  border-radius: 3px;
  box-shadow: 0 6px 15px rgba(0,0,0,.3);
  animation: hrl-desk 10s ease-in-out infinite;
}
.scn-horatio-reads-letter .desk-letter {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #e8dcc4 0%, #c8b898 50%, #b09878 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: hrl-letter 5s ease-in-out infinite;
}
.scn-horatio-reads-letter .figure-horatio-reads {
  position: absolute; bottom: 10%; left: 42%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: hrl-figure 7s ease-in-out infinite;
}
.scn-horatio-reads-letter .hand-holding {
  position: absolute; bottom: 24%; left: 48%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: hrl-hand 4s ease-in-out infinite;
}
.scn-horatio-reads-letter .candle-desk {
  position: absolute; bottom: 18%; right: 38%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a870 80%, #6a4a2a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 18px 5px #d0a860;
  animation: hrl-candle 3s ease-in-out infinite alternate;
}
.scn-horatio-reads-letter .candle-glow {
  position: absolute; bottom: 15%; right: 36%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0b860 0%, transparent 70%);
  border-radius: 50%;
  animation: hrl-glow 3s ease-in-out infinite alternate;
}
.scn-horatio-reads-letter .shadow-pirate {
  position: absolute; bottom: 12%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, rgba(20,20,30,.5) 0%, rgba(10,10,20,.3) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: hrl-shadow 8s ease-in-out infinite;
}
@keyframes hrl-desk {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes hrl-letter {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
@keyframes hrl-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hrl-hand {
  0%,100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
}
@keyframes hrl-candle {
  0% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 12px 3px #d0a860; }
  50% { transform: scaleY(1.04); opacity: 1; box-shadow: 0 0 24px 6px #d0a860; }
  100% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 12px 3px #d0a860; }
}
@keyframes hrl-glow {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes hrl-shadow {
  0%,100% { transform: translateX(0) scale(1); opacity: .5; }
  50% { transform: translateX(-5px) scale(1.05); opacity: .7; }
}

/* wager-terms */
.scn-wager-terms {
  background:
    radial-gradient(ellipse at 50% 30%, #f5e6c8 0%, transparent 60%),
    linear-gradient(180deg, #e8d4b8 0%, #c4a882 50%, #a08b6e 100%);
}
.scn-wager-terms .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a664a 0%, #5a4a32 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: wg-floor 4s ease-in-out infinite alternate;
}
.scn-wager-terms .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a488 100%);
}
.scn-wager-terms .table {
  position: absolute; bottom: 25%; left: 40%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #8b6f4a 0%, #6b5430 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: wg-table 6s ease-in-out infinite alternate;
}
.scn-wager-terms .papers {
  position: absolute; bottom: 30%; left: 45%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: wg-papers 8s ease-in-out infinite alternate;
}
.scn-wager-terms .horse-figure {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, #4a3018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: wg-horse 2s ease-in-out infinite alternate;
}
.scn-wager-terms .sword-figure {
  position: absolute; bottom: 22%; right: 22%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 0 8px rgba(192,176,144,0.5);
  animation: wg-sword 3s ease-in-out infinite alternate;
}
.scn-wager-terms .crown {
  position: absolute; top: 12%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #e0c050 0%, #b09030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 16px rgba(224,192,80,0.6);
  animation: wg-crown 5s ease-in-out infinite;
}
.scn-wager-terms .chandelier {
  position: absolute; top: 4%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #c0a060 0%, #806030 100%);
  clip-path: polygon(20% 100%, 35% 0%, 65% 0%, 80% 100%);
  animation: wg-chandelier 7s ease-in-out infinite alternate;
}
.scn-wager-terms .lamp-glow {
  position: absolute; top: 18%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,224,128,0.4);
  animation: wg-lamp 3s ease-in-out infinite alternate;
}
@keyframes wg-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes wg-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes wg-papers { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes wg-horse { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wg-sword { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes wg-crown { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wg-chandelier { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wg-lamp { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(255,224,128,0.3); } 100% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,224,128,0.5); } }

/* hamlet-accepts-wager */
.scn-hamlet-accepts-wager {
  background:
    radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 70%),
    linear-gradient(180deg, #d4c0a0 0%, #b8a488 50%, #8a705a 100%);
}
.scn-hamlet-accepts-wager .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3a28 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
}
.scn-hamlet-accepts-wager .hall-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #c4b098 0%, #a09078 100%);
}
.scn-hamlet-accepts-wager .king-throne {
  position: absolute; bottom: 28%; left: 10%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, #806030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hw-throne 10s ease-in-out infinite;
}
.scn-hamlet-accepts-wager .hamlet-figure {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 30% 30%;
  animation: hw-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-accepts-wager .foil-left {
  position: absolute; bottom: 20%; left: 35%; width: 3%; height: 28%;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09070 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(10deg);
  box-shadow: 0 0 6px rgba(192,176,160,0.4);
  animation: hw-foil-l 2s ease-in-out infinite alternate;
}
.scn-hamlet-accepts-wager .foil-right {
  position: absolute; bottom: 20%; right: 30%; width: 3%; height: 28%;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09070 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 0 6px rgba(192,176,160,0.4);
  animation: hw-foil-r 2s ease-in-out infinite alternate;
}
.scn-hamlet-accepts-wager .window-light {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 80%);
  border-radius: 20%;
  animation: hw-window 8s ease-in-out infinite alternate;
}
.scn-hamlet-accepts-wager .shadow-stripe {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%);
  animation: hw-shadow 6s ease-in-out infinite;
}
@keyframes hw-throne { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hw-hamlet { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hw-foil-l { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes hw-foil-r { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes hw-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes hw-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* osric-departure-mock */
.scn-osric-departure-mock {
  background:
    radial-gradient(ellipse at 70% 40%, #f5e8d0 0%, transparent 60%),
    linear-gradient(180deg, #e0cfb8 0%, #c0a888 50%, #988068 100%);
}
.scn-osric-departure-mock .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a745a 0%, #6a543a 100%);
  box-shadow: inset 0 6px 8px rgba(0,0,0,0.2);
}
.scn-osric-departure-mock .chamber-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 100%);
}
.scn-osric-departure-mock .osric-body {
  position: absolute; bottom: 20%; left: 20%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: od-body 4s ease-in-out infinite alternate;
}
.scn-osric-departure-mock .osric-hat {
  position: absolute; bottom: 42%; left: 18%; width: 12%; height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #c0a060 0%, #907030 100%);
  border-radius: 60% 60% 30% 30%;
  box-shadow: 0 0 12px rgba(192,160,96,0.5);
  animation: od-hat 3s ease-in-out infinite;
}
.scn-osric-departure-mock .osric-cloak {
  position: absolute; bottom: 15%; left: 17%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(5deg);
  animation: od-cloak 5s ease-in-out infinite alternate;
}
.scn-osric-departure-mock .exit-door {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6a543a 0%, #4a3420 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: od-door 12s ease-in-out infinite;
}
.scn-osric-departure-mock .mock-shadow {
  position: absolute; bottom: 5%; left: 15%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50%;
  animation: od-shadow 4s ease-in-out infinite alternate;
}
.scn-osric-departure-mock .dust-mote {
  position: absolute; top: 20%; left: 40%; width: 2%; height: 2%;
  background: rgba(255,240,200,0.6);
  border-radius: 50%;
  animation: od-dust 15s linear infinite;
}
@keyframes od-body { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes od-hat { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes od-cloak { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(4px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes od-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } }
@keyframes od-shadow { 0% { opacity: 0.4; transform: scale(1); } 100% { opacity: 0.8; transform: scale(1.1); } }
@keyframes od-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-30px) translateX(10px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(-60px) translateX(20px) scale(0.5); opacity: 0; } }

/* lord-messenger-arrival */
.scn-lord-messenger-arrival {
  background:
    radial-gradient(ellipse at 40% 50%, #f5e6d0 0%, transparent 60%),
    linear-gradient(180deg, #e0d0b8 0%, #c0a888 50%, #a08870 100%);
}
.scn-lord-messenger-arrival .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.25);
}
.scn-lord-messenger-arrival .room-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #d0bca4 0%, #b09c84 100%);
}
.scn-lord-messenger-arrival .doorway {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: lm-door 10s ease-in-out infinite;
}
.scn-lord-messenger-arrival .lord-figure {
  position: absolute; bottom: 18%; left: 14%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: lm-lord 6s ease-in-out infinite alternate;
}
.scn-lord-messenger-arrival .lord-cape {
  position: absolute; bottom: 15%; left: 11%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-5deg);
  animation: lm-cape 7s ease-in-out infinite alternate;
}
.scn-lord-messenger-arrival .window-pane {
  position: absolute; top: 15%; right: 20%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.3) 0%, transparent 80%);
  border-radius: 20%;
  box-shadow: inset 0 0 20px rgba(200,220,240,0.2);
  animation: lm-window 12s ease-in-out infinite alternate;
}
.scn-lord-messenger-arrival .candle-glow {
  position: absolute; bottom: 35%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,224,128,0.4);
  animation: lm-candle 3s ease-in-out infinite alternate;
}
.scn-lord-messenger-arrival .ambient-light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 60% 30%, rgba(255,240,200,0.1) 0%, transparent 60%);
  animation: lm-ambient 15s ease-in-out infinite;
}
@keyframes lm-door { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes lm-lord { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lm-cape { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes lm-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes lm-candle { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(255,224,128,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,224,128,0.5); } }
@keyframes lm-ambient { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* ----- scene: item-hebenon-vial (hev-) ----- */
.scn-item-hebenon-vial {
  background:
    linear-gradient(180deg, #0d0d20 0%, #1a1a30 40%, #22223a 100%),
    radial-gradient(ellipse at 30% 60%, #2a2a4e 0%, transparent 60%);
}
.scn-item-hebenon-vial .table {
  position: absolute;
  bottom: 0; left: 5%; right: 5%;
  height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #151525 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-item-hebenon-vial .shadow {
  position: absolute;
  bottom: 30%; left: 45%;
  width: 60px; height: 30px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: hev-shadow 4s ease-in-out infinite alternate;
}
.scn-item-hebenon-vial .vial {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(180,200,220,.15) 0%, rgba(80,100,130,.35) 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  border: 2px solid rgba(180,200,220,.3);
  box-shadow: 0 0 15px rgba(140,180,220,.2);
}
.scn-item-hebenon-vial .liquid {
  position: absolute;
  bottom: 32%; left: 50%;
  width: 24px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #4a6a7a 0%, #2a3a4a 60%);
  border-radius: 0 0 10% 10%;
  animation: hev-liquid 5s ease-in-out infinite;
}
.scn-item-hebenon-vial .stopper {
  position: absolute;
  bottom: 72%; left: 50%;
  width: 10px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #c0b090 0%, #8a7a6a 100%);
  border-radius: 40% 40% 0 0;
}
.scn-item-hebenon-vial .glow {
  position: absolute;
  bottom: 25%; left: 45%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(140,180,220,.08) 0%, transparent 70%);
  pointer-events: none;
  animation: hev-glow 4s ease-in-out infinite alternate;
}
.scn-item-hebenon-vial .hand {
  position: absolute;
  bottom: 26%; left: 48%;
  width: 20px; height: 30px;
  transform: rotate(-15deg);
  background: linear-gradient(180deg, #2a2a3a 0%, #151520 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: hev-hand 6s ease-in-out infinite;
}
@keyframes hev-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.1); opacity: .4; }
  100% { transform: scaleX(0.9); opacity: .7; }
}
@keyframes hev-liquid {
  0% { height: 20px; }
  50% { height: 18px; }
  100% { height: 20px; }
}
@keyframes hev-glow {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .2; }
}
@keyframes hev-hand {
  0% { transform: rotate(-15deg) translateY(0); }
  25% { transform: rotate(-10deg) translateY(-2px); }
  50% { transform: rotate(-15deg) translateY(0); }
  75% { transform: rotate(-20deg) translateY(1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

/* ----- scene: ghost-command-revenge (gho-) ----- */
.scn-ghost-command-revenge {
  background:
    linear-gradient(180deg, #12122a 0%, #1a1a30 30%, #25253a 60%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a6e 0%, transparent 50%);
}
.scn-ghost-command-revenge .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  animation: gho-sky 20s ease-in-out infinite alternate;
}
.scn-ghost-command-revenge .wall {
  position: absolute;
  bottom: 30%; left: 10%; right: 10%;
  height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-ghost-command-revenge .ghost {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(200,220,255,.3) 0%, rgba(180,200,240,.1) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(2px);
  box-shadow: 0 0 30px rgba(200,220,255,.3);
  animation: gho-ghost 6s ease-in-out infinite alternate;
}
.scn-ghost-command-revenge .hamlet {
  position: absolute;
  bottom: 25%; left: 40%;
  width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: gho-hamlet 8s ease-in-out infinite;
}
.scn-ghost-command-revenge .sword {
  position: absolute;
  bottom: 40%; left: 44%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%);
  transform-origin: bottom center;
  transform: rotate(30deg);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(180,180,200,.3);
  animation: gho-sword 5s ease-in-out infinite alternate;
}
.scn-ghost-command-revenge .light-beam {
  position: absolute;
  top: 20%; left: 55%;
  width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(220,240,255,.05) 0%, transparent 100%);
  transform: rotate(-10deg);
  pointer-events: none;
  animation: gho-beam 3s ease-in-out infinite alternate;
}
.scn-ghost-command-revenge .mist {
  position: absolute;
  bottom: 20%; left: 30%; right: 30%;
  height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,255,.08) 0%, transparent 80%);
  filter: blur(20px);
  animation: gho-mist 12s linear infinite;
}
@keyframes gho-sky {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes gho-ghost {
  0% { transform: translateY(0); opacity: .6; }
  50% { transform: translateY(-8px); opacity: .8; }
  100% { transform: translateY(0); opacity: .5; }
}
@keyframes gho-hamlet {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-3deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes gho-sword {
  0% { transform: rotate(25deg); }
  50% { transform: rotate(35deg); }
  100% { transform: rotate(25deg); }
}
@keyframes gho-beam {
  0% { opacity: .2; }
  50% { opacity: .5; }
  100% { opacity: .1; }
}
@keyframes gho-mist {
  0% { transform: translateX(-20px) scaleX(1); }
  50% { transform: translateX(10px) scaleX(0.9); }
  100% { transform: translateX(-20px) scaleX(1); }
}

/* ----- scene: hamlet-vow-revenge (ham-) ----- */
.scn-hamlet-vow-revenge {
  background:
    linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 40%, #25253a 100%),
    radial-gradient(ellipse at 30% 80%, #2a2a4e 0%, transparent 60%);
}
.scn-hamlet-vow-revenge .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-hamlet-vow-revenge .background-wall {
  position: absolute;
  bottom: 20%; left: 5%; right: 5%;
  height: 60%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 5% 5% 0 0;
}
.scn-hamlet-vow-revenge .hamlet {
  position: absolute;
  bottom: 15%; left: 45%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ham-hamlet 8s ease-in-out infinite;
}
.scn-hamlet-vow-revenge .arm {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-45deg);
  transform-origin: bottom left;
  animation: ham-arm 5s ease-in-out infinite alternate;
}
.scn-hamlet-vow-revenge .sword {
  position: absolute;
  bottom: 45%; left: 55%;
  width: 3px; height: 35px;
  background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%);
  transform: rotate(-20deg);
  transform-origin: bottom left;
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(180,180,200,.2);
}
.scn-hamlet-vow-revenge .moon {
  position: absolute;
  top: 10%; right: 15%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d8 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(200,210,230,.3), 0 0 60px rgba(200,210,230,.1);
  animation: ham-moon 15s ease-in-out infinite alternate;
}
.scn-hamlet-vow-revenge .clouds {
  position: absolute;
  top: 8%; left: 20%;
  width: 80px; height: 12px;
  background: linear-gradient(180deg, rgba(200,210,230,.3) 0%, transparent 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: ham-cloud 35s linear infinite;
}
.scn-hamlet-vow-revenge .shadow {
  position: absolute;
  bottom: 5%; left: 35%;
  width: 60px; height: 15px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: ham-shadow 6s ease-in-out infinite alternate;
}
@keyframes ham-hamlet {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ham-arm {
  0% { transform: rotate(-45deg); }
  100% { transform: rotate(-25deg); }
}
@keyframes ham-moon {
  0% { transform: translateY(0); opacity: .8; }
  50% { transform: translateY(-5px); opacity: 1; }
  100% { transform: translateY(0); opacity: .85; }
}
@keyframes ham-cloud {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(30px) scaleX(1.2); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes ham-shadow {
  0% { transform: scaleX(1); opacity: .4; }
  50% { transform: scaleX(1.2); opacity: .2; }
  100% { transform: scaleX(0.8); opacity: .5; }
}

/* ----- scene: item-writing-table (wri-) ----- */
.scn-item-writing-table {
  background:
    linear-gradient(180deg, #0e0e20 0%, #181830 40%, #202038 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-item-writing-table .table {
  position: absolute;
  bottom: 0; left: 5%; right: 5%;
  height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 15% 15% 0 0 / 25% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-item-writing-table .paper {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 40px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: wri-paper 10s ease-in-out infinite;
}
.scn-item-writing-table .inkwell {
  position: absolute;
  bottom: 28%; left: 40%;
  width: 14px; height: 16px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-item-writing-table .quill {
  position: absolute;
  bottom: 40%; left: 38%;
  width: 3px; height: 30px;
  background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 1px;
  animation: wri-quill 4s ease-in-out infinite;
}
.scn-item-writing-table .candle-holder {
  position: absolute;
  bottom: 28%; left: 60%;
  width: 10px; height: 18px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-item-writing-table .candle-flame {
  position: absolute;
  bottom: 44%; left: 60%;
  width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #b0a070 0%, #806040 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 20px rgba(200,180,120,.3);
  animation: wri-flame 2s ease-in-out infinite alternate;
}
.scn-item-writing-table .hand-writing {
  position: absolute;
  bottom: 28%; left: 48%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: wri-hand 6s ease-in-out infinite;
}
@keyframes wri-paper {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes wri-quill {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(10deg); }
}
@keyframes wri-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .7; }
  50% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: .6; }
}
@keyframes wri-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-1px); }
  50% { transform: rotate(-10deg) translateY(0); }
  75% { transform: rotate(-15deg) translateY(1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-item-hamlets-letter {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8a86e 80%), radial-gradient(ellipse at 60% 40%, #fff2d0 0%, #e0c090 30%, transparent 60%);
}
.scn-item-hamlets-letter .wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4c2a8 0%, #b89a6e 100%); }
.scn-item-hamlets-letter .table { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 8% 8% 20% 20% / 20% 20% 60% 60%; box-shadow: 0 -8px 20px rgba(0,0,0,.3), inset 0 8px 12px rgba(0,0,0,.2); }
.scn-item-hamlets-letter .letter-paper { position:absolute; bottom:30%; left:35%; width:30%; height:20%; background: #faf0dc; border-radius: 4% 4% 6% 6%; box-shadow: 0 4px 12px rgba(0,0,0,.3), inset 0 0 20px rgba(200,160,100,.3); transform: rotate(-5deg); animation: hl-letter 8s ease-in-out infinite alternate; }
.scn-item-hamlets-letter .candle { position:absolute; bottom:38%; left:25%; width:5%; height:18%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius: 10% 10% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 0 12px rgba(200,160,100,.3); }
.scn-item-hamlets-letter .candle-flame { position:absolute; bottom:55%; left:26.5%; width:2%; height:4%; background: radial-gradient(circle, #ffe870 0%, #ffc060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 24px 8px #ffcc60, 0 0 48px 16px rgba(255,200,80,.4); animation: hl-flame 2s ease-in-out infinite alternate; }
.scn-item-hamlets-letter .hand { position:absolute; bottom:25%; left:45%; width:6%; height:14%; background: linear-gradient(180deg, #e8c8a0 0%, #c09060 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg) translateX(-10%); animation: hl-hand 6s ease-in-out infinite; }
.scn-item-hamlets-letter .seal { position:absolute; bottom:33%; left:55%; width:4%; height:3%; background: radial-gradient(circle, #a04020 0%, #6a2010 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.5); transform: rotate(-10deg); }
.scn-item-hamlets-letter .shadow { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(8px); animation: hl-shadow 10s ease-in-out infinite alternate; }

@keyframes hl-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hl-flame { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2, 1.3); opacity: 1; } 100% { transform: scale(0.9, 1.1); opacity: 0.9; } }
@keyframes hl-hand { 0% { transform: rotate(10deg) translateX(-10%); } 50% { transform: rotate(8deg) translateX(-8%) translateY(-2px); } 100% { transform: rotate(10deg) translateX(-10%); } }
@keyframes hl-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

.scn-polonius-plot-arras {
  background: linear-gradient(180deg, #c8c0b8 0%, #a09888 100%), radial-gradient(ellipse at 30% 60%, #fff8e8 0%, #c8b8a0 50%, transparent 80%);
}
.scn-polonius-plot-arras .wall { position:absolute; inset:0; background: linear-gradient(135deg, #b8b0a0 0%, #908878 100%); }
.scn-polonius-plot-arras .arras { position:absolute; top:0; left:40%; width:25%; height:100%; background: linear-gradient(180deg, #502828 0%, #301818 100%); border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.5), inset 8px 0 20px rgba(0,0,0,.3); animation: pp-arras 4s ease-in-out infinite alternate; }
.scn-polonius-plot-arras .arras-fold { position:absolute; top:20%; left:45%; width:5%; height:60%; background: linear-gradient(180deg, #602828 0%, #401010 100%); border-radius: 20%; filter: blur(2px); animation: pp-fold 6s ease-in-out infinite alternate; }
.scn-polonius-plot-arras .desk { position:absolute; bottom:10%; left:10%; width:30%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-polonius-plot-arras .book { position:absolute; bottom:20%; left:18%; width:8%; height:6%; background: #8a6040; border-radius: 4%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-polonius-plot-arras .figure-pol { position:absolute; bottom:15%; left:38%; width:8%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: pp-figure 3s ease-in-out infinite alternate; }
.scn-polonius-plot-arras .light-beam { position:absolute; top:0; left:20%; width:30%; height:100%; background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); filter: blur(8px); animation: pp-beam 12s ease-in-out infinite alternate; }

@keyframes pp-arras { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(2px); } }
@keyframes pp-fold { 0% { transform: scaleY(1); opacity: 0.7; } 50% { transform: scaleY(1.1); opacity: 0.9; } 100% { transform: scaleY(0.95); opacity: 0.8; } }
@keyframes pp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes pp-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-hamlet-reading-polonius {
  background: linear-gradient(180deg, #d8ccb8 0%, #b8a888 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, #d8c8a8 40%, transparent 70%);
}
.scn-hamlet-reading-polonius .wall { position:absolute; inset:0; background: linear-gradient(135deg, #c8b8a8 0%, #a89878 100%); }
.scn-hamlet-reading-polonius .window { position:absolute; top:5%; left:60%; width:20%; height:30%; background: linear-gradient(180deg, #d0d8e8 0%, #b8c0d0 100%); border-radius: 4% 4% 6% 6% / 10% 10% 12% 12%; box-shadow: inset 0 0 30px rgba(255,255,255,0.2), 0 0 30px rgba(200,200,255,0.1); animation: hr-window 20s ease-in-out infinite alternate; }
.scn-hamlet-reading-polonius .bookshelf { position:absolute; top:20%; left:5%; width:15%; height:60%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-hamlet-reading-polonius .chair { position:absolute; bottom:15%; left:35%; width:15%; height:25%; background: linear-gradient(180deg, #603020 0%, #402018 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-hamlet-reading-polonius .figure-hamlet { position:absolute; bottom:18%; left:38%; width:8%; height:30%; background: linear-gradient(180deg, #181818 0%, #080808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: hr-hamlet 5s ease-in-out infinite; }
.scn-hamlet-reading-polonius .book { position:absolute; bottom:30%; left:40%; width:6%; height:8%; background: #8a6030; border-radius: 4%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: hr-book 7s ease-in-out infinite alternate; }
.scn-hamlet-reading-polonius .figure-polonius { position:absolute; bottom:15%; left:55%; width:7%; height:28%; background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(50%); animation: hr-polonius 4s ease-in-out infinite alternate; }
.scn-hamlet-reading-polonius .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }

@keyframes hr-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hr-hamlet { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes hr-book { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes hr-polonius { 0% { transform: translateX(50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(50%) translateY(0) rotate(-1deg); } }

.scn-polonius-warns-ophelia {
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%), radial-gradient(ellipse at 40% 60%, #fff0d0 0%, #d0c0a0 50%, transparent 80%);
}
.scn-polonius-warns-ophelia .wall { position:absolute; inset:0; background: linear-gradient(135deg, #c8b8a0 0%, #a89878 100%); }
.scn-polonius-warns-ophelia .door { position:absolute; top:0; right:15%; width:20%; height:100%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset -4px 0 12px rgba(0,0,0,.4), inset 4px 0 12px rgba(0,0,0,.2); }
.scn-polonius-warns-ophelia .figure-polonius { position:absolute; bottom:20%; left:20%; width:8%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: pw-polonius 4s ease-in-out infinite alternate; }
.scn-polonius-warns-ophelia .figure-ophelia { position:absolute; bottom:18%; left:45%; width:7%; height:28%; background: linear-gradient(180deg, #e8d0b8 0%, #c8a890 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: pw-ophelia 5s ease-in-out infinite; }
.scn-polonius-warns-ophelia .chair { position:absolute; bottom:12%; left:50%; width:12%; height:20%; background: linear-gradient(180deg, #603020 0%, #402018 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-polonius-warns-ophelia .candle { position:absolute; bottom:30%; left:15%; width:4%; height:16%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius: 10% 10% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 0 12px rgba(200,160,100,.3); }
.scn-polonius-warns-ophelia .candle-flame { position:absolute; bottom:45%; left:16.5%; width:2%; height:5%; background: radial-gradient(circle, #ffe870 0%, #ffc060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 24px 8px #ffcc60, 0 0 48px 16px rgba(255,200,80,.4); animation: pw-flame 2s ease-in-out infinite alternate; }

@keyframes pw-polonius { 0% { transform: rotate(5deg) translateY(0) scale(1); } 50% { transform: rotate(3deg) translateY(-3px) scale(1.02); } 100% { transform: rotate(5deg) translateY(0) scale(1); } }
@keyframes pw-ophelia { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pw-flame { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3, 1.5); opacity: 1; } 100% { transform: scale(0.9, 1.1); opacity: 0.9; } }

/* Scene: laertes-ophelia-madness */
.scn-laertes-ophelia-madness {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 0%, #6a4a3a 0%, transparent 50%);
}
.scn-laertes-ophelia-madness .interior-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-laertes-ophelia-madness .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a1a1a 0%, #3a2a1a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-laertes-ophelia-madness .figure-laertes {
  position:absolute; bottom:28%; left:15%; width:24px; height:70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-fig-l 4s ease-in-out infinite;
}
.scn-laertes-ophelia-madness .figure-ophelia {
  position:absolute; bottom:28%; right:20%; width:20px; height:60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-fig-o 3s ease-in-out infinite;
}
.scn-laertes-ophelia-madness .rose-bloom {
  position:absolute; bottom:32%; left:30%; width:14px; height:14px;
  background: radial-gradient(circle, #b87878 0%, #8a5050 70%);
  border-radius:50%;
  box-shadow: 0 0 8px 2px rgba(184,120,120,0.3);
  animation: la-rose 6s ease-in-out infinite;
}
.scn-laertes-ophelia-madness .rose-bloom-2 {
  position:absolute; bottom:35%; left:35%; width:10px; height:10px;
  background: radial-gradient(circle, #b87878 0%, #8a5050 70%);
  border-radius:50%;
  box-shadow: 0 0 8px 2px rgba(184,120,120,0.3);
  animation: la-rose 6s ease-in-out infinite 1.5s;
}
.scn-laertes-ophelia-madness .tear-drop {
  position:absolute; bottom:40%; left:22%; width:4px; height:8px;
  background: radial-gradient(ellipse, #c0a0a0 0%, transparent 80%);
  border-radius: 50% / 70% 70% 30% 30%;
  filter: blur(1px);
  animation: la-tear 2s ease-in-out infinite;
}
.scn-laertes-ophelia-madness .tear-drop-2 {
  position:absolute; bottom:42%; left:50%; width:3px; height:7px;
  background: radial-gradient(ellipse, #c0a0a0 0%, transparent 80%);
  border-radius: 50% / 70% 70% 30% 30%;
  filter: blur(1px);
  animation: la-tear 2.5s ease-in-out infinite 0.8s;
}
@keyframes la-fig-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes la-fig-o {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes la-rose {
  0% { transform: scale(1) rotate(0deg); opacity:0.8; }
  50% { transform: scale(1.1) rotate(15deg); opacity:1; }
  100% { transform: scale(1) rotate(0deg); opacity:0.8; }
}
@keyframes la-tear {
  0% { transform: translateY(0) scaleY(1); opacity:0.7; }
  50% { transform: translateY(6px) scaleY(0.8); opacity:0.3; }
  100% { transform: translateY(12px) scaleY(0.5); opacity:0; }
}

/* Scene: ophelia-song-bier */
.scn-ophelia-song-bier {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 30%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-ophelia-song-bier .dark-back {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, transparent 70%);
}
.scn-ophelia-song-bier .bier {
  position:absolute; bottom:15%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-ophelia-song-bier .ophelia-singing {
  position:absolute; bottom:30%; left:35%; width:18px; height:50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opb-fig 5s ease-in-out infinite;
}
.scn-ophelia-song-bier .flower-wreath {
  position:absolute; bottom:28%; left:20%; width:20px; height:8px;
  background: radial-gradient(circle, #b87878 0%, #6a4a3a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: opb-wreath 8s ease-in-out infinite;
}
.scn-ophelia-song-bier .flower-wreath-2 {
  position:absolute; bottom:28%; right:22%; width:18px; height:7px;
  background: radial-gradient(circle, #b87878 0%, #6a4a3a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: opb-wreath 8s ease-in-out infinite 2s;
}
.scn-ophelia-song-bier .glow-halo {
  position:absolute; top:20%; left:40%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(200,160,120,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: opb-halo 6s ease-in-out infinite alternate;
}
.scn-ophelia-song-bier .falling-petal {
  position:absolute; top:0; left:25%; width:6px; height:4px;
  background: radial-gradient(ellipse, #b87878 0%, #7a4a3a 100%);
  border-radius: 50%;
  animation: opb-petal 10s linear infinite;
}
.scn-ophelia-song-bier .falling-petal-2 {
  position:absolute; top:10%; left:60%; width:5px; height:3px;
  background: radial-gradient(ellipse, #b87878 0%, #7a4a3a 100%);
  border-radius: 50%;
  animation: opb-petal 12s linear infinite 3s;
}
@keyframes opb-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes opb-wreath {
  0% { transform: scale(1) rotate(0deg); opacity:0.5; }
  50% { transform: scale(1.1) rotate(10deg); opacity:0.8; }
  100% { transform: scale(1) rotate(0deg); opacity:0.5; }
}
@keyframes opb-halo {
  0% { transform: scale(1); opacity:0.3; }
  100% { transform: scale(1.2); opacity:0.6; }
}
@keyframes opb-petal {
  0% { transform: translateY(-10px) rotate(0deg) translateX(0); opacity:1; }
  25% { transform: translateY(20vh) rotate(90deg) translateX(10px); opacity:0.6; }
  50% { transform: translateY(40vh) rotate(180deg) translateX(-10px); opacity:0.4; }
  75% { transform: translateY(60vh) rotate(270deg) translateX(5px); opacity:0.2; }
  100% { transform: translateY(80vh) rotate(360deg) translateX(-5px); opacity:0; }
}

/* Scene: laertes-nothing-matter */
.scn-laertes-nothing-matter {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 50%);
}
.scn-laertes-nothing-matter .wood-table {
  position:absolute; bottom:0; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-laertes-nothing-matter .rosemary-sprig {
  position:absolute; bottom:35%; left:20%; width:5px; height:30px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: bottom center;
  animation: lnm-herb 4s ease-in-out infinite;
}
.scn-laertes-nothing-matter .pansy-flower {
  position:absolute; bottom:32%; left:38%; width:12px; height:12px;
  background: radial-gradient(circle, #6a4a8a 30%, #4a2a5a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(106,74,138,0.4);
  animation: lnm-flower 3s ease-in-out infinite;
}
.scn-laertes-nothing-matter .pansy-flower-2 {
  position:absolute; bottom:35%; left:46%; width:10px; height:10px;
  background: radial-gradient(circle, #6a4a8a 30%, #4a2a5a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(106,74,138,0.4);
  animation: lnm-flower 3s ease-in-out infinite 1.5s;
}
.scn-laertes-nothing-matter .shadow-hand {
  position:absolute; bottom:20%; left:15%; width:20px; height:30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: lnm-hand 5s ease-in-out infinite;
}
.scn-laertes-nothing-matter .shadow-hand-2 {
  position:absolute; bottom:20%; right:18%; width:18px; height:28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  animation: lnm-hand 5s ease-in-out infinite 2.5s;
}
@keyframes lnm-herb {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes lnm-flower {
  0% { transform: scale(1) rotate(0deg); opacity:0.7; }
  50% { transform: scale(1.15) rotate(10deg); opacity:1; }
  100% { transform: scale(1) rotate(0deg); opacity:0.7; }
}
@keyframes lnm-hand {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(2px); }
  100% { transform: rotate(20deg) translateY(0); }
}

/* Scene: ophelia-fennel-columbines */
.scn-ophelia-fennel-columbines {
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-ophelia-fennel-columbines .earthen-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
}
.scn-ophelia-fennel-columbines .fennel-stalk {
  position:absolute; bottom:38%; left:15%; width:6px; height:40px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: ofc-stalk 5s ease-in-out infinite;
}
.scn-ophelia-fennel-columbines .columbine-blossom {
  position:absolute; bottom:60%; left:10%; width:16px; height:16px;
  background: radial-gradient(circle, #6a4a8a 30%, #4a2a5a 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ofc-bloom 4s ease-in-out infinite;
}
.scn-ophelia-fennel-columbines .rue-leaf {
  position:absolute; bottom:35%; left:40%; width:8px; height:6px;
  background: radial-gradient(ellipse, #5a6a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(30deg);
  animation: ofc-leaf 3s ease-in-out infinite;
}
.scn-ophelia-fennel-columbines .daisy-petal {
  position:absolute; bottom:33%; right:25%; width:10px; height:10px;
  background: radial-gradient(circle, #b8a878 0%, #7a6a4a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ofc-daisy 6s ease-in-out infinite;
}
.scn-ophelia-fennel-columbines .violet-blossom {
  position:absolute; bottom:30%; right:35%; width:8px; height:8px;
  background: radial-gradient(circle, #5a4a8a 0%, #3a2a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(90,74,138,0.4);
  animation: ofc-violet 4s ease-in-out infinite;
}
.scn-ophelia-fennel-columbines .violet-blossom-2 {
  position:absolute; bottom:32%; right:30%; width:6px; height:6px;
  background: radial-gradient(circle, #5a4a8a 0%, #3a2a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(90,74,138,0.4);
  animation: ofc-violet 4s ease-in-out infinite 2s;
}
@keyframes ofc-stalk {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes ofc-bloom {
  0% { transform: scale(1) rotate(0deg); opacity:0.6; }
  50% { transform: scale(1.1) rotate(15deg); opacity:1; }
  100% { transform: scale(1) rotate(0deg); opacity:0.6; }
}
@keyframes ofc-leaf {
  0% { transform: rotate(30deg) scaleX(1); }
  50% { transform: rotate(35deg) scaleX(1.1); }
  100% { transform: rotate(30deg) scaleX(1); }
}
@keyframes ofc-daisy {
  0% { transform: scale(1); opacity:0.5; }
  50% { transform: scale(1.2); opacity:0.9; }
  100% { transform: scale(1); opacity:0.5; }
}
@keyframes ofc-violet {
  0% { transform: scale(1); }
  50% { transform: scale(1.15); }
  100% { transform: scale(1); }
}

/* Scene 1: gentleman-laertes-riot */
.scn-gentleman-laertes-riot {
  background: linear-gradient(180deg, #c8b08a 0%, #a0805a 30%, #705038 100%), radial-gradient(ellipse at 50% 30%, #d4c0a0 0%, transparent 60%);
}
.scn-gentleman-laertes-riot .wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b09070 0%, #705038 100%); animation: gr2-wall 8s ease-in-out infinite;
}
.scn-gentleman-laertes-riot .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4e3a 0%, #3a2a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-gentleman-laertes-riot .door-frame {
  position:absolute; bottom:25%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border: 4px solid #3a2a1a; border-radius: 10px 10px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.4);
}
.scn-gentleman-laertes-riot .door-left {
  position:absolute; bottom:25%; left:calc(50% - 60px); width:55px; height:150px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); transform-origin: left center; animation: gr2-door-left 3s ease-in-out infinite alternate;
}
.scn-gentleman-laertes-riot .door-right {
  position:absolute; bottom:25%; left:50%; width:55px; height:150px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); transform-origin: right center; animation: gr2-door-right 3s ease-in-out infinite alternate;
}
.scn-gentleman-laertes-riot .crowd {
  position:absolute; bottom:25%; left:10%; right:10%; height:60px; background: repeating-linear-gradient(90deg, rgba(30,20,10,.6) 0px, rgba(50,30,20,.5) 15px, rgba(30,20,10,.6) 30px); animation: gr2-crowd 2s steps(4) infinite; filter: blur(2px);
}
.scn-gentleman-laertes-riot .laertes {
  position:absolute; bottom:25%; left:40%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gr2-laertes 4s ease-in-out infinite;
}
.scn-gentleman-laertes-riot .sword {
  position:absolute; bottom:40%; left:38%; width:4px; height:70px; background: linear-gradient(180deg, #ccc 0%, #888 100%); border-radius: 2px; transform-origin: bottom; animation: gr2-sword 2s ease-in-out infinite alternate;
}
.scn-gentleman-laertes-riot .splinter {
  position:absolute; bottom:30%; left:46%; width:20px; height:4px; background: #5a3a2a; transform: rotate(30deg); border-radius: 2px; animation: gr2-splinter 6s ease-in-out infinite;
}
@keyframes gr2-wall { 0%,100% { opacity:.9; } 50% { opacity:1; } }
@keyframes gr2-door-left { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-30deg); } }
@keyframes gr2-door-right { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(30deg); } }
@keyframes gr2-crowd { 0% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(0); } 75% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes gr2-laertes { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes gr2-sword { 0% { transform: rotate(15deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(20deg); } }
@keyframes gr2-splinter { 0% { transform: translate(0,0) rotate(30deg); } 30% { transform: translate(10px,-5px) rotate(45deg); } 60% { transform: translate(-5px,2px) rotate(20deg); } 100% { transform: translate(0,0) rotate(30deg); } }

/* Scene 2: king-false-trail */
.scn-king-false-trail {
  background: linear-gradient(180deg, #d0b898 0%, #b09878 40%, #907858 100%), radial-gradient(ellipse at 60% 20%, #e0c8a8 0%, transparent 70%);
}
.scn-king-false-trail .throne-room {
  position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c0a880 0%, #907858 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.3);
}
.scn-king-false-trail .king {
  position:absolute; bottom:20%; left:30%; width:40px; height:100px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: kft-king 6s ease-in-out infinite alternate;
}
.scn-king-false-trail .crown-glow {
  position:absolute; bottom:80%; left:30%; width:50px; height:40px; background: radial-gradient(circle, #ffd070 0%, #b08040 100%); border-radius: 50%; opacity: .8; filter: blur(8px); animation: kft-crown 3s ease-in-out infinite alternate;
}
.scn-king-false-trail .dog-1 {
  position:absolute; bottom:18%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: kft-dog 1s ease-in-out infinite;
}
.scn-king-false-trail .dog-2 {
  position:absolute; bottom:18%; left:62%; width:25px; height:18px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: kft-dog 1.2s ease-in-out infinite 0.6s;
}
.scn-king-false-trail .courtier {
  position:absolute; bottom:20%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: kft-courtier 12s ease-in-out infinite;
}
.scn-king-false-trail .laertes-enter {
  position:absolute; bottom:20%; right:25%; width:35px; height:85px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom right; animation: kft-laertes 4s ease-in-out infinite;
}
.scn-king-false-trail .weapon {
  position:absolute; bottom:35%; right:24%; width:4px; height:50px; background: linear-gradient(180deg, #ccc 0%, #666 100%); border-radius: 2px; transform: rotate(-30deg); transform-origin: top; animation: kft-weapon 2s ease-in-out infinite alternate;
}
@keyframes kft-king { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-1px); } }
@keyframes kft-crown { 0% { opacity:.5; transform: scale(1); } 100% { opacity:.9; transform: scale(1.2); } }
@keyframes kft-dog { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } }
@keyframes kft-courtier { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-2deg); } 60% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kft-laertes { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kft-weapon { 0% { transform: rotate(-35deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-35deg); } }

/* Scene 3: laertes-thank */
.scn-laertes-thank {
  background: linear-gradient(180deg, #b09878 0%, #806048 50%, #503828 100%), radial-gradient(ellipse at 50% 50%, #c0a080 0%, transparent 80%);
}
.scn-laertes-thank .dark-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); opacity:.6; animation: lt3-bg 8s ease-in-out infinite alternate;
}
.scn-laertes-thank .door {
  position:absolute; bottom:20%; left:10%; width:100px; height:130px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 5px; box-shadow: 0 0 30px rgba(0,0,0,.5); transform-origin: left center; animation: lt3-door 5s ease-in-out infinite;
}
.scn-laertes-thank .laertes-bust {
  position:absolute; bottom:20%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: lt3-laertes 3s ease-in-out infinite;
}
.scn-laertes-thank .hand-on-sword {
  position:absolute; bottom:40%; left:33%; width:12px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30%; transform-origin: top; animation: lt3-hand 2s ease-in-out infinite alternate;
}
.scn-laertes-thank .king-far {
  position:absolute; bottom:20%; right:15%; width:25px; height:50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; filter: blur(1px); animation: lt3-king 6s ease-in-out infinite;
}
.scn-laertes-thank .shadow-line-1 {
  position:absolute; bottom:25%; left:20%; right:20%; height:2px; background: rgba(0,0,0,.3); animation: lt3-shadow1 4s ease-in-out infinite alternate;
}
.scn-laertes-thank .shadow-line-2 {
  position:absolute; bottom:30%; left:20%; right:20%; height:1px; background: rgba(0,0,0,.2); animation: lt3-shadow2 4s ease-in-out infinite alternate 2s;
}
@keyframes lt3-bg { 0%,100% { opacity:.5; } 50% { opacity:.7; } }
@keyframes lt3-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-5deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(3deg); } 100% { transform: rotateY(0deg); } }
@keyframes lt3-laertes { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } }
@keyframes lt3-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(10deg); } }
@keyframes lt3-king { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lt3-shadow1 { 0% { width: 60%; left:20%; } 100% { width: 50%; left:25%; } }
@keyframes lt3-shadow2 { 0% { width: 60%; left:20%; } 100% { width: 70%; left:15%; } }

/* Scene 4: king-cause */
.scn-king-cause {
  background: linear-gradient(180deg, #c8b098 0%, #a08060 40%, #705040 100%), radial-gradient(ellipse at 40% 30%, #d0b8a0 0%, transparent 70%);
}
.scn-king-cause .great-hall {
  position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b09878 0%, #907858 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.3);
}
.scn-king-cause .king-stand {
  position:absolute; bottom:25%; left:30%; width:45px; height:90px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kc4-king 5s ease-in-out infinite alternate;
}
.scn-king-cause .gertrude {
  position:absolute; bottom:30%; left:22%; width:30px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: kc4-gertrude 6s ease-in-out infinite;
}
.scn-king-cause .laertes-confront {
  position:absolute; bottom:25%; right:25%; width:35px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom right; animation: kc4-laertes 4s ease-in-out infinite;
}
.scn-king-cause .railing {
  position:absolute; bottom:35%; left:25%; right:25%; height:4px; background: linear-gradient(90deg, transparent, #5a3a2a 20%, #3a2a1a 80%, transparent); border-radius: 2px; animation: kc4-railing 10s ease-in-out infinite;
}
.scn-king-cause .halo {
  position:absolute; bottom:80%; left:30%; width:60px; height:50px; background: radial-gradient(circle, rgba(255,215,140,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: kc4-halo 4s ease-in-out infinite alternate;
}
.scn-king-cause .crowd-shapes {
  position:absolute; bottom:25%; left:5%; right:5%; height:40px; background: repeating-linear-gradient(90deg, rgba(40,20,10,.5) 0px, rgba(60,30,20,.4) 20px, rgba(40,20,10,.5) 40px); animation: kc4-crowd 3s ease-in-out infinite;
}
@keyframes kc4-king { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.04) translateY(-1px); } }
@keyframes kc4-gertrude { 0% { transform: translateX(0); } 30% { transform: translateX(-2px); } 60% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes kc4-laertes { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kc4-railing { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes kc4-halo { 0% { opacity:.4; transform: scale(1); } 100% { opacity:.8; transform: scale(1.2); } }
@keyframes kc4-crowd { 0% { transform: translateX(0); opacity:.5; } 50% { transform: translateX(5px); opacity:.8; } 100% { transform: translateX(0); opacity:.5; } }

/* horatio-remember – bright interior, calm */
.scn-horatio-remember {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d8b8 30%, #d4c0a0 100%), radial-gradient(ellipse at 30% 40%, #faf0e0 0%, transparent 60%);
}
.scn-horatio-remember .wall { position:absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #e8d8b8 0%, #d4c0a0 100%); }
.scn-horatio-remember .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a888 0%, #a09070 100%); border-radius: 20% 20% 0 0; }
.scn-horatio-remember .window { position:absolute; top:10%; left:55%; width:120px; height:150px; background: linear-gradient(180deg, #c0d8f0 0%, #a0c0e0 100%); border: 8px solid #8a7a5a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.5); animation: hr-window 12s ease-in-out infinite alternate; }
.scn-horatio-remember .bed { position:absolute; bottom:38%; left:15%; width:200px; height:80px; background: linear-gradient(180deg, #8a6a4a 0%, #705030 100%); border-radius: 20px 20px 8px 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-horatio-remember .pillow { position:absolute; bottom:68%; left:22%; width:50px; height:20px; background: radial-gradient(ellipse, #f0e8d0 0%, #e0d0b0 100%); border-radius: 50%; transform: rotate(-10deg); animation: hr-pillow 8s ease-in-out infinite; }
.scn-horatio-remember .figure { position:absolute; bottom:30%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hr-figure 6s ease-in-out infinite; }
.scn-horatio-remember .sunbeam { position:absolute; top:8%; left:60%; width:300px; height:200px; background: linear-gradient(135deg, rgba(255,240,200,0.25) 0%, rgba(255,240,200,0) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(4px); animation: hr-beam 14s ease-in-out infinite alternate; }
.scn-horatio-remember .dust { position:absolute; top:20%; left:50%; width:80%; height:40%; background: radial-gradient(circle at 30% 70%, rgba(255,240,210,0.1) 0%, transparent 70%); animation: hr-dust 20s linear infinite; }

@keyframes hr-window { 0% { opacity:0.9; filter:brightness(0.9) } 50% { opacity:1; filter:brightness(1) } 100% { opacity:0.95; filter:brightness(0.95) } }
@keyframes hr-pillow { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes hr-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(12px) translateY(-1px) rotate(-2deg) } 75% { transform: translateX(5px) translateY(-3px) rotate(4deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes hr-beam { 0% { transform: scaleX(0.95) translateX(-10px); opacity:0.4 } 50% { transform: scaleX(1.05) translateX(5px); opacity:0.7 } 100% { transform: scaleX(0.98) translateX(0); opacity:0.6 } }
@keyframes hr-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.2) } 100% { transform: translateY(0) scale(0.9) } }

/* horatio-most-certain – bright interior, calm (desk scene) */
.scn-horatio-most-certain {
  background: linear-gradient(180deg, #f2e4c8 0%, #d8c8a8 40%, #b8a888 100%), radial-gradient(ellipse at 60% 30%, #fff8f0 0%, transparent 60%);
}
.scn-horatio-most-certain .bg-curtain { position:absolute; inset:0; background: linear-gradient(135deg, #d4c0a0 30%, #c0a888 70%); }
.scn-horatio-most-certain .table { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 8px 8px 0 0; box-shadow: 0 8px 25px rgba(0,0,0,0.4); animation: hmc-table 10s ease-in-out infinite alternate; }
.scn-horatio-most-certain .manuscript { position:absolute; bottom:28%; left:38%; width:100px; height:60px; background: linear-gradient(135deg, #f5ecdc 0%, #e0d4c0 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: hmc-paper 12s ease-in-out infinite; }
.scn-horatio-most-certain .hand { position:absolute; bottom:22%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: hmc-hand 5s ease-in-out infinite; }
.scn-horatio-most-certain .quill { position:absolute; bottom:30%; left:52%; width:4px; height:40px; background: #705040; border-radius: 2px; transform: rotate(20deg); transform-origin: bottom; animation: hmc-quill 4s ease-in-out infinite; }
.scn-horatio-most-certain .inkwell { position:absolute; bottom:26%; left:42%; width:24px; height:28px; background: radial-gradient(circle at 30% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50%; box-shadow: inset 0 -3px 6px rgba(0,0,0,0.5); animation: hmc-ink 6s ease-in-out infinite; }
.scn-horatio-most-certain .candle { position:absolute; bottom:28%; left:32%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a070 100%); border-radius: 2px; transform-origin: bottom; animation: hmc-candle 9s ease-in-out infinite; }
.scn-horatio-most-certain .flame { position:absolute; bottom:58%; left:32.5%; width:6px; height:14px; background: radial-gradient(circle, #ffd080 0%, #f0a050 60%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: hmc-flame 2s ease-in-out infinite alternate; }

@keyframes hmc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hmc-paper { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } }
@keyframes hmc-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hmc-quill { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(0.9) } 100% { transform: rotate(22deg) scaleY(1) } }
@keyframes hmc-ink { 0% { transform: scale(1) } 50% { transform: scale(0.95) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes hmc-candle { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes hmc-flame { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.3) } 100% { opacity:0.7; transform: scaleY(0.8) } }

/* hamlet-voyage-account – tense, dark (ship cabin) */
.scn-hamlet-voyage-account {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0a0a12 100%), radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, transparent 70%);
}
.scn-hamlet-voyage-account .hold { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%); }
.scn-hamlet-voyage-account .wall-plank { position:absolute; top:20%; left:10%; width:30%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-right: 4px solid #3a3a4a; border-radius: 0 8px 8px 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.6); }
.scn-hamlet-voyage-account .door { position:absolute; right:25%; top:40%; width:80px; height:120px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px; border: 4px solid #4a4a5a; animation: hva-door 18s ease-in-out infinite; }
.scn-hamlet-voyage-account .table { position:absolute; bottom:15%; left:20%; width:160px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 15px rgba(0,0,0,0.7); }
.scn-hamlet-voyage-account .papers { position:absolute; bottom:22%; left:28%; width:80px; height:50px; background: linear-gradient(135deg, #d0c8b0 0%, #b0a890 100%); transform: rotate(-5deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.5); animation: hva-papers 8s ease-in-out infinite; }
.scn-hamlet-voyage-account .lantern { position:absolute; top:15%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(200,150,80,0.3); animation: hva-lantern 7s ease-in-out infinite alternate; }
.scn-hamlet-voyage-account .figure { position:absolute; bottom:10%; left:15%; width:50px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: hva-figure 5s ease-in-out infinite; }
.scn-hamlet-voyage-account .arm { position:absolute; bottom:30%; left:30%; width:40px; height:8px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20px; transform: rotate(20deg); transform-origin: left; animation: hva-arm 6s ease-in-out infinite; }
.scn-hamlet-voyage-account .shadow { position:absolute; bottom:0; left:10%; width:80%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: hva-shadow 14s ease-in-out infinite alternate; }

@keyframes hva-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) translateX(-2px) } 100% { transform: scaleX(1) } }
@keyframes hva-papers { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes hva-lantern { 0% { opacity:0.7; filter:brightness(0.8) } 50% { opacity:0.9; filter:brightness(1.1) } 100% { opacity:0.8; filter:brightness(0.95) } }
@keyframes hva-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hva-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) scaleX(0.95) } 100% { transform: rotate(18deg) } }
@keyframes hva-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* item-danish-signet – tense, dim interior (desk with signet) */
.scn-item-danish-signet {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #0e0a08 100%), radial-gradient(ellipse at 30% 50%, #3a2a20 0%, transparent 70%);
}
.scn-item-danish-signet .walls { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e18 0%, #1a1410 100%); }
.scn-item-danish-signet .desk { position:absolute; bottom:10%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #4a3828 0%, #3a2818 100%); border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,0.6); animation: ids-desk 15s ease-in-out infinite alternate; }
.scn-item-danish-signet .scroll { position:absolute; bottom:25%; left:38%; width:120px; height:30px; background: linear-gradient(135deg, #d8c8a8 0%, #c0b090 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 4px 4px 12px rgba(0,0,0,0.4); animation: ids-scroll 10s ease-in-out infinite; }
.scn-item-danish-signet .signet { position:absolute; bottom:30%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #c09060 0%, #a07040 100%); border-radius: 50%; box-shadow: 0 0 15px 4px rgba(160,100,60,0.3); animation: ids-signet 6s ease-in-out infinite; }
.scn-item-danish-signet .hand { position:absolute; bottom:20%; left:55%; width:30px; height:45px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ids-hand 5s ease-in-out infinite; }
.scn-item-danish-signet .candle { position:absolute; bottom:25%; left:25%; width:8px; height:28px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a070 100%); border-radius: 2px; animation: ids-candle 8s ease-in-out infinite; }
.scn-item-danish-signet .pool-light { position:absolute; bottom:20%; left:25%; width:200px; height:100px; background: radial-gradient(ellipse, rgba(255,200,120,0.15) 0%, transparent 70%); animation: ids-pool 12s ease-in-out infinite alternate; }
.scn-item-danish-signet .seal-wax { position:absolute; bottom:27%; left:45%; width:10px; height:8px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,80,50,0.4); animation: ids-wax 7s ease-in-out infinite; }

@keyframes ids-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ids-scroll { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes ids-signet { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(-2deg) } }
@keyframes ids-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ids-candle { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(1deg) scaleY(0.95) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes ids-pool { 0% { opacity:0.4; transform: scale(0.95) } 50% { opacity:0.6; transform: scale(1.05) } 100% { opacity:0.5; transform: scale(1) } }
@keyframes ids-wax { 0% { transform: scale(1) } 50% { transform: scale(1.2) translateY(-1px) } 100% { transform: scale(0.9) } }

.scn-first-clown-give-me-leave {
  background: linear-gradient(180deg, #6b7b8b 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #6b7b8b 0%, transparent 60%);
}
.scn-first-clown-give-me-leave .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 100%);
  animation: sc1-sky 15s ease-in-out infinite alternate;
}
.scn-first-clown-give-me-leave .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: sc1-ground 12s ease-in-out infinite;
}
.scn-first-clown-give-me-leave .pool {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #3a6a7a 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.3);
  animation: sc1-pool 8s ease-in-out infinite alternate;
}
.scn-first-clown-give-me-leave .figure {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc1-figure 4s ease-in-out infinite;
}
.scn-first-clown-give-me-leave .skull {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 22px;
  background: radial-gradient(circle, #c0c0c0 0%, #a0a0a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: sc1-skull 6s ease-in-out infinite alternate;
}
.scn-first-clown-give-me-leave .bone {
  position: absolute; bottom: 28%; left: 65%; width: 24px; height: 6px;
  background: #b0b0b0;
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(20deg);
  animation: sc1-bone 5s ease-in-out infinite;
}
.scn-first-clown-give-me-leave .splash {
  position: absolute; bottom: 40%; left: 25%; width: 6px; height: 6px;
  background: radial-gradient(circle, #8ab0c0 0%, transparent 70%);
  border-radius: 50%;
  animation: sc1-splash 3s ease-in-out infinite;
}
@keyframes sc1-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc1-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sc1-pool { 0% { transform: scaleY(1) } 100% { transform: scaleY(.9) translateY(2px) } }
@keyframes sc1-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes sc1-skull { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(10deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc1-bone { 0% { transform: rotate(10deg) } 50% { transform: rotate(30deg) translateY(-2px) } 100% { transform: rotate(10deg) } }
@keyframes sc1-splash { 0%,100% { opacity:.3 } 50% { opacity:.8; transform: scale(2) } }

.scn-second-clown-is-this-law {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 50%, #3a4a4a 100%), radial-gradient(ellipse at 50% 100%, #4a5a5a 0%, transparent 70%);
}
.scn-second-clown-is-this-law .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 100%);
  animation: sc2-sky 18s ease-in-out infinite alternate;
}
.scn-second-clown-is-this-law .grave {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sc2-grave 14s ease-in-out infinite;
}
.scn-second-clown-is-this-law .scroll {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  transform-origin: bottom center;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: sc2-scroll 6s ease-in-out infinite;
}
.scn-second-clown-is-this-law .crow {
  position: absolute; bottom: 30%; left: 30%; width: 14px; height: 16px;
  background: #1a1a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sc2-crow 8s linear infinite;
}
.scn-second-clown-is-this-law .seal {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #a05030 0%, #603010 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #a05030;
  animation: sc2-seal 4s ease-in-out infinite alternate;
}
.scn-second-clown-is-this-law .bone {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 5px;
  background: #b0b0b0;
  border-radius: 30%;
  transform: rotate(-15deg);
  animation: sc2-bone 5s ease-in-out infinite;
}
@keyframes sc2-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc2-grave { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sc2-scroll { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(-3deg) } }
@keyframes sc2-crow { 0% { transform: translateX(0) } 50% { transform: translateX(80px) } 100% { transform: translateX(0) } }
@keyframes sc2-seal { 0% { opacity:.7; transform: scale(1) } 100% { opacity:1; transform: scale(1.3) } }
@keyframes sc2-bone { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }

.scn-second-clown-was-he-gentleman {
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 50%, #2a3a2a 100%), radial-gradient(ellipse at 50% 0%, #5a6a5a 0%, transparent 60%);
}
.scn-second-clown-was-he-gentleman .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a7a6a 0%, #3a4a3a 100%);
  animation: sc3-sky 16s ease-in-out infinite alternate;
}
.scn-second-clown-was-he-gentleman .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.4);
  animation: sc3-ground 10s ease-in-out infinite;
}
.scn-second-clown-was-he-gentleman .shovel {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #705040 0%, #402820 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom;
  animation: sc3-shovel 4s ease-in-out infinite;
}
.scn-second-clown-was-he-gentleman .shield {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 32px;
  background: linear-gradient(135deg, #806040 0%, #503020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: sc3-shield 6s ease-in-out infinite;
}
.scn-second-clown-was-he-gentleman .apple {
  position: absolute; bottom: 28%; left: 48%; width: 10px; height: 10px;
  background: radial-gradient(circle, #a05030 0%, #603010 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #a05030;
  animation: sc3-apple 3s ease-in-out infinite alternate;
}
.scn-second-clown-was-he-gentleman .tree {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: sc3-tree 12s ease-in-out infinite alternate;
}
@keyframes sc3-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sc3-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sc3-shovel { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-5deg) } }
@keyframes sc3-shield { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc3-apple { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-5px) scale(1.1) } }
@keyframes sc3-tree { 0% { transform: scaleY(1) } 100% { transform: scaleY(.95) } }

.scn-second-clown-gallows-maker {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 60%);
}
.scn-second-clown-gallows-maker .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  animation: sc4-sky 20s ease-in-out infinite alternate;
}
.scn-second-clown-gallows-maker .gallows {
  position: absolute; bottom: 20%; left: 30%; width: 6px; height: 60px;
  background: #3a2a1a;
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 0 0 2px #2a1a0a;
  animation: sc4-gallows 10s ease-in-out infinite alternate;
}
.scn-second-clown-gallows-maker .noose {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 20px;
  background: #2a1a0a;
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform-origin: top;
  animation: sc4-noose 6s ease-in-out infinite;
}
.scn-second-clown-gallows-maker .skeleton {
  position: absolute; bottom: 22%; left: 27%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #c0c0c0 0%, #a0a0a0 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: sc4-skeleton 3s ease-in-out infinite;
}
.scn-second-clown-gallows-maker .church {
  position: absolute; bottom: 10%; right: 20%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(50% 0%, 100% 30%, 100% 100%, 0% 100%, 0% 30%);
  animation: sc4-church 15s ease-in-out infinite alternate;
}
.scn-second-clown-gallows-maker .tenant {
  position: absolute; bottom: 18%; left: 50%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-tenant 5s ease-in-out infinite;
}
@keyframes sc4-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes sc4-gallows { 0% { transform: rotate(0) } 100% { transform: rotate(2deg) } }
@keyframes sc4-noose { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes sc4-skeleton { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-6px) rotate(3deg) } }
@keyframes sc4-church { 0% { transform: scaleY(1) } 100% { transform: scaleY(.95) translateY(2px) } }
@keyframes sc4-tenant { 0% { transform: translateX(0) } 50% { transform: translateX(12px) } 100% { transform: translateX(0) } }

/* Scene: first-hit */
.scn-first-hit {
  background: linear-gradient(180deg, #e9d8a6 0%, #c9b988 40%, #b59a6a 100%), radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 70%);
}
.scn-first-hit .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-first-hit .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b89a6a 0%, #8b7355 100%);
  mask: radial-gradient(ellipse at 50% 30%, black 40%, transparent 60%);
  -webkit-mask: radial-gradient(ellipse at 50% 30%, black 40%, transparent 60%);
}
.scn-first-hit .fence-left {
  position: absolute; bottom: 38%; left: 10%; width: 16px; height: 50%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6b5a3e 50%, #4a3a2a 100%);
  border-radius: 4px;
  transform: rotate(8deg);
  animation: fh-sway 2s ease-in-out infinite alternate;
}
.scn-first-hit .fence-right {
  position: absolute; bottom: 38%; right: 10%; width: 16px; height: 50%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6b5a3e 50%, #4a3a2a 100%);
  border-radius: 4px;
  transform: rotate(-8deg);
  animation: fh-sway 2s ease-in-out infinite alternate-reverse;
}
.scn-first-hit .sword-a {
  position: absolute; bottom: 46%; left: 32%; width: 100px; height: 4px;
  background: linear-gradient(90deg, #d4d4d4 0%, #b0b0b0 80%, transparent 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: fh-strike-a 1.5s ease-in-out infinite;
}
.scn-first-hit .sword-b {
  position: absolute; bottom: 46%; right: 32%; width: 100px; height: 4px;
  background: linear-gradient(-90deg, #d4d4d4 0%, #b0b0b0 80%, transparent 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: fh-strike-b 1.5s ease-in-out infinite;
}
.scn-first-hit .spotlight {
  position: absolute; top: 5%; left: 50%; width: 200px; height: 300px;
  background: radial-gradient(ellipse at center, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0.2) 40%, transparent 70%);
  transform: translateX(-50%);
  animation: fh-pulse 4s ease-in-out infinite alternate;
}
.scn-first-hit .dust {
  position: absolute; bottom: 38%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,150,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fh-drift 6s linear infinite;
}
@keyframes fh-sway {
  0% { transform: rotate(6deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(4px); }
  100% { transform: rotate(6deg) translateX(0); }
}
@keyframes fh-strike-a {
  0%,100% { transform: rotate(20deg) scaleX(1); }
  25% { transform: rotate(35deg) scaleX(1.1); }
  50% { transform: rotate(15deg) scaleX(0.9); }
  75% { transform: rotate(30deg) scaleX(1); }
}
@keyframes fh-strike-b {
  0%,100% { transform: rotate(-20deg) scaleX(1); }
  25% { transform: rotate(-35deg) scaleX(1.1); }
  50% { transform: rotate(-15deg) scaleX(0.9); }
  75% { transform: rotate(-30deg) scaleX(1); }
}
@keyframes fh-pulse {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
}
@keyframes fh-drift {
  0% { transform: translateY(0) translateX(0); opacity: 0.8; }
  50% { transform: translateY(-30px) translateX(20px); opacity: 0.3; }
  100% { transform: translateY(0) translateX(40px); opacity: 0.8; }
}

/* Scene: queen-drinks-poison */
.scn-queen-drinks-poison {
  background: linear-gradient(135deg, #d4b48c 0%, #b89a6a 40%, #a08558 100%), radial-gradient(ellipse at 60% 20%, #fff5d0 0%, transparent 70%);
}
.scn-queen-drinks-poison .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c9b988 0%, #b59a6a 100%);
  border-bottom: 3px solid #8b7355;
}
.scn-queen-drinks-poison .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #6b5a3e 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-queen-drinks-poison .goblet {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #c8a860 100%);
  border-radius: 0 0 20% 20%;
  transform: translateX(-50%);
  animation: qdp-raise 3s ease-in-out infinite;
}
.scn-queen-drinks-poison .goblet::after {
  content: ''; position: absolute; top: -15px; left: -5px; right: -5px; height: 15px;
  background: linear-gradient(180deg, #f0d090 0%, #d4b070 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 -4px 8px rgba(200,160,80,0.4);
}
.scn-queen-drinks-poison .hand {
  position: absolute; bottom: 32%; left: 42%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #d4a070 0%, #b08050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qdp-grip 3s ease-in-out infinite;
}
.scn-queen-drinks-poison .crown {
  position: absolute; bottom: 52%; left: 55%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b89858 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(0% 0%, 20% 100%, 40% 50%, 60% 100%, 80% 50%, 100% 0%, 80% 10%, 60% 60%, 40% 10%, 20% 60%, 0% 10%);
  animation: qdp-glow 4s ease-in-out infinite alternate;
}
.scn-queen-drinks-poison .napkin {
  position: absolute; bottom: 24%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e4d0 0%, #d4c4b0 100%);
  border-radius: 5%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: qdp-flutter 5s ease-in-out infinite;
}
.scn-queen-drinks-poison .shadow-pulse {
  position: absolute; bottom: 18%; left: 40%; right: 40%; height: 8%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: qdp-pulse 2s ease-in-out infinite alternate;
}
@keyframes qdp-raise {
  0%,100% { transform: translateX(-50%) translateY(0); }
  30% { transform: translateX(-50%) translateY(-15px); }
  60% { transform: translateX(-50%) translateY(-10px); }
  80% { transform: translateX(-50%) translateY(-20px); }
}
@keyframes qdp-grip {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
}
@keyframes qdp-glow {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(1); }
}
@keyframes qdp-flutter {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes qdp-pulse {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.2; transform: scaleX(1); }
}

/* Scene: laertes-wounds-hamlet */
.scn-laertes-wounds-hamlet {
  background: linear-gradient(180deg, #b89868 0%, #9a7d52 40%, #7a6038 100%), radial-gradient(ellipse at 50% 40%, #fff0c0 0%, transparent 70%);
}
.scn-laertes-wounds-hamlet .bg-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c9b080 0%, #b09464 100%);
  border-bottom: 2px solid #6b5a3e;
}
.scn-laertes-wounds-hamlet .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b5a3e 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-laertes-wounds-hamlet .figure-left {
  position: absolute; bottom: 32%; left: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lwh-lunge-left 1.2s ease-in-out infinite;
}
.scn-laertes-wounds-hamlet .figure-right {
  position: absolute; bottom: 32%; right: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lwh-recoil-right 1.2s ease-in-out infinite;
}
.scn-laertes-wounds-hamlet .sword-l {
  position: absolute; bottom: 48%; left: 30%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #d0d0d0 0%, #b0b0b0 80%, transparent 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: lwh-thrust-l 1.2s ease-in-out infinite;
}
.scn-laertes-wounds-hamlet .sword-r {
  position: absolute; bottom: 48%; right: 30%; width: 80px; height: 4px;
  background: linear-gradient(-90deg, #d0d0d0 0%, #b0b0b0 80%, transparent 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: lwh-thrust-r 1.2s ease-in-out infinite;
}
.scn-laertes-wounds-hamlet .blood-spatter {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #a03020 0%, #702020 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lwh-blood 2s ease-in-out infinite;
}
@keyframes lwh-lunge-left {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(-5deg); }
  50% { transform: translateX(5px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(-8deg); }
}
@keyframes lwh-recoil-right {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(5deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  75% { transform: translateX(-15px) rotate(8deg); }
}
@keyframes lwh-thrust-l {
  0%,100% { transform: rotate(-10deg) scaleX(1); }
  20% { transform: rotate(-30deg) scaleX(1.2); }
  40% { transform: rotate(-5deg) scaleX(0.9); }
  60% { transform: rotate(-40deg) scaleX(1.1); }
  80% { transform: rotate(-15deg) scaleX(1); }
}
@keyframes lwh-thrust-r {
  0%,100% { transform: rotate(10deg) scaleX(1); }
  20% { transform: rotate(30deg) scaleX(1.2); }
  40% { transform: rotate(5deg) scaleX(0.9); }
  60% { transform: rotate(40deg) scaleX(1.1); }
  80% { transform: rotate(15deg) scaleX(1); }
}
@keyframes lwh-blood {
  0% { transform: scale(0.5); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(0.8); opacity: 0.5; }
}

/* Scene: queen-falls */
.scn-queen-falls {
  background: linear-gradient(180deg, #c9b080 0%, #a68a60 40%, #846a48 100%), radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 70%);
}
.scn-queen-falls .bg-tapestry {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #9a7d52 0%, #7a6038 100%);
  border-bottom: 3px solid #5a4a2e;
  mask: linear-gradient(90deg, transparent 20%, black 30%, black 70%, transparent 80%);
  -webkit-mask: linear-gradient(90deg, transparent 20%, black 30%, black 70%, transparent 80%);
}
.scn-queen-falls .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a2e 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.5);
}
.scn-queen-falls .queen-falling {
  position: absolute; bottom: 30%; left: 40%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #d4b080 0%, #b09070 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: qf-fall 2s ease-in-out infinite;
  box-shadow: 0 5px 15px rgba(0,0,0,0.4);
}
.scn-queen-falls .figure-1 {
  position: absolute; bottom: 40%; left: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qf-reach 2s ease-in-out infinite;
}
.scn-queen-falls .figure-2 {
  position: absolute; bottom: 40%; right: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qf-reach 2s ease-in-out infinite 0.3s;
}
.scn-queen-falls .arm-left {
  position: absolute; bottom: 50%; left: 20%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #d4b080 0%, #c09870 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: qf-arm-left 2s ease-in-out infinite;
}
.scn-queen-falls .arm-right {
  position: absolute; bottom: 50%; right: 20%; width: 40px; height: 6px;
  background: linear-gradient(-90deg, #d4b080 0%, #c09870 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: qf-arm-right 2s ease-in-out infinite;
}
.scn-queen-falls .shadow-spread {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: qf-shadow 2s ease-in-out infinite alternate;
}
@keyframes qf-fall {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-20px) rotate(-15deg); }
  60% { transform: translateY(10px) rotate(5deg); }
  80% { transform: translateY(-5px) rotate(-10deg); }
}
@keyframes qf-reach {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@keyframes qf-arm-left {
  0%,100% { transform: rotate(30deg); }
  50% { transform: rotate(60deg); }
}
@keyframes qf-arm-right {
  0%,100% { transform: rotate(-30deg); }
  50% { transform: rotate(-60deg); }
}
@keyframes qf-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.5); }
  100% { opacity: 0.3; transform: scaleX(1.2); }
}

.scn-laertes-alas-drowned {
  background:
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 30%, #1a2a2a 60%, #0a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a4a4a 0%, transparent 80%);
}
.scn-laertes-alas-drowned .la-sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  animation: la-sky 20s ease-in-out infinite alternate;
}
.scn-laertes-alas-drowned .la-water {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 60%, #0a0a1a 100%);
  animation: la-water 8s ease-in-out infinite;
}
.scn-laertes-alas-drowned .la-willow {
  position:absolute; top:12%; left:20%; width:120px; height:200px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%);
  border-radius: 60% 40% 50% 50% / 80% 60% 50% 50%;
  transform-origin: bottom center;
  animation: la-willow 6s ease-in-out infinite;
}
.scn-laertes-alas-drowned .la-silhouette {
  position:absolute; bottom:45%; left:55%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: la-float 4s ease-in-out infinite;
}
.scn-laertes-alas-drowned .la-flower {
  position:absolute; bottom:48%; left:58%; width:10px; height:10px;
  background: radial-gradient(circle, #c0a0a0 0%, #a08080 60%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,160,160,0.4);
  animation: la-flower 5s ease-in-out infinite alternate;
}
.scn-laertes-alas-drowned .la-ripple-1,
.scn-laertes-alas-drowned .la-ripple-2 {
  position:absolute; bottom:30%; left:50%; width:60px; height:4px;
  background: radial-gradient(ellipse, rgba(100,130,130,0.3) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-laertes-alas-drowned .la-ripple-1 { animation: la-ripple 5s ease-out infinite; }
.scn-laertes-alas-drowned .la-ripple-2 { animation: la-ripple 5s ease-out 2.5s infinite; }
@keyframes la-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes la-water { 0% { background-position:0 0; } 50% { background-position:2% 0; } 100% { background-position:0 0; } }
@keyframes la-willow { 0% { transform: rotate(0deg); } 30% { transform: rotate(3deg); } 70% { transform: rotate(-4deg); } 100% { transform: rotate(0deg); } }
@keyframes la-float { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes la-flower { 0% { opacity:0.6; transform: translateY(0); } 100% { opacity:1; transform: translateY(-2px); } }
@keyframes la-ripple { 0% { width:0; opacity:0.5; } 50% { width:80px; opacity:0.2; } 100% { width:140px; opacity:0; } }

.scn-king-follow-gertrude {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 40%, #8a7a5a 0%, transparent 70%);
}
.scn-king-follow-gertrude .kf-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-king-follow-gertrude .kf-window {
  position:absolute; top:10%; left:20%; width:80px; height:120px;
  background: linear-gradient(180deg, #a0a0b0 0%, #707080 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
}
.scn-king-follow-gertrude .kf-light {
  position:absolute; top:10%; left:20%; width:140px; height:180px;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: kf-light 3s ease-in-out infinite alternate;
}
.scn-king-follow-gertrude .kf-throne {
  position:absolute; bottom:20%; left:40%; width:70px; height:90px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 12px 12px 4px 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
}
.scn-king-follow-gertrude .kf-king {
  position:absolute; bottom:15%; left:42%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: kf-walk 4s ease-in-out infinite;
}
.scn-king-follow-gertrude .kf-gertrude {
  position:absolute; bottom:15%; left:60%; width:26px; height:68px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: kf-walk 4s ease-in-out 0.3s infinite;
}
@keyframes kf-light { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes kf-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-second-clown-she-is {
  background:
    linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 40%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a3a 0%, transparent 70%);
}
.scn-second-clown-she-is .sc-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  animation: sc-sky 30s ease-in-out infinite alternate;
}
.scn-second-clown-she-is .sc-ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
}
.scn-second-clown-she-is .sc-mound {
  position:absolute; bottom:20%; left:30%; width:120px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4);
}
.scn-second-clown-she-is .sc-shovel {
  position:absolute; bottom:30%; left:10%; width:8px; height:100px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sc-shovel 3s ease-in-out infinite;
}
.scn-second-clown-she-is .sc-shovel::after {
  content:''; position:absolute; bottom:-10px; left:-12px; width:30px; height:24px;
  background: #6a5a3a;
  border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%;
}
.scn-second-clown-she-is .sc-skull {
  position:absolute; bottom:28%; left:48%; width:20px; height:26px;
  background: radial-gradient(ellipse, #a0a090 0%, #707060 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sc-skull 5s ease-in-out infinite;
}
.scn-second-clown-she-is .sc-cross {
  position:absolute; bottom:25%; left:65%; width:4px; height:40px;
  background: #5a4a3a;
  transform: rotate(10deg);
}
.scn-second-clown-she-is .sc-cross::before {
  content:''; position:absolute; top:4px; left:-10px; width:24px; height:4px;
  background: #5a4a3a;
}
.scn-second-clown-she-is .sc-clown-body {
  position:absolute; bottom:15%; left:20%; width:24px; height:40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: sc-clown 2s ease-in-out infinite;
}
.scn-second-clown-she-is .sc-clown-hat {
  position:absolute; bottom:35%; left:19%; width:30px; height:20px;
  background: linear-gradient(180deg, #806040 0%, #604030 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: sc-hat 3s ease-in-out infinite;
}
@keyframes sc-sky { 0% { opacity:0.8; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes sc-shovel { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-15deg) translateY(-4px); } 70% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sc-skull { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sc-clown { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc-hat { 0% { transform: rotate(0deg); } 30% { transform: rotate(-5deg); } 70% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

.scn-first-clown-se-offendendo {
  background:
    linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 50%, #2a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 80%);
}
.scn-first-clown-se-offendendo .fc-ground {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-first-clown-se-offendendo .fc-spade {
  position:absolute; bottom:20%; left:40%; width:10px; height:80px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fc-spade 4s ease-in-out infinite;
}
.scn-first-clown-se-offendendo .fc-spade::after {
  content:''; position:absolute; bottom:-8px; left:-14px; width:36px; height:28px;
  background: #6a5a3a;
  border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%;
}
.scn-first-clown-se-offendendo .fc-skull {
  position:absolute; bottom:10%; left:60%; width:22px; height:28px;
  background: radial-gradient(ellipse, #a0a090 0%, #707060 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: fc-skull 6s ease-in-out infinite;
}
.scn-first-clown-se-offendendo .fc-bone {
  position:absolute; bottom:15%; left:30%; width:30px; height:8px;
  background: #a0a090;
  border-radius: 50%;
  transform: rotate(30deg);
}
.scn-first-clown-se-offendendo .fc-dirt {
  position:absolute; bottom:25%; left:45%; width:60px; height:40px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  animation: fc-dirt 7s ease-in-out infinite alternate;
}
.scn-first-clown-se-offendendo .fc-hand {
  position:absolute; bottom:12%; left:35%; width:14px; height:20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: fc-hand 3s ease-in-out infinite;
}
.scn-first-clown-se-offendendo .fc-worm {
  position:absolute; bottom:30%; left:55%; width:8px; height:12px;
  background: #806040;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc-worm 2s ease-in-out infinite alternate;
}
@keyframes fc-spade { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-20deg) translateY(-5px); } 70% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes fc-skull { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(8deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fc-dirt { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes fc-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes fc-worm { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-4px) rotate(20deg); } }

.scn-laertes-norman { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%), radial-gradient(ellipse at 20% 60%, #ffeac0 0%, transparent 70%); }
.scn-laertes-norman .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8d5b0 0%, #c9b38a 50%, #a88966 100%); animation: ln-wall 8s ease-in-out infinite alternate; }
.scn-laertes-norman .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #896a4e 0%, #5a4432 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-laertes-norman .portrait { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:80px; height:100px; background: linear-gradient(180deg, #ad8a6e 0%, #7a5e44 100%); border:4px solid #c59a6b; border-radius: 8% 8% 4% 4%; box-shadow: 0 0 30px rgba(0,0,0,.2); animation: ln-portrait 12s ease-in-out infinite; }
.scn-laertes-norman .brooch { position:absolute; top:38%; left:50%; transform:translateX(-50%); width:14px; height:14px; background: radial-gradient(circle, #f0c040 0%, #b88020 60%, #604010 100%); border-radius:50%; box-shadow: 0 0 20px 8px #e0a030, 0 0 40px 15px rgba(224,160,48,.4); animation: ln-brooch 4s ease-in-out infinite alternate; }
.scn-laertes-norman .figure { position:absolute; bottom:15%; left:18%; width:20px; height:38px; background: linear-gradient(180deg, #2a1f18 0%, #0f0a07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ln-walk 6s ease-in-out infinite; }
.scn-laertes-norman .shadow { position:absolute; bottom:10%; left:10%; width:40px; height:8px; background: rgba(0,0,0,.15); border-radius:50%; filter: blur(4px); animation: ln-shadow 6s ease-in-out infinite; }
.scn-laertes-norman .light-ray { position:absolute; top:0; left:40%; width:60px; height:60%; background: linear-gradient(180deg, rgba(255,235,180,.3) 0%, transparent 100%); transform: skewX(-15deg); animation: ln-ray 10s ease-in-out infinite alternate; }
@keyframes ln-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ln-portrait { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } }
@keyframes ln-brooch { 0% { box-shadow: 0 0 15px 5px #e0a030; } 50% { box-shadow: 0 0 35px 15px #ffc860, 0 0 50px 20px rgba(255,200,96,.5); transform: scale(1.05); } 100% { box-shadow: 0 0 18px 6px #e0a030; } }
@keyframes ln-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-2deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes ln-shadow { 0% { width:40px; opacity:.2 } 25% { width:35px; opacity:.15 } 50% { width:40px; opacity:.2 } 75% { width:38px; opacity:.18 } 100% { width:42px; opacity:.22 } }
@keyframes ln-ray { 0% { opacity:.1; transform: skewX(-15deg) translateX(-5px) } 50% { opacity:.25; transform: skewX(-12deg) translateX(5px) } 100% { opacity:.1; transform: skewX(-18deg) translateX(0) } }

.scn-king-confession-of-you { background: linear-gradient(180deg, #d9c8a8 0%, #b89b78 40%, #8a6f52 100%), radial-gradient(ellipse at 50% 60%, #ebd5b0 0%, transparent 70%); }
.scn-king-confession-of-you .altar { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:120px; height:60px; background: linear-gradient(180deg, #9a7e5e 0%, #6a5238 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-king-confession-of-you .candle { position:absolute; bottom:45%; left:50%; transform:translateX(-50%); width:8px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px rgba(0,0,0,.3); }
.scn-king-confession-of-you .flame { position:absolute; bottom:70%; left:50%; margin-left:-4px; width:8px; height:14px; background: radial-gradient(ellipse at 50% 100%, #ffe080 0%, #ffa020 60%, #803000 100%); border-radius:50% 50% 50% 50% / 80% 80% 50% 50%; box-shadow: 0 0 20px 10px #ffc040, 0 0 40px 20px rgba(255,192,64,.5); animation: kcy-flame 0.8s ease-in-out infinite alternate; }
.scn-king-confession-of-you .figure-kneeling { position:absolute; bottom:18%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%; transform-origin: bottom center; animation: kcy-kneel 5s ease-in-out infinite; }
.scn-king-confession-of-you .crown { position:absolute; top:18%; left:50%; transform:translateX(-50%); width:30px; height:16px; background: linear-gradient(135deg, #f0c040 0%, #b08020 50%, #705010 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px #c09030; animation: kcy-crown 9s ease-in-out infinite; }
.scn-king-confession-of-you .scroll { position:absolute; bottom:28%; left:65%; width:16px; height:24px; background: linear-gradient(180deg, #edd4b0 0%, #c8aa80 100%); border-radius:0 0 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.2); animation: kcy-scroll 7s ease-in-out infinite; }
.scn-king-confession-of-you .halo { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.2) 0%, rgba(255,200,100,.05) 60%, transparent 100%); border-radius:50%; filter: blur(8px); animation: kcy-halo 6s ease-in-out infinite alternate; }
@keyframes kcy-flame { 0% { transform: scaleY(0.9) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(1deg); } 100% { transform: scaleY(0.95) rotate(0deg); } }
@keyframes kcy-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes kcy-crown { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-1px); } }
@keyframes kcy-scroll { 0% { transform: rotate(0deg); } 25% { transform: rotate(8deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-8deg); } 100% { transform: rotate(0deg); } }
@keyframes kcy-halo { 0% { opacity:.4; transform: translateX(-50%) scale(0.95); } 50% { opacity:.7; transform: translateX(-50%) scale(1.05); } 100% { opacity:.5; transform: translateX(-50%) scale(1); } }

.scn-king-love-begun-by-time { background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 60%, #120a05 100%), radial-gradient(ellipse at 50% 70%, #8a5e30 0%, transparent 70%); }
.scn-king-love-begun-by-time .table { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:140px; height:10px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 20% 20% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-king-love-begun-by-time .candle-stick { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:12px; height:20px; background: linear-gradient(180deg, #b08050 0%, #804020 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 10px rgba(0,0,0,.4); }
.scn-king-love-begun-by-time .flame-small { position:absolute; bottom:48%; left:50%; margin-left:-5px; width:10px; height:16px; background: radial-gradient(ellipse at 50% 100%, #ffe080 0%, #ff8020 50%, #802000 100%); border-radius:50% 50% 40% 40% / 80% 80% 40% 40%; box-shadow: 0 0 24px 12px #ffa030, 0 0 48px 24px rgba(255,160,48,.6); animation: klt-flicker 0.7s ease-in-out infinite alternate; }
.scn-king-love-begun-by-time .wick { position:absolute; bottom:46%; left:50%; margin-left:-1px; width:2px; height:6px; background: #1a0a00; border-radius: 50% 50% 0 0; animation: klt-wick 2s ease-in-out infinite; }
.scn-king-love-begun-by-time .spark { position:absolute; bottom:52%; left:49%; width:4px; height:4px; background: #ff6020; border-radius:50%; box-shadow: 0 0 8px 4px #ff8020; animation: klt-spark 1.2s ease-out infinite; }
.scn-king-love-begun-by-time .smoke { position:absolute; bottom:60%; left:50%; margin-left:-2px; width:4px; height:12px; background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, transparent 100%); filter: blur(6px); animation: klt-smoke 4s ease-out infinite; }
.scn-king-love-begun-by-time .glow { position:absolute; bottom:30%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,160,48,.15) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: klt-glow 3s ease-in-out infinite alternate; }
.scn-king-love-begun-by-time .shadow-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.4) 100%); pointer-events:none; animation: klt-shadowbg 5s ease-in-out infinite alternate; }
@keyframes klt-flicker { 0% { transform: scaleY(0.9) rotate(-3deg); } 30% { transform: scaleY(1.15) rotate(2deg); } 60% { transform: scaleY(0.85) rotate(-1deg); } 100% { transform: scaleY(1.05) rotate(1deg); } }
@keyframes klt-wick { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes klt-spark { 0% { opacity:1; transform: scale(1) translateY(0); } 100% { opacity:0; transform: scale(0.5) translateY(-10px); } }
@keyframes klt-smoke { 0% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.2; transform: translateY(-12px) scale(1.5); } 100% { opacity:0; transform: translateY(-20px) scale(2); } }
@keyframes klt-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.7; transform: scale(0.98); } }
@keyframes klt-shadowbg { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.45; } }

.scn-king-no-place { background: linear-gradient(180deg, #c8b898 0%, #a88a6a 50%, #7a5e3e 100%), radial-gradient(ellipse at 60% 40%, #dcc4a8 0%, transparent 60%); }
.scn-king-no-place .pavement { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a5e3e 0%, #4a3520 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: knp-pavement 10s ease-in-out infinite alternate; }
.scn-king-no-place .door-arch { position:absolute; top:0; left:50%; transform:translateX(-50%); width:80px; height:100%; background: linear-gradient(180deg, #6a5238 0%, #3a2818 100%); border-radius:0 0 40% 40% / 0 0 100% 100%; box-shadow: inset -10px 0 20px rgba(0,0,0,.3); }
.scn-king-no-place .figure-hamlet { position:absolute; bottom:18%; left:30%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: knp-hamlet 5s ease-in-out infinite; }
.scn-king-no-place .figure-king { position:absolute; bottom:18%; left:70%; width:20px; height:38px; background: linear-gradient(180deg, #2a1f1a 0%, #100a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: knp-king 5s ease-in-out infinite 0.5s; }
.scn-king-no-place .rapier { position:absolute; bottom:35%; width:4px; height:50px; border-radius:0 0 40% 40%; background: linear-gradient(180deg, #c0b0a0 0%, #807060 50%, #403020 100%); transform-origin: bottom center; animation: knp-rapier 3s ease-in-out infinite alternate; }
.scn-king-no-place .left-rapier { left:28%; transform: rotate(-20deg); }
.scn-king-no-place .right-rapier { left:68%; transform: rotate(20deg); animation-delay:1.5s; }
.scn-king-no-place .crown-blur { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:40px; height:24px; background: radial-gradient(ellipse, rgba(200,160,80,.4) 0%, transparent 70%); filter: blur(6px); animation: knp-crownblur 7s ease-in-out infinite alternate; }
.scn-king-no-place .varnish-line { position:absolute; bottom:30%; left:20%; right:20%; height:2px; background: linear-gradient(90deg, transparent, rgba(200,180,120,.3) 50%, transparent); filter: blur(2px); animation: knp-varnish 6s ease-in-out infinite; }
@keyframes knp-pavement { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:.95; transform: scaleY(0.98); } 100% { opacity:.85; transform: scaleY(1.02); } }
@keyframes knp-hamlet { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes knp-king { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-3deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(2px) rotate(-1deg); } }
@keyframes knp-rapier { 0% { transform: rotate(var(--rot, -20deg)) translateX(0); } 50% { transform: rotate(var(--rot, -20deg)) translateX(3px) scaleY(1.02); } 100% { transform: rotate(var(--rot, -20deg)) translateX(0); } }
@keyframes knp-crownblur { 0% { opacity:.3; transform: translateX(-50%) scale(0.95); } 50% { opacity:.6; transform: translateX(-50%) scale(1.1); } 100% { opacity:.4; transform: translateX(-50%) scale(1); } }
@keyframes knp-varnish { 0% { opacity:0; transform: scaleX(0.8); } 50% { opacity:.4; transform: scaleX(1); } 100% { opacity:0; transform: scaleX(0.9); } }

/* one block per scene id. Append to style.css. */
.scn-king-not-break-sleep { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #8a7a6a 60%, #d8c8b8 100%), radial-gradient(ellipse at 70% 20%, #f0e0d0 0%, transparent 60%); }
.scn-king-not-break-sleep .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b8a8 0%, #9a8a7a 60%, #5a4a3a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.3); animation: ksb-wall 12s ease-in-out infinite alternate; }
.scn-king-not-break-sleep .throne { position:absolute; bottom:22%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a3a2a 0%, #3a1a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ksb-throne 9s ease-in-out infinite; }
.scn-king-not-break-sleep .throne-back { position:absolute; bottom:35%; left:50%; width:100px; height:70px; transform:translateX(-50%); background: linear-gradient(135deg, #5a2a1a 0%, #2a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: ksb-back 15s ease-in-out infinite alternate; }
.scn-king-not-break-sleep .king { position:absolute; bottom:22%; left:50%; width:34px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: ksb-king 4s ease-in-out infinite; }
.scn-king-not-break-sleep .crown { position:absolute; bottom:47%; left:50%; width:28px; height:14px; transform:translateX(-50%); background: linear-gradient(135deg, #d4a050 0%, #b08030 50%, #8a6020 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 2px 6px #d4a060; animation: ksb-crown 3s ease-in-out infinite alternate; }
.scn-king-not-break-sleep .scepter { position:absolute; bottom:30%; left:42%; width:4px; height:30px; background: linear-gradient(180deg, #c0a050 0%, #8a6020 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 0 6px #c0a050; animation: ksb-scepter 6s ease-in-out infinite; }
.scn-king-not-break-sleep .shadow { position:absolute; bottom:10%; left:30%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(8px); animation: ksb-shadow 7s ease-in-out infinite alternate; }
@keyframes ksb-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ksb-throne { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(2px) scale(1.01) } }
@keyframes ksb-back { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(1deg) scale(1.02) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes ksb-king { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 30% { transform:translateX(-50%) translateY(-1px) rotate(1deg) } 60% { transform:translateX(-50%) translateY(1px) rotate(-1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes ksb-crown { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) scale(1.03) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes ksb-scepter { 0%,100% { transform:rotate(-15deg) } 50% { transform:rotate(-12deg) translateY(-2px) } }
@keyframes ksb-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-messenger-letters { background: linear-gradient(180deg, #4a3a2a 0%, #7a6a5a 20%, #b8a898 60%, #e0d0c0 100%), radial-gradient(ellipse at 80% 20%, #f0e8d8 0%, transparent 50%); }
.scn-messenger-letters .hall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #8a7a6a 0%, #c8b8a8 20%, #e0d0c0 40%, #c8b8a8 60%, #8a7a6a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.2); animation: ml-hall 15s ease-in-out infinite alternate; }
.scn-messenger-letters .messenger { position:absolute; bottom:25%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ml-messenger 4s ease-in-out infinite; }
.scn-messenger-letters .letter-a { position:absolute; bottom:35%; left:36%; width:20px; height:14px; background: #f0e0c0; border: 1px solid #b08040; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.3); transform: rotate(10deg); animation: ml-letter-a 3s ease-in-out infinite alternate; }
.scn-messenger-letters .letter-b { position:absolute; bottom:32%; left:40%; width:18px; height:12px; background: #e8d8b8; border: 1px solid #a07030; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.3); transform: rotate(-5deg); animation: ml-letter-b 3.5s ease-in-out infinite alternate-reverse; }
.scn-messenger-letters .door { position:absolute; bottom:15%; left:70%; width:60px; height:95px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 12px rgba(0,0,0,.6); transform: scaleX(.7); animation: ml-door 8s ease-in-out infinite; }
.scn-messenger-letters .floor { position:absolute; bottom:0; inset:80% 0 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: ml-floor 12s ease-in-out infinite alternate; }
@keyframes ml-hall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ml-messenger { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 20% { transform:translateX(10px) translateY(-1px) rotate(1deg) } 40% { transform:translateX(20px) translateY(0) rotate(-1deg) } 60% { transform:translateX(30px) translateY(-1px) rotate(1deg) } 80% { transform:translateX(40px) translateY(0) rotate(0deg) } 100% { transform:translateX(50px) translateY(0) rotate(1deg) } }
@keyframes ml-letter-a { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(15deg) translateY(-3px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes ml-letter-b { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-10deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes ml-door { 0%,100% { transform:scaleX(.7) } 50% { transform:scaleX(.72) } }
@keyframes ml-floor { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }

.scn-king-reads-hamlet-letter { background: linear-gradient(180deg, #3a2a1a 0%, #6a5a4a 30%, #a09080 60%, #d8c8b8 100%), radial-gradient(ellipse at 40% 30%, #f0e0d0 0%, transparent 70%); }
.scn-king-reads-hamlet-letter .room { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 50%, #5a4a3a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: krhl-room 16s ease-in-out infinite alternate; }
.scn-king-reads-hamlet-letter .desk { position:absolute; bottom:20%; left:40%; width:80px; height:12px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 8px 12px rgba(0,0,0,.5); transform: perspective(200px) rotateX(10deg); animation: krhl-desk 11s ease-in-out infinite; }
.scn-king-reads-hamlet-letter .king { position:absolute; bottom:20%; left:45%; width:36px; height:52px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.7); transform: rotate(-5deg); animation: krhl-king 5s ease-in-out infinite; }
.scn-king-reads-hamlet-letter .letter { position:absolute; bottom:36%; left:52%; width:22px; height:16px; background: #f0e0c0; border: 1px solid #b08040; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); transform: rotate(15deg); animation: krhl-letter 3s ease-in-out infinite alternate; }
.scn-king-reads-hamlet-letter .candle { position:absolute; bottom:30%; left:35%; width:8px; height:18px; background: linear-gradient(180deg, #f0d090 0%, #e0b060 60%, #c09040 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #f0d090, 0 0 40px 12px rgba(240,208,144,.4); animation: krhl-candle 2s ease-in-out infinite alternate; }
.scn-king-reads-hamlet-letter .shadow { position:absolute; bottom:5%; left:20%; width:140px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(12px); animation: krhl-shadow 8s ease-in-out infinite alternate; }
@keyframes krhl-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes krhl-desk { 0%,100% { transform:perspective(200px) rotateX(10deg) } 50% { transform:perspective(200px) rotateX(8deg) translateY(1px) } }
@keyframes krhl-king { 0% { transform:rotate(-5deg) translateY(0) } 30% { transform:rotate(-3deg) translateY(-1px) } 60% { transform:rotate(-5deg) translateY(1px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes krhl-letter { 0% { transform:rotate(15deg) translateY(0) scale(1) } 50% { transform:rotate(18deg) translateY(-2px) scale(1.02) } 100% { transform:rotate(15deg) translateY(0) scale(1) } }
@keyframes krhl-candle { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.9; transform:scale(.98) } }
@keyframes krhl-shadow { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.25 } }

.scn-king-know-hand { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #8a7a6a 60%, #c8b8a8 100%), radial-gradient(ellipse at 50% 30%, #e8d8c8 0%, transparent 50%); }
.scn-king-know-hand .room { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #a09080 0%, #7a6a5a 50%, #4a3a2a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: kkh-room 14s ease-in-out infinite alternate; }
.scn-king-know-hand .king { position:absolute; bottom:20%; left:48%; width:34px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.7); transform: rotate(2deg); animation: kkh-king 4.5s ease-in-out infinite; }
.scn-king-know-hand .letter { position:absolute; bottom:36%; left:55%; width:24px; height:17px; background: #f0e0c0; border: 1px solid #b08040; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); transform: rotate(20deg); animation: kkh-letter 3.2s ease-in-out infinite alternate; }
.scn-king-know-hand .hand { position:absolute; bottom:30%; left:52%; width:16px; height:24px; background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-10deg); animation: kkh-hand 3s ease-in-out infinite alternate; }
.scn-king-know-hand .candle { position:absolute; bottom:30%; left:35%; width:8px; height:16px; background: linear-gradient(180deg, #f0d090 0%, #e0b060 60%, #c09040 100%); border-radius: 3px; box-shadow: 0 0 18px 5px #f0d090, 0 0 36px 10px rgba(240,208,144,.4); animation: kkh-candle 2.5s ease-in-out infinite alternate; }
.scn-king-know-hand .table { position:absolute; bottom:15%; left:38%; width:90px; height:8px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.5); transform: perspective(150px) rotateX(12deg); animation: kkh-table 10s ease-in-out infinite; }
@keyframes kkh-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes kkh-king { 0% { transform:rotate(2deg) translateY(0) } 30% { transform:rotate(4deg) translateY(-1px) } 60% { transform:rotate(2deg) translateY(1px) } 100% { transform:rotate(2deg) translateY(0) } }
@keyframes kkh-letter { 0% { transform:rotate(20deg) translateY(0) scale(1) } 50% { transform:rotate(24deg) translateY(-2px) scale(1.03) } 100% { transform:rotate(20deg) translateY(0) scale(1) } }
@keyframes kkh-hand { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-7deg) translateY(-2px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes kkh-candle { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.06) } 100% { opacity:.9; transform:scale(.97) } }
@keyframes kkh-table { 0%,100% { transform:perspective(150px) rotateX(12deg) } 50% { transform:perspective(150px) rotateX(10deg) translateY(1px) } }

.scn-king-sent-to-seek { background: linear-gradient(180deg, #c8b68c 0%, #b0a080 40%, #8a7a5a 100%), radial-gradient(ellipse at 60% 20%, #e8dcc0 0%, transparent 60%); }
.scn-king-sent-to-seek .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #b8a888 0%, #a09070 50%, #8a7a5a 100%); }
.scn-king-sent-to-seek .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-king-sent-to-seek .window { position:absolute; top:8%; left:10%; width:120px; height:160px; background: linear-gradient(180deg, #e8e0d0 0%, #c8b890 100%); border:6px solid #6a5a3a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,240,210,.4), 0 0 40px rgba(232,220,200,.2); }
.scn-king-sent-to-seek .light-beam { position:absolute; top:15%; left:10%; width:200px; height:400px; background: linear-gradient(to bottom right, rgba(240,230,200,.15), transparent 70%); transform: skewX(-20deg); transform-origin: top left; animation: kst-beam 8s ease-in-out infinite; }
.scn-king-sent-to-seek .throne { position:absolute; bottom:20%; left:20%; width:100px; height:140px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-king-sent-to-seek .king { position:absolute; bottom:25%; left:22%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kst-king 4s ease-in-out infinite; }
.scn-king-sent-to-seek .attendant { position:absolute; bottom:24%; left:55%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; animation: kst-attendant 6s ease-in-out infinite; }
@keyframes kst-beam { 0% { opacity:.3; transform: skewX(-20deg) translateX(0); } 50% { opacity:.6; transform: skewX(-22deg) translateX(5px); } 100% { opacity:.3; transform: skewX(-20deg) translateX(0); } }
@keyframes kst-king { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kst-attendant { 0% { transform: translateX(0); } 50% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(0); } }

.scn-king-bring-him { background: linear-gradient(180deg, #c0a880 0%, #a08060 50%, #705040 100%), radial-gradient(ellipse at 30% 10%, #e0c8a0 0%, transparent 70%); }
.scn-king-bring-him .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #b09870 0%, #a08860 50%, #907850 100%); }
.scn-king-bring-him .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #705040 0%, #503020 100%); }
.scn-king-bring-him .doorway { position:absolute; top:10%; right:10%; width:100px; height:180px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-king-bring-him .king { position:absolute; bottom:25%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: kbh-king 3s ease-in-out infinite; }
.scn-king-bring-him .guildenstern { position:absolute; bottom:24%; left:45%; width:25px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: kbh-guild 5s ease-in-out infinite; }
.scn-king-bring-him .hamlet { position:absolute; bottom:24%; right:12%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: kbh-hamlet 6s ease-in-out infinite; }
.scn-king-bring-him .light { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 30% 10%, rgba(255,230,180,.2), transparent 60%); animation: kbh-light 4s ease-in-out infinite; }
@keyframes kbh-king { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes kbh-guild { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes kbh-hamlet { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-3deg); } 60% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kbh-light { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }

.scn-hamlet-worms { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 70%); }
.scn-hamlet-worms .table { position:absolute; bottom:15%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.6); }
.scn-hamlet-worms .plate { position:absolute; bottom:35%; left:30%; width:120px; height:80px; background: radial-gradient(ellipse, #d0c0a0 0%, #b0a080 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-hamlet-worms .meat { position:absolute; bottom:38%; left:36%; width:50px; height:30px; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20%; animation: hwo-meat 10s ease-in-out infinite; }
.scn-hamlet-worms .worm-a { position:absolute; bottom:40%; left:34%; width:8px; height:20px; background: linear-gradient(180deg, #b08050 0%, #8a6040 100%); border-radius: 50%; transform-origin: top; animation: hwo-worm 4s ease-in-out infinite; }
.scn-hamlet-worms .worm-b { position:absolute; bottom:42%; left:38%; width:6px; height:16px; background: linear-gradient(180deg, #c09060 0%, #a07040 100%); border-radius: 50%; transform-origin: top; animation: hwo-worm 4s ease-in-out infinite -1s; }
.scn-hamlet-worms .worm-c { position:absolute; bottom:41%; left:30%; width:7px; height:18px; background: linear-gradient(180deg, #b08050 0%, #8a6040 100%); border-radius: 50%; transform-origin: top; animation: hwo-worm 4s ease-in-out infinite -2s; }
.scn-hamlet-worms .worm-d { position:absolute; bottom:43%; left:42%; width:5px; height:14px; background: linear-gradient(180deg, #c09060 0%, #a07040 100%); border-radius: 50%; transform-origin: top; animation: hwo-worm 4s ease-in-out infinite -3s; }
.scn-hamlet-worms .shadow { position:absolute; bottom:30%; left:25%; right:25%; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.3), transparent); animation: hwo-shadow 8s ease-in-out infinite; }
@keyframes hwo-meat { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hwo-worm { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.3); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hwo-shadow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-king-alas { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 60%); }
.scn-king-alas .table { position:absolute; bottom:10%; left:5%; right:5%; height:50%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.scn-king-alas .fish-head { position:absolute; bottom:45%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-20deg); animation: kal-fish 5s ease-in-out infinite; }
.scn-king-alas .fish-spine { position:absolute; bottom:46%; left:25%; width:80px; height:8px; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%); border-radius: 4px; transform: rotate(-20deg); transform-origin: left; }
.scn-king-alas .fish-tail { position:absolute; bottom:46%; left:65%; width:25px; height:15px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); clip-path: polygon(0 0, 100% 50%, 0 100%); animation: kal-fish 5s ease-in-out infinite .3s; }
.scn-king-alas .crown { position:absolute; bottom:55%; left:50%; width:50px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); clip-path: polygon(0 0, 20% 100%, 50% 60%, 80% 100%, 100% 0, 75% 30%, 50% 10%, 25% 30%); animation: kal-crown 3s ease-in-out infinite; }
.scn-king-alas .worm { position:absolute; bottom:40%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #b08050 0%, #8a6040 100%); border-radius: 50%; transform-origin: top; animation: kal-worm 4s ease-in-out infinite; }
.scn-king-alas .shadow { position:absolute; bottom:20%; left:10%; right:10%; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.3), transparent); animation: kal-shadow 6s ease-in-out infinite; }
@keyframes kal-fish { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-22deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes kal-crown { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(-2deg); } }
@keyframes kal-worm { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.3); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes kal-shadow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-claudius-soliloquy-prayer {
  background:
    linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #0d0a10 100%),
    radial-gradient(ellipse at 50% 75%, #3a2a40 0%, transparent 70%);
}
.scn-claudius-soliloquy-prayer .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1220 0%, #0d0a10 100%);
  animation: csp-wall 20s ease-in-out infinite alternate;
}
.scn-claudius-soliloquy-prayer .window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 120px; transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a6a 0%, #2a1a4a 50%, #6a4a8a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,60,140,0.4), 0 0 30px rgba(100,60,140,0.2);
  animation: csp-window 8s ease-in-out infinite alternate;
}
.scn-claudius-soliloquy-prayer .altar {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-claudius-soliloquy-prayer .candle {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 2px; box-shadow: 0 0 16px 6px rgba(255,200,100,0.6);
  animation: csp-candle 3s ease-in-out infinite alternate;
}
.scn-claudius-soliloquy-prayer .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: csp-figure 6s ease-in-out infinite;
}
.scn-claudius-soliloquy-prayer .shadow {
  position: absolute; bottom: 16%; left: 46%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: csp-shadow 6s ease-in-out infinite;
}
.scn-claudius-soliloquy-prayer .light-beam {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 200px; transform: translateX(-50%) rotate(10deg);
  background: linear-gradient(180deg, rgba(100,60,140,0.15) 0%, transparent 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: csp-beam 12s ease-in-out infinite alternate;
}
@keyframes csp-wall {
  0% { opacity: 0.8 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}
@keyframes csp-window {
  0% { box-shadow: inset 0 0 20px rgba(100,60,140,0.3), 0 0 20px rgba(100,60,140,0.1); }
  50% { box-shadow: inset 0 0 30px rgba(120,80,160,0.5), 0 0 40px rgba(120,80,160,0.3); }
  100% { box-shadow: inset 0 0 20px rgba(100,60,140,0.3), 0 0 20px rgba(100,60,140,0.1); }
}
@keyframes csp-candle {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 16px 6px rgba(255,200,100,0.6); }
  50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 24px 10px rgba(255,200,100,0.8); }
  100% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 16px 6px rgba(255,200,100,0.6); }
}
@keyframes csp-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes csp-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(0.9); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes csp-beam {
  0% { transform: translateX(-50%) rotate(8deg); opacity: 0.3; }
  50% { transform: translateX(-50%) rotate(12deg); opacity: 0.5; }
  100% { transform: translateX(-50%) rotate(8deg); opacity: 0.3; }
}

.scn-closet-scene-polonium-hides {
  background:
    linear-gradient(180deg, #1e1820 0%, #2a2228 40%, #12101a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a30 0%, transparent 70%);
}
.scn-closet-scene-polonium-hides .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1e1820 0%, #2a2228 50%, #1e1820 100%);
  animation: csh-wall 25s ease-in-out infinite alternate;
}
.scn-closet-scene-polonium-hides .arras {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 90%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 0 15px rgba(0,0,0,0.5);
  animation: csh-arras 15s ease-in-out infinite alternate;
}
.scn-closet-scene-polonium-hides .figure {
  position: absolute; bottom: 20%; right: 14%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csh-figure 4s ease-in-out infinite;
}
.scn-closet-scene-polonium-hides .candle {
  position: absolute; bottom: 30%; left: 20%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5);
  animation: csh-candle 3s ease-in-out infinite alternate;
}
.scn-closet-scene-polonium-hides .shadow {
  position: absolute; bottom: 18%; right: 10%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: csh-shadow 4s ease-in-out infinite;
}
.scn-closet-scene-polonium-hides .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2018 0%, #1a100a 100%);
}
@keyframes csh-wall {
  0% { opacity: 0.75 }
  50% { opacity: 1 }
  100% { opacity: 0.8 }
}
@keyframes csh-arras {
  0% { transform: translateX(0) }
  50% { transform: translateX(4px) }
  100% { transform: translateX(0) }
}
@keyframes csh-figure {
  0% { transform: rotate(0deg) scaleY(1) }
  25% { transform: rotate(5deg) scaleY(0.95) }
  50% { transform: rotate(0deg) scaleY(1) }
  75% { transform: rotate(-5deg) scaleY(0.95) }
  100% { transform: rotate(0deg) scaleY(1) }
}
@keyframes csh-candle {
  0% { transform: scaleY(1); opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); }
  50% { transform: scaleY(1.08); opacity: 1; box-shadow: 0 0 18px 8px rgba(255,200,100,0.7); }
  100% { transform: scaleY(1); opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); }
}
@keyframes csh-shadow {
  0% { transform: scaleX(1); opacity: 0.4 }
  50% { transform: scaleX(0.85); opacity: 0.2 }
  100% { transform: scaleX(1); opacity: 0.4 }
}

.scn-closet-scene-polonium-killed {
  background:
    linear-gradient(180deg, #140e14 0%, #1e161e 50%, #0a080a 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e2a 0%, transparent 70%);
}
.scn-closet-scene-polonium-killed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1e1410 0%, #0e0806 100%);
}
.scn-closet-scene-polonium-killed .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #140e14 0%, #1e161e 100%);
  animation: cspk-wall 20s ease-in-out infinite alternate;
}
.scn-closet-scene-polonium-killed .window {
  position: absolute; top: 15%; left: 60%; width: 60px; height: 90px;
  background: linear-gradient(135deg, #3a2a4a 0%, #1a0e2a 50%, #5a3a6a 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(80,40,120,0.3);
  animation: cspk-window 10s ease-in-out infinite alternate;
}
.scn-closet-scene-polonium-killed .figure-standing {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cspk-stand 4s ease-in-out infinite;
}
.scn-closet-scene-polonium-killed .figure-falling {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cspk-fall 2s ease-in-out infinite;
}
.scn-closet-scene-polonium-killed .blood {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%);
  animation: cspk-blood 4s ease-in-out infinite;
}
.scn-closet-scene-polonium-killed .sword {
  position: absolute; bottom: 25%; left: 38%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #808080 0%, #404040 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: cspk-sword 4s ease-in-out infinite;
}
@keyframes cspk-wall {
  0% { opacity: 0.8 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}
@keyframes cspk-window {
  0% { box-shadow: 0 0 20px rgba(80,40,120,0.2); }
  50% { box-shadow: 0 0 30px rgba(100,50,140,0.4); }
  100% { box-shadow: 0 0 20px rgba(80,40,120,0.2); }
}
@keyframes cspk-stand {
  0% { transform: rotate(0deg) }
  25% { transform: rotate(3deg) }
  50% { transform: rotate(0deg) }
  75% { transform: rotate(-3deg) }
  100% { transform: rotate(0deg) }
}
@keyframes cspk-fall {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(10px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cspk-blood {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes cspk-sword {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(15deg); }
}

.scn-closet-accusation {
  background:
    linear-gradient(180deg, #1a1620 0%, #26202e 40%, #0e0c12 100%),
    radial-gradient(ellipse at 50% 75%, #3a2a40 0%, transparent 70%);
}
.scn-closet-accusation .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1620 0%, #26202e 100%);
  animation: csa-wall 20s ease-in-out infinite alternate;
}
.scn-closet-accusation .mirror {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(100,80,140,0.2) 0%, rgba(60,40,80,0.3) 100%);
  border: 2px solid #4a3a5a; border-radius: 4px; box-shadow: 0 0 20px rgba(80,40,120,0.2);
  animation: csa-mirror 12s ease-in-out infinite alternate;
}
.scn-closet-accusation .figure-accuser {
  position: absolute; bottom: 22%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csa-accuser 3s ease-in-out infinite;
}
.scn-closet-accusation .figure-sitting {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csa-sitting 4s ease-in-out infinite;
}
.scn-closet-accusation .candle {
  position: absolute; bottom: 30%; left: 25%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5);
  animation: csa-candle 3s ease-in-out infinite alternate;
}
.scn-closet-accusation .shadow {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: csa-shadow 4s ease-in-out infinite;
}
.scn-closet-accusation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2018 0%, #1a100a 100%);
}
@keyframes csa-wall {
  0% { opacity: 0.8 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}
@keyframes csa-mirror {
  0% { opacity: 0.3; box-shadow: 0 0 20px rgba(80,40,120,0.1); }
  50% { opacity: 0.5; box-shadow: 0 0 30px rgba(100,60,140,0.3); }
  100% { opacity: 0.3; box-shadow: 0 0 20px rgba(80,40,120,0.1); }
}
@keyframes csa-accuser {
  0% { transform: rotate(-2deg) }
  25% { transform: rotate(5deg) }
  50% { transform: rotate(-2deg) }
  75% { transform: rotate(3deg) }
  100% { transform: rotate(-2deg) }
}
@keyframes csa-sitting {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes csa-candle {
  0% { transform: scaleY(1); opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); }
  50% { transform: scaleY(1.08); opacity: 1; box-shadow: 0 0 18px 8px rgba(255,200,100,0.7); }
  100% { transform: scaleY(1); opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); }
}
@keyframes csa-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.9); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-rosencrantz-guildenstern-respond {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #c4a070 100%), radial-gradient(ellipse at 50% 80%, #ffdd99 0%, transparent 70%);
}
.scn-rosencrantz-guildenstern-respond .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b89a70 0%, #8a6e50 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.3);
}
.scn-rosencrantz-guildenstern-respond .throne-back {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset -4px 4px 8px rgba(0,0,0,0.3);
}
.scn-rosencrantz-guildenstern-respond .throne-seat {
  position: absolute; bottom: 28%; left: 50%; width: 70px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c09060 0%, #9a7040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-rosencrantz-guildenstern-respond .king-silhouette {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-rosencrantz-guildenstern-respond .courtier-left {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-bow-left 6s ease-in-out infinite;
}
.scn-rosencrantz-guildenstern-respond .courtier-right {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-bow-right 6s ease-in-out infinite;
}
.scn-rosencrantz-guildenstern-respond .glow-center {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffdd99 0%, #d4a060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffcc88, 0 0 80px 40px rgba(255,204,136,0.4);
  animation: rg-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-rosencrantz-guildenstern-respond .light-ray {
  position: absolute; top: 10%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: rg-ray-drift 12s ease-in-out infinite alternate;
}
.scn-rosencrantz-guildenstern-respond .ray-1 { left: 5%; transform: rotate(-15deg); animation-delay: -3s; }
.scn-rosencrantz-guildenstern-respond .ray-2 { right: 5%; transform: rotate(15deg); animation-delay: 0s; }

@keyframes rg-bow-left {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg) scaleY(0.95); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes rg-bow-right {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg) scaleY(0.95); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes rg-glow-pulse {
  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(1); }
}
@keyframes rg-ray-drift {
  0% { opacity: 0.4; transform: rotate(-15deg) translateX(-5%); }
  50% { opacity: 0.8; transform: rotate(-10deg) translateX(5%); }
  100% { opacity: 0.5; transform: rotate(-20deg) translateX(0); }
}

/* --- polonius-returns-with-ambassadors --- */
.scn-polonius-returns-with-ambassadors {
  background: linear-gradient(180deg, #f0e6d0 0%, #d9c9b0 50%, #bfaa90 100%), radial-gradient(ellipse at 40% 70%, #fff4e0 0%, transparent 60%);
}
.scn-polonius-returns-with-ambassadors .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #e0d4c0 0%, #f0e6d0 50%, #d0c0a8 100%);
}
.scn-polonius-returns-with-ambassadors .doorway-arch {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 150px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-polonius-returns-with-ambassadors .doorframe {
  position: absolute; bottom: 25%; left: 50%; width: 110px; height: 160px; transform: translateX(-50%);
  background: transparent;
  border: 6px solid #8a7a62;
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.scn-polonius-returns-with-ambassadors .polonius-figure {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-enter 8s ease-in-out infinite;
}
.scn-polonius-returns-with-ambassadors .ambassador-1 {
  position: absolute; bottom: 18%; left: 52%; width: 24px; height: 75px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pr-ambassador 8s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-polonius-returns-with-ambassadors .ambassador-2 {
  position: absolute; bottom: 18%; left: 60%; width: 24px; height: 72px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pr-ambassador 8s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-polonius-returns-with-ambassadors .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #b8a888 0px, #b8a888 20px, #a89878 20px, #a89878 40px);
  opacity: 0.6;
  transform: perspective(200px) rotateX(60deg);
  transform-origin: bottom center;
}
.scn-polonius-returns-with-ambassadors .window-light {
  position: absolute; top: 12%; right: 12%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #ffe8c0 0%, #e0c090 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #ffe8c0;
  animation: pr-window-glow 6s ease-in-out infinite alternate;
}

@keyframes pr-enter {
  0% { transform: translateX(-20px) scale(0.9); opacity: 0; }
  25% { transform: translateX(0) scale(1); opacity: 1; }
  50% { transform: translateX(5px) rotate(2deg); }
  75% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(-20px) scale(0.9); opacity: 0; }
}
@keyframes pr-ambassador {
  0% { transform: translateX(-15px) scale(0.95); opacity: 0; }
  30% { transform: translateX(0) scale(1); opacity: 1; }
  70% { transform: translateX(0) scale(1); opacity: 1; }
  100% { transform: translateX(15px) scale(0.95); opacity: 0; }
}
@keyframes pr-window-glow {
  0% { opacity: 0.6; box-shadow: 0 0 20px 5px #ffe8c0; }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffe8c0; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px #ffe8c0; }
}

/* --- ambassador-report-norway --- */
.scn-ambassador-report-norway {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 50%, #b8a890 100%), radial-gradient(ellipse at 30% 70%, #fff0d0 0%, transparent 60%);
}
.scn-ambassador-report-norway .table-top {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-ambassador-report-norway .table-legs {
  position: absolute; bottom: 18%; left: 30%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%);
  border-radius: 10%;
  box-shadow: 8px 0 0 0 #5a4a32, 16px 0 0 0 #4a3a2a;
}
.scn-ambassador-report-norway .scroll-paper {
  position: absolute; bottom: 36%; left: 38%; width: 24%; height: 4%;
  background: linear-gradient(90deg, #f5e6d0 0%, #e8d5b8 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ar-scroll-unfold 12s ease-in-out infinite alternate;
}
.scn-ambassador-report-norway .ambassador-standing-1 {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 80px;
  background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-stand 8s ease-in-out infinite;
}
.scn-ambassador-report-norway .ambassador-standing-2 {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 78px;
  background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ar-stand 8s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-ambassador-report-norway .king-figure {
  position: absolute; bottom: 22%; right: 20%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-king-listen 10s ease-in-out infinite;
}
.scn-ambassador-report-norway .chandelier-glow {
  position: absolute; top: 8%; left: 50%; width: 80px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffe0a0 0%, #d4b060 50%, transparent 100%);
  filter: blur(10px);
  animation: ar-chandelier 7s ease-in-out infinite alternate;
}
.scn-ambassador-report-norway .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,240,200,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: ar-mote-drift 20s linear infinite;
}
.scn-ambassador-report-norway .motes-1 { top: 20%; left: 40%; animation-delay: -3s; }
.scn-ambassador-report-norway .motes-2 { top: 30%; left: 60%; animation-delay: -10s; }

@keyframes ar-scroll-unfold {
  0% { transform: scaleX(0.3); opacity: 0.5; }
  50% { transform: scaleX(1); opacity: 1; }
  100% { transform: scaleX(0.3); opacity: 0.5; }
}
@keyframes ar-stand {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0); }
  75% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0); }
}
@keyframes ar-king-listen {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(-3deg) translateY(-1px); }
  60% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ar-chandelier {
  0% { opacity: 0.6; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
}
@keyframes ar-mote-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.6; }
  100% { transform: translate(30px, -20px) scale(0.5); opacity: 0; }
}

/* --- polonius-claims-discovery --- */
.scn-polonius-claims-discovery {
  background: linear-gradient(180deg, #f0d8b0 0%, #e0c090 50%, #d0a060 100%), radial-gradient(ellipse at 50% 90%, #ffe080 0%, transparent 70%);
}
.scn-polonius-claims-discovery .stage-backdrop {
  position: absolute; inset: 0 0 20% 0;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #e0b060 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.2);
}
.scn-polonius-claims-discovery .polonius-body {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: pc-body-bounce 3s ease-in-out infinite;
}
.scn-polonius-claims-discovery .polonius-arm-left {
  position: absolute; bottom: 40%; left: 42%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: pc-arm-left 3s ease-in-out infinite;
}
.scn-polonius-claims-discovery .polonius-arm-right {
  position: absolute; bottom: 40%; right: 42%; width: 8px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: pc-arm-right 3s ease-in-out infinite;
}
.scn-polonius-claims-discovery .polonius-head {
  position: absolute; bottom: 55%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pc-head-tilt 3s ease-in-out infinite;
}
.scn-polonius-claims-discovery .exclamation-mark {
  position: absolute; top: 15%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #ffcc00 0%, #e6b800 100%);
  border-radius: 30%;
  box-shadow: 0 0 10px 4px #ffcc00;
  animation: pc-exclaim 2s ease-in-out infinite alternate;
}
.scn-polonius-claims-discovery .comic-stars {
  position: absolute; width: 10px; height: 10px;
  background: #ffd700;
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  filter: drop-shadow(0 0 4px #ffaa00);
  animation: pc-star-pop 1.5s ease-in-out infinite;
}
.scn-polonius-claims-discovery .stars-1 { top: 10%; left: 20%; animation-delay: -0.2s; }
.scn-polonius-claims-discovery .stars-2 { top: 5%; right: 25%; animation-delay: -0.8s; }

@keyframes pc-body-bounce {
  0% { transform: translateX(-50%) translateY(0); }
  30% { transform: translateX(-50%) translateY(-8px); }
  50% { transform: translateX(-50%) translateY(0); }
  80% { transform: translateX(-50%) translateY(-5px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pc-arm-left {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(-30deg) scaleY(1.1); }
  60% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pc-arm-right {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(30deg) scaleY(1.1); }
  60% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pc-head-tilt {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(15deg); }
  60% { transform: translateX(-50%) rotate(-10deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes pc-exclaim {
  0% { transform: scaleY(0.8); opacity: 0.7; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.8); opacity: 0.7; }
}
@keyframes pc-star-pop {
  0% { transform: scale(0) rotate(0deg); opacity: 0; }
  50% { transform: scale(1.3) rotate(180deg); opacity: 1; }
  100% { transform: scale(0) rotate(360deg); opacity: 0; }
}

/* one block per scene id. Append to style.css. */
/* Scene 1: closet-further-accusation */
.scn-closet-further-accusation {
  background: linear-gradient(180deg, #1a1218 0%, #2c1e24 40%, #1a0e12 100%),
              radial-gradient(ellipse at 30% 50%, #3a242e 0%, transparent 70%);
}
.scn-closet-further-accusation .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,18,22,.6) 0%, transparent 100%); }
.scn-closet-further-accusation .bg-mid { position:absolute; inset:20% 10% 10% 15%; background: linear-gradient(180deg, #3a2a30 0%, #1e1218 100%); border-radius: 10% 20% 30% 10%; }
.scn-closet-further-accusation .window { position:absolute; top:12%; right:15%; width:70px; height:90px; background: linear-gradient(135deg, #4a3a40 0%, #2a1e24 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 30px rgba(200,150,100,.15); animation: cl1-window 10s ease-in-out infinite alternate; }
.scn-closet-further-accusation .bed { position:absolute; bottom:5%; left:10%; right:20%; height:35%; background: linear-gradient(180deg, #5a3a34 0%, #3a1e18 50%, #2a1210 100%); border-radius: 30% 20% 10% 10% / 40% 30% 20% 20%; box-shadow: 0 -10px 30px rgba(0,0,0,.5); animation: cl1-bed 8s ease-in-out infinite; }
.scn-closet-further-accusation .figure-hamlet { position:absolute; bottom:12%; left:30%; width:35px; height:80px; background: linear-gradient(180deg, #1a1218 0%, #0e080a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl1-hamlet 4s ease-in-out infinite; }
.scn-closet-further-accusation .figure-gertrude { position:absolute; bottom:10%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1e24 0%, #1a1218 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; animation: cl1-gertrude 6s ease-in-out infinite; }
.scn-closet-further-accusation .shard { position:absolute; top:30%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); transform-origin: top center; border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: cl1-shard 2s ease-in-out infinite; }
.scn-closet-further-accusation .candle { position:absolute; bottom:45%; left:55%; width:8px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 0 20px 6px rgba(200,85,61,.5); animation: cl1-candle 3s ease-in-out infinite alternate; }
@keyframes cl1-window { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:.8; transform: scaleY(1.02); } 100% { opacity:.7; transform: scaleY(1); } }
@keyframes cl1-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cl1-hamlet { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(15px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cl1-gertrude { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cl1-shard { 0% { transform: rotate(-15deg) scaleY(1); opacity:.9; } 50% { transform: rotate(5deg) scaleY(1.1); opacity:1; } 100% { transform: rotate(-10deg) scaleY(.95); opacity:.8; } }
@keyframes cl1-candle { 0% { box-shadow: 0 0 15px 4px rgba(200,85,61,.4); transform: scaleY(1); } 50% { box-shadow: 0 0 25px 8px rgba(200,85,61,.6); transform: scaleY(1.05); } 100% { box-shadow: 0 0 18px 5px rgba(200,85,61,.45); transform: scaleY(1); } }

/* Scene 2: closet-villain */
.scn-closet-villain {
  background: linear-gradient(180deg, #1a1018 0%, #2c2028 40%, #0e080c 100%),
              radial-gradient(ellipse at 50% 60%, #3a2630 0%, transparent 70%);
}
.scn-closet-villain .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,10,16,.7) 0%, transparent 100%); }
.scn-closet-villain .curtains { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2e 0%, #1e1418 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: cl2-curtains 15s ease-in-out infinite; }
.scn-closet-villain .figure-ghost { position:absolute; bottom:25%; left:40%; width:40px; height:90px; background: linear-gradient(180deg, rgba(180,160,200,.45) 0%, rgba(140,120,160,.2) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(3px); animation: cl2-ghost 6s ease-in-out infinite; }
.scn-closet-villain .crown { position:absolute; top:22%; left:44%; width:30px; height:18px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(0% 0%, 20% 100%, 40% 0%, 60% 100%, 80% 0%, 100% 100%); animation: cl2-crown 4s ease-in-out infinite; }
.scn-closet-villain .shreds { position:absolute; top:35%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); clip-path: polygon(0% 0%, 100% 10%, 80% 50%, 100% 90%, 0% 100%); animation: cl2-shreds 3s ease-in-out infinite; }
.scn-closet-villain .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1218 0%, #0e080a 100%); }
.scn-closet-villain .spotlight { position:absolute; top:0; left:35%; width:30%; height:80%; background: radial-gradient(ellipse at 50% 0%, rgba(220,200,180,.15) 0%, transparent 70%); animation: cl2-spotlight 8s ease-in-out infinite alternate; }
@keyframes cl2-curtains { 0% { opacity:.7; filter: brightness(1); } 50% { opacity:.9; filter: brightness(1.2); } 100% { opacity:.75; filter: brightness(1); } }
@keyframes cl2-ghost { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-10px) scale(1.05); opacity:.8; } 100% { transform: translateY(0) scale(1); opacity:.6; } }
@keyframes cl2-crown { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes cl2-shreds { 0% { transform: rotate(0) scale(1); opacity:.7; } 33% { transform: rotate(15deg) scale(1.2); opacity:.9; } 66% { transform: rotate(-10deg) scale(.9); opacity:.6; } 100% { transform: rotate(5deg) scale(1); opacity:.7; } }
@keyframes cl2-spotlight { 0% { transform: scaleX(.9); opacity:.4; } 50% { transform: scaleX(1.2); opacity:.7; } 100% { transform: scaleX(.95); opacity:.5; } }

/* Scene 3: ghost-mother */
.scn-ghost-mother {
  background: linear-gradient(180deg, #1a161c 0%, #2c2430 40%, #0e0a10 100%),
              radial-gradient(ellipse at 60% 40%, #4a3a4e 0%, transparent 70%);
}
.scn-ghost-mother .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,14,22,.6) 0%, transparent 100%); }
.scn-ghost-mother .chair { position:absolute; bottom:10%; left:30%; width:60px; height:50px; background: linear-gradient(180deg, #3a2a30 0%, #1e1418 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; animation: gm-chair 12s ease-in-out infinite; }
.scn-ghost-mother .figure-gertrude { position:absolute; bottom:20%; left:35%; width:28px; height:60px; background: linear-gradient(180deg, #2a2026 0%, #1a1218 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gm-gertrude 5s ease-in-out infinite; }
.scn-ghost-mother .ghost { position:absolute; bottom:25%; right:20%; width:35px; height:80px; background: linear-gradient(180deg, rgba(180,160,200,.3) 0%, rgba(140,120,160,.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: gm-ghost 7s ease-in-out infinite; }
.scn-ghost-mother .hand { position:absolute; bottom:28%; left:25%; width:15px; height:25px; background: linear-gradient(180deg, #2a2026 0%, #1a1218 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: gm-hand 3s ease-in-out infinite; }
.scn-ghost-mother .hair { position:absolute; top:15%; left:35%; width:20px; height:10px; background: linear-gradient(180deg, #4a3a40 0%, #2a1e24 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: gm-hair 4s ease-in-out infinite; }
@keyframes gm-chair { 0% { transform: rotate(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0); } }
@keyframes gm-gertrude { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(-5deg); } 60% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gm-ghost { 0% { transform: translateX(0) scale(1); opacity:.4; } 50% { transform: translateX(-15px) scale(1.1); opacity:.6; } 100% { transform: translateX(0) scale(1); opacity:.4; } }
@keyframes gm-hand { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.2); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes gm-hair { 0% { transform: scaleY(1); opacity:.7; } 50% { transform: scaleY(1.5); opacity:1; } 100% { transform: scaleY(1); opacity:.7; } }

/* Scene 4: ghost-question */
.scn-ghost-question {
  background: linear-gradient(180deg, #1a141c 0%, #2c2430 40%, #0e0a10 100%),
              radial-gradient(ellipse at 40% 50%, #3a2e3e 0%, transparent 70%);
}
.scn-ghost-question .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,14,22,.5) 0%, transparent 100%); }
.scn-ghost-question .figure-gertrude { position:absolute; bottom:15%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a2026 0%, #1a1218 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gq-gertrude 6s ease-in-out infinite; }
.scn-ghost-question .shadow { position:absolute; top:20%; left:50%; width:50px; height:80px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 60%); filter: blur(8px); animation: gq-shadow 10s ease-in-out infinite; }
.scn-ghost-question .candle { position:absolute; bottom:40%; left:25%; width:6px; height:18px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 0 15px 4px rgba(200,85,61,.4); animation: gq-candle 3s ease-in-out infinite alternate; }
.scn-ghost-question .mirror { position:absolute; top:10%; right:20%; width:40px; height:60px; background: linear-gradient(135deg, rgba(180,160,200,.2) 0%, rgba(140,120,160,.1) 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 0 20px rgba(180,160,200,.1); animation: gq-mirror 12s ease-in-out infinite; }
.scn-ghost-question .air { position:absolute; top:30%; left:30%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(200,180,220,.05) 0%, transparent 60%); filter: blur(10px); animation: gq-air 8s linear infinite; }
@keyframes gq-gertrude { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(4deg); } 75% { transform: translateY(-8px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gq-shadow { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.2); opacity:.7; } 100% { transform: scale(1); opacity:.5; } }
@keyframes gq-candle { 0% { box-shadow: 0 0 12px 3px rgba(200,85,61,.3); transform: scaleY(1); } 50% { box-shadow: 0 0 20px 6px rgba(200,85,61,.5); transform: scaleY(1.1); } 100% { box-shadow: 0 0 14px 4px rgba(200,85,61,.35); transform: scaleY(1); } }
@keyframes gq-mirror { 0% { opacity:.5; transform: rotate(0); } 50% { opacity:.8; transform: rotate(5deg); } 100% { opacity:.6; transform: rotate(-2deg); } }
@keyframes gq-air { 0% { transform: translateX(0) scale(1); opacity:0; } 50% { transform: translateX(20px) scale(1.5); opacity:.4; } 100% { transform: translateX(40px) scale(1); opacity:0; } }

.scn-laertes-confession {
  background: linear-gradient(180deg, #b89a7a 0%, #8a6a4a 40%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #d0b090 0%, transparent 60%);
}
.scn-laertes-confession .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c8a878 0%, #8a6a4a 50%, #5a3a2a 100%);
  animation: lc-wall 12s ease-in-out infinite alternate;
}
.scn-laertes-confession .floor {
  position: absolute; bottom: 0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 60%, #7a5a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-laertes-confession .door {
  position: absolute; bottom: 20%; left: 10%; width: 16%; height: 60%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5), 0 0 12px rgba(0,0,0,.4);
  animation: lc-door 6s ease-in-out infinite;
}
.scn-laertes-confession .window-glow {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 35%;
  background: radial-gradient(ellipse, #ffe8b0 0%, transparent 80%);
  opacity: 0.3;
  animation: lc-window-glow 4s ease-in-out infinite alternate;
}
.scn-laertes-confession .figure-laertes {
  position: absolute; bottom: 25%; left: 35%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-laertes 2s ease-in-out infinite;
}
.scn-laertes-confession .figure-hamlet {
  position: absolute; bottom: 20%; right: 25%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-hamlet 3s ease-in-out infinite;
  z-index: 1;
}
.scn-laertes-confession .sword {
  position: absolute; bottom: 35%; left: 38%; width: 3px; height: 30%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 6px rgba(255,255,255,.3);
  animation: lc-sword 1.5s ease-in-out infinite alternate;
}
.scn-laertes-confession .cup {
  position: absolute; bottom: 22%; right: 35%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #8a6a30 50%, #5a3a10 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: lc-cup 2s ease-in-out infinite;
}
@keyframes lc-wall { 0% { opacity:0.9; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:0.85; filter:brightness(0.9); } }
@keyframes lc-door { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(2px); } }
@keyframes lc-window-glow { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes lc-laertes { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(2px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-1px) translateY(1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lc-hamlet { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } }
@keyframes lc-sword { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.02); } 100% { transform: rotate(28deg) scaleY(0.98); } }
@keyframes lc-cup { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } }

.scn-hamlet-kills-king {
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 20%, #ffd080 0%, transparent 70%);
}
.scn-hamlet-kills-king .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(135deg, #a04020 0%, #6a2010 100%);
  border-radius: 0 40% 40% 0;
  opacity: 0.9;
  animation: hkk-curtain 8s ease-in-out infinite alternate;
}
.scn-hamlet-kills-king .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(225deg, #a04020 0%, #6a2010 100%);
  border-radius: 40% 0 0 40%;
  opacity: 0.85;
  animation: hkk-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-kills-king .throne {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.6);
  transform: perspective(800px) rotateX(10deg);
}
.scn-hamlet-kills-king .king-falling {
  position: absolute; bottom: 22%; left: 40%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hkk-fall 4s ease-in-out infinite;
  z-index: 2;
}
.scn-hamlet-kills-king .hamlet-sword {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 45%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 80%, #404040 100%);
  transform: rotate(70deg);
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(255,200,100,.5);
  animation: hkk-sword 0.5s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-hamlet-kills-king .blood-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0a 60%, transparent 80%);
  border-radius: 50%;
  opacity: 0.7;
  animation: hkk-blood 6s ease-in-out infinite;
}
.scn-hamlet-kills-king .chandelier {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(ellipse, #c8a860 0%, #806030 70%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px rgba(200,160,80,.4);
  animation: hkk-chandelier 3s ease-in-out infinite alternate;
}
@keyframes hkk-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes hkk-fall { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(-5deg); } }
@keyframes hkk-sword { 0% { transform: rotate(70deg) scaleY(1); } 100% { transform: rotate(72deg) scaleY(1.02); } }
@keyframes hkk-blood { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.05); } }
@keyframes hkk-chandelier { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-hamlet-dying-speech {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #c8a860 0%, transparent 50%);
}
.scn-hamlet-dying-speech .floor-darker {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0000 0%, #1a0a00 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
}
.scn-hamlet-dying-speech .wall-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  animation: hds-wall 14s ease-in-out infinite alternate;
}
.scn-hamlet-dying-speech .bed {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.7);
}
.scn-hamlet-dying-speech .hamlet-body {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hds-body 5s ease-in-out infinite;
  z-index: 2;
}
.scn-hamlet-dying-speech .horatio-kneeling {
  position: absolute; bottom: 10%; right: 20%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hds-horatio 4s ease-in-out infinite;
  z-index: 3;
}
.scn-hamlet-dying-speech .cup-spilled {
  position: absolute; bottom: 8%; left: 45%; width: 8%; height: 8%;
  background: radial-gradient(ellipse, #c8a060 0%, #8a6a30 50%, #5a3a10 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(45deg);
  box-shadow: 0 0 10px rgba(0,0,0,.6);
  animation: hds-cup 2s ease-in-out infinite;
}
.scn-hamlet-dying-speech .candle {
  position: absolute; top: 15%; left: 50%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 80%, #806030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px #ffd070, 0 0 40px rgba(255,208,112,.3);
  animation: hds-candle 3s ease-in-out infinite alternate;
}
@keyframes hds-wall { 0% { opacity:0.8; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.7; filter:brightness(0.9); } }
@keyframes hds-body { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg); } }
@keyframes hds-horatio { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(-2px) translateY(1px) rotate(2deg); } 50% { transform: translateX(1px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-1px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes hds-cup { 0%,100% { transform: rotate(45deg) translateX(0); } 50% { transform: rotate(50deg) translateX(2px); } }
@keyframes hds-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.05) translateY(-1px); opacity:1; } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.7; } }

.scn-horatio-refuses-death {
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 40% 50%, #ffd080 0%, transparent 70%);
}
.scn-horatio-refuses-death .wall-stone {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  animation: hrd-wall 10s ease-in-out infinite alternate;
}
.scn-horatio-refuses-death .archway {
  position: absolute; top: 0; left: 20%; width: 60%; height: 80%;
  background: radial-gradient(ellipse at 50% 10%, #2a1a0a 0%, transparent 70%);
  border: 6px solid #4a2a1a;
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-horatio-refuses-death .horatio-figure {
  position: absolute; bottom: 15%; left: 30%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrd-horatio 3s ease-in-out infinite;
  z-index: 2;
}
.scn-horatio-refuses-death .hamlet-figure {
  position: absolute; bottom: 20%; right: 30%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrd-hamlet 4s ease-in-out infinite;
  z-index: 3;
}
.scn-horatio-refuses-death .cup-grapple {
  position: absolute; bottom: 28%; left: 40%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #8a6a30 50%, #5a3a10 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: hrd-cup 1.5s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-horatio-refuses-death .torch-light {
  position: absolute; top: 5%; left: 50%; width: 8%; height: 20%;
  background: radial-gradient(ellipse, #ffd080 0%, #ffb040 50%, transparent 80%);
  opacity: 0.6;
  animation: hrd-torch 2s ease-in-out infinite alternate;
}
.scn-horatio-refuses-death .shadow-stripe {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: hrd-shadow 6s ease-in-out infinite;
}
@keyframes hrd-wall { 0% { opacity:0.9; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.85; filter:brightness(0.95); } }
@keyframes hrd-horatio { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-3px) translateY(2px) rotate(3deg); } }
@keyframes hrd-hamlet { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(-2px) translateY(0) rotate(2deg); } 75% { transform: translateX(3px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes hrd-cup { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hrd-torch { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes hrd-shadow { 0%,100% { opacity:0.8; } 50% { opacity:1; } }

/* Scene: to-be-or-not-to-be (dim interior) */
.scn-to-be-or-not-to-be {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2050 40%, #3a2a5a 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a5a 0%, transparent 70%);
}
.scn-to-be-or-not-to-be .bg-deep {
  position: absolute; inset:0; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 60%, transparent 100%);
  animation: tb-sky 18s ease-in-out infinite alternate;
}
.scn-to-be-or-not-to-be .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-to-be-or-not-to-be .wall {
  position: absolute; bottom:20%; left:10%; right:10%; height:50%;
  background: linear-gradient(180deg, #2a2050 0%, #1a1a2e 100%);
  border-radius: 4% 4% 0 0;
  mask: linear-gradient(0deg, transparent 10%, #000 30%);
}
.scn-to-be-or-not-to-be .window {
  position: absolute; bottom:45%; left:50%; width:60px; height:50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #c0c0d0 0%, #606080 60%, transparent 100%);
  border-radius: 8% 8% 12% 12%;
  box-shadow: inset 0 0 20px 6px rgba(150,150,200,0.3), 0 0 40px 10px rgba(150,150,200,0.1);
  animation: tb-window 12s ease-in-out infinite alternate;
}
.scn-to-be-or-not-to-be .figure {
  position: absolute; bottom:22%; left:40%; width:24px; height:80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: tb-figure 4s ease-in-out infinite;
}
.scn-to-be-or-not-to-be .candle {
  position: absolute; bottom:26%; left:55%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 50%, #6a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(192,128,64,0.5);
}
.scn-to-be-or-not-to-be .glow {
  position: absolute; bottom:26%; left:55%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: tb-glow 3s ease-in-out infinite alternate;
}
.scn-to-be-or-not-to-be .dust {
  position: absolute; top:20%; left:0; right:0; height:100%;
  background: repeating-radial-gradient(circle at 20% 40%, rgba(200,200,220,0.1) 0%, transparent 4px);
  background-size: 100% 100%;
  animation: tb-dust 30s linear infinite;
}
@keyframes tb-sky {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.6; }
}
@keyframes tb-window {
  0% { filter:brightness(0.8); transform:translateX(-50%) scaleY(1); }
  50% { filter:brightness(1.1); transform:translateX(-50%) scaleY(1.05); }
  100% { filter:brightness(0.85); transform:translateX(-50%) scaleY(0.98); }
}
@keyframes tb-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tb-glow {
  0% { opacity:0.6; transform:scale(1); }
  50% { opacity:1; transform:scale(1.2); }
  100% { opacity:0.7; transform:scale(0.9); }
}
@keyframes tb-dust {
  0% { background-position: 0 0; }
  100% { background-position: 0 200px; }
}

/* Scene: nunnery-scene (bright interior) */
.scn-nunnery-scene {
  background:
    linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 40%, #b8a88a 100%),
    radial-gradient(ellipse at 30% 50%, #e0d0b0 0%, transparent 60%);
}
.scn-nunnery-scene .bg-bright {
  position: absolute; inset:0; background: linear-gradient(180deg, #fff8e8 0%, #e8d8c0 100%);
  animation: ns-bright 15s ease-in-out infinite alternate;
}
.scn-nunnery-scene .column-l {
  position: absolute; left:12%; top:10%; bottom:0; width:20px;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 30%, #c0b0a0 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-nunnery-scene .column-r {
  position: absolute; right:12%; top:10%; bottom:0; width:20px;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 30%, #c0b0a0 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-nunnery-scene .figure-hamlet {
  position: absolute; bottom:20%; left:30%; width:20px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ns-hamlet 4s ease-in-out infinite;
}
.scn-nunnery-scene .figure-ophelia {
  position: absolute; bottom:20%; right:30%; width:18px; height:70px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ns-ophelia 4.5s ease-in-out infinite;
}
.scn-nunnery-scene .shadow-sharp {
  position: absolute; top:40%; left:28%; width:30%; height:40%;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 60%);
  filter: blur(2px);
  animation: ns-shadow 6s ease-in-out infinite alternate;
}
.scn-nunnery-scene .light-shaft {
  position: absolute; top:0; left:40%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.3) 0%, transparent 100%);
  animation: ns-light 8s ease-in-out infinite alternate;
}
@keyframes ns-bright {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes ns-hamlet {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(4deg); }
  60% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ns-ophelia {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-6px) translateY(-1px) rotate(-3deg); }
  60% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ns-shadow {
  0% { opacity:0.3; transform:skewX(0deg); }
  50% { opacity:0.6; transform:skewX(5deg); }
  100% { opacity:0.2; transform:skewX(-2deg); }
}
@keyframes ns-light {
  0% { opacity:0.5; transform:scaleX(1); }
  50% { opacity:0.8; transform:scaleX(1.1); }
  100% { opacity:0.4; transform:scaleX(0.9); }
}

/* Scene: claudius-scheme-england (bright interior, tense) */
.scn-claudius-scheme-england {
  background:
    linear-gradient(180deg, #8a6a5a 0%, #c0a080 30%, #a08060 100%),
    radial-gradient(ellipse at 60% 40%, #d0b090 0%, transparent 60%);
}
.scn-claudius-scheme-england .bg-throne {
  position: absolute; inset:0; background: linear-gradient(180deg, #6a4a3a 0%, #8a6a5a 60%, #5a3a2a 100%);
  animation: cs-bg 20s ease-in-out infinite alternate;
}
.scn-claudius-scheme-england .throne {
  position: absolute; bottom:10%; left:30%; width:40px; height:60px;
  background: linear-gradient(180deg, #a08060 0%, #705030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-claudius-scheme-england .figure-king {
  position: absolute; bottom:25%; left:30%; width:24px; height:70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: cs-king 5s ease-in-out infinite;
}
.scn-claudius-scheme-england .figure-courtier {
  position: absolute; bottom:20%; right:20%; width:18px; height:60px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: cs-courtier 5.5s ease-in-out infinite;
}
.scn-claudius-scheme-england .document {
  position: absolute; bottom:30%; left:35%; width:20px; height:10px;
  background: #e0d0b0;
  border-radius: 5%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: cs-doc 8s ease-in-out infinite alternate;
}
.scn-claudius-scheme-england .seal {
  position: absolute; bottom:30%; left:35%; width:6px; height:6px;
  background: #c8553d; /* desaturated terracotta, not crimson */
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,85,61,0.5);
  animation: cs-seal 6s ease-in-out infinite;
}
.scn-claudius-scheme-england .shadow-edge {
  position: absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 40%, rgba(0,0,0,0.1) 100%);
  animation: cs-shadow 12s ease-in-out infinite alternate;
}
@keyframes cs-bg {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes cs-king {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  70% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cs-courtier {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  40% { transform: translateX(-4px) translateY(-1px) rotate(-3deg); }
  80% { transform: translateX(2px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cs-doc {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(0.95) rotate(-2deg); }
}
@keyframes cs-seal {
  0%,100% { opacity:0.8; }
  50% { opacity:1; transform:scale(1.1); }
}
@keyframes cs-shadow {
  0% { opacity:0.5; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}

/* Scene: hamlet-advises-players (warm interior) */
.scn-hamlet-advises-players {
  background:
    linear-gradient(180deg, #e8c8a0 0%, #d4b080 40%, #c09870 100%),
    radial-gradient(ellipse at 50% 20%, #f0d8b0 0%, transparent 70%);
}
.scn-hamlet-advises-players .bg-warm {
  position: absolute; inset:0; background: linear-gradient(180deg, #f0d8b0 0%, #e0c0a0 100%);
  animation: hp-bg 15s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .floor {
  position: absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #c09870 0%, #a08060 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
.scn-hamlet-advises-players .figure-hamlet {
  position: absolute; bottom:16%; left:35%; width:22px; height:80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hp-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-advises-players .figure-player1 {
  position: absolute; bottom:16%; right:30%; width:18px; height:70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hp-player1 4.2s ease-in-out infinite;
}
.scn-hamlet-advises-players .figure-player2 {
  position: absolute; bottom:16%; right:42%; width:16px; height:65px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hp-player2 4.5s ease-in-out infinite;
}
.scn-hamlet-advises-players .lantern {
  position: absolute; top:8%; left:45%; width:12px; height:18px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #c08040 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.6);
  animation: hp-lantern 3s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .speech-gesture {
  position: absolute; bottom:25%; left:38%; width:30px; height:20px;
  background: radial-gradient(circle, rgba(255,220,180,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: hp-gesture 2s ease-in-out infinite;
}
@keyframes hp-bg {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes hp-hamlet {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(6px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(-2px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hp-player1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  70% { transform: translateX(2px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hp-player2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  35% { transform: translateX(4px) translateY(-1px) rotate(3deg); }
  65% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hp-lantern {
  0% { opacity:0.7; transform:scale(1) rotate(0deg); }
  50% { opacity:1; transform:scale(1.1) rotate(5deg); }
  100% { opacity:0.8; transform:scale(0.95) rotate(-3deg); }
}
@keyframes hp-gesture {
  0% { opacity:0.4; transform:scale(0.8) rotate(-10deg); }
  50% { opacity:0.7; transform:scale(1.2) rotate(10deg); }
  100% { opacity:0.3; transform:scale(0.9) rotate(-5deg); }
}

/* laertes-anoint-sword – dark mood, bright-interior, warm firelight */
.scn-laertes-anoint-sword {
  background: linear-gradient(180deg, #2a1e12 0%, #3d2b1a 40%, #1c140e 100%), radial-gradient(ellipse at 50% 60%, #7a5a32 0%, transparent 70%);
}
.scn-laertes-anoint-sword .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3d2b1a 0%, #1c140e 100%); animation: las-wall 12s ease-in-out infinite alternate; }
.scn-laertes-anoint-sword .table { position:absolute; bottom:10%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: las-table 8s ease-in-out infinite; }
.scn-laertes-anoint-sword .sword { position:absolute; bottom:22%; left:50%; width:60%; height:6px; background: linear-gradient(90deg, #8a7a6a 0%, #c0b0a0 50%, #8a7a6a 100%); border-radius: 3px; transform: translateX(-50%) rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: las-sword 6s ease-in-out infinite alternate; }
.scn-laertes-anoint-sword .vial { position:absolute; bottom:26%; left:35%; width:12px; height:16px; background: radial-gradient(ellipse at 50% 70%, #a07848 0%, #604830 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 10px rgba(160,120,72,.5); animation: las-vial 4s ease-in-out infinite; }
.scn-laertes-anoint-sword .glow { position:absolute; bottom:25%; left:48%; width:40px; height:40px; background: radial-gradient(circle, #f0c060 0%, #d09040 50%, transparent 100%); animation: las-glow 3s ease-in-out infinite alternate; }
.scn-laertes-anoint-sword .hand { position:absolute; bottom:20%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); animation: las-hand 5s ease-in-out infinite; }
.scn-laertes-anoint-sword .shadow { position:absolute; bottom:12%; left:20%; width:60%; height:10px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%); animation: las-shadow 8s ease-in-out infinite alternate; }
@keyframes las-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes las-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes las-sword { 0% { transform: translateX(-50%) rotate(-12deg) } 100% { transform: translateX(-50%) rotate(-8deg) } }
@keyframes las-vial { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes las-glow { 0% { opacity:.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.3) } }
@keyframes las-hand { 0%,100% { transform: translateY(0) rotate(15deg) } 50% { transform: translateY(-4px) rotate(20deg) } }
@keyframes las-shadow { 0% { opacity:.3; transform: scaleX(1) } 100% { opacity:.6; transform: scaleX(1.1) } }

/* king-further-think – tense mood, bright-interior, sharp contrasts */
.scn-king-further-think {
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 50%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-king-further-think .panel { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2a 0%, #2c2c3a 50%, #1a1a2a 100%); animation: kft-panel 20s ease-in-out infinite alternate; }
.scn-king-further-think .throne { position:absolute; bottom:20%; left:50%; width:40%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 5% 5%; transform: translateX(-50%); box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: kft-throne 10s ease-in-out infinite; }
.scn-king-further-think .figure { position:absolute; bottom:30%; left:50%; width:20px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kft-figure 6s ease-in-out infinite; }
.scn-king-further-think .table { position:absolute; bottom:15%; left:35%; right:35%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: kft-table 8s ease-in-out infinite alternate; }
.scn-king-further-think .candle { position:absolute; bottom:22%; left:48%; width:8px; height:20px; background: linear-gradient(180deg, #e0c0a0 0%, #a08060 100%); border-radius: 2px; animation: kft-candle 4s ease-in-out infinite; }
.scn-king-further-think .light { position:absolute; bottom:25%; left:47%; width:30px; height:30px; background: radial-gradient(circle, #f0d080 0%, #d0a060 40%, transparent 100%); animation: kft-light 3s ease-in-out infinite alternate; }
.scn-king-further-think .map { position:absolute; bottom:16%; left:38%; width:20%; height:8%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: kft-map 15s ease-in-out infinite; }
.scn-king-further-think .weight { position:absolute; bottom:25%; right:30%; width:10px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(10deg); animation: kft-weight 5s ease-in-out infinite; }
@keyframes kft-panel { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes kft-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes kft-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes kft-table { 0% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes kft-candle { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } }
@keyframes kft-light { 0% { opacity:.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes kft-map { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateX(2px) } }
@keyframes kft-weight { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) translateY(2px) } }

/* laertes-drowned – dark mood, bright-interior (window scene), cool tones */
.scn-laertes-drowned {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #0e1a2a 100%), radial-gradient(ellipse at 50% 40%, #4a5a6a 0%, transparent 70%);
}
.scn-laertes-drowned .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); animation: lad-room 15s ease-in-out infinite alternate; }
.scn-laertes-drowned .window { position:absolute; top:20%; left:50%; width:40%; height:45%; transform: translateX(-50%); background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); border: 4px solid #3a4a5a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: lad-window 20s ease-in-out infinite; }
.scn-laertes-drowned .willow { position:absolute; top:15%; left:30%; width:25%; height:60%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; animation: lad-willow 12s ease-in-out infinite alternate; }
.scn-laertes-drowned .figure { position:absolute; bottom:30%; left:50%; width:18px; height:35px; transform: translateX(-50%); background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lad-figure 8s ease-in-out infinite; }
.scn-laertes-drowned .water { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 100%); border-radius: 20% 80% 50% 50% / 30% 70% 40% 60%; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: lad-water 10s ease-in-out infinite alternate; }
.scn-laertes-drowned .garland { position:absolute; top:40%; left:40%; width:30px; height:10px; background: linear-gradient(90deg, #6a7a3a 0%, #8a9a5a 50%, #6a7a3a 100%); border-radius: 50%; transform: rotate(20deg); animation: lad-garland 6s ease-in-out infinite; }
.scn-laertes-drowned .reflection { position:absolute; bottom:18%; left:50%; width:20px; height:30px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(100,150,180,.3) 0%, transparent 100%); animation: lad-reflection 7s ease-in-out infinite alternate; }
@keyframes lad-room { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lad-window { 0%,100% { opacity:.9; transform: translateX(-50%) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.02) } }
@keyframes lad-willow { 0% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(-3px) rotate(2deg) } }
@keyframes lad-figure { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes lad-water { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-4px) scaleY(1.05) } }
@keyframes lad-garland { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(25deg) translateX(3px) } }
@keyframes lad-reflection { 0% { opacity:.3 } 100% { opacity:.6 } }

/* queen-willow-brook – dark mood, overcast, muted greens and greys */
.scn-queen-willow-brook {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 80%, #5a6a6a 0%, transparent 70%);
}
.scn-queen-willow-brook .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); animation: qwb-sky 25s ease-in-out infinite alternate; }
.scn-queen-willow-brook .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: qwb-hills 18s ease-in-out infinite alternate; }
.scn-queen-willow-brook .brook { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a5a4a 0%, #1a2a1a 100%); border-radius: 30% 70% 40% 60% / 40% 60% 30% 70%; animation: qwb-brook 12s ease-in-out infinite alternate; }
.scn-queen-willow-brook .willow { position:absolute; bottom:25%; left:30%; width:20%; height:50%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: qwb-willow 14s ease-in-out infinite alternate; }
.scn-queen-willow-brook .figure { position:absolute; bottom:15%; left:50%; width:30px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: qwb-figure 8s ease-in-out infinite; }
.scn-queen-willow-brook .garlands { position:absolute; top:45%; left:40%; width:40px; height:12px; background: linear-gradient(90deg, #6a7a4a 0%, #8a9a6a 50%, #6a7a4a 100%); border-radius: 50%; transform: rotate(30deg); animation: qwb-garlands 10s ease-in-out infinite; }
.scn-queen-willow-brook .ripples { position:absolute; bottom:20%; left:45%; width:20px; height:8px; background: radial-gradient(ellipse at 50% 50%, rgba(100,150,130,.3) 0%, transparent 100%); animation: qwb-ripples 6s ease-in-out infinite; }
.scn-queen-willow-brook .clouds { position:absolute; top:10%; left:0; width:100%; height:30%; background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, transparent 100%); filter: blur(8px); animation: qwb-clouds 50s linear infinite; }
@keyframes qwb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes qwb-hills { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes qwb-brook { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-3px) scaleY(1.03) } }
@keyframes qwb-willow { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) translateY(-2px) } }
@keyframes qwb-figure { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes qwb-garlands { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(35deg) translateX(4px) } }
@keyframes qwb-ripples { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.4) } 100% { opacity:.3; transform: scale(1) } }
@keyframes qwb-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(100%) } }

.scn-hamlet-bloody-thoughts {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%);
  animation: hbt-bgshift 20s ease-in-out infinite alternate;
}
.scn-hamlet-bloody-thoughts .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, transparent 100%);
  animation: hbt-sky 15s ease-in-out infinite alternate;
}
.scn-hamlet-bloody-thoughts .hills-bleak {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: hbt-hills 12s ease-in-out infinite alternate;
}
.scn-hamlet-bloody-thoughts .grave-mound {
  position: absolute; bottom: 32%; left: 40%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, #2a1a0a 80%, transparent);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-hamlet-bloody-thoughts .cross {
  position: absolute; bottom: 35%; left: 42%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hbt-cross 8s ease-in-out infinite;
}
.scn-hamlet-bloody-thoughts .figure-shadow {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbt-figure 6s ease-in-out infinite;
}
.scn-hamlet-bloody-thoughts .army-distant {
  position: absolute; bottom: 37%; left: 10%; width: 120px; height: 30px;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 6px, transparent 6px, transparent 8px);
  filter: blur(2px);
  opacity: 0.6;
  animation: hbt-army 30s linear infinite;
}
.scn-hamlet-bloody-thoughts .mud {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-hamlet-bloody-thoughts .mist {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,220,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: hbt-mist 25s ease-in-out infinite alternate;
}
@keyframes hbt-bgshift { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hbt-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes hbt-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes hbt-cross { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-11deg) translateY(-2px) } }
@keyframes hbt-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(6px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes hbt-army { 0% { transform: translateX(0) } 100% { transform: translateX(-30px) } }
@keyframes hbt-mist { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.02) } 100% { opacity:0.4; transform: scale(0.98) } }

.scn-queen-will-not-speak {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #dcc4a8 40%, #b89a7a 100%),
    radial-gradient(ellipse at 60% 50%, #fff8ee 0%, transparent 70%);
  animation: qns-bg 18s ease-in-out infinite alternate;
}
.scn-queen-will-not-speak .wall-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #fdf4e0 0%, #e8d4b8 50%, #d4bca0 100%);
  box-shadow: inset 0 0 40px rgba(180,140,100,0.3);
}
.scn-queen-will-not-speak .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #baa080 0%, #8a7058 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-queen-will-not-speak .door-ajar {
  position: absolute; bottom: 25%; left: 15%; width: 100px; height: 160px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  transform: skewY(2deg);
  animation: qns-door 12s ease-in-out infinite alternate;
}
.scn-queen-will-not-speak .queen-silhouette {
  position: absolute; bottom: 28%; left: 50%; width: 45px; height: 120px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.9;
  animation: qns-queen 7s ease-in-out infinite;
}
.scn-queen-will-not-speak .horatio-figure {
  position: absolute; bottom: 28%; left: 68%; width: 30px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: qns-horatio 9s ease-in-out infinite;
}
.scn-queen-will-not-speak .candle-stand {
  position: absolute; bottom: 22%; left: 38%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-queen-will-not-speak .candle-flame {
  position: absolute; bottom: 46%; left: 39%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 20px 10px rgba(255,176,64,0.6), 0 0 40px 20px rgba(255,176,64,0.3);
  animation: qns-flame 2s ease-in-out infinite alternate;
}
.scn-queen-will-not-speak .curtain-drape {
  position: absolute; top: 0; right: 0; width: 60px; height: 100%;
  background: linear-gradient(180deg, #8a2a1a 0%, #5a0a0a 100%);
  border-radius: 0 0 0 20px;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3);
  animation: qns-curtain 10s ease-in-out infinite alternate;
}
@keyframes qns-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes qns-door { 0% { transform: skewY(2deg) } 50% { transform: skewY(0deg) } 100% { transform: skewY(-1deg) } }
@keyframes qns-queen { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(-2deg) } 60% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes qns-horatio { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes qns-flame { 0% { transform: scaleY(0.8) translateY(2px); opacity:0.7 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8 } }
@keyframes qns-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }

.scn-gentleman-speaks-of-father {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #d4c0a8 50%, #b8a088 100%),
    radial-gradient(ellipse at 70% 40%, #fff8f0 0%, transparent 60%);
  animation: gsf-bg 20s ease-in-out infinite alternate;
}
.scn-gentleman-speaks-of-father .wall-pale {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #fdf8f0 0%, #ede0d0 50%, #d8c8b8 100%);
  box-shadow: inset 0 0 30px rgba(160,120,80,0.2);
}
.scn-gentleman-speaks-of-father .chair-empty {
  position: absolute; bottom: 28%; left: 30%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: rotate(-1deg);
}
.scn-gentleman-speaks-of-father .straw-scattered {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 20px;
  background: repeating-linear-gradient(45deg, #d4b040 0px, #d4b040 6px, #c0a030 6px, #c0a030 10px);
  border-radius: 20%;
  filter: blur(1px);
  animation: gsf-straw 6s ease-in-out infinite alternate;
}
.scn-gentleman-speaks-of-father .ophelia-form {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #8a6a5a 0%, #4a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gsf-ophelia 8s ease-in-out infinite;
}
.scn-gentleman-speaks-of-father .hand-clutch {
  position: absolute; bottom: 32%; left: 52%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c0a090 0%, #8a6050 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: gsf-hand 4s ease-in-out infinite alternate;
}
.scn-gentleman-speaks-of-father .shadow-stain {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 0, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(8px);
}
.scn-gentleman-speaks-of-father .window-light {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 100px;
  background: linear-gradient(135deg, rgba(255,255,240,0.4) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: gsf-window 10s ease-in-out infinite alternate;
}
@keyframes gsf-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gsf-straw { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes gsf-ophelia { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(-3deg) } 60% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gsf-hand { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(25deg) scale(1.1) } 100% { transform: rotate(20deg) scale(0.95) } }
@keyframes gsf-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }

.scn-horatio-good-she-speak {
  background:
    linear-gradient(180deg, #f8ecd8 0%, #dcc8b0 50%, #b8a488 100%),
    radial-gradient(ellipse at 40% 70%, #fff8ee 0%, transparent 60%);
  animation: hgs-bg 22s ease-in-out infinite alternate;
}
.scn-horatio-good-she-speak .room-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0e4d4 0%, #d8c4ac 60%, #b8a088 100%);
  box-shadow: inset 0 0 40px rgba(180,140,100,0.3);
}
.scn-horatio-good-she-speak .doorway-dark {
  position: absolute; bottom: 20%; right: 10%; width: 90px; height: 170px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: -6px 0 16px rgba(0,0,0,0.5);
  animation: hgs-door 15s ease-in-out infinite alternate;
}
.scn-horatio-good-she-speak .horatio-half {
  position: absolute; bottom: 22%; right: 14%; width: 35px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.9;
  animation: hgs-horatio 8s ease-in-out infinite;
}
.scn-horatio-good-she-speak .table-oak {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(5deg);
}
.scn-horatio-good-she-speak .toy-wooden {
  position: absolute; bottom: 24%; left: 36%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: hgs-toy 6s ease-in-out infinite;
}
.scn-horatio-good-she-speak .spill-dark {
  position: absolute; bottom: 17%; left: 40%; width: 50px; height: 10px;
  background: radial-gradient(ellipse at 50% 0, #2a1a0a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: hgs-spill 10s ease-in-out infinite alternate;
}
.scn-horatio-good-she-speak .shadow-elongated {
  position: absolute; bottom: 0; left: 25%; width: 120px; height: 50px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(10px);
  transform: skewX(-20deg);
  animation: hgs-shadow 12s ease-in-out infinite alternate;
}
.scn-horatio-good-she-speak .threshold-line {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #4a2a1a 50%, transparent);
}
@keyframes hgs-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hgs-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1.02) } }
@keyframes hgs-horatio { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(-2deg) } 60% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hgs-toy { 0% { transform: rotate(0) } 30% { transform: rotate(20deg) } 60% { transform: rotate(-10deg) } 100% { transform: rotate(0) } }
@keyframes hgs-spill { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.8) } }
@keyframes hgs-shadow { 0% { transform: skewX(-20deg) scaleY(1) } 50% { transform: skewX(-25deg) scaleY(1.1) } 100% { transform: skewX(-15deg) scaleY(0.9) } }

/* Scene: laertes-where-father */
.scn-laertes-where-father {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 50%, #b89a7a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255, 230, 180, 0.6) 0%, transparent 60%);
}
.scn-laertes-where-father .sunbeam-left {
  position: absolute; top: 0; left: 10%; width: 8%; bottom: 30%;
  background: linear-gradient(180deg, rgba(255, 240, 200, 0.5) 0%, rgba(255, 220, 160, 0.2) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: lwf-beam 6s ease-in-out infinite alternate;
  opacity: 0.6;
}
.scn-laertes-where-father .sunbeam-right {
  position: absolute; top: 0; right: 15%; width: 6%; bottom: 40%;
  background: linear-gradient(180deg, rgba(255, 240, 200, 0.4) 0%, rgba(255, 220, 160, 0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: lwf-beam 8s ease-in-out infinite alternate-reverse;
  opacity: 0.4;
}
.scn-laertes-where-father .figure-laertes {
  position: absolute; bottom: 25%; left: 45%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: lwf-stand 3s ease-in-out infinite;
}
.scn-laertes-where-father .arm-raised {
  position: absolute; bottom: 50%; left: 47%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(-30deg);
  animation: lwf-arm 2s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-laertes-where-father .dust-mote-1 {
  position: absolute; top: 20%; left: 25%; width: 4px; height: 4px;
  background: rgba(255, 255, 190, 0.7);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255, 255, 190, 0.3);
  animation: lwf-float 12s ease-in-out infinite;
}
.scn-laertes-where-father .dust-mote-2 {
  position: absolute; top: 35%; left: 60%; width: 3px; height: 3px;
  background: rgba(255, 255, 190, 0.5);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255, 255, 190, 0.2);
  animation: lwf-float 15s ease-in-out 2s infinite reverse;
}
.scn-laertes-where-father .window-frame {
  position: absolute; top: 5%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #a08060 0%, #806040 100%);
  border: 8px solid #705030;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: lwf-window-pulse 8s ease-in-out infinite alternate;
}
.scn-laertes-where-father .shadow-on-wall {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: lwf-shadow 5s ease-in-out infinite alternate;
}
@keyframes lwf-beam {
  0% { opacity: 0.5; transform: scaleX(1) translateX(0); }
  50% { opacity: 0.8; transform: scaleX(1.05) translateX(2px); }
  100% { opacity: 0.4; transform: scaleX(0.95) translateX(-1px); }
}
@keyframes lwf-stand {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes lwf-arm {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-2px); }
  100% { transform: rotate(-35deg) translateY(1px); }
}
@keyframes lwf-float {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0.3; }
  50% { transform: translate(8px, -10px) rotate(180deg); opacity: 0.8; }
  100% { transform: translate(2px, -5px) rotate(360deg); opacity: 0.2; }
}
@keyframes lwf-window-pulse {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.2), 0 0 15px rgba(200,160,100,0.3); }
  100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.4); }
}
@keyframes lwf-shadow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

/* Scene: king-who-stay */
.scn-king-who-stay {
  background:
    linear-gradient(180deg, #e8dac0 0%, #cbb29a 50%, #a6886e 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255, 220, 150, 0.3) 0%, transparent 60%);
}
.scn-king-who-stay .throne-back {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #a08060 0%, #705030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
  animation: kws-throne 4s ease-in-out infinite alternate;
}
.scn-king-who-stay .throne-seat {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 20%;
  background: linear-gradient(180deg, #c07040 0%, #904020 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
}
.scn-king-who-stay .figure-king {
  position: absolute; bottom: 18%; left: 43%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kws-king 3s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-king-who-stay .hand-sceptre {
  position: absolute; bottom: 40%; left: 48%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #d0a060 0%, #a07040 100%);
  border-radius: 20% 20% 50% 50%;
  transform-origin: top center;
  transform: rotate(15deg);
  animation: kws-sceptre 2s ease-in-out infinite alternate;
}
.scn-king-who-stay .crown-glow {
  position: absolute; top: 12%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #f0c060 0%, #d09840 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240, 190, 80, 0.5);
  animation: kws-crown-pulse 2s ease-in-out infinite alternate;
}
.scn-king-who-stay .pillar-left {
  position: absolute; top: 0; left: 5%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #806040 0%, #a08060 30%, #c0a080 50%, #a08060 70%, #806040 100%);
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
}
.scn-king-who-stay .pillar-right {
  position: absolute; top: 0; right: 5%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #806040 0%, #a08060 30%, #c0a080 50%, #a08060 70%, #806040 100%);
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
}
@keyframes kws-throne {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes kws-king {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes kws-sceptre {
  0% { transform: rotate(12deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(1px); }
  100% { transform: rotate(14deg) translateX(-1px); }
}
@keyframes kws-crown-pulse {
  0% { box-shadow: 0 0 20px 6px rgba(240, 190, 80, 0.4); }
  50% { box-shadow: 0 0 40px 15px rgba(240, 190, 80, 0.7); }
  100% { box-shadow: 0 0 25px 8px rgba(240, 190, 80, 0.3); }
}

/* Scene: laertes-enemies */
.scn-laertes-enemies {
  background:
    linear-gradient(180deg, #c0a080 0%, #a08060 50%, #806040 100%),
    radial-gradient(ellipse at 60% 30%, rgba(200, 80, 40, 0.15) 0%, transparent 50%);
}
.scn-laertes-enemies .figure-wide {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: len-figure 4s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-laertes-enemies .arm-left {
  position: absolute; bottom: 45%; left: 30%; width: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top right;
  transform: rotate(-40deg);
  animation: len-arm-left 3s ease-in-out infinite alternate;
}
.scn-laertes-enemies .arm-right {
  position: absolute; bottom: 45%; right: 30%; width: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top left;
  transform: rotate(40deg);
  animation: len-arm-right 3s ease-in-out infinite alternate;
}
.scn-laertes-enemies .blood-drip-1 {
  position: absolute; bottom: 15%; left: 45%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #7a2a1a 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: len-drip 5s ease-in-out infinite;
  filter: blur(1px);
}
.scn-laertes-enemies .blood-drip-2 {
  position: absolute; bottom: 12%; left: 52%; width: 3px; height: 15px;
  background: linear-gradient(180deg, #7a2a1a 0%, transparent 100%);
  border-radius: 50%;
  animation: len-drip 6s ease-in-out 2s infinite;
  filter: blur(1px);
}
.scn-laertes-enemies .floor-stain {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #6a2020 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: len-stain 8s ease-in-out infinite alternate;
}
.scn-laertes-enemies .wall-texture {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(0,0,0,0.02) 20px, rgba(0,0,0,0.02) 21px);
  pointer-events: none;
}
@keyframes len-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes len-arm-left {
  0% { transform: rotate(-35deg) translateX(0); }
  50% { transform: rotate(-45deg) translateX(2px); }
  100% { transform: rotate(-38deg) translateX(-1px); }
}
@keyframes len-arm-right {
  0% { transform: rotate(35deg) translateX(0); }
  50% { transform: rotate(45deg) translateX(-2px); }
  100% { transform: rotate(38deg) translateX(1px); }
}
@keyframes len-drip {
  0% { opacity: 0; transform: translateY(0) scale(1); }
  30% { opacity: 0.8; transform: translateY(10px) scale(1.2); }
  70% { opacity: 0.6; transform: translateY(20px) scale(0.8); }
  100% { opacity: 0; transform: translateY(30px) scale(0.5); }
}
@keyframes len-stain {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* Scene: voice-let-her-in */
.scn-voice-let-her-in {
  background:
    linear-gradient(180deg, #d9c4a8 0%, #b89a7a 50%, #a08060 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255, 220, 180, 0.4) 0%, transparent 60%);
}
.scn-voice-let-her-in .doorway-arch {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #705030 0%, #503020 100%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 90% 100%, 10% 100%, 0 85%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: vli-arch 6s ease-in-out infinite alternate;
}
.scn-voice-let-her-in .door-light {
  position: absolute; top: 8%; left: 33%; width: 34%; height: 65%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255, 240, 200, 0.7) 0%, rgba(255, 220, 180, 0.3) 50%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 90% 100%, 10% 100%, 0 85%);
  animation: vli-light 4s ease-in-out infinite alternate;
}
.scn-voice-let-her-in .figure-ophelia {
  position: absolute; bottom: 20%; left: 46%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 8px rgba(0,0,0,0.4);
  animation: vli-ophelia 3s ease-in-out infinite;
}
.scn-voice-let-her-in .flower-petal-1 {
  position: absolute; top: 30%; left: 40%; width: 10px; height: 6px;
  background: linear-gradient(180deg, #c87878 0%, #a05050 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: vli-petal 7s ease-in-out infinite;
}
.scn-voice-let-her-in .flower-petal-2 {
  position: absolute; top: 35%; left: 55%; width: 8px; height: 5px;
  background: linear-gradient(180deg, #c87878 0%, #a05050 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  animation: vli-petal 8s ease-in-out 2s infinite reverse;
}
.scn-voice-let-her-in .flower-petal-3 {
  position: absolute; top: 28%; left: 48%; width: 9px; height: 5px;
  background: linear-gradient(180deg, #c87878 0%, #a05050 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: vli-petal 6s ease-in-out 4s infinite;
}
.scn-voice-let-her-in .floor-shadow {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%);
  filter: blur(6px);
  animation: vli-shadow 5s ease-in-out infinite alternate;
}
.scn-voice-let-her-in .wall-panel {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 40px, rgba(0,0,0,0.03) 40px, rgba(0,0,0,0.03) 41px);
  pointer-events: none;
}
@keyframes vli-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes vli-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes vli-ophelia {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vli-petal {
  0% { transform: translate(0, 0) rotate(20deg); opacity: 0.3; }
  50% { transform: translate(10px, -15px) rotate(40deg); opacity: 0.8; }
  100% { transform: translate(-5px, -8px) rotate(10deg); opacity: 0.2; }
}
@keyframes vli-shadow {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0.4; transform: scale(0.85); }
}

.scn-king-how-hamlet { background: linear-gradient(180deg, #d4b896 0%, #c49a6e 30%, #a87a4a 70%, #7a5a3a 100%), radial-gradient(ellipse at 30% 20%, #f0d8b0 0%, transparent 60%); }
.scn-king-how-hamlet { position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-king-how-hamlet .throne-back { position: absolute; bottom: 20%; left: 35%; width: 30%; height: 55%; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 50%, #4a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset -8px -8px 20px rgba(0,0,0,0.5), 4px 4px 10px rgba(0,0,0,0.3); animation: kth-pulse 6s ease-in-out infinite alternate; }
.scn-king-how-hamlet .wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4b896 40%, #c09a6e 80%, #a87a4a 100%); border-radius: 0 0 10% 10% / 0 0 5% 5%; animation: kth-wall 12s ease-in-out infinite; }
.scn-king-how-hamlet .arras { position: absolute; top: 5%; right: 10%; width: 20%; height: 70%; background: linear-gradient(180deg, #7a2a2a 0%, #5a1a1a 40%, #3a0a0a 100%); border-radius: 5% 5% 0 0; box-shadow: -4px 0 15px rgba(0,0,0,0.4); transform-origin: top center; animation: kth-arras 4s ease-in-out infinite alternate; }
.scn-king-how-hamlet .king { position: absolute; bottom: 28%; left: 38%; width: 14%; height: 35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: kth-king 8s ease-in-out infinite; }
.scn-king-how-hamlet .queen { position: absolute; bottom: 28%; left: 54%; width: 12%; height: 32%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 50%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: -2px 0 8px rgba(0,0,0,0.2); animation: kth-queen 10s ease-in-out infinite alternate; }
.scn-king-how-hamlet .rapier { position: absolute; bottom: 30%; left: 30%; width: 2%; height: 25%; background: linear-gradient(180deg, #c0c0c0 0%, #8a8a8a 50%, #6a6a6a 100%); border-radius: 10% / 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform-origin: bottom center; animation: kth-rapier 3s ease-in-out infinite; }
.scn-king-how-hamlet .shadow-king { position: absolute; bottom: 0; left: 35%; width: 30%; height: 30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: kth-shadow 6s ease-in-out infinite alternate; }
.scn-king-how-hamlet .light-ray { position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 70%), radial-gradient(ellipse at 30% 0%, rgba(255,230,180,0.1) 0%, transparent 60%); animation: kth-light 8s ease-in-out infinite alternate; }
@keyframes kth-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes kth-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kth-arras { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes kth-king { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kth-queen { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(-2px); } 100% { transform: translateX(2px) translateY(1px); } }
@keyframes kth-rapier { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(5deg) translateX(5px); } 50% { transform: rotate(-5deg) translateX(10px); } 75% { transform: rotate(15deg) translateX(15px); } 100% { transform: rotate(0deg) translateX(20px); } }
@keyframes kth-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes kth-light { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

.scn-king-deed-heavy { background: linear-gradient(180deg, #c4a87a 0%, #a88a5a 30%, #8a6a3a 70%, #5a3a1a 100%), radial-gradient(ellipse at 60% 30%, #e8d4a8 0%, transparent 50%); }
.scn-king-deed-heavy { position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-king-deed-heavy .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: kdh-floor 10s ease-in-out infinite alternate; }
.scn-king-deed-heavy .column { position: absolute; bottom: 15%; left: 20%; width: 8%; height: 70%; background: linear-gradient(90deg, #c8b89a 0%, #e8d8b8 30%, #b8a88a 70%, #9a8a6a 100%); border-radius: 5% 5% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.2); animation: kdh-column 14s ease-in-out infinite; }
.scn-king-deed-heavy .king-alone { position: absolute; bottom: 28%; left: 45%; width: 15%; height: 38%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 4px 0 12px rgba(0,0,0,0.4); animation: kdh-king 8s ease-in-out infinite; }
.scn-king-deed-heavy .crown-heavy { position: absolute; top: 32%; left: 46%; width: 12%; height: 8%; background: linear-gradient(180deg, #d4a840 0%, #b88a28 50%, #8a6a18 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(180,140,40,0.4); animation: kdh-crown 5s ease-in-out infinite alternate; }
.scn-king-deed-heavy .shadow-threat { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 60%); animation: kdh-threat 6s ease-in-out infinite alternate; }
.scn-king-deed-heavy .window-bars { position: absolute; top: 5%; right: 10%; width: 25%; height: 40%; background: linear-gradient(180deg, rgba(180,160,120,0.3) 0%, rgba(140,120,90,0.2) 50%, rgba(100,80,60,0.1) 100%); border: 4px solid #5a4a3a; border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); animation: kdh-bars 12s ease-in-out infinite; }
.scn-king-deed-heavy .blood-drop { position: absolute; bottom: 25%; left: 55%; width: 3%; height: 3%; background: radial-gradient(circle, #8a2a1a 0%, #5a1a0a 60%, transparent 80%); border-radius: 50%; animation: kdh-blood 4s ease-in-out infinite; }
@keyframes kdh-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kdh-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes kdh-king { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kdh-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes kdh-threat { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.2; transform: scale(0.9); } }
@keyframes kdh-bars { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes kdh-blood { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(10px) scale(1.3); opacity: 0.4; } 100% { transform: translateY(20px) scale(0.5); opacity: 0; } }

.scn-king-send-friends { background: linear-gradient(180deg, #d8c4a0 0%, #b8a07a 30%, #9a8060 70%, #7a6040 100%), radial-gradient(ellipse at 40% 20%, #f0e0c0 0%, transparent 50%); }
.scn-king-send-friends { position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-king-send-friends .throne-room { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4b896 60%, #b89a6e 100%); border-radius: 0 0 15% 15% / 0 0 5% 5%; animation: ksf-room 10s ease-in-out infinite alternate; }
.scn-king-send-friends .king-seated { position: absolute; bottom: 28%; left: 30%; width: 16%; height: 40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 4px 0 12px rgba(0,0,0,0.3); animation: ksf-king 8s ease-in-out infinite; }
.scn-king-send-friends .rosencrantz { position: absolute; bottom: 25%; left: 50%; width: 10%; height: 34%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 50%, #2a2a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: ksf-ros 6s ease-in-out infinite alternate; }
.scn-king-send-friends .guildenstern { position: absolute; bottom: 25%; left: 62%; width: 10%; height: 34%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 50%, #2a2a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: ksf-guild 6s ease-in-out infinite alternate 2s; }
.scn-king-send-friends .scroll { position: absolute; bottom: 30%; left: 48%; width: 6%; height: 8%; background: linear-gradient(180deg, #f0e0a0 0%, #d8c080 40%, #b8a060 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transform-origin: center bottom; animation: ksf-scroll 4s ease-in-out infinite; }
.scn-king-send-friends .chapel-door { position: absolute; bottom: 10%; right: 8%; width: 18%; height: 50%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 50%, #2a1a0a 100%); border-radius: 10% 10% 0 0; border: 4px solid #5a3a1a; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: ksf-door 12s ease-in-out infinite alternate; }
.scn-king-send-friends .torch-flare { position: absolute; top: 20%; left: 20%; width: 4%; height: 8%; background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,160,64,0.3); animation: ksf-torch 3s ease-in-out infinite alternate; }
.scn-king-send-friends .shadow-court { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.4) 100%); animation: ksf-shadow 8s ease-in-out infinite alternate; }
@keyframes ksf-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ksf-king { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ksf-ros { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ksf-guild { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ksf-scroll { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(1px); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ksf-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes ksf-torch { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.6; } }
@keyframes ksf-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-king-exit-discord { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 30%, #2a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 50%); }
.scn-king-exit-discord { position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-king-exit-discord .corridor { position: absolute; inset: 0; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 20%, #4a2a1a 40%, #3a1a0a 60%, #2a0a00 100%); animation: kes-corridor 14s ease-in-out infinite alternate; }
.scn-king-exit-discord .king-retreating { position: absolute; bottom: 28%; left: 60%; width: 14%; height: 34%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,0.4); animation: kes-king 10s ease-in-out infinite; }
.scn-king-exit-discord .queen-retreating { position: absolute; bottom: 28%; left: 75%; width: 12%; height: 32%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,0.3); animation: kes-queen 10s ease-in-out infinite 1s; }
.scn-king-exit-discord .discord-cloud { position: absolute; top: 30%; left: 20%; width: 60%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(80,40,20,0.2) 0%, transparent 60%); animation: kes-cloud 12s ease-in-out infinite; }
.scn-king-exit-discord .door-arch { position: absolute; bottom: 10%; right: 5%; width: 25%; height: 60%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 50%, #1a0a00 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: kes-door 8s ease-in-out infinite alternate; }
.scn-king-exit-discord .candle-flicker { position: absolute; top: 15%; left: 30%; width: 3%; height: 5%; background: radial-gradient(circle, #ffc060 0%, #ff8020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,128,32,0.2); animation: kes-candle 3s ease-in-out infinite alternate; }
.scn-king-exit-discord .shadow-soul { position: absolute; bottom: 0; left: 40%; width: 20%; height: 40%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 60%); animation: kes-soul 8s ease-in-out infinite alternate; }
@keyframes kes-corridor { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes kes-king { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(-16px) translateY(0) rotate(1deg); } 75% { transform: translateX(-24px) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(-32px) translateY(0) rotate(0deg); } }
@keyframes kes-queen { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-6px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-18px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-24px) translateY(0) rotate(0deg); } }
@keyframes kes-cloud { 0% { opacity: 0.3; transform: scale(1) translateX(0); } 50% { opacity: 0.5; transform: scale(1.1) translateX(10px); } 100% { opacity: 0.2; transform: scale(0.9) translateX(-10px); } }
@keyframes kes-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes kes-candle { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.4) translateY(-3px); } 100% { transform: scale(0.8) translateY(2px); } }
@keyframes kes-soul { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-hamlet-heaven {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 70%, #5a3a2a 0%, transparent 70%);
}
.scn-hamlet-heaven .hh-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: hh-wall 15s ease-in-out infinite alternate;
}
.scn-hamlet-heaven .hh-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 60% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.6);
  animation: hh-floor 12s ease-in-out infinite;
}
.scn-hamlet-heaven .hh-stairs {
  position: absolute; bottom: 30%; left: 25%; width: 35%; height: 30%;
  background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 8px, #3a2a1a 8px, #3a2a1a 16px);
  transform: skewX(-20deg);
  box-shadow: inset 0 0 15px rgba(0,0,0,.4);
  animation: hh-stairs 18s ease-in-out infinite alternate;
}
.scn-hamlet-heaven .hh-doorway {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.7);
  animation: hh-door 20s ease-in-out infinite;
}
.scn-hamlet-heaven .hh-figure {
  position: absolute; bottom: 18%; left: 30%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-figure 4s ease-in-out infinite;
}
.scn-hamlet-heaven .hh-lantern {
  position: absolute; bottom: 22%; left: 26%; width: 3%; height: 3%;
  background: radial-gradient(circle, #ffd080 0%, #b07030 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #b07030, 0 0 24px 8px rgba(176,112,48,.4);
  animation: hh-lantern 3s ease-in-out infinite alternate;
}
.scn-hamlet-heaven .hh-lightbeam {
  position: absolute; bottom: 22%; left: 26%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(255,208,128,.15) 0%, transparent 60%);
  transform: rotate(-10deg);
  animation: hh-beam 6s ease-in-out infinite alternate;
}
@keyframes hh-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hh-floor { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hh-stairs { 0% { transform: skewX(-20deg) translateX(0) } 50% { transform: skewX(-18deg) translateX(2px) } 100% { transform: skewX(-20deg) translateX(0) } }
@keyframes hh-door { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(0.98) } }
@keyframes hh-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(0deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes hh-lantern { 0% { transform: translate(0,0) rotate(-5deg); box-shadow: 0 0 10px 3px #b07030 } 50% { transform: translate(1px,-1px) rotate(5deg); box-shadow: 0 0 18px 6px #ffd080 } 100% { transform: translate(0,0) rotate(-5deg); box-shadow: 0 0 12px 4px #b07030 } }
@keyframes hh-beam { 0% { opacity:.6; transform: rotate(-10deg) scaleX(1) } 50% { opacity:1; transform: rotate(-7deg) scaleX(1.05) } 100% { opacity:.6; transform: rotate(-10deg) scaleX(1) } }

.scn-king-send-to-england {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 80%);
}
.scn-king-send-to-england .kse-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: kse-wall 14s ease-in-out infinite alternate;
}
.scn-king-send-to-england .kse-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1000 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: kse-floor 10s ease-in-out infinite;
}
.scn-king-send-to-england .kse-table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: kse-table 16s ease-in-out infinite;
}
.scn-king-send-to-england .kse-map {
  position: absolute; bottom: 28%; left: 36%; width: 28%; height: 18%;
  background: linear-gradient(135deg, #a08060 0%, #806040 40%, #604020 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: kse-map 20s ease-in-out infinite alternate;
}
.scn-king-send-to-england .kse-king {
  position: absolute; bottom: 18%; left: 20%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kse-king 4s ease-in-out infinite;
}
.scn-king-send-to-england .kse-letter {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 6%;
  background: #c0a060;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: kse-letter 3s ease-in-out infinite alternate;
}
.scn-king-send-to-england .kse-candle {
  position: absolute; bottom: 34%; left: 46%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 60%, #503010 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 3px #ffd080;
  animation: kse-candle 4s ease-in-out infinite;
}
@keyframes kse-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes kse-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes kse-table { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-1px) translateY(1px) } }
@keyframes kse-map { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes kse-king { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(4px) rotate(0deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kse-letter { 0% { transform: translateY(0) rotate(0deg); opacity:.9 } 50% { transform: translateY(-2px) rotate(5deg); opacity:1 } 100% { transform: translateY(0) rotate(0deg); opacity:.9 } }
@keyframes kse-candle { 0% { transform: scaleY(1); box-shadow: 0 0 8px 2px #ffd080 } 50% { transform: scaleY(1.05); box-shadow: 0 0 14px 5px #ffd080 } 100% { transform: scaleY(1); box-shadow: 0 0 10px 3px #ffd080 } }

.scn-hamlet-cherub {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-hamlet-cherub .hc-backdrop {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: hc-back 20s ease-in-out infinite alternate;
}
.scn-hamlet-cherub .hc-arch {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: hc-arch 15s ease-in-out infinite;
}
.scn-hamlet-cherub .hc-cherub {
  position: absolute; bottom: 45%; left: 40%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #c0c0d0 0%, #a0a0b0 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(255,255,255,.3);
  animation: hc-cherub 8s ease-in-out infinite alternate;
}
.scn-hamlet-cherub .hc-hamlet {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-cherub .hc-door {
  position: absolute; bottom: 20%; right: 15%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
  animation: hc-door 18s ease-in-out infinite;
}
.scn-hamlet-cherub .hc-light {
  position: absolute; bottom: 40%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,255,255,.12) 0%, transparent 70%);
  transform: rotate(-10deg);
  animation: hc-light 6s ease-in-out infinite alternate;
}
@keyframes hc-back { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hc-arch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) translateY(2px) } }
@keyframes hc-cherub { 0% { transform: translateY(0) rotate(-5deg); opacity:.85 } 50% { transform: translateY(-4px) rotate(5deg); opacity:1 } 100% { transform: translateY(0) rotate(-5deg); opacity:.85 } }
@keyframes hc-hamlet { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(0deg) } 75% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hc-door { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hc-light { 0% { opacity:.4; transform: rotate(-10deg) scaleX(1) } 50% { opacity:.8; transform: rotate(-5deg) scaleX(1.1) } 100% { opacity:.4; transform: rotate(-10deg) scaleX(1) } }

.scn-king-follow-speed {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-king-follow-speed .kfs-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: kfs-floor 8s ease-in-out infinite;
}
.scn-king-follow-speed .kfs-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: kfs-wall 12s ease-in-out infinite alternate;
}
.scn-king-follow-speed .kfs-door-left {
  position: absolute; bottom: 22%; left: 10%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.7);
  animation: kfs-door 14s ease-in-out infinite;
}
.scn-king-follow-speed .kfs-door-right {
  position: absolute; bottom: 22%; right: 10%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.7);
  animation: kfs-door 14s ease-in-out infinite 7s;
}
.scn-king-follow-speed .kfs-figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kfs-figure 3s ease-in-out infinite;
}
.scn-king-follow-speed .kfs-figure-b {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kfs-figure 3s ease-in-out infinite 1.5s;
}
.scn-king-follow-speed .kfs-scribe {
  position: absolute; bottom: 20%; left: 60%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kfs-scribe 5s ease-in-out infinite;
}
.scn-king-follow-speed .kfs-torch {
  position: absolute; bottom: 38%; left: 48%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #ffa040 0%, #b06020 60%, #402010 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 15px 5px #ffa040;
  animation: kfs-torch 3s ease-in-out infinite alternate;
}
@keyframes kfs-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes kfs-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes kfs-door { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(0.94) translateY(4px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes kfs-figure { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(4px) rotate(3deg) } 40% { transform: translateX(8px) rotate(-2deg) } 60% { transform: translateX(12px) rotate(4deg) } 80% { transform: translateX(16px) rotate(-1deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes kfs-scribe { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(4px) rotate(0deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kfs-torch { 0% { transform: scaleY(1); box-shadow: 0 0 12px 3px #ffa040 } 50% { transform: scaleY(1.08); box-shadow: 0 0 20px 6px #ffa040 } 100% { transform: scaleY(1); box-shadow: 0 0 12px 3px #ffa040 } }

/* Scene: king-how-long – bright interior, tense mood, warm golds */
.scn-king-how-long {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #a88466 100%), radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-king-how-long .window {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #ffeecc 0%, #ffe8b0 30%, #fff5e0 70%, #ffe0a0 100%);
  border: 8px solid #8b6f47;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.3), 0 0 60px rgba(255,200,100,0.2);
  animation: kh1-window 8s ease-in-out infinite alternate;
}
.scn-king-how-long .throne {
  position: absolute; bottom: 12%; left: 10%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #6b4a2e 0%, #3d2816 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 10px 8px 20px rgba(0,0,0,0.5);
  animation: kh1-throne 6s ease-in-out infinite;
}
.scn-king-how-long .king {
  position: absolute; bottom: 18%; left: 14%; width: 16%; height: 40%;
  background: radial-gradient(ellipse 70% 60% at 30% 40%, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.6);
  animation: kh1-king 4s ease-in-out infinite alternate;
}
.scn-king-how-long .cushion {
  position: absolute; bottom: 12%; left: 12%; width: 24%; height: 4%;
  background: linear-gradient(90deg, #7a3b2e 0%, #b06040 50%, #7a3b2e 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: kh1-cushion 3s ease-in-out infinite;
}
.scn-king-how-long .candle {
  position: absolute; bottom: 25%; right: 18%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #ffe8a0 0%, #b08040 50%, #6b4a2e 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: kh1-candle 2s ease-in-out infinite alternate;
}
.scn-king-how-long .shadow {
  position: absolute; bottom: 0; left: 5%; width: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: kh1-shadow 7s ease-in-out infinite alternate;
}
@keyframes kh1-window {
  0% { opacity: 0.85; box-shadow: inset 0 0 30px rgba(255,200,100,0.2), 0 0 50px rgba(255,200,100,0.1); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,220,150,0.4), 0 0 80px rgba(255,220,150,0.2); }
  100% { opacity: 0.9; box-shadow: inset 0 0 35px rgba(255,200,100,0.25), 0 0 60px rgba(255,200,100,0.15); }
}
@keyframes kh1-throne {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.005) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes kh1-king {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes kh1-cushion {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
}
@keyframes kh1-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(255,200,100,0.4); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,220,150,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,200,100,0.5); }
}
@keyframes kh1-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  100% { opacity: 0.6; transform: scaleX(1.1); }
}

/* Scene: king-follow-her – bright interior, tense mood, warm with cool accent */
.scn-king-follow-her {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89878 100%), radial-gradient(ellipse at 80% 20%, #ffe0b0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-king-follow-her .door {
  position: absolute; top: 5%; right: 8%; width: 20%; height: 75%;
  background: linear-gradient(180deg, #8b6f47 0%, #5a3e22 100%);
  border-radius: 4px 4px 0 0;
  border: 6px solid #4a301a;
  box-shadow: -8px 0 20px rgba(0,0,0,0.4);
  animation: kf2-door 5s ease-in-out infinite alternate;
}
.scn-king-follow-her .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a301a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: kf2-floor 10s ease-in-out infinite;
}
.scn-king-follow-her .king {
  position: absolute; bottom: 22%; left: 20%; width: 18%; height: 45%;
  background: radial-gradient(ellipse 70% 60% at 40% 40%, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: kf2-king 3s ease-in-out infinite alternate;
}
.scn-king-follow-her .ophelia {
  position: absolute; bottom: 20%; left: 55%; width: 14%; height: 38%;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #3a2a4e 0%, #1a1030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.4);
  animation: kf2-ophelia 6s ease-in-out infinite;
}
.scn-king-follow-her .shadow-king {
  position: absolute; bottom: 0; left: 15%; width: 25%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  filter: blur(5px);
  animation: kf2-shadow 4s ease-in-out infinite alternate;
}
.scn-king-follow-her .shadow-ophelia {
  position: absolute; bottom: 0; left: 55%; width: 20%; height: 18%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(5px);
  animation: kf2-shadow 5s ease-in-out infinite alternate reverse;
}
@keyframes kf2-door {
  0% { transform: scaleX(1); box-shadow: -8px 0 15px rgba(0,0,0,0.3); }
  50% { transform: scaleX(1.02); box-shadow: -8px 0 25px rgba(0,0,0,0.5); }
  100% { transform: scaleX(1); box-shadow: -8px 0 15px rgba(0,0,0,0.3); }
}
@keyframes kf2-floor {
  0%,100% { background-position: 0 0; }
  50% { background-position: 10px 0; }
}
@keyframes kf2-king {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes kf2-ophelia {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes kf2-shadow {
  0% { opacity: 0.2; filter: blur(4px); }
  100% { opacity: 0.5; filter: blur(6px); }
}

/* Scene: king-poison-of-grief – dark mood with bright interior lighting, subdued golds */
.scn-king-poison-of-grief {
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 40%, #2a1a0e 100%), radial-gradient(ellipse at 30% 70%, #6b5a4e 0%, transparent 70%);
  background-blend-mode: normal;
}
.scn-king-poison-of-grief .window {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 55%;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 50%, #b8a888 100%);
  border: 6px solid #4a301a;
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(200,180,150,0.2), 0 0 40px rgba(200,180,150,0.1);
  animation: kp3-window 12s ease-in-out infinite alternate;
}
.scn-king-poison-of-grief .table {
  position: absolute; bottom: 18%; left: 45%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #3d2816 0%, #5a3e22 50%, #3d2816 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.4);
  animation: kp3-table 7s ease-in-out infinite;
}
.scn-king-poison-of-grief .candle {
  position: absolute; bottom: 22%; left: 55%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #ffe8a0 0%, #b08040 70%, #6b4a2e 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.4);
  animation: kp3-candle 2s ease-in-out infinite alternate;
}
.scn-king-poison-of-grief .figure {
  position: absolute; bottom: 10%; left: 55%; width: 16%; height: 40%;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #2a1e14 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 12px rgba(0,0,0,0.6);
  animation: kp3-figure 4s ease-in-out infinite alternate;
}
.scn-king-poison-of-grief .portrait {
  position: absolute; top: 12%; right: 15%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a301a 100%);
  border: 4px solid #3d2816;
  border-radius: 2px;
  box-shadow: -4px 4px 12px rgba(0,0,0,0.5);
  animation: kp3-portrait 8s ease-in-out infinite;
}
.scn-king-poison-of-grief .vase {
  position: absolute; bottom: 16%; left: 32%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: kp3-vase 6s ease-in-out infinite;
}
@keyframes kp3-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(200,180,150,0.1), 0 0 30px rgba(200,180,150,0.05); }
  50% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(200,180,150,0.3), 0 0 60px rgba(200,180,150,0.15); }
  100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(200,180,150,0.15), 0 0 40px rgba(200,180,150,0.1); }
}
@keyframes kp3-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes kp3-candle {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,220,150,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); }
}
@keyframes kp3-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes kp3-portrait {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
@keyframes kp3-vase {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

/* Scene: king-noise – bright interior, tense, sharp contrasts */
.scn-king-noise {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0be9e 40%, #b09878 100%), radial-gradient(ellipse at 70% 30%, #ffe8b0 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-king-noise .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #7a5a3e 0%, #4a301a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: kn4-floor 12s ease-in-out infinite;
}
.scn-king-noise .king {
  position: absolute; bottom: 20%; left: 25%; width: 18%; height: 50%;
  background: radial-gradient(ellipse 70% 60% at 40% 40%, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 14px rgba(0,0,0,0.5);
  animation: kn4-king 2s ease-in-out infinite alternate;
}
.scn-king-noise .guard {
  position: absolute; bottom: 20%; right: 12%; width: 16%; height: 55%;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #2a2a1e 0%, #0e0e08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  box-shadow: -2px 0 10px rgba(0,0,0,0.4);
  animation: kn4-guard 3s ease-in-out infinite;
}
.scn-king-noise .door {
  position: absolute; top: 2%; right: 5%; width: 18%; height: 80%;
  background: linear-gradient(180deg, #8b6f47 0%, #5a3e22 100%);
  border: 6px solid #4a301a;
  border-radius: 4px;
  box-shadow: -10px 0 20px rgba(0,0,0,0.4);
  animation: kn4-door 1.5s ease-in-out infinite alternate;
}
.scn-king-noise .sconce {
  position: absolute; top: 20%; left: 8%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #ffe8a0 0%, #b08040 70%, #6b4a2e 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.5);
  animation: kn4-sconce 2s ease-in-out infinite alternate;
}
.scn-king-noise .shadow {
  position: absolute; bottom: 0; left: 20%; width: 35%; height: 22%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: kn4-shadow 3s ease-in-out infinite alternate;
}
@keyframes kn4-floor {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
}
@keyframes kn4-king {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  50% { transform: translateX(4px) rotate(3deg) scaleX(1.02); }
  100% { transform: translateX(0) rotate(-3deg) scaleX(1); }
}
@keyframes kn4-guard {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes kn4-door {
  0% { transform: scaleX(1); box-shadow: -10px 0 15px rgba(0,0,0,0.3); }
  50% { transform: scaleX(1.03); box-shadow: -10px 0 30px rgba(0,0,0,0.6); }
  100% { transform: scaleX(1); box-shadow: -10px 0 15px rgba(0,0,0,0.3); }
}
@keyframes kn4-sconce {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,220,150,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); }
}
@keyframes kn4-shadow {
  0% { opacity: 0.2; filter: blur(4px); }
  100% { opacity: 0.6; filter: blur(8px); }
}

/* closet-picture */
.scn-closet-picture {
  background: linear-gradient(135deg, #1a0f08 0%, #2a1a10 40%, #3a2018 100%),
              radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 60%);
}
.scn-closet-picture .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a1a10 0%, #1f0f0a 100%);
  opacity: 0.7;
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-closet-picture .frame-left {
  position: absolute; left: 15%; top: 20%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);
  border: 6px solid #4a2818;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 8px 16px rgba(0,0,0,0.8);
  animation: cp-frame 8s ease-in-out infinite;
}
.scn-closet-picture .portrait-left-shadow {
  position: absolute; left: 20%; top: 28%; width: 20%; height: 30%;
  background: #0a0503;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(8px);
  opacity: 0.5;
  animation: cp-shadow 6s ease-in-out infinite alternate;
}
.scn-closet-picture .portrait-left-profile {
  position: absolute; left: 22%; top: 25%; width: 16%; height: 36%;
  background: linear-gradient(135deg, #4a2515 0%, #2a1008 100%);
  border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: inset 0 0 10px #1a0a05;
  animation: cp-profile 4s ease-in-out infinite alternate;
}
.scn-closet-picture .frame-right {
  position: absolute; right: 15%; top: 25%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #4a2818 0%, #2a1008 100%);
  border: 4px solid #3a1a0e;
  border-radius: 3px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5), 0 6px 12px rgba(0,0,0,0.7);
  animation: cp-frame 10s ease-in-out infinite;
}
.scn-closet-picture .portrait-right-shadow {
  position: absolute; right: 20%; top: 30%; width: 15%; height: 25%;
  background: #0a0503;
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  filter: blur(6px);
  opacity: 0.4;
  animation: cp-shadows 7s ease-in-out infinite alternate;
}
.scn-closet-picture .portrait-right-profile {
  position: absolute; right: 22%; top: 28%; width: 12%; height: 28%;
  background: linear-gradient(135deg, #3a1a10 0%, #1a0a05 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(3deg);
  box-shadow: inset 0 0 8px #0a0503;
  animation: cp-profile2 5s ease-in-out infinite alternate;
}
.scn-closet-picture .candle {
  position: absolute; left: 48%; bottom: 15%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0c060 0%, #c08030 30%, #7a4010 70%, #3a1a0a 100%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 0 15px #ffb040;
  animation: cp-candle 3s ease-in-out infinite;
}
.scn-closet-picture .glow-candle {
  position: absolute; left: 46%; bottom: 25%; width: 8%; height: 20%;
  background: radial-gradient(circle, #ffc040 0%, #ffa020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  opacity: 0.25;
  animation: cp-glow 2s ease-in-out infinite alternate;
}
@keyframes cp-wall { 0% { opacity: 0.7 } 50% { opacity: 0.8 } 100% { opacity: 0.65 } }
@keyframes cp-frame { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes cp-shadow { 0% { opacity: 0.5; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(2px) } 100% { opacity: 0.4; transform: translateX(-1px) } }
@keyframes cp-profile { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.03) } 100% { transform: rotate(-6deg) scale(0.97) } }
@keyframes cp-shadows { 0% { opacity: 0.4 } 50% { opacity: 0.5 } 100% { opacity: 0.35 } }
@keyframes cp-profile2 { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(2deg) scale(0.98) } }
@keyframes cp-candle { 0% { height: 12%; box-shadow: 0 0 15px #ffb040 } 50% { height: 13%; box-shadow: 0 0 20px #ffc060 } 100% { height: 11%; box-shadow: 0 0 12px #ff9020 } }
@keyframes cp-glow { 0% { opacity: 0.25; transform: scale(1) } 50% { opacity: 0.35; transform: scale(1.1) } 100% { opacity: 0.2; transform: scale(0.9) } }

/* closet-comparison */
.scn-closet-comparison {
  background: linear-gradient(180deg, #1a0f08 0%, #2a1a10 40%, #3a2018 100%),
              radial-gradient(ellipse at 60% 30%, #4a2a1a 0%, transparent 50%);
}
.scn-closet-comparison .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0f08 0%, #2a1a10 100%);
  opacity: 0.6;
  animation: cc-wall 15s ease-in-out infinite alternate;
}
.scn-closet-comparison .frame-big {
  position: absolute; left: 10%; top: 15%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);
  border: 8px solid #4a2818;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 10px 20px rgba(0,0,0,0.9);
  animation: cc-frame-big 10s ease-in-out infinite;
}
.scn-closet-comparison .figure-god {
  position: absolute; left: 20%; top: 25%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 20%, #8a6040 0%, #4a2818 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 20px #3a1a0a;
  transform: rotate(-10deg);
  animation: cc-god 6s ease-in-out infinite alternate;
}
.scn-closet-comparison .rays {
  position: absolute; left: 15%; top: 18%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(255,180,80,0.3) 0%, transparent 60%),
              linear-gradient(225deg, rgba(255,180,80,0.2) 0%, transparent 50%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cc-rays 8s ease-in-out infinite;
}
.scn-closet-comparison .frame-small {
  position: absolute; right: 10%; top: 25%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #3a1a10 0%, #1a0a05 100%);
  border: 4px solid #2a1008;
  border-radius: 3px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5), 0 6px 12px rgba(0,0,0,0.7);
  animation: cc-frame-small 12s ease-in-out infinite;
}
.scn-closet-comparison .figure-mortal {
  position: absolute; right: 18%; top: 30%; width: 12%; height: 25%;
  background: #1a0a05;
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(5deg);
  box-shadow: inset 0 0 5px #0a0503;
  animation: cc-mortal 5s ease-in-out infinite alternate;
}
.scn-closet-comparison .shadow-figure {
  position: absolute; left: 22%; top: 40%; width: 15%; height: 20%;
  background: #0a0503;
  border-radius: 50%;
  filter: blur(12px);
  opacity: 0.6;
  animation: cc-shadow 7s ease-in-out infinite alternate;
}
.scn-closet-comparison .floor-line {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, transparent 10%, #2a1a10 30%, #3a2018 70%, transparent 90%);
  opacity: 0.5;
  animation: cc-floor 20s ease-in-out infinite;
}
@keyframes cc-wall { 0% { opacity: 0.6 } 50% { opacity: 0.7 } 100% { opacity: 0.55 } }
@keyframes cc-frame-big { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(0.99) } }
@keyframes cc-god { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.05) } 100% { transform: rotate(-12deg) scale(0.95) } }
@keyframes cc-rays { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.1) } 100% { opacity: 0.25; transform: scale(0.9) } }
@keyframes cc-frame-small { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1.02) } }
@keyframes cc-mortal { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(3deg) scale(0.97) } 100% { transform: rotate(7deg) scale(1.03) } }
@keyframes cc-shadow { 0% { opacity: 0.6; transform: translate(0,0) } 50% { opacity: 0.7; transform: translate(2px, -2px) } 100% { opacity: 0.5; transform: translate(-1px, 1px) } }
@keyframes cc-floor { 0% { opacity: 0.5 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

/* closet-reason */
.scn-closet-reason {
  background: linear-gradient(180deg, #1a0f08 0%, #2a1a10 50%, #1a0f08 100%),
              radial-gradient(ellipse at 50% 40%, #3a2018 0%, transparent 60%);
}
.scn-closet-reason .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a0f08 0%, #2a1a10 50%, #1a0f08 100%);
  opacity: 0.5;
  animation: cr-wall 14s ease-in-out infinite alternate;
}
.scn-closet-reason .figure-reason {
  position: absolute; left: 35%; bottom: 20%; width: 30%; height: 50%;
  background: #1a0f08;
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: inset 0 -20px 20px #0a0503;
  animation: cr-figure 8s ease-in-out infinite;
}
.scn-closet-reason .hand-chin {
  position: absolute; left: 46%; bottom: 45%; width: 6%; height: 10%;
  background: #1a0f08;
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: cr-hand 5s ease-in-out infinite alternate;
}
.scn-closet-reason .scale-beam {
  position: absolute; left: 30%; top: 25%; width: 40%; height: 2%;
  background: linear-gradient(90deg, #6a4020 0%, #8a6040 50%, #6a4020 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px #4a2818;
  animation: cr-beam 6s ease-in-out infinite;
}
.scn-closet-reason .pan-left {
  position: absolute; left: 30%; top: 15%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 80%, #5a3020 0%, #2a1008 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -5px 10px #0a0503;
  animation: cr-pan 7s ease-in-out infinite alternate;
}
.scn-closet-reason .pan-right {
  position: absolute; right: 30%; top: 15%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 80%, #3a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -5px 10px #0a0503;
  animation: cr-pan 7s ease-in-out infinite alternate-reverse;
}
.scn-closet-reason .pendulum {
  position: absolute; left: 49%; top: 8%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #8a6040 0%, #4a2818 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: cr-pendulum 4s ease-in-out infinite;
}
.scn-closet-reason .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #0a0503 100%);
  opacity: 0.7;
  animation: cr-shadow 10s ease-in-out infinite alternate;
}
@keyframes cr-wall { 0% { opacity: 0.5 } 50% { opacity: 0.6 } 100% { opacity: 0.45 } }
@keyframes cr-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cr-hand { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(0deg) scale(0.9) } }
@keyframes cr-beam { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes cr-pan { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(2px) scale(0.95) } }
@keyframes cr-pendulum { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes cr-shadow { 0% { opacity: 0.7 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* closet-shame */
.scn-closet-shame {
  background: linear-gradient(180deg, #1a0f08 0%, #2a1a10 40%, #3a2018 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 50%);
}
.scn-closet-shame .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0f08 0%, #2a1a10 100%);
  opacity: 0.8;
  animation: cs-wall 16s ease-in-out infinite alternate;
}
.scn-closet-shame .figure-shame {
  position: absolute; left: 30%; bottom: 20%; width: 40%; height: 55%;
  background: #1a0f08;
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: inset 0 -20px 20px #0a0503;
  animation: cs-figure 9s ease-in-out infinite;
}
.scn-closet-shame .head-shame {
  position: absolute; left: 38%; bottom: 55%; width: 24%; height: 20%;
  background: linear-gradient(180deg, #1a0f08 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cs-head 4s ease-in-out infinite alternate;
}
.scn-closet-shame .hands-cover {
  position: absolute; left: 42%; bottom: 60%; width: 16%; height: 12%;
  background: #2a1a10;
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cs-hands 3s ease-in-out infinite alternate;
}
.scn-closet-shame .blush {
  position: absolute; left: 45%; bottom: 63%; width: 10%; height: 4%;
  background: radial-gradient(circle, #b87878 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  opacity: 0.4;
  animation: cs-blush 5s ease-in-out infinite;
}
.scn-closet-shame .shadow-body {
  position: absolute; left: 30%; bottom: 0; width: 40%; height: 25%;
  background: #0a0503;
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  filter: blur(15px);
  opacity: 0.5;
  animation: cs-shadow 7s ease-in-out infinite alternate;
}
.scn-closet-shame .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  opacity: 0.6;
}
.scn-closet-shame .glow-faint {
  position: absolute; left: 38%; bottom: 40%; width: 24%; height: 30%;
  background: radial-gradient(circle, rgba(180,120,120,0.1) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(20px);
  animation: cs-glow 6s ease-in-out infinite alternate;
}
@keyframes cs-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes cs-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cs-head { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(0.98) } }
@keyframes cs-hands { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(5deg) scale(0.9) } }
@keyframes cs-blush { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.8) } }
@keyframes cs-shadow { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.05) } 100% { opacity: 0.4; transform: scale(0.95) } }
@keyframes cs-glow { 0% { opacity: 0.1; transform: scale(1) } 50% { opacity: 0.2; transform: scale(1.1) } 100% { opacity: 0.08; transform: scale(0.9) } }

.scn-closet-assurance {
  background:
    linear-gradient(180deg, #0f0a1a 0%, #1a142a 40%, #2a1f3a 100%),
    radial-gradient(ellipse at 50% 100%, #2a1f3a 0%, transparent 70%);
}
.scn-closet-assurance .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1f3a 0%, #1a142a 100%);
}
.scn-closet-assurance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a142a 0%, #2a1f3a 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
}
.scn-closet-assurance .window-glow {
  position: absolute; top: 18%; left: 28%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(200,210,240,0.15) 0%, transparent 70%);
  border-radius: 6px;
  box-shadow: 0 0 40px 20px rgba(200,210,240,0.08);
  animation: ca-glow 8s ease-in-out infinite alternate;
}
.scn-closet-assurance .figure-left {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a142a 0%, #0f0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-breathe-l 5s ease-in-out infinite;
}
.scn-closet-assurance .figure-right {
  position: absolute; bottom: 24%; right: 32%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a142a 0%, #0f0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-breathe-r 5s ease-in-out infinite 2.5s;
}
.scn-closet-assurance .candle {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 20px 8px rgba(180,140,80,0.4);
  animation: ca-flicker 3s ease-in-out infinite;
}
.scn-closet-assurance .shadow-floor {
  position: absolute; bottom: 24%; left: 28%; right: 28%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: ca-sway 6s ease-in-out infinite;
}
@keyframes ca-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.95); }
  100% { opacity: 0.4; transform: scale(1.05); }
}
@keyframes ca-breathe-l {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(2px) translateY(-2px) rotate(0deg); }
  66% { transform: translateX(-1px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes ca-breathe-r {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  33% { transform: translateX(-2px) translateY(-2px) rotate(0deg); }
  66% { transform: translateX(1px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes ca-flicker {
  0% { opacity: 0.9; box-shadow: 0 0 15px 6px rgba(180,140,80,0.3); }
  25% { opacity: 1; box-shadow: 0 0 25px 10px rgba(180,140,80,0.5); }
  50% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(180,140,80,0.2); }
  75% { opacity: 0.95; box-shadow: 0 0 20px 8px rgba(180,140,80,0.4); }
  100% { opacity: 0.85; box-shadow: 0 0 18px 7px rgba(180,140,80,0.35); }
}
@keyframes ca-sway {
  0% { transform: translateX(-2px) scaleX(1); }
  50% { transform: translateX(2px) scaleX(0.95); }
  100% { transform: translateX(-2px) scaleX(1); }
}

.scn-closet-schoolfellows {
  background:
    linear-gradient(180deg, #12101a 0%, #1c1828 40%, #2a2238 100%),
    radial-gradient(ellipse at 30% 100%, #2a2238 0%, transparent 60%);
}
.scn-closet-schoolfellows .backdrop {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2238 0%, #1c1828 100%);
}
.scn-closet-schoolfellows .desk {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  transform: perspective(600px) rotateX(5deg);
}
.scn-closet-schoolfellows .letter-a {
  position: absolute; bottom: 30%; left: 28%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cs-ashift 7s ease-in-out infinite;
}
.scn-closet-schoolfellows .letter-b {
  position: absolute; bottom: 30%; left: 38%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cs-bshift 7s ease-in-out infinite 3.5s;
}
.scn-closet-schoolfellows .figure-scholar-a {
  position: absolute; bottom: 30%; left: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1c1828 0%, #12101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-stir-a 4s ease-in-out infinite;
}
.scn-closet-schoolfellows .figure-scholar-b {
  position: absolute; bottom: 30%; right: 22%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1c1828 0%, #12101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-stir-b 4s ease-in-out infinite 2s;
}
.scn-closet-schoolfellows .lamp {
  position: absolute; bottom: 34%; left: 46%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #b08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.35);
  animation: cs-lamp 5s ease-in-out infinite;
}
@keyframes cs-ashift {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes cs-bshift {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(9deg) translateY(-1px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes cs-stir-a {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cs-stir-b {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cs-lamp {
  0% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(200,160,80,0.25); }
  30% { opacity: 1; box-shadow: 0 0 35px 12px rgba(200,160,80,0.4); }
  60% { opacity: 0.85; box-shadow: 0 0 15px 5px rgba(200,160,80,0.2); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(200,160,80,0.25); }
}

.scn-closet-counsellor {
  background:
    linear-gradient(180deg, #0a0710 0%, #100c1a 40%, #1a1428 100%),
    radial-gradient(ellipse at 50% 100%, #1a1428 0%, transparent 80%);
}
.scn-closet-counsellor .darkness {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(10,7,16,0.9) 0%, transparent 50%);
}
.scn-closet-counsellor .draped-form {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 60%, #2a1e38 0%, #100c1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  filter: blur(6px);
  animation: cc-heave 12s ease-in-out infinite;
}
.scn-closet-counsellor .figure-crouch {
  position: absolute; bottom: 20%; left: 36%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #1a1428 0%, #0a0710 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cc-bend 8s ease-in-out infinite;
}
.scn-closet-counsellor .shadow-pool {
  position: absolute; bottom: 12%; left: 28%; right: 28%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(12px);
  animation: cc-spread 15s ease-in-out infinite;
}
.scn-closet-counsellor .doorway-light {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, rgba(60,50,80,0.2) 0%, transparent 100%);
  border-radius: 4px;
  filter: blur(8px);
  animation: cc-door 10s ease-in-out infinite alternate;
}
.scn-closet-counsellor .hanging-rope {
  position: absolute; top: 8%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 2px;
  animation: cc-swing 11s ease-in-out infinite;
}
@keyframes cc-heave {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  33% { transform: scale(1.02) translateY(-2px); opacity: 0.9; }
  66% { transform: scale(0.98) translateY(1px); opacity: 0.7; }
  100% { transform: scale(1) translateY(0); opacity: 0.8; }
}
@keyframes cc-bend {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cc-spread {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.8; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
}
@keyframes cc-door {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.4; transform: scaleY(1.05); }
  100% { opacity: 0.2; transform: scaleY(1); }
}
@keyframes cc-swing {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

.scn-king-queen-concern {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e0c8a8 40%, #c8a880 100%),
    radial-gradient(ellipse at 50% 0%, #f5e8d0 0%, transparent 60%);
}
.scn-king-queen-concern .bright-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d8bea0 100%);
}
.scn-king-queen-concern .window-light {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,235,200,0.4) 0%, transparent 70%);
  filter: blur(20px);
  animation: kq-light 6s ease-in-out infinite alternate;
}
.scn-king-queen-concern .king {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: kq-stance 8s ease-in-out infinite;
}
.scn-king-queen-concern .queen {
  position: absolute; bottom: 22%; right: 30%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: kq-stance 8s ease-in-out infinite 4s;
}
.scn-king-queen-concern .throne-back {
  position: absolute; bottom: 18%; left: 26%; right: 26%; height: 30%;
  background: linear-gradient(90deg, transparent 15%, #6a5038 20%, #6a5038 80%, transparent 85%);
  border-radius: 10% 10% 0 0;
  filter: blur(2px);
}
.scn-king-queen-concern .shadow-king {
  position: absolute; bottom: 12%; left: 30%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: kq-shad 8s ease-in-out infinite;
}
.scn-king-queen-concern .shadow-queen {
  position: absolute; bottom: 14%; right: 30%; width: 26px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%);
  filter: blur(4px);
  animation: kq-shad 8s ease-in-out infinite 4s;
}
@keyframes kq-light {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes kq-stance {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes kq-shad {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.05); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

.scn-king-ambassadors-dispatch { background: linear-gradient(180deg, #d4a56a 0%, #b88a4a 40%, #8a5a2a 100%), radial-gradient(ellipse at 50% 100%, #ffdd88 0%, transparent 70%); }
.scn-king-ambassadors-dispatch .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c9a060 0%, #a07030 100%); animation: kd-wall 20s ease-in-out infinite alternate; }
.scn-king-ambassadors-dispatch .floor  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #704020 0%, #402010 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-king-ambassadors-dispatch .throne { position:absolute; bottom:15%; right:12%; width:50px; height:90px; background: linear-gradient(90deg, #805020 0%, #603810 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: kd-throne 15s ease-in-out infinite; }
.scn-king-ambassadors-dispatch .king   { position:absolute; bottom:16%; left:30%; width:20px; height:70px; background: linear-gradient(180deg, #302010 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; transform-origin: bottom center; animation: kd-king 6s ease-in-out infinite; }
.scn-king-ambassadors-dispatch .scroll { position:absolute; bottom:26%; left:23%; width:30px; height:8px; background: linear-gradient(90deg, #f0e0c0 0%, #d0b080 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: kd-scroll 4s ease-in-out infinite; }
.scn-king-ambassadors-dispatch .candle { position:absolute; bottom:28%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius: 2px; box-shadow: inset 0 -4px 4px rgba(0,0,0,.3); }
.scn-king-ambassadors-dispatch .flame  { position:absolute; bottom:54%; left:54.6%; width:10px; height:16px; background: radial-gradient(circle, #ffee80 0%, #ffa040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.3); animation: kd-flame 2s ease-in-out infinite alternate; }
@keyframes kd-wall     { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes kd-throne   { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes kd-king     { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(10px, -2px) rotate(2deg) } 70% { transform: translate(15px, -1px) rotate(-1deg) } 100% { transform: translate(20px,0) rotate(0deg) } }
@keyframes kd-scroll   { 0%,100% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(5px,-2px) rotate(3deg) } }
@keyframes kd-flame    { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.15) translateY(-3px); opacity:1 } 100% { transform: scale(.95) translateY(1px); opacity:.7 } }

.scn-hamlet-first-soliloquy { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 70% 30%, #6a6a8a 0%, transparent 60%); }
.scn-hamlet-first-soliloquy .dark-wall      { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); animation: hf-wall 30s ease-in-out infinite alternate; }
.scn-hamlet-first-soliloquy .window-bright  { position:absolute; top:12%; right:10%; width:70px; height:100px; background: linear-gradient(180deg, #c8d8f0 0%, #88a0d0 100%); border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(136,160,208,.4); animation: hf-window 8s ease-in-out infinite alternate; }
.scn-hamlet-first-soliloquy .window-frame   { position:absolute; top:12%; right:10%; width:70px; height:100px; border: 3px solid #3a3a4a; border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; background: none; }
.scn-hamlet-first-soliloquy .hamlet-figure  { position:absolute; bottom:12%; left:30%; width:22px; height:80px; background: linear-gradient(180deg, #0a0a12 70%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 50% 50%; transform-origin: bottom center; box-shadow: -4px 0 6px rgba(0,0,0,.5); animation: hf-hamlet 10s ease-in-out infinite; }
.scn-hamlet-first-soliloquy .chair          { position:absolute; bottom:10%; left:25%; width:40px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); animation: hf-chair 20s ease-in-out infinite; }
.scn-hamlet-first-soliloquy .shadow         { position:absolute; bottom:8%; left:28%; width:30px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; animation: hf-shadow 15s ease-in-out infinite; }
@keyframes hf-wall     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes hf-window   { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes hf-hamlet   { 0% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(5px, -2px) rotate(1deg) } 50% { transform: translate(10px, 0) rotate(0deg) } 75% { transform: translate(5px, -1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes hf-chair    { 0%,100% { transform: translate(0) } 50% { transform: translate(-2px, -1px) rotate(-1deg) } }
@keyframes hf-shadow   { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) translateX(2px) } }

.scn-king-consoles-hamlet { background: linear-gradient(180deg, #c8a050 0%, #a07830 40%, #805020 100%), radial-gradient(ellipse at 30% 70%, #ffd080 0%, transparent 60%); }
.scn-king-consoles-hamlet .warm-wall    { position:absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #b08838 0%, #906828 100%); animation: kh-wall 18s ease-in-out infinite alternate; }
.scn-king-consoles-hamlet .warm-floor   { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #603810 0%, #402000 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-king-consoles-hamlet .king-figure  { position:absolute; bottom:12%; right:25%; width:24px; height:80px; background: linear-gradient(180deg, #302010 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 80% 80% 50% 50%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: kh-king 8s ease-in-out infinite; }
.scn-king-consoles-hamlet .hamlet-seated{ position:absolute; bottom:10%; left:25%; width:22px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: kh-hamlet 10s ease-in-out infinite; }
.scn-king-consoles-hamlet .table        { position:absolute; bottom:18%; left:35%; width:60px; height:8px; background: linear-gradient(90deg, #704020 0%, #502818 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-king-consoles-hamlet .goblet       { position:absolute; bottom:20%; left:44%; width:10px; height:20px; background: linear-gradient(180deg, #c88540 0%, #a06830 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3); animation: kh-goblet 5s ease-in-out infinite alternate; }
.scn-king-consoles-hamlet .warm-glow    { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 20%, rgba(255,200,100,.15) 0%, transparent 60%); pointer-events:none; animation: kh-glow 12s ease-in-out infinite alternate; }
@keyframes kh-wall     { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kh-king     { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(-6px, -2px) rotate(-2deg) } 70% { transform: translate(-12px, -1px) rotate(1deg) } 100% { transform: translate(-18px,0) rotate(0deg) } }
@keyframes kh-hamlet   { 0%,100% { transform: scale(1) translate(0,0) rotate(0deg) } 50% { transform: scale(1.02) translate(2px, -2px) rotate(2deg) } }
@keyframes kh-goblet   { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes kh-glow     { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 } }

.scn-hamlet-soliloquy-death { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 60%); }
.scn-hamlet-soliloquy-death .dark-wall  { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #050510 0%, #0a0a1a 100%); animation: hd-wall 25s ease-in-out infinite alternate; }
.scn-hamlet-soliloquy-death .dark-floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #0a0a12 0%, #000005 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 2px 4px rgba(0,0,0,.6); }
.scn-hamlet-soliloquy-death .desk       { position:absolute; bottom:12%; left:30%; width:80px; height:6px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-hamlet-soliloquy-death .candle     { position:absolute; bottom:16%; left:42%; width:6px; height:24px; background: linear-gradient(180deg, #d0b890 0%, #a08860 100%); border-radius: 2px; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); }
.scn-hamlet-soliloquy-death .flame      { position:absolute; bottom:40%; left:41.6%; width:12px; height:18px; background: radial-gradient(circle, #ffdd80 0%, #ff8030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 25px 8px #ff8030, 0 0 50px 16px rgba(255,128,48,.3); animation: hd-flame 3s ease-in-out infinite alternate; }
.scn-hamlet-soliloquy-death .skull      { position:absolute; bottom:18%; left:38%; width:18px; height:20px; background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3); animation: hd-skull 15s ease-in-out infinite; }
.scn-hamlet-soliloquy-death .hamlet     { position:absolute; bottom:10%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: -6px 0 10px rgba(0,0,0,.7); animation: hd-hamlet 12s ease-in-out infinite; }
@keyframes hd-wall     { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.65 } }
@keyframes hd-flame    { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.2) translateY(-5px); opacity:1 } 100% { transform: scale(.8) translateY(2px); opacity:.6 } }
@keyframes hd-skull    { 0% { transform: rotate(-2deg) translate(0,0) } 50% { transform: rotate(2deg) translate(1px,-1px) } 100% { transform: rotate(-2deg) translate(0,0) } }
@keyframes hd-hamlet   { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(8px, -2px) rotate(-2deg) } 50% { transform: translate(16px, 0) rotate(0deg) } 75% { transform: translate(8px, -1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }

/* scene: second-clown-who-builds-stronger */
.scn-second-clown-who-builds-stronger {
  background: linear-gradient(180deg, #6b7a7a 0%, #4d5a5a 40%, #3a4545 100%), radial-gradient(ellipse at 50% 80%, #5c6a6a 0%, transparent 70%);
}
.scn-second-clown-who-builds-stronger .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7d8c8c 0%, #5c6a6a 80%);
  animation: sec-sky 14s ease-in-out infinite alternate;
}
.scn-second-clown-who-builds-stronger .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4f5a4f 0%, #2e3a2e 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: sec-ground 20s ease-in-out infinite alternate;
}
.scn-second-clown-who-builds-stronger .grave {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 25%;
  background: #1f2a1f;
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.6);
  animation: sec-grave 8s ease-in-out infinite;
}
.scn-second-clown-who-builds-stronger .spade {
  position: absolute; bottom: 35%; left: 32%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #6b5f4f 0%, #4a3f2f 100%);
  border-radius: 2px;
  transform-origin: 50% 100%;
  animation: sec-spade 3s ease-in-out infinite;
}
.scn-second-clown-who-builds-stronger .clown-build {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sec-clown 6s ease-in-out infinite;
}
.scn-second-clown-who-builds-stronger .skull {
  position: absolute; bottom: 27%; left: 48%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #c4b49a 0%, #9a8a6a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: sec-skull 9s ease-in-out infinite alternate;
}
.scn-second-clown-who-builds-stronger .hamlet-horatio {
  position: absolute; bottom: 25%; right: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2c2a3a 0%, #1a182a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: sec-ham 14s ease-in-out infinite;
}
.scn-second-clown-who-builds-stronger .bottle {
  position: absolute; bottom: 18%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #6f7a4a 0%, #3a442a 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(10deg);
  animation: sec-bottle 11s ease-in-out infinite alternate;
}
@keyframes sec-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes sec-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sec-grave { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes sec-spade { 0% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) } }
@keyframes sec-clown { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes sec-skull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes sec-ham { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes sec-bottle { 0% { transform: rotate(8deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(5deg) } }

/* scene: first-clown-cudgel-brains */
.scn-first-clown-cudgel-brains {
  background: linear-gradient(180deg, #6e7a7a 0%, #4d5a5a 40%, #3a4545 100%), radial-gradient(ellipse at 50% 90%, #5c6a6a 0%, transparent 70%);
}
.scn-first-clown-cudgel-brains .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7d8c8c 0%, #5c6a6a 80%);
  animation: fcc-sky 12s ease-in-out infinite alternate;
}
.scn-first-clown-cudgel-brains .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4f5a4f 0%, #2e3a2e 100%);
  border-radius: 30% 40% 0 0 / 15% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: fcc-ground 22s ease-in-out infinite alternate;
}
.scn-first-clown-cudgel-brains .grave {
  position: absolute; bottom: 30%; left: 35%; width: 25%; height: 22%;
  background: #1f2a1f;
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.6);
  animation: fcc-grave 7s ease-in-out infinite;
}
.scn-first-clown-cudgel-brains .spade {
  position: absolute; bottom: 40%; left: 25%; width: 10px; height: 55px;
  background: linear-gradient(180deg, #6b5f4f 0%, #4a3f2f 100%);
  border-radius: 2px;
  transform-origin: 50% 100%;
  animation: fcc-spade 2.5s ease-in-out infinite;
}
.scn-first-clown-cudgel-brains .clown-cudgel {
  position: absolute; bottom: 30%; left: 32%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-clown 5s ease-in-out infinite;
}
.scn-first-clown-cudgel-brains .skull {
  position: absolute; bottom: 27%; left: 48%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #c4b49a 0%, #9a8a6a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: fcc-skull 8s ease-in-out infinite alternate;
}
.scn-first-clown-cudgel-brains .stoup {
  position: absolute; bottom: 20%; left: 55%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(5deg);
  animation: fcc-stoup 6s ease-in-out infinite alternate;
}
.scn-first-clown-cudgel-brains .tree {
  position: absolute; bottom: 40%; right: 10%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  animation: fcc-tree 30s linear infinite;
}
@keyframes fcc-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes fcc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fcc-grave { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes fcc-spade { 0% { transform: rotate(0deg) } 30% { transform: rotate(15deg) } 60% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes fcc-clown { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fcc-skull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(8deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes fcc-stoup { 0% { transform: rotate(3deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes fcc-tree { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }

/* scene: first-clown-sings-youth */
.scn-first-clown-sings-youth {
  background: linear-gradient(180deg, #7a8585 0%, #556060 40%, #3f4848 100%), radial-gradient(ellipse at 50% 85%, #6b7777 0%, transparent 70%);
}
.scn-first-clown-sings-youth .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8c9999 0%, #6b7777 80%);
  animation: fcs-sky 16s ease-in-out infinite alternate;
}
.scn-first-clown-sings-youth .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a655a 0%, #3a453a 100%);
  border-radius: 35% 35% 0 0 / 18% 18% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: fcs-ground 24s ease-in-out infinite alternate;
}
.scn-first-clown-sings-youth .grave {
  position: absolute; bottom: 30%; left: 30%; width: 22%; height: 24%;
  background: #2a352a;
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.6);
  animation: fcs-grave 9s ease-in-out infinite;
}
.scn-first-clown-sings-youth .spade {
  position: absolute; bottom: 38%; left: 22%; width: 8px; height: 48px;
  background: linear-gradient(180deg, #6b5f4f 0%, #4a3f2f 100%);
  border-radius: 2px;
  transform-origin: 50% 100%;
  animation: fcs-spade 3.2s ease-in-out infinite;
}
.scn-first-clown-sings-youth .clown-sings {
  position: absolute; bottom: 29%; left: 30%; width: 32px; height: 62px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcs-clown 7s ease-in-out infinite;
}
.scn-first-clown-sings-youth .skull {
  position: absolute; bottom: 26%; left: 48%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #c4b49a 0%, #9a8a6a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: fcs-skull 10s ease-in-out infinite alternate;
}
.scn-first-clown-sings-youth .gravestone {
  position: absolute; bottom: 28%; left: 60%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: fcs-stone 15s ease-in-out infinite;
}
.scn-first-clown-sings-youth .bird {
  position: absolute; top: 15%; left: 70%; width: 14px; height: 10px;
  background: radial-gradient(ellipse at 60% 50%, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  animation: fcs-bird 40s linear infinite;
}
@keyframes fcs-sky { 0% { opacity: .75 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes fcs-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fcs-grave { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes fcs-spade { 0% { transform: rotate(0deg) } 25% { transform: rotate(12deg) } 50% { transform: rotate(-4deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(0) } }
@keyframes fcs-clown { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-5px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes fcs-skull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(6deg) } 100% { transform: translateY(0) rotate(-4deg) } }
@keyframes fcs-stone { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fcs-bird { 0% { transform: translateX(0) } 100% { transform: translateX(-200px) } }

/* scene: hamlet-hand-employment */
.scn-hamlet-hand-employment {
  background: linear-gradient(180deg, #7a8585 0%, #556060 40%, #3f4848 100%), radial-gradient(ellipse at 50% 70%, #6b7777 0%, transparent 70%);
}
.scn-hamlet-hand-employment .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8c9999 0%, #6b7777 80%);
  animation: hh-sky 18s ease-in-out infinite alternate;
}
.scn-hamlet-hand-employment .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a655a 0%, #3a453a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: hh-ground 26s ease-in-out infinite alternate;
}
.scn-hamlet-hand-employment .hamlet {
  position: absolute; bottom: 25%; left: 40%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2c2a3a 0%, #1a182a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-hamlet 12s ease-in-out infinite;
}
.scn-hamlet-hand-employment .skull-hand {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #c4b49a 0%, #9a8a6a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: hh-skull 5s ease-in-out infinite alternate;
}
.scn-hamlet-hand-employment .horatio {
  position: absolute; bottom: 22%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2c2a3a 0%, #1a182a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: hh-horatio 16s ease-in-out infinite;
}
.scn-hamlet-hand-employment .gravestone {
  position: absolute; bottom: 28%; left: 15%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: hh-stone 20s ease-in-out infinite;
}
.scn-hamlet-hand-employment .branch {
  position: absolute; top: 30%; left: 60%; width: 40px; height: 4px;
  background: #3a4a3a;
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: hh-branch 45s linear infinite;
}
@keyframes hh-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes hh-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hh-hamlet { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes hh-skull { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 50% { transform: translateY(-3px) rotate(5deg) scale(1.05) } 100% { transform: translateY(0) rotate(2deg) scale(1) } }
@keyframes hh-horatio { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes hh-stone { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hh-branch { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(3px) } 100% { transform: rotate(-15deg) translateX(0) } }

/* laertes-ay-but-no-peace */
.scn-laertes-ay-but-no-peace {
  background:
    linear-gradient(135deg, #f5e6ca 0%, #d4b896 50%, #b8926a 100%),
    repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(80,50,20,0.08) 40px, rgba(80,50,20,0.08) 41px);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-laertes-ay-but-no-peace .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ebd6b8 0%, #c9a87c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-laertes-ay-but-no-peace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #997a5e 0%, #6a5338 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.3);
}
.scn-laertes-ay-but-no-peace .window-frame {
  position: absolute; top: 10%; left: 65%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #fcf3e0 0%, #e8d4b0 100%);
  border: 8px solid #7a5c3e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,230,180,0.5), 0 0 20px rgba(200,160,100,0.3);
  animation: la1-window 8s ease-in-out infinite alternate;
}
@keyframes la1-window {
  0% { box-shadow: inset 0 0 30px rgba(255,230,180,0.5), 0 0 20px rgba(200,160,100,0.3); }
  50% { box-shadow: inset 0 0 50px rgba(255,240,200,0.7), 0 0 40px rgba(220,180,120,0.5); }
  100% { box-shadow: inset 0 0 30px rgba(255,230,180,0.5), 0 0 20px rgba(200,160,100,0.3); }
}
.scn-laertes-ay-but-no-peace .table {
  position: absolute; bottom: 25%; left: 25%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #b28b6a 0%, #8c6b4a 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateX(8deg);
  animation: la1-table 12s ease-in-out infinite alternate;
}
@keyframes la1-table {
  0% { transform: perspective(600px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(6deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(8deg) translateY(0); }
}
.scn-laertes-ay-but-no-peace .letter {
  position: absolute; bottom: 30%; left: 35%; width: 16%; height: 12%;
  background: linear-gradient(135deg, #f5ead0 0%, #dcc4a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-4deg);
  animation: la1-letter 6s ease-in-out infinite;
}
@keyframes la1-letter {
  0% { transform: rotate(-4deg) translateX(0); }
  33% { transform: rotate(-2deg) translateX(2px); }
  66% { transform: rotate(-6deg) translateX(-1px); }
  100% { transform: rotate(-4deg) translateX(0); }
}
.scn-laertes-ay-but-no-peace .figure-shadow {
  position: absolute; bottom: 22%; left: 8%; width: 24%; height: 45%;
  background: linear-gradient(180deg, rgba(30,20,10,0.8) 0%, rgba(50,35,20,0.6) 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(2px);
  animation: la1-figure 4s ease-in-out infinite;
}
@keyframes la1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-laertes-ay-but-no-peace .candle {
  position: absolute; bottom: 27%; left: 30%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #f0d090 0%, #caa050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,200,100,0.4);
  animation: la1-candle 3s ease-in-out infinite alternate;
}
@keyframes la1-candle {
  0% { box-shadow: 0 0 20px 8px rgba(240,200,100,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 12px rgba(255,220,120,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 8px rgba(240,200,100,0.4); opacity: 0.9; }
}

/* laertes-i-will-be-ruled */
.scn-laertes-i-will-be-ruled {
  background:
    linear-gradient(180deg, #f0e2cc 0%, #d4b896 50%, #b8926a 100%),
    radial-gradient(ellipse at 50% 80%, rgba(180,140,100,0.3), transparent 70%);
}
.scn-laertes-i-will-be-ruled .bg-columns {
  position: absolute; inset: 0 0 20% 0;
  background:
    repeating-linear-gradient(90deg, transparent 0%, transparent 12%, #c4a884 12%, #c4a884 14%, transparent 14%, transparent 26%, #c4a884 26%, #c4a884 28%, transparent 28%);
  opacity: 0.4;
}
.scn-laertes-i-will-be-ruled .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a6b4a 0%, #5a4430 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: la2-floor 10s ease-in-out infinite;
}
@keyframes la2-floor {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}
.scn-laertes-i-will-be-ruled .throne {
  position: absolute; bottom: 20%; left: 55%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #b09070 0%, #7a5c3e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: la2-throne 6s ease-in-out infinite alternate;
}
@keyframes la2-throne {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
.scn-laertes-i-will-be-ruled .figure-king {
  position: absolute; bottom: 28%; left: 58%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: la2-king 5s ease-in-out infinite;
}
@keyframes la2-king {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(1deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(0.5deg); }
  100% { transform: rotate(0deg); }
}
.scn-laertes-i-will-be-ruled .figure-kneeling {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0600 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: la2-kneel 8s ease-in-out infinite;
}
@keyframes la2-kneel {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(2px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
.scn-laertes-i-will-be-ruled .scepter {
  position: absolute; bottom: 35%; left: 65%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #d4a84a 0%, #b08030 100%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.5);
  animation: la2-scepter 4s ease-in-out infinite alternate;
}
@keyframes la2-scepter {
  0% { transform: rotate(0deg); opacity: 0.8; }
  100% { transform: rotate(5deg); opacity: 1; }
}

/* laertes-what-part */
.scn-laertes-what-part {
  background:
    radial-gradient(ellipse at 50% 60%, #f5e6ca 0%, #d4b896 50%, #b8926a 100%),
    linear-gradient(0deg, rgba(80,50,20,0.1) 0%, transparent 30%);
}
.scn-laertes-what-part .bg-close {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4b896 0%, #b8926a 100%);
}
.scn-laertes-what-part .cap {
  position: absolute; bottom: 40%; left: 25%; width: 50%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #8c6b4a 0%, #5a4430 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: la3-cap 9s ease-in-out infinite;
}
@keyframes la3-cap {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
.scn-laertes-what-part .ribbon {
  position: absolute; bottom: 55%; left: 40%; width: 30%; height: 8%;
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: la3-ribbon 4s ease-in-out infinite alternate;
}
@keyframes la3-ribbon {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-laertes-what-part .pin {
  position: absolute; bottom: 52%; left: 55%; width: 6%; height: 6%;
  background: radial-gradient(circle, #f0d090 0%, #caa050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.6);
  animation: la3-pin 3s ease-in-out infinite;
}
@keyframes la3-pin {
  0% { box-shadow: 0 0 12px 4px rgba(200,160,80,0.6); }
  50% { box-shadow: 0 0 20px 8px rgba(220,180,100,0.8); }
  100% { box-shadow: 0 0 12px 4px rgba(200,160,80,0.6); }
}
.scn-laertes-what-part .hand-grip {
  position: absolute; bottom: 28%; left: 60%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #5a4430 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: la3-hand 7s ease-in-out infinite;
}
@keyframes la3-hand {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-laertes-what-part .shadow-drop {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: la3-shadow 9s ease-in-out infinite;
}
@keyframes la3-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* king-riband */
.scn-king-riband {
  background:
    linear-gradient(180deg, #f0e2cc 0%, #d4b896 50%, #b8926a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(220,190,160,0.2), transparent 60%);
}
.scn-king-riband .bg-arena {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(0deg, #c4a884 0%, #ebd6b8 100%);
}
.scn-king-riband .horse-body {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 70%, #5a4430 0%, #2a1a0a 100%);
  border-radius: 50% 30% 20% 20% / 40% 50% 30% 30%;
  transform: scaleX(1.2);
  animation: ki4-horse 8s ease-in-out infinite alternate;
}
@keyframes ki4-horse {
  0% { transform: scaleX(1.2) translateY(0) rotate(0deg); }
  50% { transform: scaleX(1.25) translateY(-8px) rotate(4deg); }
  100% { transform: scaleX(1.2) translateY(0) rotate(0deg); }
}
.scn-king-riband .horse-mane {
  position: absolute; bottom: 60%; left: 20%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 60% 40% / 0 0 80% 60%;
  animation: ki4-mane 6s ease-in-out infinite;
}
@keyframes ki4-mane {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
.scn-king-riband .rider {
  position: absolute; bottom: 40%; left: 30%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0e0600 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: ki4-rider 8s ease-in-out infinite alternate;
}
@keyframes ki4-rider {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-6px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
.scn-king-riband .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8a6b4a 0%, #6a5338 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.4);
  animation: ki4-ground 12s ease-in-out infinite;
}
@keyframes ki4-ground {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}
.scn-king-riband .dust {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 6%;
  background: radial-gradient(ellipse, rgba(200,180,150,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: ki4-dust 5s ease-in-out infinite;
}
@keyframes ki4-dust {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(1.5) translateX(10px); opacity: 0.7; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.4; }
}
.scn-king-riband .reins {
  position: absolute; bottom: 48%; left: 32%; width: 12%; height: 4%;
  background: linear-gradient(90deg, #7a5c3e 0%, #5a4430 100%);
  border-radius: 20%;
  transform: rotate(30deg);
  animation: ki4-reins 4s ease-in-out infinite;
}
@keyframes ki4-reins {
  0% { transform: rotate(30deg) scaleX(1); }
  50% { transform: rotate(25deg) scaleX(1.2); }
  100% { transform: rotate(30deg) scaleX(1); }
}

.scn-king-laertes-conscience {
  background: linear-gradient(180deg, #e8dcc4 0%, #cfbea0 40%, #b8a48a 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
}
.scn-king-laertes-conscience .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c5ab 0%, #c2b098 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.15);
  animation: kc-wall 12s ease-in-out infinite alternate;
}
.scn-king-laertes-conscience .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a58e74 0%, #8b775e 100%);
  border-radius: 0 0 4px 4px;
}
.scn-king-laertes-conscience .window.frame {
  position: absolute;
  top: 10%; left: 20%; width: 40%; height: 50%;
  border: 8px solid #6b5a4a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 0 2px #8b7a6a;
  animation: kc-frame 8s ease-in-out infinite alternate;
}
.scn-king-laertes-conscience .window.glass {
  position: absolute;
  top: 10%; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 40% 30%, #fef7e0 0%, #cfd8e6 80%);
  opacity: 0.7;
  animation: kc-glass 6s ease-in-out infinite alternate;
}
.scn-king-laertes-conscience .light.beam {
  position: absolute;
  top: 10%; left: 22%; width: 36%; height: 0;
  border-bottom: 60px solid rgba(255,248,210,0.15);
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  filter: blur(8px);
  animation: kc-beam 5s ease-in-out infinite alternate;
}
.scn-king-laertes-conscience .figure.king {
  position: absolute;
  bottom: 30%; left: 42%; width: 24px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #4a3e36 0%, #2d2520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc-king 4s ease-in-out infinite;
}
.scn-king-laertes-conscience .figure.laertes {
  position: absolute;
  bottom: 30%; left: 56%; width: 22px; height: 52px;
  background: radial-gradient(ellipse at 50% 20%, #3d322b 0%, #1f1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc-laertes 4.5s ease-in-out infinite;
}
.scn-king-laertes-conscience .shadow.king-shadow {
  position: absolute;
  bottom: 30%; left: 40%; width: 30px; height: 14px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(4px);
  animation: kc-shade 5s ease-in-out infinite alternate;
}
.scn-king-laertes-conscience .shadow.laertes-shadow {
  position: absolute;
  bottom: 30%; left: 54%; width: 28px; height: 12px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: kc-shade 4.5s ease-in-out infinite alternate-reverse;
}
@keyframes kc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes kc-frame { 0% { border-color: #6b5a4a; box-shadow: inset 0 0 0 2px #8b7a6a; } 50% { border-color: #7a6959; box-shadow: inset 0 0 0 4px #9b8a7a; } 100% { border-color: #5c4b3b; box-shadow: inset 0 0 0 2px #7b6a5a; } }
@keyframes kc-glass { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.75; transform: scaleY(1.02); } 100% { opacity: 0.65; transform: scaleY(0.98); } }
@keyframes kc-beam { 0% { transform: rotate(-1deg); opacity: 0.1; } 50% { transform: rotate(2deg); opacity: 0.2; } 100% { transform: rotate(-0.5deg); opacity: 0.15; } }
@keyframes kc-king { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes kc-laertes { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes kc-shade { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.1); opacity: 0.3; } 100% { transform: scaleX(0.95); opacity: 0.15; } }

.scn-laertes-why-not-proceed {
  background: linear-gradient(180deg, #dacbb4 0%, #c2b098 40%, #a58e74 100%),
              radial-gradient(ellipse at 70% 60%, #fef5e0 0%, transparent 50%);
}
.scn-laertes-why-not-proceed .table {
  position: absolute;
  bottom: 10%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #8b775e 0%, #6b5a4a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: lp-table 10s ease-in-out infinite alternate;
}
.scn-laertes-why-not-proceed .hand.palm {
  position: absolute;
  bottom: 30%; left: 40%; width: 28px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, #d4a67a 0%, #b8885a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(10deg);
  animation: lp-palm 2s ease-in-out infinite;
}
.scn-laertes-why-not-proceed .hand.fingers {
  position: absolute;
  bottom: 35%; left: 42%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #d4a67a 0%, #b8885a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.2);
  animation: lp-fingers 3s ease-in-out infinite alternate;
}
.scn-laertes-why-not-proceed .candle.stick {
  position: absolute;
  bottom: 38%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 2px;
  animation: lp-candle-stick 6s ease-in-out infinite alternate;
}
.scn-laertes-why-not-proceed .candle.flame {
  position: absolute;
  bottom: 58%; left: 55%; width: 6px; height: 12px;
  background: radial-gradient(ellipse at 50% 0%, #ffd680 0%, #f0a030 60%, #804020 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: lp-flame 0.8s ease-in-out infinite alternate;
}
.scn-laertes-why-not-proceed .shadow.hand-shadow {
  position: absolute;
  bottom: 28%; left: 38%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: lp-shade 3s ease-in-out infinite;
}
.scn-laertes-why-not-proceed .shadow.candle-shadow {
  position: absolute;
  bottom: 36%; left: 53%; width: 12px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: lp-shade 6s ease-in-out infinite alternate;
}
@keyframes lp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lp-palm { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes lp-fingers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lp-candle-stick { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lp-flame { 0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; } 50% { transform: scaleY(1.2) rotate(3deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-2deg); opacity: 0.85; } }
@keyframes lp-shade { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.35; transform: scaleX(1.1); } 100% { opacity: 0.25; transform: scaleX(0.9); } }

.scn-king-two-reasons {
  background: linear-gradient(180deg, #e0d0b8 0%, #c2b098 50%, #a58e74 100%),
              radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 70%);
}
.scn-king-two-reasons .column {
  position: absolute;
  bottom: 0; left: 25%; width: 14%; height: 80%;
  background: linear-gradient(90deg, #b8a48a 0%, #d4c5ab 20%, #c2b098 50%, #b8a48a 80%, #a58e74 100%);
  border-radius: 4px;
  box-shadow: 6px 0 12px rgba(0,0,0,0.2);
}
.scn-king-two-reasons .base {
  position: absolute;
  bottom: 0; left: 22%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #8b775e 0%, #6b5a4a 100%);
  border-radius: 4px;
  animation: kr-base 12s ease-in-out infinite alternate;
}
.scn-king-two-reasons .figure.king {
  position: absolute;
  bottom: 8%; left: 44%; width: 26px; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, #4a3e36 0%, #2d2520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kr-king 5s ease-in-out infinite;
}
.scn-king-two-reasons .shadow.tall {
  position: absolute;
  bottom: 20%; left: 42%; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(8px);
  animation: kr-shadow 7s ease-in-out infinite alternate;
}
.scn-king-two-reasons .window.arch {
  position: absolute;
  top: 5%; left: 60%; width: 30%; height: 60%;
  border: 6px solid #7a6959;
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  background: radial-gradient(ellipse at 50% 30%, #fef7e0 0%, #cfd8e6 80%);
  opacity: 0.8;
  animation: kr-window 9s ease-in-out infinite alternate;
}
.scn-king-two-reasons .light.rays {
  position: absolute;
  top: 5%; left: 60%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,248,210,0.2) 0%, transparent 40%, rgba(255,248,210,0.1) 70%, transparent 100%);
  filter: blur(6px);
  animation: kr-rays 8s ease-in-out infinite alternate;
}
.scn-king-two-reasons .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #a58e74 0%, #8b775e 100%);
  border-radius: 0 0 4px 4px;
}
@keyframes kr-base { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kr-king { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes kr-shadow { 0% { transform: scaleY(1); opacity: 0.3; } 50% { transform: scaleY(1.15); opacity: 0.4; } 100% { transform: scaleY(0.95); opacity: 0.25; } }
@keyframes kr-window { 0% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 0.85; transform: scaleX(1.02); } 100% { opacity: 0.75; transform: scaleX(0.98); } }
@keyframes kr-rays { 0% { transform: rotate(-2deg); opacity: 0.1; } 50% { transform: rotate(3deg); opacity: 0.2; } 100% { transform: rotate(-1deg); opacity: 0.15; } }

.scn-laertes-noble-father-lost {
  background: linear-gradient(180deg, #e8dcc4 0%, #cfbea0 40%, #b8a48a 100%),
              radial-gradient(ellipse at 50% 40%, #fef8e0 0%, transparent 60%);
}
.scn-laertes-noble-father-lost .window.frame {
  position: absolute;
  top: 5%; left: 10%; width: 50%; height: 70%;
  border: 10px solid #6b5a4a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 0 3px #8b7a6a;
  animation: lf-frame 10s ease-in-out infinite alternate;
}
.scn-laertes-noble-father-lost .window.glass {
  position: absolute;
  top: 5%; left: 10%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #fef7e0 0%, #cfd8e6 60%, #b0c0d0 100%);
  opacity: 0.75;
  animation: lf-glass 7s ease-in-out infinite alternate;
}
.scn-laertes-noble-father-lost .light.glow {
  position: absolute;
  top: 5%; left: 10%; width: 50%; height: 70%;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,255,200,0.3) 0%, transparent 60%);
  filter: blur(12px);
  animation: lf-glow 6s ease-in-out infinite alternate;
}
.scn-laertes-noble-father-lost .figure.laertes {
  position: absolute;
  bottom: 10%; left: 28%; width: 24px; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, #3d322b 0%, #1f1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lf-figure 4s ease-in-out infinite;
}
.scn-laertes-noble-father-lost .cape {
  position: absolute;
  bottom: 10%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(50,40,35,0.9) 0%, rgba(30,22,18,0.6) 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: lf-cape 5s ease-in-out infinite alternate;
}
.scn-laertes-noble-father-lost .shadow.floor-shadow {
  position: absolute;
  bottom: 5%; left: 24%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(5px);
  animation: lf-shade 4s ease-in-out infinite alternate;
}
@keyframes lf-frame { 0% { border-color: #6b5a4a; } 50% { border-color: #7a6959; } 100% { border-color: #5c4b3b; } }
@keyframes lf-glass { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.02); } 100% { opacity: 0.75; transform: scaleY(0.98); } }
@keyframes lf-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.45; transform: scale(0.95); } }
@keyframes lf-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes lf-cape { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes lf-shade { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.2); opacity: 0.35; } 100% { transform: scaleX(0.9); opacity: 0.25; } }

/* sea-fight-aftermath */
.scn-sea-fight-aftermath {
  background:
    linear-gradient(180deg, #0f1420 0%, #1a1f30 40%, #2a2f45 70%, #1a1f30 100%),
    radial-gradient(ellipse at 50% 60%, #3a4a5a 0%, transparent 50%);
}
.scn-sea-fight-aftermath .bg-deck {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,20,.8), rgba(20,25,35,.6));
  animation: sf-deck 12s ease-in-out infinite alternate;
}
.scn-sea-fight-aftermath .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(135deg, #2a2010, #1a1208); border-radius: 4% 4% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6); animation: sf-table 8s ease-in-out infinite;
}
.scn-sea-fight-aftermath .candle {
  position: absolute; bottom: 34%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d4a040, #a07020); border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px #f0b050, 0 0 60px 20px rgba(240,176,80,.3);
  animation: sf-candle 2s ease-in-out infinite alternate;
}
.scn-sea-fight-aftermath .figure-left {
  position: absolute; bottom: 18%; left: 10%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0c1018, #05080f); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center; animation: sf-figure 5s ease-in-out infinite;
}
.scn-sea-fight-aftermath .figure-right {
  position: absolute; bottom: 18%; right: 10%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0c1018, #05080f); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center; animation: sf-figure 5s ease-in-out infinite reverse;
}
.scn-sea-fight-aftermath .map {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(135deg, #b09060, #8a7040); border-radius: 2px;
  transform: rotate(-4deg); box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: sf-map 10s ease-in-out infinite;
}
.scn-sea-fight-aftermath .window {
  position: absolute; top: 12%; right: 8%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #1a3050, #0a1520);
  border: 3px solid #2a2a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px #0a1a2a; animation: sf-window 20s ease-in-out infinite alternate;
}
.scn-sea-fight-aftermath .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.6));
  animation: sf-shadow 6s ease-in-out infinite alternate;
}
@keyframes sf-deck { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sf-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes sf-candle { 0% { transform: scaleX(1) scaleY(1); box-shadow: 0 0 16px 6px #f0b050; } 50% { transform: scaleX(.95) scaleY(1.1); box-shadow: 0 0 24px 10px #f0b050; } 100% { transform: scaleX(1.02) scaleY(.98); box-shadow: 0 0 20px 8px #e0a040; } }
@keyframes sf-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(1px) rotate(0); } }
@keyframes sf-map { 0% { transform: rotate(-4deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.02); } 100% { transform: rotate(-5deg) scaleX(.98); } }
@keyframes sf-window { 0% { opacity: .6; background: #1a3050; } 50% { opacity: .8; background: #2a4060; } 100% { opacity: .5; background: #0a1a30; } }
@keyframes sf-shadow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .6 } }

/* king-crimes */
.scn-king-crimes {
  background:
    linear-gradient(180deg, #1a0f1a 0%, #2a1a2a 30%, #1a1020 70%, #0a050a 100%),
    radial-gradient(ellipse at 50% 30%, #3a1a2a 0%, transparent 60%);
}
.scn-king-crimes .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(20,10,15,.8), rgba(10,5,10,.6));
  animation: kc-bg 15s ease-in-out infinite alternate;
}
.scn-king-crimes .curtain-l {
  position: absolute; top: 0; left: 0; bottom: 0; width: 18%;
  background: linear-gradient(90deg, #5e1a1d, #3a0f12); border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  transform-origin: left; animation: kc-curtain 8s ease-in-out infinite;
}
.scn-king-crimes .curtain-r {
  position: absolute; top: 0; right: 0; bottom: 0; width: 18%;
  background: linear-gradient(90deg, #3a0f12, #5e1a1d); border-radius: 40% 0 0 40% / 20% 0 0 20%;
  transform-origin: right; animation: kc-curtain 8s ease-in-out infinite reverse;
}
.scn-king-crimes .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 60px; height: 70px;
  background: linear-gradient(180deg, #702243, #4a152a); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: kc-throne 10s ease-in-out infinite;
}
.scn-king-crimes .crown {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%); width: 30px; height: 14px;
  background: linear-gradient(180deg, #b8860b, #6b4c0a); border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 16px 4px #b8860b; animation: kc-crown 3s ease-in-out infinite alternate;
}
.scn-king-crimes .figure-hamlet {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0c0810, #050405); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: kc-figure 4s ease-in-out infinite;
}
.scn-king-crimes .ghost {
  position: absolute; top: 8%; right: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(200,220,240,.1), transparent);
  border-radius: 50%; filter: blur(8px); animation: kc-ghost 6s ease-in-out infinite;
}
.scn-king-crimes .scepter {
  position: absolute; bottom: 28%; left: 47%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #b8860b, #6b4c0a); border-radius: 20%;
  transform: rotate(15deg); animation: kc-scepter 5s ease-in-out infinite;
}
@keyframes kc-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes kc-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.04); } 100% { transform: scaleX(.96); } }
@keyframes kc-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes kc-crown { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity: .8; } 50% { transform: translateX(-50%) translateY(-2px) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) translateY(1px) scale(.98); opacity: .9; } }
@keyframes kc-figure { 0% { transform: translateX(0) rotate(0); } 40% { transform: translateX(5px) rotate(3deg); } 70% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(0); } }
@keyframes kc-ghost { 0% { opacity: .2; transform: translate(0, 0) scale(1); } 50% { opacity: .6; transform: translate(8px, -10px) scale(1.2); } 100% { opacity: .3; transform: translate(-4px, 5px) scale(.9); } }
@keyframes kc-scepter { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.1); } 100% { transform: rotate(12deg) scaleY(.95); } }

/* hamlet-apology */
.scn-hamlet-apology {
  background:
    linear-gradient(180deg, #1c1814 0%, #2a221c 30%, #1c1814 70%, #0e0b08 100%),
    radial-gradient(ellipse at 50% 50%, #3a3028 0%, transparent 60%);
}
.scn-hamlet-apology .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(18,15,12,.9), rgba(10,8,6,.7));
  animation: ha-scene 20s ease-in-out infinite alternate;
}
.scn-hamlet-apology .spotlight {
  position: absolute; top: 0; left: 35%; right: 35%; bottom: 50%;
  background: radial-gradient(ellipse at 50% 100%, #e0c080 0%, transparent 70%);
  opacity: .15; animation: ha-spotlight 12s ease-in-out infinite alternate;
}
.scn-hamlet-apology .figure-left {
  position: absolute; bottom: 20%; left: 14%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1612, #0f0c09); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: ha-figure 6s ease-in-out infinite;
}
.scn-hamlet-apology .figure-right {
  position: absolute; bottom: 20%; right: 14%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1612, #0f0c09); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: ha-figure 6s ease-in-out infinite reverse;
}
.scn-hamlet-apology .hand-left {
  position: absolute; bottom: 44%; left: 20%; width: 8px; height: 12px;
  background: #2a221c; border-radius: 40% 40% 20% 20%;
  transform-origin: bottom left; animation: ha-hand 4s ease-in-out infinite;
}
.scn-hamlet-apology .hand-right {
  position: absolute; bottom: 44%; right: 20%; width: 8px; height: 12px;
  background: #2a221c; border-radius: 40% 40% 20% 20%;
  transform-origin: bottom right; animation: ha-hand 4s ease-in-out infinite reverse;
}
.scn-hamlet-apology .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1612, #0e0b08);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: ha-ground 15s ease-in-out infinite;
}
.scn-hamlet-apology .shadow-pair {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4), transparent 70%);
  animation: ha-shadow 8s ease-in-out infinite;
}
@keyframes ha-scene { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ha-spotlight { 0% { transform: scaleY(1); opacity: .1; } 50% { transform: scaleY(1.1); opacity: .2; } 100% { transform: scaleY(.95); opacity: .15; } }
@keyframes ha-figure { 0% { transform: translateX(0) rotate(0); } 35% { transform: translateX(-3px) rotate(-2deg); } 65% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(0); } }
@keyframes ha-hand { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.1); } 100% { transform: rotate(3deg) scaleY(.95); } }
@keyframes ha-ground { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes ha-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.05); } 100% { opacity: .4; transform: scaleX(.98); } }

/* osric-arrival */
.scn-osric-arrival {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #c8b898 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-osric-arrival .bg-court {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(240,230,210,.9), rgba(210,200,180,.7));
  animation: oa-bg 18s ease-in-out infinite alternate;
}
.scn-osric-arrival .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #b8a890, #9a8a78); border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.15); animation: oa-floor 10s ease-in-out infinite;
}
.scn-osric-arrival .pillar-l {
  position: absolute; bottom: 0; left: 8%; width: 10px; height: 70%;
  background: linear-gradient(180deg, #c8b898, #b0a080); border-radius: 10%;
  box-shadow: inset 0 0 8px rgba(0,0,0,.2); animation: oa-pillar 6s ease-in-out infinite;
}
.scn-osric-arrival .pillar-r {
  position: absolute; bottom: 0; right: 8%; width: 10px; height: 70%;
  background: linear-gradient(180deg, #c8b898, #b0a080); border-radius: 10%;
  box-shadow: inset 0 0 8px rgba(0,0,0,.2); animation: oa-pillar 6s ease-in-out infinite reverse;
}
.scn-osric-arrival .osric-body {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 22px; height: 46px;
  background: linear-gradient(180deg, #e0c8a0, #c8a880); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: oa-body 2s ease-in-out infinite;
}
.scn-osric-arrival .osric-hat {
  position: absolute; bottom: 60%; left: 50%; transform: translateX(-50%); width: 30px; height: 18px;
  background: #d4b080; border-radius: 60% 60% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: oa-hat 1.5s ease-in-out infinite alternate;
}
.scn-osric-arrival .osric-cape {
  position: absolute; bottom: 20%; left: 38%; width: 32px; height: 30px;
  background: linear-gradient(180deg, #a08060, #806040); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: top center; animation: oa-cape 2.5s ease-in-out infinite;
}
.scn-osric-arrival .waterfly {
  position: absolute; top: 30%; left: 20%; width: 12px; height: 8px;
  background: radial-gradient(circle, #80d0d0, #50a0a0); border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(100,200,200,.4); animation: oa-fly 4s ease-in-out infinite;
}
@keyframes oa-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes oa-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes oa-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes oa-body { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(-3deg) } 75% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes oa-hat { 0% { transform: translateX(-50%) rotate(-8deg) } 50% { transform: translateX(-50%) rotate(8deg) } 100% { transform: translateX(-50%) rotate(-4deg) } }
@keyframes oa-cape { 0% { transform: translateX(0) rotate(0) } 40% { transform: translateX(-8px) rotate(6deg) } 70% { transform: translateX(6px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes oa-fly { 0% { transform: translate(0, 0) } 25% { transform: translate(20px, -10px) } 50% { transform: translate(40px, 5px) } 75% { transform: translate(10px, -5px) } 100% { transform: translate(0, 0) } }

.scn-hamlet-mocks-polonium {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 50%, #d4b896 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-hamlet-mocks-polonium .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0ccb0 0%, #c4a882 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-hamlet-mocks-polonium .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #8a7058 100%);
  border-radius: 8% 8% 0 0;
}
.scn-hamlet-mocks-polonium .bookshelf {
  position: absolute; left: 15%; top: 20%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #7a5a42 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
}
.scn-hamlet-mocks-polonium .book {
  position: absolute; left: 25%; top: 35%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform-origin: 50% 100%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: hmp-book 4s ease-in-out infinite;
}
.scn-hamlet-mocks-polonium .figure-hamlet {
  position: absolute; bottom: 28%; left: 45%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hmp-hamlet 6s ease-in-out infinite;
}
.scn-hamlet-mocks-polonium .figure-pol {
  position: absolute; bottom: 28%; left: 65%; width: 9%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hmp-pol 3s ease-in-out infinite alternate;
}
.scn-hamlet-mocks-polonium .candle {
  position: absolute; bottom: 40%; left: 50%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 20px 6px #ffd680;
}
.scn-hamlet-mocks-polonium .glow {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffd680 0%, transparent 70%);
  filter: blur(4px);
  opacity: 0.6;
  animation: hmp-glow 3s ease-in-out infinite alternate;
}
@keyframes hmp-book {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(8px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes hmp-hamlet {
  0% { transform: translateX(-2px) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(4deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes hmp-pol {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(4px) rotate(5deg); opacity: 1; }
  100% { transform: translateX(0) rotate(0deg); opacity: 0.8; }
}
@keyframes hmp-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

.scn-hamlet-greets-friends {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 50%, #b0a090 100%),
    radial-gradient(ellipse at 60% 20%, #fff5e6 0%, transparent 50%);
}
.scn-hamlet-greets-friends .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a8 100%);
}
.scn-hamlet-greets-friends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a89880 0%, #887868 100%);
  border-radius: 6% 6% 0 0;
}
.scn-hamlet-greets-friends .window {
  position: absolute; left: 70%; top: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #c8dcff 0%, #a0b8e0 100%);
  border: 4px solid #7a6a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4), 0 0 20px rgba(200,220,255,0.3);
}
.scn-hamlet-greets-friends .fireplace {
  position: absolute; left: 20%; bottom: 20%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 40px #ffa060;
}
.scn-hamlet-greets-friends .figure-hamlet {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hgf-ham 10s ease-in-out infinite;
}
.scn-hamlet-greets-friends .figure-r {
  position: absolute; bottom: 22%; left: 55%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hgf-friends 8s ease-in-out infinite alternate;
}
.scn-hamlet-greets-friends .figure-g {
  position: absolute; bottom: 22%; left: 65%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hgf-friends 8s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-greets-friends .dust {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.3) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,255,200,0.2) 0%, transparent 40%);
  filter: blur(6px);
  animation: hgf-dust 30s ease-in-out infinite alternate;
}
@keyframes hgf-ham {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hgf-friends {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hgf-dust {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

.scn-denmark-prison {
  background:
    linear-gradient(180deg, #c0b8a8 0%, #a09888 50%, #807868 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e6 0%, transparent 60%);
}
.scn-denmark-prison .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
}
.scn-denmark-prison .bars {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 18px, #4a3a2a 18px, #4a3a2a 22px),
    repeating-linear-gradient(0deg, transparent 0px, transparent 18px, #4a3a2a 18px, #4a3a2a 22px);
  opacity: 0.6;
  animation: dp-bars 8s ease-in-out infinite alternate;
}
.scn-denmark-prison .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 4% 4% 0 0;
}
.scn-denmark-prison .figure-hamlet {
  position: absolute; bottom: 18%; left: 42%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dp-hamlet 6s ease-in-out infinite;
}
.scn-denmark-prison .chain {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: left center;
  animation: dp-chain 4s ease-in-out infinite alternate;
}
.scn-denmark-prison .light-ray {
  position: absolute; top: 0; left: 60%; width: 30%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: dp-ray 12s ease-in-out infinite alternate;
}
.scn-denmark-prison .shadow-pattern {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.15) 0px, rgba(0,0,0,0.15) 20px, transparent 20px, transparent 28px);
  animation: dp-shadow 15s ease-in-out infinite alternate;
}
@keyframes dp-bars {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes dp-hamlet {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dp-chain {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dp-ray {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.8; transform: translateX(10px); }
  100% { opacity: 0.4; transform: translateX(-5px); }
}
@keyframes dp-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(1); }
}

.scn-hamlet-queries-friends {
  background:
    linear-gradient(180deg, #e0d8c8 0%, #c8b8a8 50%, #a09080 100%),
    radial-gradient(ellipse at 50% 50%, #fff5e6 0%, transparent 50%);
}
.scn-hamlet-queries-friends .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 100%);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.2);
}
.scn-hamlet-queries-friends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #908070 0%, #706050 100%);
  border-radius: 6% 6% 0 0;
}
.scn-hamlet-queries-friends .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-hamlet-queries-friends .candelabra {
  position: absolute; bottom: 28%; left: 45%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 8px #ffd680;
  animation: hqf-candle 2s ease-in-out infinite alternate;
}
.scn-hamlet-queries-friends .figure-hamlet {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqf-hamlet 3s ease-in-out infinite alternate;
}
.scn-hamlet-queries-friends .figure-r {
  position: absolute; bottom: 18%; left: 50%; width: 10%; height: 34%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqf-r 2s ease-in-out infinite alternate;
}
.scn-hamlet-queries-friends .figure-g {
  position: absolute; bottom: 18%; left: 60%; width: 10%; height: 34%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqf-g 2s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-queries-friends .shadow {
  position: absolute; bottom: 18%; left: 32%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: hqf-shadow 4s ease-in-out infinite alternate;
}
@keyframes hqf-candle {
  0% { transform: translateY(0); opacity: 0.8; box-shadow: 0 0 30px 6px #ffd680; }
  50% { transform: translateY(-2px); opacity: 1; box-shadow: 0 0 50px 12px #ffd680; }
  100% { transform: translateY(0); opacity: 0.8; box-shadow: 0 0 30px 6px #ffd680; }
}
@keyframes hqf-hamlet {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes hqf-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hqf-g {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hqf-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

/* Scene: laertes-thought-affection */
.scn-laertes-thought-affection {
  background:
    radial-gradient(ellipse 60% 40% at 50% 60%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a0e08 0%, #3a2515 40%, #6a4a2a 100%);
}
.scn-laertes-thought-affection .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #100a05 0%, #2a1a10 100%);
  animation: la-bg 12s ease-in-out infinite alternate;
}
.scn-laertes-thought-affection .glow {
  position:absolute; top:30%; left:40%; width:30%; height:40%;
  background: radial-gradient(ellipse at center, rgba(255,200,150,.6) 0%, transparent 70%);
  animation: la-glow 4s ease-in-out infinite alternate;
}
.scn-laertes-thought-affection .figure {
  position:absolute; bottom:30%; left:50%; width:30px; height:60px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: la-figure 6s ease-in-out infinite;
}
.scn-laertes-thought-affection .hair {
  position:absolute; bottom:60%; left:50%; width:34px; height:30px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #2a1a10 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  animation: la-hair 3s ease-in-out infinite alternate;
}
.scn-laertes-thought-affection .light-rays {
  position:absolute; top:10%; left:38%; width:24%; height:40%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,200,150,.15) 50%, transparent 100%);
  filter: blur(8px);
  animation: la-rays 5s ease-in-out infinite alternate;
}
.scn-laertes-thought-affection .petal {
  position:absolute; width:6px; height:6px;
  background: #b87878;
  border-radius: 50% 0 50% 0;
  opacity: .6;
}
.scn-laertes-thought-affection .p1 {
  top:20%; left:20%;
  animation: la-petal1 8s linear infinite;
}
.scn-laertes-thought-affection .p2 {
  top:35%; right:25%;
  animation: la-petal2 9s linear infinite 2s;
}
@keyframes la-bg {
  0%   { opacity: .7; }
  50%  { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes la-glow {
  0%   { opacity: .3; transform: scale(1); }
  50%  { opacity: .7; transform: scale(1.1); }
  100% { opacity: .4; transform: scale(.95); }
}
@keyframes la-figure {
  0%   { transform: translateX(-50%) rotate(-2deg); }
  30%  { transform: translateX(-45%) rotate(0deg); }
  60%  { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes la-hair {
  0%   { transform: translateX(-50%) rotate(-15deg); }
  50%  { transform: translateX(-50%) rotate(10deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes la-rays {
  0%   { opacity: .1; }
  50%  { opacity: .5; }
  100% { opacity: .2; }
}
@keyframes la-petal1 {
  0%   { transform: translate(0,0) rotate(0deg); opacity:0; }
  10%  { opacity:.6; }
  50%  { transform: translate(30px,40px) rotate(180deg); opacity:.4; }
  100% { transform: translate(80px,100px) rotate(360deg); opacity:0; }
}
@keyframes la-petal2 {
  0%   { transform: translate(0,0) rotate(0deg); opacity:0; }
  10%  { opacity:.6; }
  50%  { transform: translate(-20px,50px) rotate(-120deg); opacity:.4; }
  100% { transform: translate(-60px,120px) rotate(-240deg); opacity:0; }
}

/* Scene: ophelia-final-song */
.scn-ophelia-final-song {
  background:
    radial-gradient(ellipse at 50% 75%, #2a1a10 0%, transparent 60%),
    linear-gradient(180deg, #1a0e0c 0%, #3a2515 40%, #4a3020 100%);
}
.scn-ophelia-final-song .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #100a08 0%, #2a1a0e 100%);
  animation: op-bg 15s ease-in-out infinite alternate;
}
.scn-ophelia-final-song .bed {
  position:absolute; bottom:20%; left:20%; right:20%; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
  animation: op-bed 6s ease-in-out infinite alternate;
}
.scn-ophelia-final-song .figure {
  position:absolute; bottom:30%; left:50%; width:24px; height:50px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  animation: op-figure 4s ease-in-out infinite;
}
.scn-ophelia-final-song .crown {
  position:absolute; bottom:60%; left:50%; width:30px; height:12px;
  transform:translateX(-50%);
  background: #5e3a2a;
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 -2px 0 #8a6a4a;
  animation: op-crown 3s ease-in-out infinite alternate;
}
.scn-ophelia-final-song .candle {
  position:absolute; bottom:45%; right:15%; width:4px; height:20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-ophelia-final-song .flame {
  position:absolute; bottom:65%; right:15%; width:6px; height:12px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: op-flame 1.5s ease-in-out infinite alternate;
}
.scn-ophelia-final-song .shadow {
  position:absolute; bottom:20%; left:30%; width:40%; height:15%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: op-shadow 5s ease-in-out infinite alternate;
}
@keyframes op-bg {
  0%   { opacity: .6; }
  50%  { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes op-bed {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.02); }
  100% { transform: scaleY(.97); }
}
@keyframes op-figure {
  0%   { transform: translateX(-50%) rotate(0deg) translateY(0); }
  25%  { transform: translateX(-48%) rotate(-3deg) translateY(-2px); }
  50%  { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75%  { transform: translateX(-52%) rotate(3deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes op-crown {
  0%   { transform: translateX(-50%) rotate(-5deg) scale(1); }
  50%  { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-2deg) scale(1); }
}
@keyframes op-flame {
  0%   { transform: scale(1) translateY(0); opacity:.8; }
  30%  { transform: scale(1.2) translateY(-2px); opacity:1; }
  60%  { transform: scale(.9) translateY(1px); opacity:.7; }
  100% { transform: scale(1.1) translateY(-1px); opacity:.9; }
}
@keyframes op-shadow {
  0%   { opacity: .3; transform: scaleX(1); }
  50%  { opacity: .6; transform: scaleX(1.1); }
  100% { opacity: .4; transform: scaleX(.95); }
}

/* Scene: laertes-see-god */
.scn-laertes-see-god {
  background:
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a08 0%, #2a1a10 50%, #3a2a1a 100%);
}
.scn-laertes-see-god .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0806 0%, #1a0e0a 100%);
  animation: ls-bg 10s ease-in-out infinite alternate;
}
.scn-laertes-see-god .pillar-left {
  position:absolute; bottom:0; left:10%; width:6%; height:70%;
  background: linear-gradient(90deg, #2a1a10 0%, #4a3a2a 30%, #2a1a10 100%);
  border-radius: 3px;
  animation: ls-pillar 8s ease-in-out infinite alternate;
}
.scn-laertes-see-god .pillar-right {
  position:absolute; bottom:0; right:10%; width:6%; height:70%;
  background: linear-gradient(90deg, #2a1a10 0%, #4a3a2a 30%, #2a1a10 100%);
  border-radius: 3px;
  animation: ls-pillar-r 8s ease-in-out infinite alternate 2s;
}
.scn-laertes-see-god .king {
  position:absolute; bottom:18%; left:60%; width:28px; height:55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #4a3a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  box-shadow: 0 0 20px rgba(200,150,100,.3);
  animation: ls-king 4s ease-in-out infinite alternate;
}
.scn-laertes-see-god .laertes {
  position:absolute; bottom:18%; left:40%; width:24px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  animation: ls-laertes 3.5s ease-in-out infinite;
}
.scn-laertes-see-god .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: ls-floor 6s ease-in-out infinite alternate;
}
.scn-laertes-see-god .light-beam {
  position:absolute; top:0; left:38%; width:24%; height:60%;
  background: linear-gradient(180deg, rgba(255,200,150,.08) 0%, transparent 80%);
  filter: blur(10px);
  animation: ls-beam 7s ease-in-out infinite alternate;
}
@keyframes ls-bg {
  0%   { opacity: .5; }
  50%  { opacity: .8; }
  100% { opacity: .6; }
}
@keyframes ls-pillar {
  0%   { transform: scaleX(1) translateY(0); }
  50%  { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(.98) translateY(0); }
}
@keyframes ls-pillar-r {
  0%   { transform: scaleX(1) translateY(0); }
  50%  { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(.98) translateY(0); }
}
@keyframes ls-king {
  0%   { transform: translateX(-50%) rotate(0deg) scale(1); }
  50%  { transform: translateX(-50%) rotate(-2deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(2deg) scale(1); }
}
@keyframes ls-laertes {
  0%   { transform: translateX(-50%) rotate(0deg) translateY(0); }
  30%  { transform: translateX(-48%) rotate(-5deg) translateY(-3px); }
  60%  { transform: translateX(-52%) rotate(3deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes ls-floor {
  0%   { opacity: .7; }
  50%  { opacity: .9; }
  100% { opacity: .8; }
}
@keyframes ls-beam {
  0%   { opacity: .1; }
  50%  { opacity: .3; }
  100% { opacity: .15; }
}

/* Scene: king-commune-grief */
.scn-king-commune-grief {
  background:
    radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a08 0%, #1a0e0a 40%, #2a1a0e 100%);
}
.scn-king-commune-grief .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0806 0%, #1a0e0a 100%);
  animation: kg-bg 8s ease-in-out infinite alternate;
}
.scn-king-commune-grief .throne {
  position:absolute; bottom:15%; left:40%; width:30%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.6), 0 0 30px rgba(200,150,100,.2);
  animation: kg-throne 5s ease-in-out infinite alternate;
}
.scn-king-commune-grief .crown {
  position:absolute; top:5%; left:48%; width:8%; height:12%;
  background: radial-gradient(ellipse at 50% 40%, #c8a060 0%, #8a6a3a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 15px rgba(200,160,96,.5);
  animation: kg-crown 3s ease-in-out infinite alternate;
}
.scn-king-commune-grief .scepter {
  position:absolute; bottom:25%; left:65%; width:2%; height:25%;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: kg-scepter 2.5s ease-in-out infinite;
}
.scn-king-commune-grief .scales {
  position:absolute; bottom:30%; right:15%; width:12%; height:20%;
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #8a6a3a 100%);
  clip-path: polygon(0 40%, 100% 40%, 80% 100%, 20% 100%);
  animation: kg-scales 4s ease-in-out infinite alternate;
}
.scn-king-commune-grief .shadow-king {
  position:absolute; bottom:10%; left:45%; width:20%; height:30%;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  animation: kg-shadow 6s ease-in-out infinite alternate;
}
.scn-king-commune-grief .glow-orb {
  position:absolute; top:30%; left:50%; width:4%; height:6%;
  background: radial-gradient(circle, rgba(255,210,130,.8) 0%, transparent 70%);
  border-radius: 50%;
  animation: kg-orb 2s ease-in-out infinite alternate;
}
@keyframes kg-bg {
  0%   { opacity: .6; }
  50%  { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes kg-throne {
  0%   { transform: scaleY(1) translateY(0); }
  50%  { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(.98) translateY(0); }
}
@keyframes kg-crown {
  0%   { transform: rotate(-5deg) scale(1); }
  50%  { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes kg-scepter {
  0%   { transform: rotate(-3deg); }
  30%  { transform: rotate(3deg); }
  60%  { transform: rotate(-5deg); }
  100% { transform: rotate(2deg); }
}
@keyframes kg-scales {
  0%   { transform: rotate(-10deg) scale(1); }
  50%  { transform: rotate(10deg) scale(1.1); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes kg-shadow {
  0%   { opacity: .3; transform: scaleX(1); }
  50%  { opacity: .6; transform: scaleX(1.2); }
  100% { opacity: .4; transform: scaleX(.9); }
}
@keyframes kg-orb {
  0%   { opacity: .2; transform: scale(1); }
  50%  { opacity: .8; transform: scale(1.5); }
  100% { opacity: .3; transform: scale(1); }
}

.scn-hamlet-meets-horatio {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8a86e 60%, #a07a4a 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
}
.scn-hamlet-meets-horatio .shade { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, transparent 40%, rgba(30,20,10,0.3) 100%); animation: hmh-shade 10s ease-in-out infinite alternate; }
.scn-hamlet-meets-horatio .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c8a86e 0%, #b8905a 50%, #c8a86e 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-hamlet-meets-horatio .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); }
.scn-hamlet-meets-horatio .window { position:absolute; top:12%; left:55%; width:70px; height:90px; background: radial-gradient(circle, #ffe8c0 0%, #ffd080 40%, #b08040 80%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 15% 20%, 85% 20%, 85% 80%, 15% 80%); filter: drop-shadow(0 0 30px rgba(255,200,100,0.5)); animation: hmh-window-glow 6s ease-in-out infinite alternate; }
.scn-hamlet-meets-horatio .glow { position:absolute; bottom:28%; left:48%; width:120px; height:60px; background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 80%); transform: skewX(-20deg); animation: hmh-glow-shift 8s ease-in-out infinite alternate; }
.scn-hamlet-meets-horatio .fig-left { position:absolute; bottom:28%; left:32%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hmh-fig-sway 5s ease-in-out infinite; }
.scn-hamlet-meets-horatio .fig-right { position:absolute; bottom:28%; left:58%; width:28px; height:68px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: hmh-fig-sway 5s ease-in-out infinite reverse; }
.scn-hamlet-meets-horatio .mote { position:absolute; width:4px; height:4px; background: rgba(255,230,180,0.6); border-radius: 50%; filter: blur(2px); }
.scn-hamlet-meets-horatio .mote-a { top:35%; left:20%; animation: hmh-mote 20s linear infinite; }
.scn-hamlet-meets-horatio .mote-b { top:60%; left:70%; animation: hmh-mote 25s linear infinite reverse; }
@keyframes hmh-shade { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hmh-window-glow { 0% { opacity: 0.9; box-shadow: 0 0 20px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px rgba(255,200,100,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 15px rgba(255,200,100,0.3); } }
@keyframes hmh-glow-shift { 0% { transform: skewX(-20deg) translateX(0); } 50% { transform: skewX(-15deg) translateX(5px); } 100% { transform: skewX(-20deg) translateX(-2px); } }
@keyframes hmh-fig-sway { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(1deg) translateX(2px); } 60% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hmh-mote { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 25% { transform: translate(10px, -20px) scale(1.2); opacity: 0.8; } 50% { transform: translate(20px, 10px) scale(0.9); opacity: 0.3; } 75% { transform: translate(-5px, 30px) scale(1.1); opacity: 0.7; } 100% { transform: translate(0, 0) scale(1); opacity: 0.5; } }

.scn-ghost-reported-to-hamlet {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-ghost-reported-to-hamlet .bg-room { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1a1a2e 0%, #0e0e1a 50%, #1a1a2e 100%); }
.scn-ghost-reported-to-hamlet .shadow-right { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(270deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: grh-shadow-sway 7s ease-in-out infinite alternate; }
.scn-ghost-reported-to-hamlet .speaker { position:absolute; bottom:30%; left:30%; width:32px; height:72px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grh-speak 2s ease-in-out infinite; }
.scn-ghost-reported-to-hamlet .listener { position:absolute; bottom:32%; right:28%; width:28px; height:68px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0606 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform: scaleX(-1); animation: grh-listen 4s ease-in-out infinite; }
.scn-ghost-reported-to-hamlet .candle { position:absolute; bottom:35%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius: 3px; }
.scn-ghost-reported-to-hamlet .flame { position:absolute; bottom:65%; left:50%; width:10px; height:16px; background: radial-gradient(circle, #ffd080 0%, #ff8040 60%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(2px); animation: grh-flame-flicker 0.5s ease-in-out infinite alternate; }
.scn-ghost-reported-to-hamlet .flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 65%, rgba(255,200,100,0.04) 0%, transparent 80%); animation: grh-flicker 2s ease-in-out infinite; }
.scn-ghost-reported-to-hamlet .hands { position:absolute; bottom:38%; left:36%; width:18px; height:10px; background: #2a1a1a; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: grh-hand-gesture 3s ease-in-out infinite; }
@keyframes grh-shadow-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(5px); } }
@keyframes grh-speak { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes grh-listen { 0% { transform: scaleX(-1) rotate(0deg); } 30% { transform: scaleX(-1) rotate(1deg); } 60% { transform: scaleX(-1) rotate(-2deg); } 100% { transform: scaleX(-1) rotate(0deg); } }
@keyframes grh-flame-flicker { 0% { transform: scale(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scale(1.1, 1.2) rotate(2deg); opacity: 1; } 100% { transform: scale(0.95, 0.9) rotate(-1deg); opacity: 0.8; } }
@keyframes grh-flicker { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes grh-hand-gesture { 0% { transform: rotate(-20deg) translateX(0); } 30% { transform: rotate(-15deg) translateX(5px); } 60% { transform: rotate(-25deg) translateX(-2px); } 100% { transform: rotate(-20deg) translateX(0); } }

.scn-hamlet-decides-watch {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0e04 100%), radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 70%);
}
.scn-hamlet-decides-watch .chamber { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); }
.scn-hamlet-decides-watch .window-lit { position:absolute; top:5%; right:10%; width:60px; height:80px; background: radial-gradient(circle, #fff4e0 0%, #e0c080 40%, #806040 80%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 10% 10%, 90% 10%, 90% 90%, 10% 90%); filter: blur(2px); animation: hdw-window-pulse 4s ease-in-out infinite alternate; }
.scn-hamlet-decides-watch .hamlet { position:absolute; bottom:20%; left:42%; width:30px; height:76px; background: linear-gradient(180deg, #1a0e06 0%, #0a0400 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hdw-stand 3s ease-in-out infinite; }
.scn-hamlet-decides-watch .cloak { position:absolute; bottom:22%; left:38%; width:50px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); opacity: 0.9; animation: hdw-cloak-sweep 6s ease-in-out infinite; }
.scn-hamlet-decides-watch .shadow-long { position:absolute; bottom:0; left:40%; width:80px; height:50px; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); transform: skewX(-30deg) translateX(-20px); animation: hdw-shadow-pulse 5s ease-in-out infinite alternate; }
.scn-hamlet-decides-watch .spark { position:absolute; top:30%; left:48%; width:6px; height:6px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 16px 6px rgba(255,208,128,0.5); animation: hdw-spark 2s ease-in-out infinite; }
.scn-hamlet-decides-watch .sword-hilt { position:absolute; bottom:26%; left:36%; width:16px; height:22px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 50% 50% 10% 10%; transform: rotate(30deg); animation: hdw-hilt-gleam 3s ease-in-out infinite alternate; }
@keyframes hdw-window-pulse { 0% { opacity: 0.8; box-shadow: 0 0 20px rgba(255,220,150,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px rgba(255,220,150,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 30px rgba(255,220,150,0.4); } }
@keyframes hdw-stand { 0% { transform: rotate(0deg); } 30% { transform: rotate(1deg) translateY(-2px); } 70% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg); } }
@keyframes hdw-cloak-sweep { 0% { transform: rotate(0deg) scaleX(1); } 30% { transform: rotate(2deg) scaleX(1.05); } 60% { transform: rotate(-2deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes hdw-shadow-pulse { 0% { opacity: 0.5; transform: skewX(-30deg) translateX(-20px); } 50% { opacity: 0.8; transform: skewX(-25deg) translateX(-15px); } 100% { opacity: 0.6; transform: skewX(-30deg) translateX(-25px); } }
@keyframes hdw-spark { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes hdw-hilt-gleam { 0% { opacity: 0.7; box-shadow: inset 0 0 4px rgba(255,200,150,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 8px rgba(255,200,150,0.6); } 100% { opacity: 0.8; box-shadow: inset 0 0 2px rgba(255,200,150,0.2); } }

.scn-polonius-house-laertes-advice {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 60%);
}
.scn-polonius-house-laertes-advice .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-polonius-house-laertes-advice .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-polonius-house-laertes-advice .floor { position:absolute; bottom:0; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-polonius-house-laertes-advice .doorway { position:absolute; top:8%; left:44%; width:12%; height:60%; background: linear-gradient(180deg, #1a0e00 0%, #0a0500 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-polonius-house-laertes-advice .fig-laertes { position:absolute; bottom:22%; left:40%; width:28px; height:74px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: phl-breathe 5s ease-in-out infinite; }
.scn-polonius-house-laertes-advice .fig-ophelia { position:absolute; bottom:22%; right:40%; width:24px; height:66px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: phl-breathe 5s ease-in-out infinite reverse; }
.scn-polonius-house-laertes-advice .candle { position:absolute; bottom:30%; left:50%; width:6px; height:24px; background: linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius: 2px; margin-left: -3px; }
.scn-polonius-house-laertes-advice .dust { position:absolute; width:3px; height:3px; background: rgba(180,160,120,0.4); border-radius: 50%; filter: blur(2px); }
.scn-polonius-house-laertes-advice .dust-a { top:40%; left:35%; animation: phl-dust 15s linear infinite; }
.scn-polonius-house-laertes-advice .dust-b { top:60%; left:60%; animation: phl-dust 20s linear infinite reverse; }
@keyframes phl-breathe { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(0.5deg) translateY(-1px); } 60% { transform: rotate(-0.3deg) translateY(0.5px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes phl-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 25% { transform: translate(8px, -15px) scale(1.3); opacity: 0.6; } 50% { transform: translate(16px, 5px) scale(0.9); opacity: 0.2; } 75% { transform: translate(-4px, 20px) scale(1.1); opacity: 0.5; } 100% { transform: translate(0, 0) scale(1); opacity: 0.3; } }

.scn-mousetrap-claudius-starts { background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%), radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 60%); }
.scn-mousetrap-claudius-starts .stage-bg { position: absolute; inset: 10% 5% 25% 5%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 70%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); animation: msc-depth 12s ease-in-out infinite alternate; }
.scn-mousetrap-claudius-starts .curtain-left { position: absolute; top: 5%; left: 0; width: 20%; height: 75%; background: linear-gradient(90deg, #6a2a2a 0%, #8a3a3a 50%, #5a1a1a 100%); border-radius: 0 60% 60% 0; box-shadow: 4px 0 20px rgba(0,0,0,0.6); animation: msc-curtain 8s ease-in-out infinite alternate; }
.scn-mousetrap-claudius-starts .curtain-right { position: absolute; top: 5%; right: 0; width: 20%; height: 75%; background: linear-gradient(270deg, #6a2a2a 0%, #8a3a3a 50%, #5a1a1a 100%); border-radius: 60% 0 0 60%; box-shadow: -4px 0 20px rgba(0,0,0,0.6); animation: msc-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-mousetrap-claudius-starts .throne { position: absolute; bottom: 28%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: msc-throne 6s ease-in-out infinite; }
.scn-mousetrap-claudius-starts .king-figure { position: absolute; bottom: 28%; left: 50%; width: 28px; height: 60px; transform: translateX(-50%) translateY(-10px); background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: msc-king-stand 4s ease-in-out infinite; }
.scn-mousetrap-claudius-starts .hamlet-figure { position: absolute; bottom: 22%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: msc-hamlet-turn 5s ease-in-out infinite; }
.scn-mousetrap-claudius-starts .candle-glow { position: absolute; bottom: 35%; left: 70%; width: 12px; height: 16px; background: radial-gradient(circle, #ffd080 0%, #b08020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6), 0 0 40px 12px rgba(255,208,128,0.3); animation: msc-flicker 2s ease-in-out infinite alternate; }
.scn-mousetrap-claudius-starts .footlight { position: absolute; bottom: 20%; left: 40%; width: 60px; height: 8px; background: linear-gradient(90deg, transparent, #ffd070 30%, #ffb050 70%, transparent); border-radius: 50%; filter: blur(4px); animation: msc-footlight 10s ease-in-out infinite alternate; }
@keyframes msc-depth { 0% { opacity: 0.85; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes msc-curtain { 0% { width: 20%; } 50% { width: 22%; } 100% { width: 18%; } }
@keyframes msc-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes msc-king-stand { 0% { transform: translateX(-50%) translateY(-10px) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-12px) rotate(2deg); } 75% { transform: translateX(-52%) translateY(-8px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(-10px) rotate(0deg); } }
@keyframes msc-hamlet-turn { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(10deg) translateX(8px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes msc-flicker { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,208,128,0.5); } 100% { opacity: 1; box-shadow: 0 0 25px 8px rgba(255,208,128,0.8); } }
@keyframes msc-footlight { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-item-recorder-pipe { background: linear-gradient(180deg, #c0a880 0%, #a08060 50%, #806040 100%), radial-gradient(circle at 50% 40%, #e0c090 0%, transparent 70%); }
.scn-item-recorder-pipe .table-top { position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: irp-table 14s ease-in-out infinite; }
.scn-item-recorder-pipe .recorder-body { position: absolute; bottom: 35%; left: 50%; width: 24px; height: 90px; transform: translateX(-50%) rotate(-5deg); background: linear-gradient(90deg, #b08040 0%, #d0a050 40%, #b08040 100%); border-radius: 30% 30% 20% 20%; box-shadow: 2px 4px 10px rgba(0,0,0,0.4); animation: irp-recorder 4s ease-in-out infinite; }
.scn-item-recorder-pipe .recorder-mouth { position: absolute; bottom: 68%; left: 50%; width: 10px; height: 16px; transform: translateX(-50%) rotate(-5deg); background: linear-gradient(90deg, #a07030 0%, #c09050 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3); }
.scn-item-recorder-pipe .hole { position: absolute; background: #2a1a0a; border-radius: 50%; }
.scn-item-recorder-pipe .hole-1 { bottom: 52%; left: 50%; width: 6px; height: 6px; transform: translateX(-50%); animation: irp-hole-glow 3s ease-in-out infinite; }
.scn-item-recorder-pipe .hole-2 { bottom: 44%; left: 50%; width: 8px; height: 8px; transform: translateX(-50%); animation: irp-hole-glow 3s ease-in-out infinite 0.5s; }
.scn-item-recorder-pipe .hole-3 { bottom: 36%; left: 50%; width: 7px; height: 7px; transform: translateX(-50%); animation: irp-hole-glow 3s ease-in-out infinite 1s; }
.scn-item-recorder-pipe .hand-left { position: absolute; bottom: 20%; left: 30%; width: 30px; height: 30px; background: radial-gradient(circle, #c8a070 0%, #a08050 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-20deg); animation: irp-hand-left 6s ease-in-out infinite; }
.scn-item-recorder-pipe .hand-right { position: absolute; bottom: 25%; right: 30%; width: 28px; height: 28px; background: radial-gradient(circle, #c8a070 0%, #a08050 100%); border-radius: 50% 50% 40% 40%; transform: rotate(30deg); animation: irp-hand-right 6s ease-in-out infinite; }
@keyframes irp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes irp-recorder { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-48%) rotate(-2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-5deg) scale(1); } }
@keyframes irp-hole-glow { 0% { box-shadow: 0 0 0 0 rgba(0,0,0,0); } 50% { box-shadow: 0 0 4px 2px rgba(120,80,40,0.5); } 100% { box-shadow: 0 0 0 0 rgba(0,0,0,0); } }
@keyframes irp-hand-left { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(-4px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes irp-hand-right { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(35deg) translateX(4px); } 100% { transform: rotate(30deg) translateX(0); } }

.scn-hamlet-cloud-camel { background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 40%, #a09080 100%), radial-gradient(ellipse at 30% 10%, #f0e8d8 0%, transparent 70%); }
.scn-hamlet-cloud-camel .window-frame { position: absolute; inset: 0; border: 12px solid #5a4a3a; border-radius: 4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); animation: hcc-window 20s ease-in-out infinite; }
.scn-hamlet-cloud-camel .sky-bg { position: absolute; inset: 5%; background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%); border-radius: 2%; animation: hcc-sky 30s ease-in-out infinite alternate; }
.scn-hamlet-cloud-camel .cloud-camel { position: absolute; top: 20%; left: 30%; width: 80px; height: 30px; background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(200,200,210,0.5) 100%); border-radius: 60% 40% 50% 30% / 40% 50% 30% 60%; filter: blur(4px); animation: hcc-camel 25s linear infinite; }
.scn-hamlet-cloud-camel .cloud-weasel { position: absolute; top: 35%; left: 55%; width: 60px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(200,200,210,0.4) 100%); border-radius: 30% 60% 40% 50% / 50% 30% 60% 40%; filter: blur(3px); animation: hcc-weasel 35s linear infinite; }
.scn-hamlet-cloud-camel .cloud-whale { position: absolute; top: 45%; left: 15%; width: 100px; height: 25px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,210,0.3) 100%); border-radius: 50% 50% 40% 60% / 60% 40% 50% 50%; filter: blur(5px); animation: hcc-whale 40s linear infinite reverse; }
.scn-hamlet-cloud-camel .silhouette-left { position: absolute; bottom: 12%; left: 15%; width: 22px; height: 60px; background: #2a2a3a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hcc-gesture-left 6s ease-in-out infinite; }
.scn-hamlet-cloud-camel .silhouette-right { position: absolute; bottom: 10%; right: 20%; width: 24px; height: 55px; background: #1a2a2a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hcc-gesture-right 7s ease-in-out infinite; }
.scn-hamlet-cloud-camel .sunbeam { position: absolute; bottom: 20%; left: 40%; width: 40px; height: 100px; background: linear-gradient(180deg, transparent 0%, rgba(255,240,200,0.2) 100%); transform: rotate(20deg); filter: blur(6px); animation: hcc-beam 15s ease-in-out infinite alternate; }
@keyframes hcc-window { 0% { border-color: #5a4a3a; } 50% { border-color: #6a5a4a; } 100% { border-color: #5a4a3a; } }
@keyframes hcc-sky { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes hcc-camel { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(30px) scaleX(1.1); } 100% { transform: translateX(60px) scaleX(0.9); } }
@keyframes hcc-weasel { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.2); } 100% { transform: translateX(-40px) scaleY(0.8); } }
@keyframes hcc-whale { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(20px) skewX(5deg); } 100% { transform: translateX(40px) skewX(-5deg); } }
@keyframes hcc-gesture-left { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(15deg) translateX(5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hcc-gesture-right { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(-4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hcc-beam { 0% { opacity: 0.1; transform: rotate(20deg); } 100% { opacity: 0.4; transform: rotate(30deg); } }

.scn-claudius-orders-england { background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 50%, #2a0a00 100%), radial-gradient(circle at 30% 60%, #7a4a2a 0%, transparent 60%); }
.scn-claudius-orders-england .desk-top { position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: coe-desk 20s ease-in-out infinite alternate; }
.scn-claudius-orders-england .scroll-doc { position: absolute; bottom: 30%; left: 50%; width: 80px; height: 12px; transform: translateX(-50%) rotate(-2deg); background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 80% 80% 10% 10% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: coe-scroll 6s ease-in-out infinite; }
.scn-claudius-orders-england .seal-wax { position: absolute; bottom: 28%; left: 50%; width: 14px; height: 14px; transform: translateX(-50%) translateY(-4px); background: radial-gradient(circle, #a04030 0%, #702020 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(160,64,48,0.5); animation: coe-seal 8s ease-in-out infinite; }
.scn-claudius-orders-england .king-throne { position: absolute; bottom: 25%; right: 20%; width: 50px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: coe-throne 10s ease-in-out infinite; }
.scn-claudius-orders-england .lord-left { position: absolute; bottom: 15%; left: 25%; width: 18px; height: 45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: coe-bow-left 5s ease-in-out infinite; }
.scn-claudius-orders-england .lord-right { position: absolute; bottom: 15%; right: 30%; width: 18px; height: 45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: coe-bow-right 5s ease-in-out infinite; }
.scn-claudius-orders-england .candle-flare { position: absolute; bottom: 28%; left: 15%; width: 10px; height: 14px; background: radial-gradient(circle, #ffb040 0%, #b06020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 16px 4px rgba(255,176,64,0.7), 0 0 32px 8px rgba(255,176,64,0.4); animation: coe-flare 3s ease-in-out infinite alternate; }
@keyframes coe-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes coe-scroll { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-48%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes coe-seal { 0% { transform: translateX(-50%) translateY(-4px) scale(1); } 50% { transform: translateX(-50%) translateY(-6px) scale(1.05); } 100% { transform: translateX(-50%) translateY(-4px) scale(1); } }
@keyframes coe-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes coe-bow-left { 0% { transform: rotate(0deg); } 25% { transform: rotate(12deg); } 75% { transform: rotate(-6deg); } 100% { transform: rotate(0deg); } }
@keyframes coe-bow-right { 0% { transform: rotate(0deg); } 25% { transform: rotate(-12deg); } 75% { transform: rotate(6deg); } 100% { transform: rotate(0deg); } }
@keyframes coe-flare { 0% { opacity: 0.7; box-shadow: 0 0 12px 2px rgba(255,176,64,0.5); } 100% { opacity: 1; box-shadow: 0 0 20px 6px rgba(255,176,64,0.8); } }

.scn-hamlet-antic-disposition {
  background:
    linear-gradient(180deg, #0b0e2a 0%, #1a1f4a 35%, #2a2f5e 70%, #1a1f3a 100%),
    radial-gradient(ellipse at 50% 120%, #2a3a5a 0%, transparent 70%);
}

.scn-hamlet-antic-disposition .moon {
  position: absolute;
  top: 6%;
  left: 70%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #c8d4e8 0%, #a0b0d0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160, 176, 208, 0.4);
  animation: ha-moon 12s ease-in-out infinite alternate;
}

.scn-hamlet-antic-disposition .sky-cloud {
  position: absolute;
  top: 4%;
  left: 10%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, rgba(200, 210, 230, 0.3) 0%, transparent 100%);
  filter: blur(10px);
  border-radius: 50%;
  animation: ha-cloud 40s linear infinite;
}

.scn-hamlet-antic-disposition .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1f2a 0%, #121624 40%, #0c0e1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
  animation: ha-ground 6s ease-in-out infinite alternate;
}

.scn-hamlet-antic-disposition .figure-left {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #0c0e1a 0%, #161a2a 50%, #1a1f2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure-l 5s ease-in-out infinite;
}

.scn-hamlet-antic-disposition .figure-right {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #0c0e1a 0%, #161a2a 50%, #1a1f2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure-r 5.5s ease-in-out infinite 0.3s;
}

.scn-hamlet-antic-disposition .sword {
  position: absolute;
  bottom: 22%;
  left: 44%;
  width: 4px;
  height: 36px;
  background: linear-gradient(180deg, #8a9aad 0%, #b0c0d0 50%, #6a7a8a 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(176, 192, 208, 0.5);
  transform: rotate(15deg);
  animation: ha-sword 3s ease-in-out infinite alternate;
}

.scn-hamlet-antic-disposition .mist {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 12%;
  background: linear-gradient(180deg, transparent 0%, rgba(200, 210, 230, 0.1) 100%);
  filter: blur(8px);
  animation: ha-mist 20s ease-in-out infinite alternate;
}

@keyframes ha-moon {
  0% { transform: translate(0, 0); opacity: 0.8; }
  50% { transform: translate(2px, -3px); opacity: 1; }
  100% { transform: translate(-1px, 2px); opacity: 0.85; }
}

@keyframes ha-cloud {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(100vw); }
}

@keyframes ha-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}

@keyframes ha-figure-l {
  0% { transform: translateX(-2px) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}

@keyframes ha-figure-r {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-3px) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}

@keyframes ha-sword {
  0% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(14deg) translateY(0); }
}

@keyframes ha-mist {
  0% { opacity: 0; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* --- oath-swearing --- */

.scn-oath-swearing {
  background:
    linear-gradient(180deg, #070610 0%, #1a1040 30%, #2a1a4a 60%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 80%);
}

.scn-oath-swearing .moon {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #c0c8d8 0%, #9098b0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(144, 152, 176, 0.5);
  animation: os-moon 10s ease-in-out infinite alternate;
}

.scn-oath-swearing .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #12121a 0%, #08080e 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 15px rgba(0,0,0,0.7);
  animation: os-ground 8s ease-in-out infinite alternate;
}

.scn-oath-swearing .figure-kneeling {
  position: absolute;
  bottom: 12%;
  left: 35%;
  width: 22px;
  height: 42px;
  background: linear-gradient(180deg, #0a0a12 0%, #16161f 50%, #0e0e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-kneel 4s ease-in-out infinite;
}

.scn-oath-swearing .figure-standing {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 24px;
  height: 54px;
  background: linear-gradient(180deg, #0a0a12 0%, #16161f 50%, #0e0e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-stand 5s ease-in-out infinite 0.2s;
}

.scn-oath-swearing .sword-vertical {
  position: absolute;
  bottom: 8%;
  left: 44%;
  width: 5px;
  height: 50px;
  background: linear-gradient(180deg, #7a8a9a 0%, #9aabbb 40%, #5a6a7a 100%);
  border-radius: 3px;
  box-shadow: 0 0 8px rgba(154, 171, 187, 0.4);
  transform: rotate(5deg) translateX(-10px);
  animation: os-sword 3s ease-in-out infinite alternate;
}

.scn-oath-swearing .crack {
  position: absolute;
  bottom: 0;
  left: 60%;
  width: 30px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: os-crack 6s ease-in-out infinite alternate;
}

.scn-oath-swearing .ghost-vapor {
  position: absolute;
  bottom: 5%;
  left: 62%;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180, 200, 220, 0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: os-ghost 9s ease-in-out infinite alternate;
}

.scn-oath-swearing .stone-edge {
  position: absolute;
  bottom: 10%;
  left: 20%;
  right: 20%;
  height: 8px;
  background: linear-gradient(90deg, transparent, #1a1a2a 10%, #2a2a3a 50%, #1a1a2a 90%, transparent);
  border-radius: 50%;
  animation: os-edge 4s ease-in-out infinite alternate;
}

@keyframes os-moon {
  0% { box-shadow: 0 0 20px 10px rgba(144, 152, 176, 0.4); }
  50% { box-shadow: 0 0 40px 20px rgba(144, 152, 176, 0.7); }
  100% { box-shadow: 0 0 25px 12px rgba(144, 152, 176, 0.5); }
}

@keyframes os-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}

@keyframes os-kneel {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}

@keyframes os-stand {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes os-sword {
  0% { transform: rotate(3deg) translateX(-10px); }
  50% { transform: rotate(7deg) translateX(-12px); }
  100% { transform: rotate(4deg) translateX(-10px); }
}

@keyframes os-crack {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

@keyframes os-ghost {
  0% { opacity: 0; }
  50% { opacity: 0.5; }
  100% { opacity: 0.1; }
}

@keyframes os-edge {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* --- hamlet-antic-promise --- */

.scn-hamlet-antic-promise {
  background:
    linear-gradient(180deg, #0a0b16 0%, #12162a 30%, #1a1e3a 60%, #161a30 100%),
    radial-gradient(ellipse at 50% 80%, #1a1e3a 0%, transparent 60%);
}

.scn-hamlet-antic-promise .arch {
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 50%;
  background: linear-gradient(180deg, #1a1e2a 0%, #12141f 70%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: hp-arch 8s ease-in-out infinite alternate;
}

.scn-hamlet-antic-promise .door-dark {
  position: absolute;
  bottom: 20%;
  left: 38%;
  right: 38%;
  height: 40%;
  background: linear-gradient(180deg, #08080e 0%, #000 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: hp-door 10s ease-in-out infinite alternate;
}

.scn-hamlet-antic-promise .figure-hamlet {
  position: absolute;
  bottom: 15%;
  left: 44%;
  width: 22px;
  height: 46px;
  background: linear-gradient(180deg, #0c0c14 0%, #141420 50%, #0e0e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-hamlet 4s ease-in-out infinite;
}

.scn-hamlet-antic-promise .figure-horatio {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 20px;
  height: 44px;
  background: linear-gradient(180deg, #0c0c14 0%, #141420 50%, #0e0e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-horatio 4.5s ease-in-out infinite 0.5s;
}

.scn-hamlet-antic-promise .moon-through {
  position: absolute;
  top: 8%;
  left: 45%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #b0b8cc 0%, #8088a0 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(128, 136, 160, 0.4);
  animation: hp-moon 12s ease-in-out infinite alternate;
}

.scn-hamlet-antic-promise .torch-glow {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, rgba(200, 180, 140, 0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: hp-torch 3s ease-in-out infinite alternate;
}

.scn-hamlet-antic-promise .steps {
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 20%;
  background: linear-gradient(180deg, #1a1e2a 0%, #12141f 50%, #0c0e16 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
  animation: hp-steps 6s ease-in-out infinite alternate;
}

.scn-hamlet-antic-promise .shadow-pool {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  filter: blur(6px);
  animation: hp-pool 15s ease-in-out infinite alternate;
}

@keyframes hp-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}

@keyframes hp-door {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes hp-hamlet {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes hp-horatio {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}

@keyframes hp-moon {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

@keyframes hp-torch {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

@keyframes hp-steps {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes hp-pool {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* --- polonius-reynaldo --- */

.scn-polonius-reynaldo {
  background:
    linear-gradient(135deg, #1a1a14 0%, #2a261e 30%, #1e1c14 60%, #14120c 100%),
    radial-gradient(ellipse at 70% 40%, #2a261e 0%, transparent 70%);
}

.scn-polonius-reynaldo .wall-dark {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #1e1c14 0%, #14120c 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: pr-wall 12s ease-in-out infinite alternate;
}

.scn-polonius-reynaldo .window-dull {
  position: absolute;
  top: 15%;
  left: 5%;
  width: 30px;
  height: 40px;
  background: radial-gradient(circle at 30% 30%, #2a2a22 0%, #1a1a12 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: pr-win 8s ease-in-out infinite alternate;
}

.scn-polonius-reynaldo .table-wood {
  position: absolute;
  bottom: 20%;
  left: 15%;
  right: 15%;
  height: 18px;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: pr-table 6s ease-in-out infinite alternate;
}

.scn-polonius-reynaldo .candle {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 6px;
  height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 60%, #604020 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200, 160, 96, 0.4);
  animation: pr-candle 3s ease-in-out infinite alternate;
}

.scn-polonius-reynaldo .papers {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 30px;
  height: 8px;
  background: linear-gradient(180deg, #4a4030 0%, #3a3020 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: pr-papers 7s ease-in-out infinite alternate;
}

.scn-polonius-reynaldo .polonius-silhouette {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 20px;
  height: 38px;
  background: linear-gradient(180deg, #0c0a08 0%, #14120e 50%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-polo 5s ease-in-out infinite;
}

.scn-polonius-reynaldo .reynaldo-silhouette {
  position: absolute;
  bottom: 22%;
  left: 60%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #0c0a08 0%, #14120e 50%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-reyn 5.5s ease-in-out infinite 0.3s;
}

.scn-polonius-reynaldo .coin-pile {
  position: absolute;
  bottom: 19%;
  left: 48%;
  width: 20px;
  height: 6px;
  background: radial-gradient(ellipse at 50% 0%, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pr-coin 4s ease-in-out infinite alternate;
}

@keyframes pr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

@keyframes pr-win {
  0% { background: radial-gradient(circle at 30% 30%, #2a2a22 0%, #1a1a12 100%); }
  50% { background: radial-gradient(circle at 30% 30%, #3a3a32 0%, #1a1a12 100%); }
  100% { background: radial-gradient(circle at 30% 30%, #2a2a22 0%, #1a1a12 100%); }
}

@keyframes pr-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}

@keyframes pr-candle {
  0% { height: 18px; opacity: 0.7; }
  25% { height: 19px; opacity: 1; }
  50% { height: 17px; opacity: 0.8; }
  75% { height: 18px; opacity: 0.9; }
  100% { height: 18px; opacity: 0.7; }
}

@keyframes pr-papers {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-6deg) translateX(-1px); }
}

@keyframes pr-polo {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

@keyframes pr-reyn {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes pr-coin {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* Scene: hamlet-horatio-friendship */
.scn-hamlet-horatio-friendship {
  background: 
    radial-gradient(ellipse at 80% 60%, #f0c8a0 0%, transparent 50%),
    linear-gradient(180deg, #f5e0c0 0%, #d4b88c 40%, #a08060 100%);
}
.scn-hamlet-horatio-friendship .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e0c8a8 0%, #c8aa80 50%, #a08060 100%);
  border-radius: 0; animation: hhf-bg 30s ease-in-out infinite alternate;
}
.scn-hamlet-horatio-friendship .fireplace {
  position: absolute; bottom: 20%; left: 5%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-hamlet-horatio-friendship .fire {
  position: absolute; bottom: 22%; left: 8%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #ffa060 0%, #e06030 50%, transparent 70%);
  border-radius: 50%; animation: hhf-fire 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(255,160,96,0.4);
}
.scn-hamlet-horatio-friendship .shelf {
  position: absolute; top: 15%; right: 5%; width: 160px; height: 20px;
  background: #4a3a2a; border-radius: 2px; box-shadow: 0 20px 0 0 #4a3a2a, 0 40px 0 0 #4a3a2a;
  animation: hhf-shelf 20s linear infinite;
}
.scn-hamlet-horatio-friendship .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg);
  animation: hhf-figure-left 6s ease-in-out infinite;
}
.scn-hamlet-horatio-friendship .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #302218 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg);
  animation: hhf-figure-right 7s ease-in-out infinite;
}
.scn-hamlet-horatio-friendship .candle {
  position: absolute; bottom: 28%; left: 40%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffe8c0 0%, #ffc080 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 10px 4px #ffc080;
  animation: hhf-candle 2.5s ease-in-out infinite alternate;
}
.scn-hamlet-horatio-friendship .window-light {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.4) 0%, transparent 70%);
  border-radius: 10%; animation: hhf-window 15s ease-in-out infinite;
}
.scn-hamlet-horatio-friendship .rug {
  position: absolute; bottom: 16%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(90deg, #8a6a4a 0%, #a08060 50%, #8a6a4a 100%);
  border-radius: 30% 30% 0 0; opacity: 0.6; animation: hhf-rug 10s linear infinite;
}
@keyframes hhf-bg { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes hhf-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(0.9) translateY(1px); } }
@keyframes hhf-shelf { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hhf-figure-left { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(-7deg) translateY(0); } 75% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hhf-figure-right { 0% { transform: rotate(3deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-1px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes hhf-candle { 0% { filter: brightness(0.8); } 100% { filter: brightness(1.2); } }
@keyframes hhf-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes hhf-rug { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* Scene: mousetrap-begins */
.scn-mousetrap-begins {
  background: 
    radial-gradient(ellipse at 50% 90%, #f5e8c0 0%, transparent 60%),
    linear-gradient(180deg, #f0e0b0 0%, #d0b880 100%);
}
.scn-mousetrap-begins .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a070 0%, #8a7050 100%);
  border-top: 4px solid #6a5030; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-mousetrap-begins .curtain-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 90%;
  background: linear-gradient(135deg, #d8b850 0%, #b89830 100%);
  border-radius: 0 40% 0 0; transform: skewY(-5deg); animation: mb-curtain-l 12s ease-in-out infinite alternate;
}
.scn-mousetrap-begins .curtain-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 90%;
  background: linear-gradient(225deg, #d8b850 0%, #b89830 100%);
  border-radius: 40% 0 0 0; transform: skewY(5deg); animation: mb-curtain-r 12s ease-in-out infinite alternate-reverse;
}
.scn-mousetrap-begins .backdrop {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 75%;
  background: radial-gradient(ellipse at 50% 30%, #c8b880 0%, #a09060 100%);
  animation: mb-backdrop 20s linear infinite;
}
.scn-mousetrap-begins .hamlet {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg) scaleX(-1);
  animation: mb-hamlet 3s ease-in-out infinite;
}
.scn-mousetrap-begins .polonius {
  position: absolute; bottom: 28%; right: 30%; width: 36px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform: rotate(8deg);
  animation: mb-polonius 4s ease-in-out infinite;
}
.scn-mousetrap-begins .crown {
  position: absolute; bottom: 58%; left: 48%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #e8c840 0%, #b89820 100%);
  border-radius: 50% 50% 10% 10%; clip-path: polygon(0% 100%, 20% 0%, 40% 40%, 60% 0%, 80% 40%, 100% 0%, 100% 100%);
  animation: mb-crown 2s ease-in-out infinite alternate;
}
.scn-mousetrap-begins .chameleon-shadow {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 20px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(4px);
  animation: mb-chameleon 8s ease-in-out infinite;
}
.scn-mousetrap-begins .footlight {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 8px;
  background: radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%);
  border-radius: 50%; animation: mb-footlight 1.5s ease-in-out infinite alternate;
}
@keyframes mb-curtain-l { 0% { transform: skewY(-5deg) translateX(0); } 50% { transform: skewY(-8deg) translateX(-10px); } 100% { transform: skewY(-3deg) translateX(5px); } }
@keyframes mb-curtain-r { 0% { transform: skewY(5deg) translateX(0); } 50% { transform: skewY(8deg) translateX(10px); } 100% { transform: skewY(3deg) translateX(-5px); } }
@keyframes mb-backdrop { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.9); } }
@keyframes mb-hamlet { 0% { transform: rotate(-10deg) scaleX(-1) translateY(0); } 25% { transform: rotate(-5deg) scaleX(-1) translateY(-3px); } 50% { transform: rotate(-15deg) scaleX(-1) translateY(0); } 75% { transform: rotate(-8deg) scaleX(-1) translateY(-2px); } 100% { transform: rotate(-10deg) scaleX(-1) translateY(0); } }
@keyframes mb-polonius { 0% { transform: rotate(8deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(10deg) translateY(-1px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes mb-crown { 0% { transform: rotate(-5deg) scale(1); } 100% { transform: rotate(5deg) scale(1.1); } }
@keyframes mb-chameleon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(0.8); } 100% { transform: translateX(0) scale(1); } }
@keyframes mb-footlight { 0% { opacity: 0.6; } 100% { opacity: 1; } }

/* Scene: mousetrap-dumb-show */
.scn-mousetrap-dumb-show {
  background: 
    radial-gradient(ellipse at 30% 40%, #f0e0c0 0%, transparent 50%),
    linear-gradient(180deg, #c0a880 0%, #8a7050 40%, #4a3a2a 100%);
}
.scn-mousetrap-dumb-show .stage-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: inset(20% 10% 15% 10% round 10%);
  animation: mds-dark 15s ease-in-out infinite alternate;
}
.scn-mousetrap-dumb-show .king-figure {
  position: absolute; bottom: 30%; left: 30%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform: rotate(-2deg);
  animation: mds-king 5s ease-in-out infinite;
}
.scn-mousetrap-dumb-show .queen-figure {
  position: absolute; bottom: 30%; right: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: rotate(2deg);
  animation: mds-queen 5.5s ease-in-out infinite reverse;
}
.scn-mousetrap-dumb-show .bank-flowers {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
  animation: mds-flowers 8s linear infinite;
}
.scn-mousetrap-dumb-show .poison-vial {
  position: absolute; bottom: 45%; left: 48%; width: 10px; height: 18px;
  background: linear-gradient(135deg, #60a060 30%, #306030 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px 2px rgba(48,96,48,0.6);
  animation: mds-poison 3s ease-in-out infinite alternate;
}
.scn-mousetrap-dumb-show .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  clip-path: polygon(20% 60%, 80% 60%, 100% 100%, 0% 100%);
  animation: mds-shadow 6s ease-in-out infinite alternate;
}
.scn-mousetrap-dumb-show .light-spot {
  position: absolute; top: 10%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.3) 0%, transparent 70%);
  border-radius: 50%; animation: mds-light 4s ease-in-out infinite;
}
.scn-mousetrap-dumb-show .corner-drape {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, #3a2a1a 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 0% 100%);
  animation: mds-drape 20s ease-in-out infinite alternate;
}
@keyframes mds-dark { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes mds-king { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-3px); } 50% { transform: rotate(-4deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes mds-queen { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes mds-flowers { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes mds-poison { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.1) rotate(10deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-10deg); opacity: 0.7; } }
@keyframes mds-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 100% { transform: scaleX(0.8); opacity: 0.8; } }
@keyframes mds-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes mds-drape { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

/* Scene: mousetrap-play */
.scn-mousetrap-play {
  background: 
    radial-gradient(ellipse at 50% 40%, #f0e8d0 0%, transparent 60%),
    linear-gradient(180deg, #e0d0b0 0%, #b8a080 100%);
}
.scn-mousetrap-play .scene-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #d8c8a8 0%, #9a8060 100%);
  animation: mtp-bg 30s ease-in-out infinite alternate;
}
.scn-mousetrap-play .king-actor {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg);
  animation: mtp-king 8s ease-in-out infinite;
}
.scn-mousetrap-play .queen-actor {
  position: absolute; bottom: 30%; right: 35%; width: 46px; height: 86px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: rotate(3deg);
  animation: mtp-queen 8.5s ease-in-out infinite reverse;
}
.scn-mousetrap-play .moons-sky {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #f0e0c0 0%, transparent 60%);
  border-radius: 50%; filter: blur(4px); animation: mtp-moons 45s linear infinite;
}
.scn-mousetrap-play .sun-cart {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, transparent 70%);
  border-radius: 50%; animation: mtp-sun 40s linear infinite reverse;
}
.scn-mousetrap-play .orbital-ring {
  position: absolute; top: 30%; left: 50%; width: 200px; height: 200px;
  border: 2px solid rgba(200,180,140,0.3); border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.8); animation: mtp-orbit 60s linear infinite;
}
.scn-mousetrap-play .embrace-glint {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe8b0 0%, transparent 70%);
  border-radius: 50%; animation: mtp-glint 3s ease-in-out infinite alternate;
  transform: translateX(-50%);
}
.scn-mousetrap-play .slow-dust {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.05) 0%, transparent 50%);
  animation: mtp-dust 20s ease-in-out infinite;
}
@keyframes mtp-bg { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes mtp-king { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes mtp-queen { 0% { transform: rotate(3deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-1px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes mtp-moons { 0% { opacity: 0.1; } 25% { opacity: 0.3; } 50% { opacity: 0.15; } 75% { opacity: 0.25; } 100% { opacity: 0.1; } }
@keyframes mtp-sun { 0% { left: 10%; } 25% { left: 30%; } 50% { left: 50%; } 75% { left: 70%; } 100% { left: 90%; } }
@keyframes mtp-orbit { 0% { transform: translate(-50%, -50%) scale(0.8) rotate(0deg); } 100% { transform: translate(-50%, -50%) scale(0.8) rotate(360deg); } }
@keyframes mtp-glint { 0% { opacity: 0.2; } 100% { opacity: 0.8; } }
@keyframes mtp-dust { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }

.scn-hamlet-lawyer-skull {
  background: linear-gradient(180deg, #3a3e4a 0%, #2c303c 50%, #1e222a 100%),
              radial-gradient(ellipse at 50% 100%, #2d323f 0%, transparent 70%);
}
.scn-hamlet-lawyer-skull .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #464d5c 0%, #3a3e4a 60%, transparent 100%);
  animation: hl-sky 20s ease-in-out infinite alternate;
}
.scn-hamlet-lawyer-skull .ground-mound {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #3a4030 0%, #1e2218 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: hl-mound 12s ease-in-out infinite;
}
.scn-hamlet-lawyer-skull .skull {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 48px; height: 56px;
  background: linear-gradient(180deg, #b0a890 0%, #8c7e6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 -4px 6px rgba(0,0,0,0.2);
  animation: hl-skull 8s ease-in-out infinite alternate;
}
.scn-hamlet-lawyer-skull .wig {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: hl-wig 6s ease-in-out infinite;
}
.scn-hamlet-lawyer-skull .shovel {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: hl-shovel 10s ease-in-out infinite;
}
.scn-hamlet-lawyer-skull .parchment {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #c8b89a 0%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: hl-parchment 14s ease-in-out infinite alternate;
}
.scn-hamlet-lawyer-skull .quill {
  position: absolute; bottom: 36%; right: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 10% 10%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: hl-quill 7s ease-in-out infinite alternate;
}
.scn-hamlet-lawyer-skull .shadow-grave {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: hl-shadow 16s ease-in-out infinite;
}
@keyframes hl-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes hl-mound { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hl-skull { 0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.85; } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02); opacity: 1; } 100% { transform: translateX(-50%) rotate(-1deg); opacity: 0.9; } }
@keyframes hl-wig { 0%,100% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } }
@keyframes hl-shovel { 0% { transform: rotate(25deg); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(22deg); } }
@keyframes hl-parchment { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(4px); } 100% { transform: rotate(-12deg) translateX(-2px); } }
@keyframes hl-quill { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(12deg); } }
@keyframes hl-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }

.scn-horatio-not-a-jot {
  background: linear-gradient(180deg, #4a4e5a 0%, #3a3e4a 40%, #2a2e3a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3f4c 0%, transparent 60%);
}
.scn-horatio-not-a-jot .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a6070 0%, #4a4e5a 60%, transparent 100%);
  animation: hn-sky 18s ease-in-out infinite alternate;
}
.scn-horatio-not-a-jot .ground-grave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a4030 0%, #1e2218 100%);
  border-radius: 30% 70% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.4);
  animation: hn-ground 20s ease-in-out infinite;
}
.scn-horatio-not-a-jot .grave-marker {
  position: absolute; bottom: 45%; left: 40%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hn-marker 15s ease-in-out infinite alternate;
}
.scn-horatio-not-a-jot .parchment-roll {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #c8b89a 0%, #a09070 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: hn-roll 12s ease-in-out infinite;
}
.scn-horatio-not-a-jot .parchment-roll-two {
  position: absolute; bottom: 36%; left: 55%; width: 36px; height: 12px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-8deg);
  animation: hn-roll-two 14s ease-in-out infinite reverse;
}
.scn-horatio-not-a-jot .sheep-skull {
  position: absolute; bottom: 42%; left: 30%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #c0b8a8 0%, #a09880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hn-sheep 16s ease-in-out infinite alternate;
}
.scn-horatio-not-a-jot .calf-skull {
  position: absolute; bottom: 44%; left: 20%; width: 28px; height: 32px;
  background: linear-gradient(180deg, #b0a898 0%, #908878 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: hn-calf 18s ease-in-out infinite alternate;
}
.scn-horatio-not-a-jot .spade {
  position: absolute; bottom: 38%; right: 25%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 3px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: hn-spade 12s ease-in-out infinite;
}
.scn-horatio-not-a-jot .silhouette-horatio {
  position: absolute; bottom: 38%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hn-figure 22s ease-in-out infinite;
}
@keyframes hn-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes hn-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hn-marker { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hn-roll { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(10deg) translateX(3px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes hn-roll-two { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-4deg) translateX(-2px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes hn-sheep { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(2deg) scale(1.03); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes hn-calf { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-12deg); } }
@keyframes hn-spade { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(12deg); } }
@keyframes hn-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-hamlet-think-thine {
  background: linear-gradient(180deg, #2e3240 0%, #1e2230 50%, #121620 100%),
              radial-gradient(ellipse at 50% 100%, #1e2230 0%, transparent 70%);
}
.scn-hamlet-think-thine .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a3f50 0%, #2e3240 60%, transparent 100%);
  animation: ht-sky 25s ease-in-out infinite alternate;
}
.scn-hamlet-think-thine .ground-rough {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #2a2e20 0%, #1a1e10 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: ht-ground 15s ease-in-out infinite;
}
.scn-hamlet-think-thine .grave-opening {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #0a0a0a 0%, #1a1a10 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.8);
  animation: ht-grave 10s ease-in-out infinite;
}
.scn-hamlet-think-thine .silhouette-hamlet {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #0a0e1a 0%, #020408 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-hamlet 8s ease-in-out infinite alternate;
}
.scn-hamlet-think-thine .silhouette-gravedigger {
  position: absolute; bottom: 28%; right: 28%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #0a0e1a 0%, #020408 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ht-digger 9s ease-in-out infinite alternate;
}
.scn-hamlet-think-thine .shovel-angry {
  position: absolute; bottom: 26%; left: 38%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 3px;
  transform: rotate(35deg);
  transform-origin: bottom center;
  animation: ht-shovel 8s ease-in-out infinite;
}
.scn-hamlet-think-thine .bone-fragment {
  position: absolute; bottom: 50%; left: 45%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #b0a898 0%, #908878 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ht-bone 12s ease-in-out infinite;
}
.scn-hamlet-think-thine .shadow-tense {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: ht-shadow 14s ease-in-out infinite alternate;
}
@keyframes ht-sky { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.65; } }
@keyframes ht-ground { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.005); } 100% { transform: translateY(0) scale(1); } }
@keyframes ht-grave { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ht-hamlet { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ht-digger { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ht-shovel { 0% { transform: rotate(35deg); } 50% { transform: rotate(40deg) translateY(-3px); } 100% { transform: rotate(32deg); } }
@keyframes ht-bone { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(15deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ht-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.45; } }

.scn-first-clown-quick-lie {
  background: linear-gradient(180deg, #4a505e 0%, #3a404e 40%, #2a303c 100%),
              radial-gradient(ellipse at 50% 100%, #3a4050 0%, transparent 60%);
}
.scn-first-clown-quick-lie .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6072 0%, #4a505e 60%, transparent 100%);
  animation: fc-sky 18s ease-in-out infinite alternate;
}
.scn-first-clown-quick-lie .ground-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a4032 0%, #1e2218 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: fc-ground 20s ease-in-out infinite;
}
.scn-first-clown-quick-lie .skull-grin {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 46px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: fc-skull 6s ease-in-out infinite alternate;
}
.scn-first-clown-quick-lie .jester-hat {
  position: absolute; bottom: 52%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 18px;
  background: radial-gradient(ellipse at 50% 0%, #7a6a3a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: fc-hat 8s ease-in-out infinite;
}
.scn-first-clown-quick-lie .spade-dance {
  position: absolute; bottom: 32%; left: 30%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 3px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: fc-spade 5s ease-in-out infinite;
}
.scn-first-clown-quick-lie .bone-piece {
  position: absolute; bottom: 45%; right: 30%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #b0a898 0%, #908878 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fc-bone 10s ease-in-out infinite alternate;
}
.scn-first-clown-quick-lie .dirt-clod {
  position: absolute; bottom: 36%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #4a4a30 0%, #2a2a18 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fc-clod 7s ease-in-out infinite;
}
.scn-first-clown-quick-lie .shadow-comic {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.35) 0%, transparent 100%);
  animation: fc-shadow 12s ease-in-out infinite;
}
@keyframes fc-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes fc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fc-skull { 0% { transform: translateX(-50%) rotate(-3deg) scale(1); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.04); } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.98); } }
@keyframes fc-hat { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes fc-spade { 0% { transform: rotate(20deg); } 25% { transform: rotate(30deg) translateY(-3px); } 50% { transform: rotate(15deg); } 75% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg); } }
@keyframes fc-bone { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(20deg) translateY(-6px); } 100% { transform: rotate(-10deg) translateY(2px); } }
@keyframes fc-clod { 0% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(3px, -5px) rotate(30deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes fc-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.45; } 100% { opacity: 0.35; } }

/* Scene: hamlet-body-where (tense dim interior) */
.scn-hamlet-body-where {
  background:
    radial-gradient(ellipse at 40% 60%, #2b1a15 0%, transparent 60%),
    linear-gradient(180deg, #1c1310 0%, #2a1f1b 40%, #1a1210 80%);
}
.scn-hamlet-body-where .wall-back {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #372a24 0%, #2a1f1b 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: hbw-wall 16s ease-in-out infinite;
}
.scn-hamlet-body-where .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1f1b 0%, #1a1210 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-hamlet-body-where .candle {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 14px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #e0c8a0 0%, #b09070 50%, #806050 100%);
  border-radius: 4px 4px 10% 10%;
  animation: hbw-candle 5s ease-in-out infinite;
}
.scn-hamlet-body-where .flame {
  position: absolute;
  bottom: calc(25% + 40px); left: 50%;
  width: 16px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 80%, #ffe070 0%, #ff9030 60%, transparent 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,160,60,0.5), 0 0 60px 20px rgba(255,160,60,0.2);
  animation: hbw-flame 1.2s ease-in-out infinite;
}
.scn-hamlet-body-where .body-cover {
  position: absolute;
  bottom: 12%; left: 35%;
  width: 140px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20% / 80% 80% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: hbw-body 10s ease-in-out infinite;
}
.scn-hamlet-body-where .figure-hamlet {
  position: absolute;
  bottom: 20%; left: 25%;
  width: 34px; height: 90px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 70% 65% 35% 35%;
  transform-origin: bottom center;
  animation: hbw-figure 4s ease-in-out infinite;
}
.scn-hamlet-body-where .dust {
  position: absolute;
  width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-hamlet-body-where .motes-a {
  top: 35%; left: 20%;
  animation: hbw-drift-a 25s linear infinite;
}
.scn-hamlet-body-where .motes-b {
  top: 50%; left: 70%;
  width: 12px; height: 12px;
  filter: blur(4px);
  animation: hbw-drift-b 35s linear infinite reverse;
}

@keyframes hbw-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hbw-candle {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes hbw-flame {
  0% { transform: translateX(-50%) rotate(0deg) scaleX(0.9); }
  25% { transform: translateX(-50%) rotate(5deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-3deg) scaleX(0.95); }
  75% { transform: translateX(-50%) rotate(2deg) scaleX(1.02); }
  100% { transform: translateX(-50%) rotate(0deg) scaleX(0.9); }
}
@keyframes hbw-body {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.01) translateY(-2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes hbw-figure {
  0% { transform: rotate(-1deg) translateX(0); }
  30% { transform: rotate(2deg) translateX(4px); }
  60% { transform: rotate(-2deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes hbw-drift-a {
  0% { transform: translateX(-20px) translateY(0); opacity: 0.2; }
  25% { opacity: 0.6; }
  50% { transform: translateX(30px) translateY(15px); opacity: 0.4; }
  75% { opacity: 0.7; }
  100% { transform: translateX(80px) translateY(5px); opacity: 0.2; }
}
@keyframes hbw-drift-b {
  0% { transform: translateX(0) translateY(0); opacity: 0.3; }
  50% { transform: translateX(-60px) translateY(-10px); opacity: 0.6; }
  100% { transform: translateX(-120px) translateY(5px); opacity: 0.2; }
}

/* Scene: hamlet-sponge */
.scn-hamlet-sponge {
  background:
    radial-gradient(circle at 30% 20%, #2a1a15 0%, transparent 50%),
    linear-gradient(180deg, #0d0a08 0%, #1a1210 40%, #0f0c0a 100%);
}
.scn-hamlet-sponge .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1210 0%, #0f0c0a 100%);
  animation: hs-bg 20s ease-in-out infinite;
}
.scn-hamlet-sponge .sponge-body {
  position: absolute;
  bottom: 30%; left: 30%;
  width: 180px; height: 120px;
  background:
    radial-gradient(circle at 30% 30%, #c8a878 20%, #a08050 60%, #705030 100%);
  border-radius: 40% 60% 50% 50% / 50% 60% 40% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.6);
  animation: hs-sponge 6s ease-in-out infinite;
}
.scn-hamlet-sponge .sponge-holes {
  position: absolute;
  bottom: 38%; left: 36%;
  width: 120px; height: 80px;
  background:
    radial-gradient(circle at 20% 30%, rgba(0,0,0,0.4) 8px, transparent 8px),
    radial-gradient(circle at 60% 20%, rgba(0,0,0,0.3) 6px, transparent 6px),
    radial-gradient(circle at 40% 70%, rgba(0,0,0,0.35) 10px, transparent 10px),
    radial-gradient(circle at 80% 50%, rgba(0,0,0,0.2) 5px, transparent 5px);
  animation: hs-holes 3s ease-in-out infinite;
}
.scn-hamlet-sponge .hand-grip {
  position: absolute;
  bottom: 42%; left: 18%;
  width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: top center;
  animation: hs-hand 4s ease-in-out infinite;
}
.scn-hamlet-sponge .drip {
  position: absolute;
  width: 6px; height: 12px;
  background: linear-gradient(180deg, #c0a080 0%, #907050 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-hamlet-sponge .drip-1 {
  bottom: 30%; left: 45%;
  animation: hs-drip 1.5s ease-in infinite;
}
.scn-hamlet-sponge .drip-2 {
  bottom: 28%; left: 55%;
  animation: hs-drip 1.8s ease-in infinite 0.5s;
}
.scn-hamlet-sponge .shadow-pool {
  position: absolute;
  bottom: 0; left: 20%; right: 20%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: hs-shadow 8s ease-in-out infinite;
}

@keyframes hs-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hs-sponge {
  0% { transform: scaleX(1) scaleY(1) rotate(0deg); }
  25% { transform: scaleX(1.03) scaleY(0.98) rotate(2deg); }
  50% { transform: scaleX(0.97) scaleY(1.02) rotate(-1deg); }
  75% { transform: scaleX(1.02) scaleY(0.99) rotate(1deg); }
  100% { transform: scaleX(1) scaleY(1) rotate(0deg); }
}
@keyframes hs-holes {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hs-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  30% { transform: rotate(-12deg) translateY(-2px); }
  60% { transform: rotate(-8deg) translateY(1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hs-drip {
  0% { transform: translateY(0); opacity: 1; }
  80% { opacity: 0.8; }
  100% { transform: translateY(60px); opacity: 0; }
}
@keyframes hs-shadow {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.1); opacity: 0.8; }
  100% { transform: scaleY(1); opacity: 0.6; }
}

/* Scene: hamlet-not-understand */
.scn-hamlet-not-understand {
  background:
    radial-gradient(ellipse at 60% 40%, #1a1210 0%, #0d0a08 60%),
    linear-gradient(180deg, #1f1613 0%, #13100e 100%);
}
.scn-hamlet-not-understand .bg-wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1f1b 0%, #1a1210 60%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  animation: hnu-wall 10s ease-in-out infinite;
}
.scn-hamlet-not-understand .arch-left {
  position: absolute;
  bottom: 25%; left: 15%;
  width: 120px; height: 80px;
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  background: linear-gradient(180deg, #2a1f1b 0%, #1a1210 80%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: hnu-arch 15s ease-in-out infinite;
}
.scn-hamlet-not-understand .arch-right {
  position: absolute;
  bottom: 25%; right: 15%;
  width: 120px; height: 80px;
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  background: linear-gradient(180deg, #2a1f1b 0%, #1a1210 80%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: hnu-arch 18s ease-in-out infinite 1s;
}
.scn-hamlet-not-understand .figure-hamlet {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hnu-figure-left 4s ease-in-out infinite;
}
.scn-hamlet-not-understand .figure-guard {
  position: absolute;
  bottom: 25%; right: 35%;
  width: 30px; height: 78px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hnu-figure-right 4s ease-in-out infinite;
}
.scn-hamlet-not-understand .light-ray {
  position: absolute;
  top: 10%; left: 45%;
  width: 8px; height: 200px;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  transform: rotate(-5deg);
  transform-origin: top center;
  filter: blur(4px);
  animation: hnu-ray 6s ease-in-out infinite;
}
.scn-hamlet-not-understand .darkness {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.4) 80%);
  pointer-events: none;
  animation: hnu-dark 12s ease-in-out infinite;
}

@keyframes hnu-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hnu-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes hnu-figure-left {
  0% { transform: rotate(0deg) translateX(0); }
  30% { transform: rotate(4deg) translateX(2px); }
  60% { transform: rotate(-3deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hnu-figure-right {
  0% { transform: rotate(0deg) translateX(0); }
  30% { transform: rotate(-3deg) translateX(-2px); }
  60% { transform: rotate(4deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hnu-ray {
  0% { opacity: 0.3; transform: rotate(-5deg) scaleY(1); }
  50% { opacity: 0.7; transform: rotate(-3deg) scaleY(1.05); }
  100% { opacity: 0.3; transform: rotate(-5deg) scaleY(1); }
}
@keyframes hnu-dark {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* Scene: hamlet-thing-exclaim */
.scn-hamlet-thing-exclaim {
  background:
    radial-gradient(ellipse at 80% 30%, #1a1210 0%, #0d0a08 50%),
    linear-gradient(180deg, #0f0c0a 0%, #1a1210 40%, #0f0c0a 100%);
}
.scn-hamlet-thing-exclaim .bg-void {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1210 0%, #0d0a08 100%);
  animation: hte-void 16s ease-in-out infinite;
}
.scn-hamlet-thing-exclaim .door-frame {
  position: absolute;
  right: 10%; bottom: 20%;
  width: 100px; height: 160px;
  background: linear-gradient(90deg, #2a1f1b 0%, #1a1210 50%, #251d19 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: hte-door 8s ease-in-out infinite;
}
.scn-hamlet-thing-exclaim .fox-silhouette {
  position: absolute;
  bottom: 25%; left: 30%;
  width: 60px; height: 40px;
  background: #0e0a08;
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  clip-path: polygon(0% 40%, 20% 0%, 40% 30%, 60% 0%, 80% 30%, 100% 40%, 100% 100%, 0% 100%);
  animation: hte-fox 3s ease-in-out infinite;
}
.scn-hamlet-thing-exclaim .figure-linger {
  position: absolute;
  bottom: 20%; right: 25%;
  width: 28px; height: 72px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hte-linger 5s ease-in-out infinite;
}
.scn-hamlet-thing-exclaim .motion-trail {
  position: absolute;
  bottom: 35%; left: 20%;
  width: 100px; height: 4px;
  background: linear-gradient(90deg, rgba(100,80,60,0.4) 0%, transparent 100%);
  filter: blur(2px);
  animation: hte-trail 2s linear infinite;
}
.scn-hamlet-thing-exclaim .dust-track {
  position: absolute;
  bottom: 28%; left: 15%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: hte-track 3s ease-in-out infinite;
}

@keyframes hte-void {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hte-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes hte-fox {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(10px) scaleX(0.95); }
  50% { transform: translateX(20px) scaleX(1); }
  75% { transform: translateX(30px) scaleX(1.05); }
  100% { transform: translateX(40px) scaleX(1); }
}
@keyframes hte-linger {
  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 hte-trail {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}
@keyframes hte-track {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-10px) scale(1.3); opacity: 0.6; }
  100% { transform: translateY(0) scale(1); opacity: 0.2; }
}

/* ---- scene: hamlet-mock-osric ---- */
.scn-hamlet-mock-osric {
  background: 
    linear-gradient(180deg, #d4b48c 0%, #c49a6c 50%, #b8875a 100%),
    radial-gradient(ellipse at 50% 30%, #f5deb3 0%, transparent 70%);
}
.scn-hamlet-mock-osric .curtain-left {
  position: absolute; left: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #8b5e3c 0%, #a0704a 100%);
  border-right: 2px solid #6b4226;
  transform-origin: left top;
  animation: hm-o-curtain 6s ease-in-out infinite alternate;
}
.scn-hamlet-mock-osric .curtain-right {
  position: absolute; right: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(270deg, #8b5e3c 0%, #a0704a 100%);
  border-left: 2px solid #6b4226;
  transform-origin: right top;
  animation: hm-o-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-mock-osric .figure {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 90px;
  transform: translateX(-50%);
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: hm-o-figure 4s ease-in-out infinite;
}
.scn-hamlet-mock-osric .hat {
  position: absolute; bottom: 85%; left: 50%; width: 60px; height: 20px;
  transform: translateX(-50%);
  background: 
    linear-gradient(180deg, #4a3520 0%, #2a1a0c 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.3);
  animation: hm-o-hat 3s ease-in-out infinite;
}
.scn-hamlet-mock-osric .back-glow {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,215,140,0.3) 0%, transparent 70%);
  animation: hm-o-glow 5s ease-in-out infinite alternate;
}
.scn-hamlet-mock-osric .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #7a5a3a 0%, #9a7a5a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
@keyframes hm-o-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(0.95) translateX(5px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes hm-o-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  30% { transform: translateX(-50%) rotate(8deg) translateY(-3px); }
  70% { transform: translateX(-50%) rotate(-8deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes hm-o-hat {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(15deg); }
  100% { transform: translateX(-50%) rotate(-15deg); }
}
@keyframes hm-o-glow {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(0.9); }
}

/* ---- scene: osric-banter ---- */
.scn-osric-banter {
  background: 
    linear-gradient(180deg, #e8d4b8 0%, #d4b48c 30%, #c4a47c 100%),
    radial-gradient(ellipse at 70% 40%, #f5e6d0 0%, transparent 60%);
}
.scn-osric-banter .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #d4b48c 0%, #c49a6c 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-osric-banter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #8a6a4a 0%, #a08060 100%);
}
.scn-osric-banter .figure-left {
  position: absolute; bottom: 20%; left: 10%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #2a1a0c 0%, #0a0502 100%);
  border-radius: 40% 50% 30% 40% / 60% 60% 40% 40%;
  animation: os-b-figure-left 4s ease-in-out infinite;
}
.scn-osric-banter .figure-right {
  position: absolute; bottom: 20%; right: 10%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #1a1008 0%, #050200 100%);
  border-radius: 50% 40% 40% 30% / 60% 60% 40% 40%;
  animation: os-b-figure-right 4s ease-in-out infinite;
}
.scn-osric-banter .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4226 0%, #4a2a14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: os-b-table 6s ease-in-out infinite;
}
.scn-osric-banter .window {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f1 100%);
  border-radius: 8px;
  box-shadow: 0 0 20px rgba(135,206,235,0.4), inset 0 0 10px rgba(255,255,255,0.3);
  animation: os-b-window 8s ease-in-out infinite alternate;
}
@keyframes os-b-figure-left {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(8deg); }
  70% { transform: translateY(-1px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes os-b-figure-right {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-8deg); }
  70% { transform: translateY(-1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes os-b-table {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.9); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes os-b-window {
  0% { box-shadow: 0 0 20px rgba(135,206,235,0.4); }
  50% { box-shadow: 0 0 35px rgba(135,206,235,0.7); }
  100% { box-shadow: 0 0 20px rgba(135,206,235,0.4); }
}

/* ---- scene: wager-foils ---- */
.scn-wager-foils {
  background: 
    linear-gradient(180deg, #3b2a1a 0%, #2a1a0c 40%, #1a1108 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a22 0%, transparent 70%);
}
.scn-wager-foils .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
}
.scn-wager-foils .rapier {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 130px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #a0a0a0 100%);
  box-shadow: 0 0 6px rgba(192,192,192,0.5);
  transform-origin: bottom center;
  transform: rotate(-15deg);
  animation: wf-rapier 3s ease-in-out infinite alternate;
}
.scn-wager-foils .dagger {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #b0b0b0 0%, #606060 50%, #909090 100%);
  box-shadow: 0 0 6px rgba(176,176,176,0.5);
  transform-origin: bottom center;
  transform: rotate(20deg);
  animation: wf-dagger 3s ease-in-out infinite alternate;
}
.scn-wager-foils .hand {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: wf-hand 4s ease-in-out infinite;
}
.scn-wager-foils .glow-rapier {
  position: absolute; bottom: 30%; left: 30%; width: 140px; height: 140px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(255,255,200,0.2) 0%, transparent 70%);
  animation: wf-glow 4s ease-in-out infinite alternate;
}
.scn-wager-foils .glow-dagger {
  position: absolute; bottom: 50%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200,200,255,0.15) 0%, transparent 70%);
  animation: wf-glow 5s ease-in-out infinite alternate;
}
@keyframes wf-rapier {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-12deg) translateX(2px); }
  100% { transform: rotate(-18deg) translateX(-2px); }
}
@keyframes wf-dagger {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(24deg) translateX(-2px); }
  100% { transform: rotate(16deg) translateX(2px); }
}
@keyframes wf-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes wf-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* ---- scene: carriages-hangers ---- */
.scn-carriages-hangers {
  background: 
    linear-gradient(180deg, #8a6a4a 0%, #6b522a 50%, #4a3a1a 100%),
    radial-gradient(ellipse at 50% 50%, #b89a6a 0%, transparent 80%);
}
.scn-carriages-hangers .bg-table {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,220,160,0.2) 0%, transparent 70%);
}
.scn-carriages-hangers .belt {
  position: absolute; top: 35%; left: 10%; right: 10%; height: 18px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ch-belt 10s ease-in-out infinite;
}
.scn-carriages-hangers .carriage-1 {
  position: absolute; top: 40%; left: 25%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: ch-swing 4s ease-in-out infinite;
}
.scn-carriages-hangers .carriage-2 {
  position: absolute; top: 40%; left: 45%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: ch-swing 4s ease-in-out infinite 1.2s;
}
.scn-carriages-hangers .carriage-3 {
  position: absolute; top: 40%; left: 65%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: ch-swing 4s ease-in-out infinite 2.4s;
}
.scn-carriages-hangers .buckle {
  position: absolute; top: 32%; left: 50%; width: 24px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d0b080 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: ch-buckle 8s ease-in-out infinite alternate;
}
@keyframes ch-belt {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(2px) scaleX(0.98); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ch-swing {
  0% { transform: rotate(0deg) scaleY(1); }
  30% { transform: rotate(8deg) scaleY(0.95); }
  70% { transform: rotate(-8deg) scaleY(0.95); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ch-buckle {
  0% { box-shadow: 0 0 8px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 0 14px rgba(200,180,100,0.6); }
  100% { box-shadow: 0 0 8px rgba(0,0,0,0.4); }
}

.scn-fortinbras-arrival {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), 
              radial-gradient(ellipse at 50% 20%, #4a4a5a 0%, transparent 70%);
}
.scn-fortinbras-arrival .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 40%, transparent 100%); animation:fa-sky 20s ease-in-out infinite alternate; }
.scn-fortinbras-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; }
.scn-fortinbras-arrival .fort { position:absolute; bottom:35%; left:60%; width:120px; height:80px; background:linear-gradient(180deg, #2c2c3c 0%, #1c1c2c 100%); border-radius:10% 10% 0 0; box-shadow:0 8px 16px rgba(0,0,0,.6); transform:scaleX(0.8); animation:fa-fort 15s ease-in-out infinite alternate; }
.scn-fortinbras-arrival .drum { position:absolute; bottom:30%; left:15%; width:30px; height:20px; background:radial-gradient(ellipse, #3a3a3a 0%, #1a1a1a 100%); border-radius:50%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation:fa-drum 0.8s ease-in-out infinite; }
.scn-fortinbras-arrival .banner { position:absolute; bottom:50%; left:70%; width:40px; height:50px; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); clip-path:polygon(0 0, 100% 0, 100% 100%, 20% 80%?); wrong, use shape. Use: border-radius:0 0 30% 30%? Better: use a rotated rectangle + triangle? Simpler: use a skewed rectangle with border-radius. Let's use: width:30px; height:40px; background: #3a3a2a; border-radius:0 0 20% 20%; transform:skewX(-10deg); animation:fa-banner 6s ease-in-out infinite; }
.scn-fortinbras-arrival .banner { position:absolute; bottom:42%; left:72%; width:30px; height:40px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 30% 30%; transform:skewX(-15deg); animation:fa-banner 6s ease-in-out infinite; }
.scn-fortinbras-arrival .fig1, .scn-fortinbras-arrival .fig2, .scn-fortinbras-arrival .fig3 { position:absolute; bottom:28%; width:14px; height:30px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-fortinbras-arrival .fig1 { left:20%; animation:fa-walk 4s ease-in-out infinite; }
.scn-fortinbras-arrival .fig2 { left:30%; animation:fa-walk 4.2s ease-in-out infinite 0.5s; }
.scn-fortinbras-arrival .fig3 { left:40%; animation:fa-walk 4.5s ease-in-out infinite 1s; }
.scn-fortinbras-arrival .flagpole { position:absolute; bottom:40%; left:70%; width:4px; height:50px; background:linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:2px; transform-origin:bottom; animation:fa-pole 15s ease-in-out infinite alternate; }
@keyframes fa-sky { 0% { opacity:.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:.6; transform:scaleY(1); } }
@keyframes fa-fort { 0% { transform:scaleX(0.8) translateY(0); } 50% { transform:scaleX(0.78) translateY(-2px); } 100% { transform:scaleX(0.8) translateY(0); } }
@keyframes fa-drum { 0%,100% { transform:scale(1); box-shadow:0 4px 8px rgba(0,0,0,.5); } 50% { transform:scale(1.1); box-shadow:0 6px 12px rgba(0,0,0,.7); } }
@keyframes fa-banner { 0% { transform:skewX(-15deg) rotate(0deg); } 50% { transform:skewX(-10deg) rotate(5deg); } 100% { transform:skewX(-15deg) rotate(0deg); } }
@keyframes fa-walk { 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(0deg); } }
@keyframes fa-pole { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } }

.scn-horatio-farewell {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a1a 100%), 
              radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-horatio-farewell .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); animation:hf-bg 30s ease-in-out infinite alternate; }
.scn-horatio-farewell .wall { position:absolute; inset:20% 10% 30% 10%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10px; box-shadow:inset 0 0 40px rgba(0,0,0,.5); }
.scn-horatio-farewell .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:20% 20% 0 0; }
.scn-horatio-farewell .horatio { position:absolute; bottom:25%; left:35%; width:20px; height:40px; background:linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:hf-kneel 6s ease-in-out infinite; }
.scn-horatio-farewell .hamlet { position:absolute; bottom:20%; left:50%; width:25px; height:35px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:20% 20% 40% 40% / 30% 30% 50% 50%; transform:rotate(-40deg); transform-origin:bottom left; animation:hf-still 8s ease-in-out infinite; }
.scn-horatio-farewell .drum { position:absolute; bottom:15%; left:60%; width:30px; height:20px; background:radial-gradient(ellipse, #3a3a3a 0%, #1a1a1a 100%); border-radius:50%; box-shadow:0 4px 8px rgba(0,0,0,.6); animation:hf-drum 3s ease-in-out infinite; }
.scn-horatio-farewell .wing-a, .scn-horatio-farewell .wing-b { position:absolute; top:35%; width:40px; height:20px; background:radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.3) 0%, transparent 100%); border-radius:50%; filter:blur(4px); }
.scn-horatio-farewell .wing-a { left:30%; animation:hf-wing-a 10s ease-in-out infinite; }
.scn-horatio-farewell .wing-b { right:30%; animation:hf-wing-b 10s ease-in-out infinite 2s; }
.scn-horatio-farewell .light { position:absolute; top:10%; left:45%; width:30px; height:60px; background:radial-gradient(ellipse, rgba(200,200,220,.2) 0%, transparent 100%); filter:blur(10px); animation:hf-light 5s ease-in-out infinite alternate; }
@keyframes hf-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes hf-kneel { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(5deg); } }
@keyframes hf-still { 0%,100% { transform:rotate(-40deg) translateY(0); } 50% { transform:rotate(-38deg) translateY(2px); } }
@keyframes hf-drum { 0%,100% { transform:scale(1); box-shadow:0 4px 8px rgba(0,0,0,.6); } 50% { transform:scale(1.05); box-shadow:0 6px 12px rgba(0,0,0,.8); } }
@keyframes hf-wing-a { 0% { transform:translateX(0) rotate(-10deg) scale(1); opacity:.5; } 50% { transform:translateX(-10px) rotate(10deg) scale(1.1); opacity:.8; } 100% { transform:translateX(0) rotate(-10deg) scale(1); opacity:.5; } }
@keyframes hf-wing-b { 0% { transform:translateX(0) rotate(10deg) scale(1); opacity:.5; } 50% { transform:translateX(10px) rotate(-10deg) scale(1.1); opacity:.8; } 100% { transform:translateX(0) rotate(10deg) scale(1); opacity:.5; } }
@keyframes hf-light { 0% { opacity:.3; transform:scaleY(1); } 50% { opacity:.6; transform:scaleY(1.2); } 100% { opacity:.3; transform:scaleY(1); } }

.scn-english-ambassadors {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%), 
              radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-english-ambassadors .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); animation:ea-bg 25s ease-in-out infinite alternate; }
.scn-english-ambassadors .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 0 0; }
.scn-english-ambassadors .amb-left, .scn-english-ambassadors .amb-right { position:absolute; bottom:25%; width:20px; height:45px; background:linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-english-ambassadors .amb-left { left:30%; animation:ea-amb-left 8s ease-in-out infinite; }
.scn-english-ambassadors .amb-right { right:30%; animation:ea-amb-right 8s ease-in-out infinite 1s; }
.scn-english-ambassadors .scroll { position:absolute; bottom:30%; left:48%; width:30px; height:10px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20%; transform:rotate(15deg); animation:ea-scroll 7s ease-in-out infinite; }
.scn-english-ambassadors .crown { position:absolute; top:30%; left:46%; width:30px; height:20px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path:polygon(10% 20%, 30% 0%, 50% 30%, 70% 0%, 90% 20%, 100% 80%, 0% 80%); animation:ea-crown 12s ease-in-out infinite; }
.scn-english-ambassadors .body { position:absolute; bottom:20%; left:50%; width:30px; height:20px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:30% 30% 0 0; transform:rotate(-20deg); animation:ea-body 15s ease-in-out infinite; }
.scn-english-ambassadors .candle { position:absolute; bottom:35%; left:20%; width:6px; height:20px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 0 10px 4px rgba(200,150,50,.4); animation:ea-candle 4s ease-in-out infinite alternate; }
@keyframes ea-bg { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes ea-amb-left { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(5px) rotate(-3deg); } }
@keyframes ea-amb-right { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-5px) rotate(3deg); } }
@keyframes ea-scroll { 0%,100% { transform:rotate(15deg) scale(1); } 50% { transform:rotate(10deg) scale(1.05); } }
@keyframes ea-crown { 0%,100% { transform:translateY(0) rotate(0deg); opacity:.8; } 50% { transform:translateY(-5px) rotate(5deg); opacity:1; } }
@keyframes ea-body { 0%,100% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(-22deg) translateX(2px); } }
@keyframes ea-candle { 0% { transform:scaleY(1); box-shadow:0 0 6px 3px rgba(200,150,50,.3); } 50% { transform:scaleY(1.2); box-shadow:0 0 14px 6px rgba(200,150,50,.6); } 100% { transform:scaleY(1); box-shadow:0 0 6px 3px rgba(200,150,50,.3); } }

.scn-horatio-promises-story {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #2a2a3a 100%), 
              radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-horatio-promises-story .stage { position:absolute; bottom:0; left:10%; right:10%; height:25%; background:linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:10% 10% 0 0; box-shadow:0 -10px 20px rgba(0,0,0,.5); }
.scn-horatio-promises-story .curtain-l, .scn-horatio-promises-story .curtain-r { position:absolute; top:0; bottom:25%; width:20%; background:linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; }
.scn-horatio-promises-story .curtain-l { left:0; animation:hs-curtain-l 20s ease-in-out infinite; }
.scn-horatio-promises-story .curtain-r { right:0; animation:hs-curtain-r 20s ease-in-out infinite; }
.scn-horatio-promises-story .horatio { position:absolute; bottom:20%; left:45%; width:20px; height:45px; background:linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:hs-horatio 8s ease-in-out infinite; }
.scn-horatio-promises-story .scroll { position:absolute; bottom:30%; left:48%; width:25px; height:8px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20%; transform:rotate(10deg); animation:hs-scroll 10s ease-in-out infinite; }
.scn-horatio-promises-story .light { position:absolute; top:10%; left:40%; width:50px; height:60px; background:radial-gradient(ellipse, rgba(200,200,220,.15) 0%, transparent 100%); filter:blur(12px); animation:hs-light 5s ease-in-out infinite alternate; }
.scn-horatio-promises-story .audience1, .scn-horatio-promises-story .audience2, .scn-horatio-promises-story .audience3 { position:absolute; bottom:15%; width:12px; height:20px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-horatio-promises-story .audience1 { left:25%; animation:hs-audience 12s ease-in-out infinite; }
.scn-horatio-promises-story .audience2 { left:35%; animation:hs-audience 12s ease-in-out infinite 3s; }
.scn-horatio-promises-story .audience3 { left:60%; animation:hs-audience 12s ease-in-out infinite 6s; }
@keyframes hs-curtain-l { 0%,100% { transform:translateX(0); } 50% { transform:translateX(5px); } }
@keyframes hs-curtain-r { 0%,100% { transform:translateX(0); } 50% { transform:translateX(-5px); } }
@keyframes hs-horatio { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(3deg); } }
@keyframes hs-scroll { 0%,100% { transform:rotate(10deg) scale(1); } 50% { transform:rotate(5deg) scale(1.05); } }
@keyframes hs-light { 0% { opacity:.3; transform:scaleY(1); } 50% { opacity:.6; transform:scaleY(1.3); } 100% { opacity:.3; transform:scaleY(1); } }
@keyframes hs-audience { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }

/* ---- scene: polonius-spy-instructions ---- */
.scn-polonius-spy-instructions {
  background: 
    linear-gradient(180deg, #1e1c2e 0%, #2a2540 40%, #3d3250 100%),
    radial-gradient(ellipse at 70% 50%, #4a3a5e 0%, transparent 60%);
}
.scn-polonius-spy-instructions .wall { position:absolute; top:0; left:0; width:100%; height:70%; background: linear-gradient(180deg, #1a1830 0%, #2a2238 100%); animation: pls-wall 20s ease-in-out infinite alternate; }
.scn-polonius-spy-instructions .floor { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1010 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.6); }
.scn-polonius-spy-instructions .candle { position:absolute; bottom:45%; left:40%; width:8px; height:30px; background: linear-gradient(180deg, #e8c86a 0%, #8a6a3a 100%); border-radius: 2px; box-shadow: 0 0 6px #f0d080; animation: pls-candle 3s ease-in-out infinite; }
.scn-polonius-spy-instructions .candle-glow { position:absolute; bottom:44%; left:39%; width:40px; height:40px; background: radial-gradient(circle, #ffdd80 0%, rgba(255,200,80,0.3) 50%, transparent 100%); border-radius:50%; filter: blur(6px); animation: pls-glow 4s ease-in-out infinite alternate; }
.scn-polonius-spy-instructions .figure-spy { position:absolute; bottom:30%; left:55%; width:30px; height:80px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1424 50%, #0a0812 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pls-figure1 7s ease-in-out infinite; }
.scn-polonius-spy-instructions .figure-listener { position:absolute; bottom:30%; left:35%; width:26px; height:70px; background: linear-gradient(180deg, #121220 0%, #1e1a2a 50%, #0e0c1a 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pls-figure2 9s ease-in-out infinite; }
.scn-polonius-spy-instructions .table { position:absolute; bottom:30%; left:45%; width:40px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: pls-table 12s ease-in-out infinite; }
.scn-polonius-spy-instructions .shadow { position:absolute; bottom:28%; left:40%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: pls-shadow 10s ease-in-out infinite alternate; }
@keyframes pls-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pls-candle { 0%,100% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.05) translateY(-1px); opacity:1; } }
@keyframes pls-glow { 0% { transform: scale(0.95); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.9; } 100% { transform: scale(1); opacity:0.7; } }
@keyframes pls-figure1 { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pls-figure2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes pls-table { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.98) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }
@keyframes pls-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.4; } 100% { transform: scaleX(1.05) scaleY(0.9); opacity:0.6; } }

/* ---- scene: item-money-polonius ---- */
.scn-item-money-polonius {
  background: 
    linear-gradient(180deg, #1a1f2e 0%, #2a2f40 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 70% 60%, #4a4a5e 0%, transparent 70%);
}
.scn-item-money-polonius .wall { position:absolute; top:0; left:0; width:100%; height:65%; background: linear-gradient(180deg, #202438 0%, #2e304a 100%); animation: imp-wall 18s ease-in-out infinite alternate; }
.scn-item-money-polonius .floor { position:absolute; bottom:0; left:0; width:100%; height:35%; background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,0.5); }
.scn-item-money-polonius .window { position:absolute; top:15%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border-radius: 4px 4px 10px 10px; box-shadow: inset 0 0 12px rgba(100,150,200,0.2); border: 3px solid #3a3a4a; animation: imp-window 15s ease-in-out infinite; }
.scn-item-money-polonius .sewing-table { position:absolute; bottom:30%; left:35%; width:50px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: imp-table 10s ease-in-out infinite; }
.scn-item-money-polonius .chair { position:absolute; bottom:32%; left:38%; width:30px; height:40px; background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: imp-chair 8s ease-in-out infinite; }
.scn-item-money-polonius .figure-ophelia { position:absolute; bottom:28%; left:36%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: imp-ophelia 6s ease-in-out infinite; }
.scn-item-money-polonius .door { position:absolute; bottom:20%; left:70%; width:40px; height:90px; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 2px 2px 4px 4px; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); animation: imp-door 20s ease-in-out infinite; }
.scn-item-money-polonius .shadow-hamlet { position:absolute; bottom:25%; left:68%; width:30px; height:80px; background: linear-gradient(180deg, #0a0a14 0%, #04040a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(3px); opacity:0.6; animation: imp-shadow 12s ease-in-out infinite alternate; }
@keyframes imp-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes imp-window { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(-1px); } }
@keyframes imp-table { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes imp-chair { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(0.5deg); } 66% { transform: translateY(1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes imp-ophelia { 0% { transform: translateY(0) rotate(-0.5deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 75% { transform: translateY(1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes imp-door { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes imp-shadow { 0% { opacity:0.4; transform: scaleX(1); } 100% { opacity:0.7; transform: scaleX(1.1); } }

/* ---- scene: ophelia-frightened ---- */
.scn-ophelia-frightened {
  background: 
    linear-gradient(180deg, #12101a 0%, #1a1624 40%, #2a2036 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 60%);
}
.scn-ophelia-frightened .wall-dark { position:absolute; top:0; left:0; width:100%; height:70%; background: linear-gradient(180deg, #0a0812 0%, #14101e 100%); animation: frt-wall 8s ease-in-out infinite alternate; }
.scn-ophelia-frightened .floor-dark { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.7); }
.scn-ophelia-frightened .figure-hamlet { position:absolute; bottom:30%; left:55%; width:32px; height:85px; background: linear-gradient(180deg, #0c0c18 0%, #16122a 50%, #080410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: frt-hamlet 4s ease-in-out infinite; }
.scn-ophelia-frightened .figure-ophelia-seated { position:absolute; bottom:28%; left:30%; width:28px; height:55px; background: linear-gradient(180deg, #1e1a2e 0%, #12101e 100%); border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%; transform-origin: bottom center; animation: frt-ophelia 5s ease-in-out infinite; }
.scn-ophelia-frightened .candle-flicker { position:absolute; bottom:38%; left:42%; width:6px; height:20px; background: linear-gradient(180deg, #e8a040 0%, #804020 100%); border-radius: 2px; box-shadow: 0 0 10px #e08030; animation: frt-candle 0.8s ease-in-out infinite; }
.scn-ophelia-frightened .glow-tension { position:absolute; bottom:36%; left:40%; width:50px; height:50px; background: radial-gradient(circle, #ff9040 0%, rgba(255,100,30,0.2) 50%, transparent 100%); border-radius:50%; filter: blur(8px); animation: frt-glow 1.2s ease-in-out infinite alternate; }
.scn-ophelia-frightened .table-tilted { position:absolute; bottom:30%; left:38%; width:40px; height:18px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 2px 2px 4px 4px; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: frt-table 6s ease-in-out infinite; }
.scn-ophelia-frightened .curtain { position:absolute; top:0; left:20%; width:15px; height:100%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 0 10px 10px 0; box-shadow: inset 0 0 6px rgba(0,0,0,0.5); animation: frt-curtain 7s ease-in-out infinite alternate; }
@keyframes frt-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes frt-hamlet { 0% { transform: translateY(0) rotate(-1deg) scaleX(1); } 25% { transform: translateY(-3px) rotate(1.5deg) scaleX(0.98); } 75% { transform: translateY(2px) rotate(-0.5deg) scaleX(1); } 100% { transform: translateY(0) rotate(0) scaleX(1); } }
@keyframes frt-ophelia { 0% { transform: translateY(0) rotate(0.5deg); } 30% { transform: translateY(-2px) rotate(-0.5deg); } 70% { transform: translateY(1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes frt-candle { 0%,100% { transform: scaleY(1) translateY(0); opacity:0.8; } 25% { transform: scaleY(1.1) translateY(-2px); opacity:1; } 50% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } 75% { transform: scaleY(1.05) translateY(-1px); opacity:0.9; } }
@keyframes frt-glow { 0% { transform: scale(0.9); opacity:0.5; } 50% { transform: scale(1.15); opacity:0.9; } 100% { transform: scale(0.95); opacity:0.6; } }
@keyframes frt-table { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes frt-curtain { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.05) translateX(2px); } }

/* ---- scene: king-welcomes-rosencrantz ---- */
.scn-king-welcomes-rosencrantz {
  background: 
    linear-gradient(180deg, #c6a050 0%, #a08040 30%, #7a6030 100%),
    radial-gradient(ellipse at 50% 30%, #e0c070 0%, transparent 70%);
}
.scn-king-welcomes-rosencrantz .wall-warm { position:absolute; top:0; left:0; width:100%; height:55%; background: linear-gradient(180deg, #c8a860 0%, #a88848 100%); animation: wlc-wall 22s ease-in-out infinite alternate; }
.scn-king-welcomes-rosencrantz .floor-warm { position:absolute; bottom:0; left:0; width:100%; height:45%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-king-welcomes-rosencrantz .throne { position:absolute; bottom:30%; left:25%; width:60px; height:70px; background: linear-gradient(180deg, #c89640 0%, #a07028 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4), inset 0 0 12px #ffd080; animation: wlc-throne 15s ease-in-out infinite; }
.scn-king-welcomes-rosencrantz .figure-king { position:absolute; bottom:25%; left:22%; width:34px; height:80px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: wlc-king 8s ease-in-out infinite; }
.scn-king-welcomes-rosencrantz .figure-queen { position:absolute; bottom:27%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wlc-queen 9s ease-in-out infinite; }
.scn-king-welcomes-rosencrantz .figure-courtier-left { position:absolute; bottom:28%; left:50%; width:28px; height:65px; background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wlc-courtL 11s ease-in-out infinite; }
.scn-king-welcomes-rosencrantz .figure-courtier-right { position:absolute; bottom:28%; left:62%; width:28px; height:65px; background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wlc-courtR 13s ease-in-out infinite; }
.scn-king-welcomes-rosencrantz .chandelier { position:absolute; top:8%; left:45%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 0%, #e8c060 0%, transparent 80%); border-radius: 30% 30% 0 0; box-shadow: 0 0 20px #f0d080; animation: wlc-chandelier 5s ease-in-out infinite alternate; }
.scn-king-welcomes-rosencrantz .window-arch { position:absolute; top:12%; right:15%; width:50px; height:80px; background: linear-gradient(180deg, #8aaa8a 0%, #4a6a4a 100%); border-radius: 50% 50% 6px 6px; border: 4px solid #7a5a30; box-shadow: inset 0 0 20px rgba(200,230,200,0.3); animation: wlc-window 20s ease-in-out infinite; }
@keyframes wlc-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wlc-throne { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes wlc-king { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wlc-queen { 0% { transform: translateY(0) rotate(-0.5deg); } 40% { transform: translateY(-1px) rotate(0.5deg); } 80% { transform: translateY(1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wlc-courtL { 0% { transform: translateY(0) rotate(0.3deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wlc-courtR { 0% { transform: translateY(0) rotate(-0.3deg); } 50% { transform: translateY(-1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wlc-chandelier { 0% { transform: scaleY(0.95) translateY(0); opacity:0.7; } 100% { transform: scaleY(1.05) translateY(-2px); opacity:1; } }
@keyframes wlc-window { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:0.85; transform: scaleX(1); } }

/* Scene 1: hamlet-on-drinking — dark, tense, candlelit interior */
.scn-hamlet-on-drinking {
  background: linear-gradient(180deg, #0e0a14 0%, #1a1423 30%, #2a1f30 60%, #140e18 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a40 0%, transparent 70%);
}
.scn-hamlet-on-drinking .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #1e1828 0%, #2a2238 40%, #1a1423 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
  animation: hod-wall 20s ease-in-out infinite alternate;
}
.scn-hamlet-on-drinking .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a28 0%, #2a1a18 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: hod-table 12s ease-in-out infinite;
}
.scn-hamlet-on-drinking .goblet {
  position: absolute; bottom: 24%; left: 45%; width: 14px; height: 20px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 0 8px 2px rgba(200,160,100,.15);
  animation: hod-goblet 8s ease-in-out infinite;
}
.scn-hamlet-on-drinking .figure-drinker {
  position: absolute; bottom: 20%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1423 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hod-figure 4s ease-in-out infinite;
}
.scn-hamlet-on-drinking .candle {
  position: absolute; bottom: 24%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d4b878 0%, #8a7a5a 40%, #4a3a2a 100%);
  border-radius: 2px;
  animation: hod-candle-flicker 1.5s ease-in-out infinite;
}
.scn-hamlet-on-drinking .candle::after {
  content: ''; position: absolute; top: -10px; left: -4px; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 40%, transparent 70%);
  border-radius: 50%;
  animation: hod-flame 2s ease-in-out infinite;
}
.scn-hamlet-on-drinking .ghost-gh {
  position: absolute; bottom: 40%; right: 12%; width: 22px; height: 60px;
  background: linear-gradient(180deg, rgba(200,220,255,.3) 0%, rgba(180,200,240,.1) 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  animation: hod-ghost 6s ease-in-out infinite alternate;
}
.scn-hamlet-on-drinking .shadow-cut {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  pointer-events: none;
  animation: hod-shadow-pulse 10s ease-in-out infinite;
}
.scn-hamlet-on-drinking .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(50,60,80,.08) 0%, transparent 60%);
  animation: hod-fog 15s ease-in-out infinite alternate;
}
@keyframes hod-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes hod-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hod-goblet { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes hod-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hod-candle-flicker { 0% { transform: scaleY(1) } 25% { transform: scaleY(.92) } 50% { transform: scaleY(1.05) } 75% { transform: scaleY(.96) } 100% { transform: scaleY(1) } }
@keyframes hod-flame { 0% { transform: scale(1) translate(0,0) } 25% { transform: scale(1.15) translate(1px,-1px) } 50% { transform: scale(.9) translate(-1px,1px) } 75% { transform: scale(1.1) translate(0,-1px) } 100% { transform: scale(1) translate(0,0) } }
@keyframes hod-ghost { 0% { opacity: .3; transform: translateY(0) scaleX(1) } 50% { opacity: .6; transform: translateY(-8px) scaleX(1.05) } 100% { opacity: .2; transform: translateY(4px) scaleX(.95) } }
@keyframes hod-shadow-pulse { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .55 } }
@keyframes hod-fog { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.03) } 100% { opacity: .45; transform: scale(.98) } }

/* Scene 2: hamlet-follows-ghost — tense, dark, cliff edge */
.scn-hamlet-follows-ghost {
  background: linear-gradient(180deg, #0c0a16 0%, #14122a 30%, #1a2840 60%, #0e0e1c 100%),
    radial-gradient(ellipse at 50% 60%, #1a2840 0%, transparent 70%);
}
.scn-hamlet-follows-ghost .sky-fg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #14122a 0%, #1a2038 40%, transparent 100%);
  animation: hfg-sky 18s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .sea-fg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0e1a28 0%, #0a1220 50%, #060e18 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: hfg-sea 12s ease-in-out infinite;
}
.scn-hamlet-follows-ghost .cliff {
  position: absolute; bottom: 30%; left: 0; width: 36%; height: 35%;
  background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 0 40% 0 0 / 0 60% 0 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,.5);
  animation: hfg-cliff 20s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .figure-hamlet {
  position: absolute; bottom: 44%; left: 18%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfg-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-follows-ghost .figure-ghost-lead {
  position: absolute; bottom: 48%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, rgba(160,180,220,.35) 0%, rgba(120,140,200,.15) 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: hfg-ghost-lead 6s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .storm-cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(40,50,80,.5) 0%, rgba(30,40,60,.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hfg-cloud-a 30s linear infinite;
}
.scn-hamlet-follows-ghost .storm-cloud-b {
  position: absolute; top: 20%; right: 5%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(50,60,90,.4) 0%, rgba(30,40,60,.15) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hfg-cloud-b 40s linear infinite reverse;
}
.scn-hamlet-follows-ghost .moonbeam {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 60%;
  background: linear-gradient(180deg, rgba(200,220,255,.2) 0%, transparent 100%);
  transform: translateX(-50%) rotate(10deg);
  filter: blur(3px);
  animation: hfg-moonbeam 8s ease-in-out infinite alternate;
}
@keyframes hfg-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes hfg-sea { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-4px) scaleY(1.02) } 50% { transform: translateY(2px) scaleY(.98) } 75% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hfg-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hfg-hamlet { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hfg-ghost-lead { 0% { transform: translateY(0) scaleX(1); opacity: .4 } 50% { transform: translateY(-6px) scaleX(1.06); opacity: .65 } 100% { transform: translateY(3px) scaleX(.94); opacity: .3 } }
@keyframes hfg-cloud-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes hfg-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }
@keyframes hfg-moonbeam { 0% { opacity: .15; transform: translateX(-50%) rotate(8deg) } 50% { opacity: .35; transform: translateX(-50%) rotate(12deg) } 100% { opacity: .2; transform: translateX(-50%) rotate(10deg) } }

/* Scene 3: another-part-platform — dark, moonlit, battlements */
.scn-another-part-platform {
  background: linear-gradient(180deg, #0c0e1a 0%, #161c30 35%, #1a2440 60%, #0e1220 100%),
    radial-gradient(ellipse at 50% 20%, #2a3050 0%, transparent 70%);
}
.scn-another-part-platform .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0c18 0%, #141a2e 50%, transparent 100%);
  animation: app-sky 20s ease-in-out infinite alternate;
}
.scn-another-part-platform .battlements {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #1e1e32 0%, #121224 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  animation: app-battlements 18s ease-in-out infinite;
}
.scn-another-part-platform .battlements::before {
  content: ''; position: absolute; top: -12px; left: 0; width: 100%; height: 12px;
  background: repeating-linear-gradient(90deg, #1e1e32 0px, #1e1e32 18px, transparent 18px, transparent 28px);
  animation: app-batt-top 18s ease-in-out infinite;
}
.scn-another-part-platform .moon {
  position: absolute; top: 12%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 35%, #e0e8f0 0%, #b0c0d8 50%, #8a9ab8 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(180,200,230,.3), 0 0 80px 20px rgba(160,180,220,.15);
  animation: app-moon 30s ease-in-out infinite alternate;
}
.scn-another-part-platform .figure-ghost-platform {
  position: absolute; bottom: 34%; left: 32%; width: 22px; height: 55px;
  background: linear-gradient(180deg, rgba(180,200,240,.35) 0%, rgba(140,160,210,.15) 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: app-ghost-platform 7s ease-in-out infinite alternate;
}
.scn-another-part-platform .figure-hamlet-platform {
  position: absolute; bottom: 36%; left: 52%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: app-hamlet-platform 5s ease-in-out infinite;
}
.scn-another-part-platform .moonbeam-p {
  position: absolute; top: 20%; left: 42%; width: 50%; height: 60%;
  background: linear-gradient(180deg, rgba(200,220,255,.08) 0%, transparent 100%);
  transform: skewX(-8deg);
  filter: blur(4px);
  animation: app-moonbeam 12s ease-in-out infinite alternate;
}
.scn-another-part-platform .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(160,180,210,.08) 0%, transparent 70%);
  filter: blur(10px);
  animation: app-mist 20s ease-in-out infinite alternate;
}
.scn-another-part-platform .star-a {
  position: absolute; top: 8%; left: 20%; width: 3px; height: 3px;
  background: #c8d8f0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,216,240,.4);
  animation: app-star-pulse 4s ease-in-out infinite;
}
.scn-another-part-platform .star-b {
  position: absolute; top: 18%; right: 25%; width: 2px; height: 2px;
  background: #d0ddf0;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(208,221,240,.3);
  animation: app-star-pulse 6s ease-in-out infinite reverse;
}
@keyframes app-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes app-battlements { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes app-batt-top { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes app-moon { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-2px) } 100% { transform: translateX(-2px) translateY(1px) } }
@keyframes app-ghost-platform { 0% { transform: translateY(0) scaleX(1); opacity: .35 } 50% { transform: translateY(-8px) scaleX(1.07); opacity: .6 } 100% { transform: translateY(4px) scaleX(.93); opacity: .25 } }
@keyframes app-hamlet-platform { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes app-moonbeam { 0% { opacity: .3; transform: skewX(-8deg) } 50% { opacity: .5; transform: skewX(-5deg) } 100% { opacity: .35; transform: skewX(-10deg) } }
@keyframes app-mist { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .4; transform: scale(1.05) } 100% { opacity: .25; transform: scale(.97) } }
@keyframes app-star-pulse { 0% { opacity: .5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: .6; transform: scale(1) } }

/* Scene 4: ghost-revelation-murder — dark, moonlit, orchard */
.scn-ghost-revelation-murder {
  background: linear-gradient(180deg, #0a0e18 0%, #121c2e 30%, #1a2a40 55%, #0e1624 100%),
    radial-gradient(ellipse at 50% 30%, #1a2a40 0%, transparent 70%);
}
.scn-ghost-revelation-murder .orchard-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0c1420 0%, #162430 50%, transparent 100%);
  animation: grm-bg 22s ease-in-out infinite alternate;
}
.scn-ghost-revelation-murder .tree-left {
  position: absolute; bottom: 10%; left: 8%; width: 16%; height: 65%;
  background: linear-gradient(135deg, #1e1e2e 0%, #121222 100%);
  border-radius: 60% 20% 0 0 / 40% 20% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,.5);
  animation: grm-tree-left 15s ease-in-out infinite;
}
.scn-ghost-revelation-murder .tree-left::after {
  content: ''; position: absolute; top: 0; left: -10px; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #1e1e2e 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: grm-branch-left 15s ease-in-out infinite;
}
.scn-ghost-revelation-murder .tree-right {
  position: absolute; bottom: 10%; right: 5%; width: 18%; height: 70%;
  background: linear-gradient(225deg, #222236 0%, #141428 100%);
  border-radius: 20% 60% 0 0 / 20% 40% 0 0;
  box-shadow: inset 6px 0 12px rgba(0,0,0,.5);
  animation: grm-tree-right 15s ease-in-out infinite reverse;
}
.scn-ghost-revelation-murder .serpent-form {
  position: absolute; bottom: 30%; left: 40%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 0 6px 2px rgba(0,0,0,.3);
  animation: grm-serpent 8s ease-in-out infinite;
}
.scn-ghost-revelation-murder .figure-ghost-reveal {
  position: absolute; bottom: 35%; left: 30%; width: 24px; height: 58px;
  background: linear-gradient(180deg, rgba(170,190,230,.35) 0%, rgba(130,150,200,.15) 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: grm-ghost-reveal 6s ease-in-out infinite alternate;
}
.scn-ghost-revelation-murder .figure-hamlet-reveal {
  position: absolute; bottom: 38%; left: 52%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grm-hamlet-reveal 5s ease-in-out infinite;
}
.scn-ghost-revelation-murder .moon-glow {
  position: absolute; top: 8%; left: 35%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 35%, #d0ddf0 0%, #a0b4d0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 15px rgba(160,180,210,.25), 0 0 100px 30px rgba(140,160,190,.12);
  animation: grm-moon-glow 30s ease-in-out infinite alternate;
}
.scn-ghost-revelation-murder .vine-a {
  position: absolute; bottom: 20%; left: 22%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #1a2a22 0%, #0e1a14 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: grm-vine-a 12s ease-in-out infinite;
}
.scn-ghost-revelation-murder .vine-b {
  position: absolute; bottom: 25%; right: 28%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #1a2a22 0%, #0e1a14 100%);
  border-radius: 2px;
  transform: rotate(-25deg);
  animation: grm-vine-b 14s ease-in-out infinite reverse;
}
@keyframes grm-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes grm-tree-left { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes grm-branch-left { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes grm-tree-right { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes grm-serpent { 0% { transform: rotate(-15deg) translateY(0) } 33% { transform: rotate(-10deg) translateY(-4px) } 66% { transform: rotate(-20deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes grm-ghost-reveal { 0% { transform: translateY(0) scaleX(1); opacity: .3 } 50% { transform: translateY(-10px) scaleX(1.08); opacity: .6 } 100% { transform: translateY(5px) scaleX(.92); opacity: .2 } }
@keyframes grm-hamlet-reveal { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes grm-moon-glow { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(3px) translateY(-2px) scale(1.02) } 100% { transform: translateX(-2px) translateY(1px) scale(.98) } }
@keyframes grm-vine-a { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.05) } 100% { transform: rotate(18deg) scaleY(1) } }
@keyframes grm-vine-b { 0% { transform: rotate(-25deg) scaleY(1) } 50% { transform: rotate(-20deg) scaleY(1.04) } 100% { transform: rotate(-28deg) scaleY(1) } }

.scn-hamlet-absolute-knave {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #2e2e3c 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 60%);
}
.scn-hamlet-absolute-knave .courtier-leg {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 180px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a36 100%);
  border-radius: 12px 12px 8px 8px;
  transform-origin: bottom center;
  animation: hak-leg 1.2s ease-in-out infinite alternate;
}
.scn-hamlet-absolute-knave .courtier-heel {
  position: absolute; bottom: 5%; left: 50%; width: 50px; height: 30px;
  background: radial-gradient(circle at 70% 40%, #3e3e4e 0%, #2a2a36 100%);
  border-radius: 50% 30% 20% 40% / 60% 40% 60% 20%;
  transform: rotate(10deg);
  animation: hak-heel 1.2s ease-in-out infinite alternate;
}
.scn-hamlet-absolute-knave .peasant-toe {
  position: absolute; bottom: 8%; left: 42%; width: 24px; height: 18px;
  background: #4a4a5e;
  border-radius: 60% 30% 40% 20% / 50% 20% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: hak-toe 1.2s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-absolute-knave .card {
  position: absolute; top: 30%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 100%);
  border-radius: 6px; box-shadow: 0 0 8px rgba(200,176,128,0.3);
  transform: rotate(25deg);
  animation: hak-card 0.8s linear infinite, hak-float 1.6s ease-in-out infinite;
}
.scn-hamlet-absolute-knave .shadow-ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #181824 100%);
  animation: hak-shadow 3s ease-in-out infinite;
}
.scn-hamlet-absolute-knave .dust {
  position: absolute; bottom: 12%; left: 38%; width: 8px; height: 8px;
  background: rgba(180,180,190,0.3); border-radius: 50%; filter: blur(3px);
  animation: hak-dust 2s ease-out infinite;
}
.scn-hamlet-absolute-knave .mist {
  position: absolute; top: 0; left: 0; width: 100%; height: 60%;
  background: radial-gradient(ellipse at 40% 30%, rgba(160,160,170,0.15) 0%, transparent 70%);
  animation: hak-mist 8s ease-in-out infinite alternate;
}
@keyframes hak-leg {
  0% { transform: rotate(2deg) scaleY(1); }
  50% { transform: rotate(-2deg) scaleY(0.98); }
  100% { transform: rotate(1.5deg) scaleY(1.01); }
}
@keyframes hak-heel {
  0% { transform: rotate(8deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(2px); }
  100% { transform: rotate(10deg) translateX(-1px); }
}
@keyframes hak-toe {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-4px) scale(0.95); }
  100% { transform: translateX(2px) scale(1.02); }
}
@keyframes hak-card {
  0% { transform: rotate(20deg); }
  25% { transform: rotate(25deg); }
  75% { transform: rotate(15deg); }
  100% { transform: rotate(22deg); }
}
@keyframes hak-float {
  0% { top: 30%; }
  50% { top: 28%; }
  100% { top: 30%; }
}
@keyframes hak-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes hak-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-5px) scale(1.5); opacity: 0.2; }
  100% { transform: translateY(-12px) scale(0.5); opacity: 0; }
}
@keyframes hak-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-first-clown-day-last-king-overcame {
  background: 
    linear-gradient(180deg, #6a6a72 0%, #4a4a52 40%, #2c2c32 100%),
    radial-gradient(ellipse at 50% 0%, #7a7a84 0%, transparent 70%);
}
.scn-first-clown-day-last-king-overcame .sky-overcast {
  position: absolute; top: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, #5a5a62 0%, #3a3a42 100%);
  animation: fcd-sky 12s ease-in-out infinite alternate;
}
.scn-first-clown-day-last-king-overcame .grave-mound {
  position: absolute; bottom: 10%; left: 30%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #4e4e4e 0%, #3a3a3a 100%);
  border-radius: 80% 80% 60% 60% / 100% 100% 40% 40%;
  transform-origin: bottom center;
  animation: fcd-mound 6s ease-in-out infinite;
}
.scn-first-clown-day-last-king-overcame .cross {
  position: absolute; bottom: 28%; left: 38%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fcd-cross 8s ease-in-out infinite;
}
.scn-first-clown-day-last-king-overcame .crown {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #bda060 0%, #8c7030 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fcd-crown 4s ease-in-out infinite;
}
.scn-first-clown-day-last-king-overcame .skull {
  position: absolute; bottom: 15%; left: 48%; width: 20px; height: 22px;
  background: linear-gradient(180deg, #d0c8b8 0%, #b0a898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -2px -2px 4px rgba(0,0,0,0.2);
  animation: fcd-skull 5s ease-in-out infinite;
}
.scn-first-clown-day-last-king-overcame .spade {
  position: absolute; bottom: 8%; left: 22%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 1px;
  transform: rotate(-15deg);
  transform-origin: bottom left;
  animation: fcd-spade 3s ease-in-out infinite alternate;
}
.scn-first-clown-day-last-king-overcame .clown-figure {
  position: absolute; bottom: 12%; left: 18%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcd-clown 7s ease-in-out infinite;
}
.scn-first-clown-day-last-king-overcame .cloud-heavy {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(180,180,190,0.3) 0%, rgba(100,100,110,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: fcd-cloud 30s linear infinite;
}
@keyframes fcd-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes fcd-mound {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1.02); }
}
@keyframes fcd-cross {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(0.97); }
  100% { transform: rotate(-1deg) scale(1.01); }
}
@keyframes fcd-crown {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes fcd-skull {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(5deg); }
  66% { transform: translateX(-2px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes fcd-spade {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(-18deg); }
}
@keyframes fcd-clown {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes fcd-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(200px); }
}

.scn-first-clown-because-mad {
  background: 
    linear-gradient(180deg, #5a6670 0%, #3a4650 40%, #1a2630 100%),
    radial-gradient(ellipse at 50% 70%, #4a5670 0%, transparent 60%);
}
.scn-first-clown-because-mad .sea-bg {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 35%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: fcb-sea 4s ease-in-out infinite alternate;
}
.scn-first-clown-because-mad .ship-hull {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fcb-hull 3s ease-in-out infinite;
}
.scn-first-clown-because-mad .sail-main {
  position: absolute; bottom: 45%; left: 45%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 100%);
  border-radius: 2px 2px 12px 12px;
  transform: rotate(-5deg);
  transform-origin: bottom left;
  animation: fcb-sail1 4s ease-in-out infinite alternate;
}
.scn-first-clown-because-mad .sail-jib {
  position: absolute; bottom: 40%; left: 38%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e0d4c8 0%, #b8a890 100%);
  border-radius: 2px 10px 12px 2px;
  transform: rotate(8deg);
  transform-origin: bottom right;
  animation: fcb-sail2 3.5s ease-in-out infinite alternate-reverse;
}
.scn-first-clown-because-mad .figure-standing {
  position: absolute; bottom: 22%; left: 47%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcb-figure 2s ease-in-out infinite;
}
.scn-first-clown-because-mad .mast {
  position: absolute; bottom: 20%; left: 48%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #5a5030 0%, #3a2a10 100%);
  border-radius: 1px;
  animation: fcb-mast 3s ease-in-out infinite;
}
.scn-first-clown-because-mad .wave-wave1 {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20px;
  background: linear-gradient(90deg, #2a4a5a 0%, #1a3a4a 50%, #2a4a5a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: fcb-wave1 5s ease-in-out infinite;
}
.scn-first-clown-because-mad .wave-wave2 {
  position: absolute; bottom: -4px; left: 0; width: 100%; height: 18px;
  background: linear-gradient(90deg, #1a3a4a 0%, #0a2a3a 50%, #1a3a4a 100%);
  border-radius: 50%; filter: blur(3px);
  animation: fcb-wave2 7s ease-in-out infinite -2s;
}
.scn-first-clown-because-mad .fog {
  position: absolute; top: 0; left: 0; width: 100%; height: 80%;
  background: radial-gradient(ellipse at 60% 30%, rgba(200,210,220,0.1) 0%, transparent 70%);
  animation: fcb-fog 15s ease-in-out infinite alternate;
}
@keyframes fcb-sea {
  0% { height: 35%; }
  50% { height: 37%; }
  100% { height: 34%; }
}
@keyframes fcb-hull {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(-2px); }
}
@keyframes fcb-sail1 {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(0.95); }
  100% { transform: rotate(-7deg) scaleY(1.02); }
}
@keyframes fcb-sail2 {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(-3deg) scale(0.97); }
  100% { transform: rotate(10deg) scale(1.01); }
}
@keyframes fcb-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes fcb-mast {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes fcb-wave1 {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-30px) scaleX(0.95); }
  100% { transform: translateX(30px) scaleX(1.02); }
}
@keyframes fcb-wave2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(20px) scaleY(0.9); }
  100% { transform: translateX(-20px) scaleY(1.05); }
}
@keyframes fcb-fog {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

.scn-first-clown-here-in-denmark {
  background: 
    linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a5a 0%, transparent 70%);
}
.scn-first-clown-here-in-denmark .grave-pit {
  position: absolute; bottom: 0; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #2a2a20 0%, #1a1a10 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  transform: translateX(-50%);
  animation: fch-pit 6s ease-in-out infinite alternate;
}
.scn-first-clown-here-in-denmark .earth-mound {
  position: absolute; bottom: 5%; left: 30%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #4e4e3e 0%, #3a3a2a 100%);
  border-radius: 80% 80% 60% 60% / 100% 100% 40% 40%;
  animation: fch-mound 8s ease-in-out infinite;
}
.scn-first-clown-here-in-denmark .spade-planted {
  position: absolute; bottom: 10%; left: 38%; width: 5px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 1px;
  transform: rotate(10deg);
  transform-origin: bottom left;
  animation: fch-spade 4s ease-in-out infinite alternate;
}
.scn-first-clown-here-in-denmark .sexton {
  position: absolute; bottom: 8%; left: 44%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fch-sexton 5s ease-in-out infinite;
}
.scn-first-clown-here-in-denmark .lantern {
  position: absolute; bottom: 18%; left: 46%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c8a060 0%, #806020 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 12px 2px rgba(200,160,96,0.6);
  animation: fch-lantern 3s ease-in-out infinite alternate;
}
.scn-first-clown-here-in-denmark .skull-bones {
  position: absolute; bottom: 8%; left: 52%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fch-skull 5s ease-in-out infinite;
}
.scn-first-clown-here-in-denmark .sod {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 8%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  animation: fch-sod 10s ease-in-out infinite;
}
.scn-first-clown-here-in-denmark .dirt-clod {
  position: absolute; bottom: 12%; left: 32%; width: 10px; height: 8px;
  background: #4a4a3a; border-radius: 40% 60% 30% 50%;
  animation: fch-clod 2s linear infinite;
}
@keyframes fch-pit {
  0% { height: 40px; }
  50% { height: 44px; }
  100% { height: 38px; }
}
@keyframes fch-mound {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.93); }
  100% { transform: scaleY(1.04); }
}
@keyframes fch-spade {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(12deg); }
}
@keyframes fch-sexton {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes fch-lantern {
  0% { opacity: 0.8; box-shadow: 0 0 8px 2px rgba(200,160,96,0.4); }
  50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(200,160,96,0.8); }
  100% { opacity: 0.9; box-shadow: 0 0 12px 4px rgba(200,160,96,0.5); }
}
@keyframes fch-skull {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(8deg); }
  66% { transform: rotate(-6deg); }
  100% { transform: rotate(3deg); }
}
@keyframes fch-sod {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes fch-clod {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(15deg); }
  100% { transform: translateX(-5px) rotate(-10deg); }
}

.scn-hamlet-why-tanner {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #7a7a8a 0%, transparent 60%);
}
.scn-hamlet-why-tanner .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: ht1-sky 14s ease-in-out infinite alternate;
}
.scn-hamlet-why-tanner .grave {
  position: absolute; bottom: 20%; left: 20%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: ht1-grave 8s ease-in-out infinite;
}
.scn-hamlet-why-tanner .skull {
  position: absolute; bottom: 34%; left: 38%;
  width: 30px; height: 36px;
  background: radial-gradient(circle at 40% 30%, #b0a090 0%, #7a6a5a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: ht1-skull 3s ease-in-out infinite alternate;
}
.scn-hamlet-why-tanner .shovel {
  position: absolute; bottom: 26%; left: 28%;
  width: 10px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(15deg);
  animation: ht1-shovel 5s ease-in-out infinite alternate;
}
.scn-hamlet-why-tanner .hide {
  position: absolute; bottom: 40%; right: 15%;
  width: 40px; height: 25px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: ht1-hide 6s ease-in-out infinite alternate;
}
.scn-hamlet-why-tanner .figure {
  position: absolute; bottom: 18%; left: 34%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ht1-figure 4s ease-in-out infinite;
}
.scn-hamlet-why-tanner .hand {
  position: absolute; bottom: 50%; left: 36%;
  width: 14px; height: 18px;
  background: #2a2a3a;
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-30deg);
  animation: ht1-hand 2.5s ease-in-out infinite alternate;
}

@keyframes ht1-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes ht1-grave { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ht1-skull { 0% { transform: rotate(0deg) scale(1) } 30% { transform: rotate(4deg) scale(1.02) } 70% { transform: rotate(-3deg) scale(.98) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes ht1-shovel { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes ht1-hide { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(.97) rotate(-1deg) } }
@keyframes ht1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes ht1-hand { 0% { transform: rotate(-30deg) translate(0,0) } 50% { transform: rotate(-25deg) translate(4px,-2px) } 100% { transform: rotate(-35deg) translate(0,1px) } }

.scn-hamlet-nay-know-not {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 60%);
}
.scn-hamlet-nay-know-not .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: ht2-sky 18s ease-in-out infinite alternate;
}
.scn-hamlet-nay-know-not .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: ht2-ground 12s ease-in-out infinite alternate;
}
.scn-hamlet-nay-know-not .skull {
  position: absolute; bottom: 40%; left: 42%;
  width: 36px; height: 42px;
  background: radial-gradient(circle at 40% 30%, #b0a090 0%, #7a6a5a 70%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  box-shadow: 0 6px 18px rgba(0,0,0,.7);
  animation: ht2-skull 4s ease-in-out infinite alternate;
}
.scn-hamlet-nay-know-not .cap {
  position: absolute; bottom: 68%; left: 42%;
  width: 40px; height: 20px;
  background: linear-gradient(135deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(-5deg) translateY(-10px);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ht2-cap 3s ease-in-out infinite alternate;
}
.scn-hamlet-nay-know-not .flagon {
  position: absolute; bottom: 32%; left: 56%;
  width: 16px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(10deg);
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: ht2-flagon 5s ease-in-out infinite alternate;
}
.scn-hamlet-nay-know-not .jester-staff {
  position: absolute; bottom: 28%; left: 32%;
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(-8deg);
  animation: ht2-staff 7s ease-in-out infinite alternate;
}
.scn-hamlet-nay-know-not .figure {
  position: absolute; bottom: 12%; left: 38%;
  width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ht2-figure 6s ease-in-out infinite;
}

@keyframes ht2-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ht2-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ht2-skull { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(5deg) translateY(-3px) } 70% { transform: rotate(-4deg) translateY(2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ht2-cap { 0% { transform: rotate(-5deg) translateY(-10px) scale(1) } 50% { transform: rotate(5deg) translateY(-12px) scale(1.04) } 100% { transform: rotate(-8deg) translateY(-8px) scale(.97) } }
@keyframes ht2-flagon { 0% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(15deg) translate(2px,-2px) } 100% { transform: rotate(5deg) translate(-1px,1px) } }
@keyframes ht2-staff { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-4deg) } }
@keyframes ht2-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-hamlet-alas-poor-yorick {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #050510 100%), radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-hamlet-alas-poor-yorick .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, #0a0a1a 100%);
  animation: hy-bg 20s ease-in-out infinite alternate;
}
.scn-hamlet-alas-poor-yorick .hand-left {
  position: absolute; bottom: 30%; left: 28%;
  width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(20deg);
  animation: hy-hand-left 3.5s ease-in-out infinite alternate;
}
.scn-hamlet-alas-poor-yorick .hand-right {
  position: absolute; bottom: 30%; left: 48%;
  width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: hy-hand-right 3.5s ease-in-out infinite alternate;
}
.scn-hamlet-alas-poor-yorick .skull {
  position: absolute; bottom: 38%; left: 38%;
  width: 48px; height: 58px;
  background: radial-gradient(circle at 45% 35%, #c0b0a0 0%, #8a7a6a 60%, #5a4a3a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(120,100,80,.3), 0 0 60px 20px rgba(80,70,60,.15);
  animation: hy-skull 6s ease-in-out infinite alternate;
}
.scn-hamlet-alas-poor-yorick .eye-glow {
  position: absolute; bottom: 48%; left: 44%;
  width: 8px; height: 10px;
  background: radial-gradient(circle, #8a7a6a 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(120,100,80,.5);
  animation: hy-eye 2s ease-in-out infinite alternate;
}
.scn-hamlet-alas-poor-yorick .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: hy-shadow 8s ease-in-out infinite alternate;
}

@keyframes hy-bg { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes hy-hand-left { 0% { transform: rotate(20deg) translate(0,0) scale(1) } 50% { transform: rotate(25deg) translate(4px,-2px) scale(1.03) } 100% { transform: rotate(15deg) translate(0,0) scale(.98) } }
@keyframes hy-hand-right { 0% { transform: rotate(-20deg) translate(0,0) scale(1) } 50% { transform: rotate(-25deg) translate(-4px,-2px) scale(1.03) } 100% { transform: rotate(-15deg) translate(0,0) scale(.98) } }
@keyframes hy-skull { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(3deg) translateY(-4px) } 70% { transform: rotate(-2deg) translateY(2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes hy-eye { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes hy-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.9) } }

.scn-horatio-een-so {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #7a7a8a 0%, transparent 70%);
}
.scn-horatio-een-so .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: he-sky 25s ease-in-out infinite alternate;
}
.scn-horatio-een-so .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: he-horizon 20s ease-in-out infinite alternate;
}
.scn-horatio-een-so .figure-left {
  position: absolute; bottom: 22%; left: 25%;
  width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: he-figure-left 8s ease-in-out infinite;
}
.scn-horatio-een-so .figure-right {
  position: absolute; bottom: 22%; right: 30%;
  width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: he-figure-right 8s ease-in-out infinite;
}
.scn-horatio-een-so .skull-ground {
  position: absolute; bottom: 30%; left: 45%;
  width: 22px; height: 26px;
  background: radial-gradient(circle at 40% 30%, #b0a090 0%, #7a6a5a 70%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: he-skull-ground 12s ease-in-out infinite alternate;
}
.scn-horatio-een-so .tree {
  position: absolute; bottom: 35%; right: 10%;
  width: 8px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 20%;
  transform: rotate(5deg);
  animation: he-tree 30s ease-in-out infinite alternate;
}
.scn-horatio-een-so .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(100,100,120,.15) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, rgba(80,80,100,.1) 0%, transparent 50%);
  animation: he-mist 45s ease-in-out infinite alternate;
}

@keyframes he-sky { 0% { opacity:.6 } 50% { opacity:.75 } 100% { opacity:.65 } }
@keyframes he-horizon { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(.99) } }
@keyframes he-figure-left { 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 he-figure-right { 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 he-skull-ground { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(1px) } }
@keyframes he-tree { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(2deg) } }
@keyframes he-mist { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-hamlet-skull-tongue { background: linear-gradient(180deg, #2c2f33 0%, #1a1c1e 40%, #111214 100%), radial-gradient(ellipse at 50% 110%, #2a2d31 0%, transparent 60%); }
.scn-hamlet-skull-tongue .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3b4047 0%, #1e2023 60%); animation: hst1-bg 12s ease-in-out infinite alternate; }
.scn-hamlet-skull-tongue .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2c2e 0%, #151618 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.7); animation: hst1-ground 8s ease-in-out infinite; }
.scn-hamlet-skull-tongue .skull { position:absolute; bottom:18%; left:50%; width:60px; height:52px; transform:translateX(-50%); background: radial-gradient(ellipse at 40% 30%, #a09b8f 0%, #6a655b 100%); border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.8), inset 0 -4px 8px rgba(0,0,0,0.5); animation: hst1-skull 5s ease-in-out infinite; }
.scn-hamlet-skull-tongue .tongue { position:absolute; bottom:14%; left:50%; width:18px; height:10px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(180deg, #8a6b52 0%, #644a36 100%); border-radius: 50% 50% 40% 40%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); animation: hst1-tongue 3s ease-in-out infinite alternate; }
.scn-hamlet-skull-tongue .hand { position:absolute; bottom:15%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #3a3c3a 0%, #1e1f1d 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom left; animation: hst1-hand 6s ease-in-out infinite; }
.scn-hamlet-skull-tongue .shadow { position:absolute; bottom:14%; left:42%; width:70px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius:50%; animation: hst1-shadow 8s ease-in-out infinite alternate; }
.scn-hamlet-skull-tongue .bone1 { position:absolute; bottom:10%; left:20%; width:28px; height:6px; background: linear-gradient(90deg, #6a655b 0%, #8a8478 100%); border-radius: 40% 20% 20% 40%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: hst1-bone 10s ease-in-out infinite; }
.scn-hamlet-skull-tongue .bone2 { position:absolute; bottom:8%; left:68%; width:24px; height:5px; background: linear-gradient(90deg, #7a7266 0%, #5a5246 100%); border-radius: 30% 20% 20% 30%; transform: rotate(30deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: hst1-bone2 12s ease-in-out infinite; }
@keyframes hst1-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hst1-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes hst1-skull { 0% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 66% { transform: translateX(-50%) rotate(-1deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes hst1-tongue { 0% { transform: translateX(-50%) rotate(-8deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(-8deg) scaleY(1) } }
@keyframes hst1-hand { 0% { transform: rotate(-10deg) translate(0,0) } 25% { transform: rotate(-5deg) translate(4px,-3px) } 50% { transform: rotate(-15deg) translate(0,0) } 75% { transform: rotate(0deg) translate(6px,-2px) } 100% { transform: rotate(-10deg) translate(0,0) } }
@keyframes hst1-shadow { 0% { transform: scaleX(1) opacity:0.6 } 50% { transform: scaleX(0.9) opacity:0.4 } 100% { transform: scaleX(1) opacity:0.6 } }
@keyframes hst1-bone { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes hst1-bone2 { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-1px) } 100% { transform: rotate(30deg) translateY(0) } }

.scn-hamlet-courtier { background: linear-gradient(180deg, #3a3d40 0%, #232528 50%, #141518 100%), radial-gradient(ellipse at 40% 80%, #2e3135 0%, transparent 60%); }
.scn-hamlet-courtier .bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #474b50 0%, #2a2c30 60%); animation: hc2-bg 14s ease-in-out infinite alternate; }
.scn-hamlet-courtier .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1f2124 0%, #0d0e10 100%); border-radius: 30% 50% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); animation: hc2-ground 10s ease-in-out infinite; }
.scn-hamlet-courtier .courtier-body { position:absolute; bottom:20%; left:40%; width:26px; height:60px; background: linear-gradient(180deg, #494542 0%, #2b2826 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hc2-body 7s ease-in-out infinite; }
.scn-hamlet-courtier .courtier-hat { position:absolute; bottom:64%; left:38%; width:40px; height:16px; background: linear-gradient(180deg, #2e2c2a 0%, #1c1a18 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 -2px 6px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: hc2-hat 8s ease-in-out infinite; }
.scn-hamlet-courtier .courtier-ruff { position:absolute; bottom:40%; left:36%; width:34px; height:14px; background: radial-gradient(ellipse at 50% 50%, #b0aca0 0%, #8c877a 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.3); animation: hc2-ruff 5s ease-in-out infinite alternate; }
.scn-hamlet-courtier .horse-head { position:absolute; bottom:18%; left:62%; width:36px; height:30px; background: linear-gradient(180deg, #4a4844 0%, #2e2c28 100%); border-radius: 40% 50% 50% 40% / 50% 60% 50% 40%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: hc2-horse 9s ease-in-out infinite; }
.scn-hamlet-courtier .skull-court { position:absolute; bottom:14%; left:25%; width:44px; height:38px; background: radial-gradient(ellipse at 40% 30%, #8a857a 0%, #5c574e 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; box-shadow: 0 3px 8px rgba(0,0,0,0.7); transform: rotate(-15deg); animation: hc2-skull 6s ease-in-out infinite; }
@keyframes hc2-bg { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hc2-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes hc2-body { 0% { transform: rotate(0deg) } 33% { transform: rotate(1deg) } 66% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes hc2-hat { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes hc2-ruff { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.05) scaleY(1.03) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes hc2-horse { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes hc2-skull { 0% { transform: rotate(-15deg) translateY(0) } 33% { transform: rotate(-12deg) translateY(-2px) } 66% { transform: rotate(-18deg) translateY(1px) } 100% { transform: rotate(-15deg) translateY(0) } }

.scn-hamlet-why-een-so { background: linear-gradient(180deg, #272a2d 0%, #1a1c1f 50%, #0f1112 100%), radial-gradient(ellipse at 60% 120%, #33373a 0%, transparent 60%); }
.scn-hamlet-why-een-so .bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #363a3f 0%, #1d2023 60%); animation: hw3-bg 16s ease-in-out infinite alternate; }
.scn-hamlet-why-een-so .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #212326 0%, #0e0f11 100%); border-radius: 50% 30% 0 0 / 60% 40% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.9); animation: hw3-ground 9s ease-in-out infinite; }
.scn-hamlet-why-een-so .skull-chapless { position:absolute; bottom:24%; left:32%; width:48px; height:40px; background: radial-gradient(ellipse at 40% 30%, #7a756c 0%, #524e46 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.8); transform: rotate(5deg); animation: hw3-skull 7s ease-in-out infinite; }
.scn-hamlet-why-een-so .spade { position:absolute; bottom:28%; left:62%; width:18px; height:44px; background: linear-gradient(180deg, #4a473e 0%, #2d2b24 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-15deg); box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: hw3-spade 4s ease-in-out infinite alternate; }
.scn-hamlet-why-een-so .shaft { position:absolute; bottom:18%; left:63%; width:8px; height:60px; background: linear-gradient(180deg, #5a564a 0%, #3a362e 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-15deg); transform-origin: bottom; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: hw3-shaft 6s ease-in-out infinite; }
.scn-hamlet-why-een-so .bone-long { position:absolute; bottom:10%; left:20%; width:30px; height:7px; background: linear-gradient(90deg, #6a655b 0%, #8a8478 100%); border-radius: 30% 20% 20% 30%; transform: rotate(-40deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: hw3-bone 12s ease-in-out infinite; }
.scn-hamlet-why-een-so .worm { position:absolute; bottom:5%; left:50%; width:12px; height:6px; background: linear-gradient(180deg, #6a5c4e 0%, #4a3e32 100%); border-radius: 50%; filter: blur(1px); animation: hw3-worm 3s ease-in-out infinite alternate; }
@keyframes hw3-bg { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hw3-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.94) } 100% { transform: scaleY(1) } }
@keyframes hw3-skull { 0% { transform: rotate(5deg) translateY(0) } 33% { transform: rotate(8deg) translateY(-2px) } 66% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes hw3-spade { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes hw3-shaft { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-12deg) scaleY(0.95) } 100% { transform: rotate(-15deg) scaleY(1) } }
@keyframes hw3-bone { 0% { transform: rotate(-40deg) translateY(0) } 50% { transform: rotate(-35deg) translateY(-2px) } 100% { transform: rotate(-40deg) translateY(0) } }
@keyframes hw3-worm { 0% { transform: scaleX(1) translateX(0) } 100% { transform: scaleX(1.2) translateX(3px) } }

.scn-item-yorick-skull { background: linear-gradient(180deg, #34373b 0%, #222528 50%, #15171a 100%), radial-gradient(ellipse at 30% 100%, #2b2e32 0%, transparent 60%); }
.scn-item-yorick-skull .bg { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #41464b 0%, #25282b 60%); animation: hy4-bg 18s ease-in-out infinite alternate; }
.scn-item-yorick-skull .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #242629 0%, #101112 100%); border-radius: 40% 50% 0 0 / 50% 60% 0 0; box-shadow: inset 0 14px 28px rgba(0,0,0,0.8); animation: hy4-ground 11s ease-in-out infinite; }
.scn-item-yorick-skull .skull1 { position:absolute; bottom:20%; left:25%; width:50px; height:44px; background: radial-gradient(ellipse at 40% 30%, #8a857a 0%, #5c574e 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.7); transform: rotate(-10deg); animation: hy4-skull1 8s ease-in-out infinite; }
.scn-item-yorick-skull .skull2 { position:absolute; bottom:44%; left:60%; width:42px; height:36px; background: radial-gradient(ellipse at 40% 30%, #9a9488 0%, #6b6559 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3); animation: hy4-skull2 2.5s ease-in-out infinite; }
.scn-item-yorick-skull .spade { position:absolute; bottom:12%; left:45%; width:16px; height:50px; background: linear-gradient(180deg, #3f3c34 0%, #24221c 100%); border-radius: 10% 10% 5% 5%; transform: rotate(20deg); box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: hy4-spade 9s ease-in-out infinite; }
.scn-item-yorick-skull .pickaxe { position:absolute; bottom:10%; left:70%; width:14px; height:46px; background: linear-gradient(180deg, #3a3730 0%, #22201a 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-25deg); box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: hy4-pick 7s ease-in-out infinite; }
.scn-item-yorick-skull .dust1 { position:absolute; bottom:26%; left:28%; width:10px; height:10px; background: radial-gradient(circle, rgba(160,150,130,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: hy4-dust1 4s ease-in-out infinite; }
.scn-item-yorick-skull .dust2 { position:absolute; bottom:48%; left:55%; width:8px; height:8px; background: radial-gradient(circle, rgba(140,130,110,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: hy4-dust2 5s ease-in-out infinite alternate; }
@keyframes hy4-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes hy4-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.93) } 100% { transform: scaleY(1) } }
@keyframes hy4-skull1 { 0% { transform: rotate(-10deg) translateY(0) } 33% { transform: rotate(-7deg) translateY(-2px) } 66% { transform: rotate(-12deg) translateY(1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes hy4-skull2 { 0% { transform: translateY(0) rotate(0deg) scale(1) } 20% { transform: translateY(-18px) rotate(20deg) scale(1.05) } 40% { transform: translateY(0) rotate(0deg) scale(1) } 60% { transform: translateY(-14px) rotate(-15deg) scale(1.03) } 80% { transform: translateY(0) rotate(0deg) scale(1) } 100% { transform: translateY(-2px) rotate(5deg) scale(1.02) } }
@keyframes hy4-spade { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(23deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes hy4-pick { 0% { transform: rotate(-25deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-3px) } 100% { transform: rotate(-25deg) translateY(0) } }
@keyframes hy4-dust1 { 0% { transform: scale(1) opacity:0.4 } 50% { transform: scale(1.5) opacity:0.2 } 100% { transform: scale(1) opacity:0.4 } }
@keyframes hy4-dust2 { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(8px) scale(1.3) } }

.scn-king-letter-england {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 60%, #0d0703 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a10 0%, transparent 60%);
}
.scn-king-letter-england .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-king-letter-england .desk { position:absolute; bottom:10%; left:50%; width:50%; height:45%; margin-left:-25%; background: linear-gradient(180deg, #4a2a10 0%, #2a1a05 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-king-letter-england .figure { position:absolute; bottom:20%; left:35%; width:14%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kle-figure 4s ease-in-out infinite; }
.scn-king-letter-england .candle { position:absolute; bottom:40%; left:42%; width:3%; height:12%; background: linear-gradient(180deg, #f5f0e0 0%, #d0a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px rgba(255,200,100,.3); animation: kle-candle 6s ease-in-out infinite; }
.scn-king-letter-england .flame { position:absolute; bottom:48%; left:42.5%; width:2%; height:4%; background: radial-gradient(circle, #ffd060 0%, #ff8020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffa040; animation: kle-flame 0.8s ease-in-out infinite alternate; }
.scn-king-letter-england .letter { position:absolute; bottom:18%; left:42%; width:12%; height:16%; background: linear-gradient(180deg, #f5f0e0 0%, #d0c0a0 100%); border-radius: 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(5deg); animation: kle-letter 3s ease-in-out infinite; }
.scn-king-letter-england .seal { position:absolute; bottom:22%; left:46%; width:3%; height:3%; background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(90,20,20,.5); animation: kle-seal 5s ease-in-out infinite; }
@keyframes kle-flame {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.85; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.9; }
}
@keyframes kle-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes kle-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.98); }
}
@keyframes kle-letter {
  0% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(-2px); }
  100% { transform: rotate(4deg) translateY(0); }
}
@keyframes kle-seal {
  0% { transform: scale(1); box-shadow: 0 0 6px 2px rgba(90,20,20,.5); }
  50% { transform: scale(1.1); box-shadow: 0 0 10px 4px rgba(90,20,20,.7); }
  100% { transform: scale(1); box-shadow: 0 0 6px 2px rgba(90,20,20,.5); }
}

.scn-fortinbras-march {
  background:
    linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 30%, #3a4a4a 60%, #2a3a3a 100%);
}
.scn-fortinbras-march .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a7a 0%, #5a6a6a 100%); animation: fbm-sky 12s ease-in-out infinite alternate; }
.scn-fortinbras-march .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-fortinbras-march .mountains { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; animation: fbm-mountains 20s ease-in-out infinite alternate; }
.scn-fortinbras-march .soldier-1 { position:absolute; bottom:10%; left:10%; width:4%; height:18%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fbm-march 6s ease-in-out infinite; }
.scn-fortinbras-march .soldier-2 { position:absolute; bottom:12%; left:20%; width:4%; height:16%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fbm-march 6.5s ease-in-out infinite; animation-delay: -2s; }
.scn-fortinbras-march .banner { position:absolute; bottom:26%; left:16%; width:6%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%); transform-origin: bottom center; animation: fbm-banner 4s ease-in-out infinite; }
.scn-fortinbras-march .cloud-1 { position:absolute; top:10%; left:10%; width:20%; height:8%; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(8px); animation: fbm-cloud-drift 30s linear infinite; }
.scn-fortinbras-march .cloud-2 { position:absolute; top:20%; right:15%; width:15%; height:6%; background: rgba(255,255,255,0.25); border-radius: 50%; filter: blur(6px); animation: fbm-cloud-drift 40s linear infinite reverse; animation-delay: -10s; }
@keyframes fbm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fbm-mountains { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes fbm-march { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(20px) rotate(-2deg); } }
@keyframes fbm-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes fbm-cloud-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(30px); } 100% { transform: translateX(-30px); } }

.scn-captain-will-do {
  background:
    linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 50%, #3a4a4a 100%);
}
.scn-captain-will-do .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7a8a8a 0%, #6a7a7a 100%); animation: cwd-sky 15s ease-in-out infinite alternate; }
.scn-captain-will-do .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a4a2a 0%, #4a5a3a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-captain-will-do .figure-captain { position:absolute; bottom:20%; left:30%; width:12%; height:50%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwd-nod 4s ease-in-out infinite; }
.scn-captain-will-do .figure-hamlet { position:absolute; bottom:22%; right:30%; width:12%; height:48%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwd-still 6s ease-in-out infinite; }
.scn-captain-will-do .cloak-captain { position:absolute; bottom:20%; left:28%; width:16%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%); animation: cwd-cloak 5s ease-in-out infinite; }
.scn-captain-will-do .sword { position:absolute; bottom:35%; right:38%; width:2%; height:20%; background: linear-gradient(180deg, #8a9a9a 0%, #5a6a6a 100%); border-radius: 10% 10% 0 0; transform: rotate(15deg); transform-origin: bottom; animation: cwd-sword 3s ease-in-out infinite; }
.scn-captain-will-do .bush { position:absolute; bottom:5%; left:10%; width:15%; height:20%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; animation: cwd-bush 7s ease-in-out infinite; }
@keyframes cwd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cwd-nod { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes cwd-still { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cwd-cloak { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0deg); } }
@keyframes cwd-sword { 0% { transform: rotate(12deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.05); } 100% { transform: rotate(12deg) scaleY(1); } }
@keyframes cwd-bush { 0% { transform: scale(1); } 50% { transform: scale(1.03) translateY(-1px); } 100% { transform: scale(1); } }

.scn-captain-little-patch {
  background:
    linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 40%, #3a4a4a 100%);
}
.scn-captain-little-patch .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a7a 0%, #5a6a6a 100%); animation: clp-sky 20s ease-in-out infinite alternate; }
.scn-captain-little-patch .cloud-1 { position:absolute; top:8%; left:5%; width:25%; height:10%; background: rgba(255,255,255,0.2); border-radius: 50%; filter: blur(10px); animation: clp-cloud-drift 35s linear infinite; }
.scn-captain-little-patch .cloud-2 { position:absolute; top:18%; right:10%; width:18%; height:8%; background: rgba(255,255,255,0.15); border-radius: 50%; filter: blur(8px); animation: clp-cloud-drift 45s linear infinite reverse; animation-delay: -15s; }
.scn-captain-little-patch .horizon { position:absolute; bottom:40%; left:0; right:0; height:2%; background: linear-gradient(90deg, #4a5a4a 0%, #5a6a5a 50%, #4a5a4a 100%); animation: clp-horizon 10s ease-in-out infinite alternate; }
.scn-captain-little-patch .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); }
.scn-captain-little-patch .patch { position:absolute; bottom:15%; left:45%; width:10%; height:5%; background: linear-gradient(180deg, #5a6a4a 0%, #4a5a3a 100%); border: 2px solid #2a3a2a; border-radius: 10%; animation: clp-patch 8s ease-in-out infinite; }
.scn-captain-little-patch .flag { position:absolute; bottom:20%; left:47%; width:1%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); animation: clp-flag 4s ease-in-out infinite; }
.scn-captain-little-patch .flag::after { content:''; position:absolute; top:0; left:0; width:300%; height:60%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); }
.scn-captain-little-patch .soldier-1 { position:absolute; bottom:12%; left:35%; width:3%; height:15%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: clp-soldier 5s ease-in-out infinite; }
.scn-captain-little-patch .soldier-2 { position:absolute; bottom:13%; left:42%; width:3%; height:14%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: clp-soldier 5.5s ease-in-out infinite; animation-delay: -2.5s; }
@keyframes clp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes clp-cloud-drift { 0% { transform: translateX(-40px); } 50% { transform: translateX(40px); } 100% { transform: translateX(-40px); } }
@keyframes clp-horizon { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.02); opacity: 1; } 100% { transform: scaleX(1); opacity: 0.8; } }
@keyframes clp-patch { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes clp-flag { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes clp-soldier { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-item-human-critique {
  background:
    linear-gradient(135deg, #1a1520 0%, #2a2030 30%, #3a2a40 60%, #2a2030 100%),
    radial-gradient(ellipse at 68% 38%, #5a4a5a 0%, transparent 55%);
}
.scn-item-human-critique .bg-wall       { position:absolute; inset:0; background: linear-gradient(180deg, #2a2035 0%, #1a1520 100%); }
.scn-item-human-critique .bg-shadow     { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 60%); animation: ihc-shadow-pulse 8s ease-in-out infinite alternate; }
.scn-item-human-critique .window-glow   { position:absolute; inset:6% 15% 52% 50%; background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 40%, #5a6a7a 100%); border-radius: 3% 3% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: ihc-window 12s ease-in-out infinite alternate; }
.scn-item-human-critique .window-bars   { position:absolute; inset:6% 15% 52% 50%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 22%, #1a1520 22%, #1a1520 26%, transparent 26%, transparent 48%, #1a1520 48%, #1a1520 52%, transparent 52%, transparent 74%, #1a1520 74%, #1a1520 78%, transparent 78%); animation: ihc-bars 20s linear infinite; }
.scn-item-human-critique .desk          { position:absolute; bottom:18%; left:38%; right:12%; height:14%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-item-human-critique .figure-profile{ position:absolute; bottom:18%; left:35%; width:28px; height:42px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: ihc-breathe 5s ease-in-out infinite; }
.scn-item-human-critique .candle        { position:absolute; bottom:32%; left:46%; width:4px; height:14px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 60%, #a08050 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 0 2px #e8d0a0; }
.scn-item-human-critique .candle-glow   { position:absolute; bottom:32%; left:46%; width:20px; height:20px; transform:translate(-50%,-50%); background: radial-gradient(circle, #e8c060 0%, #b08030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px #c09040, 0 0 60px 18px rgba(192,144,64,.4); animation: ihc-flicker 2s ease-in-out infinite alternate; }
.scn-item-human-critique .book-stack    { position:absolute; bottom:20%; left:52%; width:34px; height:18px; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 30%, #3a1a0a 60%, #4a2a1a 100%); border-radius: 2%; box-shadow: 1px 2px 6px rgba(0,0,0,.5); transform: rotate(2deg); }
@keyframes ihc-shadow-pulse { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ihc-window   { 0% { opacity:.8 } 33% { opacity:1 } 66% { opacity:.7 } 100% { opacity:.85 } }
@keyframes ihc-bars     { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes ihc-breathe  { 0% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(-1px) scaleY(1.01) } 60% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(1px) scaleY(0.99) } }
@keyframes ihc-flicker  { 0% { opacity:.7; transform:translate(-50%,-50%) scale(1); box-shadow:0 0 20px 6px #c09040,0 0 40px 12px rgba(192,144,64,.3) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.15); box-shadow:0 0 35px 12px #e8b050,0 0 70px 24px rgba(232,176,80,.5) } 100% { opacity:.8; transform:translate(-50%,-50%) scale(.95); box-shadow:0 0 25px 8px #c09040,0 0 50px 16px rgba(192,144,64,.35) } }

.scn-players-arrive {
  background:
    linear-gradient(180deg, #c8b898 0%, #d8c8a8 30%, #e0d0b0 60%, #d0c0a0 100%),
    radial-gradient(ellipse at 60% 20%, #f0e8d8 0%, transparent 50%);
}
.scn-players-arrive .bg-hall     { position:absolute; inset:0; background: linear-gradient(180deg, #d0c0a8 0%, #c0b098 50%, #b0a088 100%); }
.scn-players-arrive .arch-left   { position:absolute; inset:10% auto 20% 5%; width:18%; background: linear-gradient(180deg, #b0a090 0%, #a09080 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.15); animation: pa-arch 18s ease-in-out infinite alternate; }
.scn-players-arrive .arch-right  { position:absolute; inset:10% 5% 20% auto; width:18%; background: linear-gradient(180deg, #b0a090 0%, #a09080 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 8px 0 20px rgba(0,0,0,.15); animation: pa-arch 18s ease-in-out infinite alternate-reverse; }
.scn-players-arrive .floor       { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b8a888 0%, #a89878 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-players-arrive .figure-lead { position:absolute; bottom:20%; right:38%; width:16px; height:36px; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: pa-walk-a 6s ease-in-out infinite; }
.scn-players-arrive .figure-follow{position:absolute; bottom:20%; right:32%; width:14px; height:32px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: pa-walk-b 6s ease-in-out infinite 1.5s; }
.scn-players-arrive .sunbeam     { position:absolute; top:12%; left:44%; width:6px; height:55%; background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, rgba(255,240,200,.05) 80%); transform: rotate(-8deg); transform-origin: top center; border-radius: 50%; filter: blur(4px); animation: pa-beam 14s ease-in-out infinite alternate; }
.scn-players-arrive .banner      { position:absolute; top:14%; left:42%; width:16%; height:8%; background: linear-gradient(180deg, #b87878 0%, #9a5858 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: pa-banner 8s ease-in-out infinite alternate; }
@keyframes pa-arch     { 0% { opacity:.85; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:.9; transform:scaleY(.98) } }
@keyframes pa-walk-a   { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(-6px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(-12px) translateY(0) rotate(-1deg) } 75% { transform:translateX(-18px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(-24px) translateY(0) rotate(0) } }
@keyframes pa-walk-b   { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 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 pa-beam     { 0% { opacity:.3; transform:rotate(-10deg) scaleX(1) } 50% { opacity:.6; transform:rotate(-6deg) scaleX(1.2) } 100% { opacity:.35; transform:rotate(-12deg) scaleX(.9) } }
@keyframes pa-banner   { 0% { transform:skewX(-2deg) } 50% { transform:skewX(0) } 100% { transform:skewX(2deg) } }

.scn-hamlet-welcomes-players {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #5a3a2a 30%, #7a4a3a 60%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #8a5a3a 0%, transparent 60%);
}
.scn-hamlet-welcomes-players .bg-chamber   { position:absolute; inset:0; background: linear-gradient(180deg, #4a3020 0%, #6a4030 40%, #4a3020 100%); }
.scn-hamlet-welcomes-players .fireplace    { position:absolute; bottom:18%; left:74%; width:22%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-hamlet-welcomes-players .fire-glow    { position:absolute; bottom:30%; left:80%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, #c06020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #d08030, 0 0 120px 40px rgba(208,128,48,.4); animation: hwp-fire 4s ease-in-out infinite alternate; }
.scn-hamlet-welcomes-players .floor        { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-hamlet-welcomes-players .hamlet       { position:absolute; bottom:18%; left:42%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: hwp-bow 8s ease-in-out infinite; }
.scn-hamlet-welcomes-players .player-1     { position:absolute; bottom:18%; right:36%; width:16px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: hwp-approach 10s ease-in-out infinite 2s; }
.scn-hamlet-welcomes-players .player-2     { position:absolute; bottom:18%; right:28%; width:14px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: hwp-approach 10s ease-in-out infinite 4s; }
.scn-hamlet-welcomes-players .warmth-haze  { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 50%, rgba(200,120,60,.2) 0%, transparent 60%); animation: hwp-haze 12s ease-in-out infinite alternate; }
@keyframes hwp-fire    { 0% { opacity:.7; transform:scaleY(1) scaleX(1) } 50% { opacity:1; transform:scaleY(1.15) scaleX(1.08) } 100% { opacity:.8; transform:scaleY(.9) scaleX(.95) } }
@keyframes hwp-bow     { 0% { transform:translateX(0) translateY(0) rotate(0) } 33% { transform:translateX(6px) translateY(-2px) rotate(4deg) } 66% { transform:translateX(12px) translateY(0) rotate(-2deg) } 100% { transform:translateX(18px) translateY(-1px) rotate(2deg) } }
@keyframes hwp-approach{ 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(-6px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(-12px) translateY(0) rotate(-1deg) } 75% { transform:translateX(-18px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(-24px) translateY(0) rotate(0) } }
@keyframes hwp-haze    { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-item-aeneas-speech {
  background:
    linear-gradient(180deg, #2a2020 0%, #3a2a2a 30%, #4a3a3a 60%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 25%, #5a4a3a 0%, transparent 50%);
}
.scn-item-aeneas-speech .bg-stage       { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #4a3a3a 40%, #2a2020 100%); }
.scn-item-aeneas-speech .curtain-left   { position:absolute; inset:5% auto 5% 0; width:30%; background: linear-gradient(135deg, #5e1a1d 0%, #7a2a2a 40%, #4a1010 100%); border-radius: 0 60% 60% 0 / 0 40% 40% 0; box-shadow: 4px 0 20px rgba(0,0,0,.3); animation: ias-curtain-l 20s ease-in-out infinite alternate; }
.scn-item-aeneas-speech .curtain-right  { position:absolute; inset:5% 0 5% auto; width:30%; background: linear-gradient(225deg, #5e1a1d 0%, #7a2a2a 40%, #4a1010 100%); border-radius: 60% 0 0 60% / 40% 0 0 40%; box-shadow: -4px 0 20px rgba(0,0,0,.3); animation: ias-curtain-r 20s ease-in-out infinite alternate-reverse; }
.scn-item-aeneas-speech .stage-floor    { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-item-aeneas-speech .speaker        { position:absolute; bottom:20%; left:44%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ias-speak 5s ease-in-out infinite; }
.scn-item-aeneas-speech .gesture-arm    { position:absolute; bottom:38%; left:48%; width:20px; height:4px; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 40% 10% 10% 40%; transform-origin: left center; transform: rotate(-20deg); animation: ias-gesture 4s ease-in-out infinite alternate; }
.scn-item-aeneas-speech .audience-shadow{ position:absolute; bottom:15%; left:18%; right:18%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 100%); border-radius: 40% 40% 0 0; filter: blur(6px); animation: ias-audience 14s ease-in-out infinite alternate; }
.scn-item-aeneas-speech .spotlight      { position:absolute; top:0; left:38%; width:24%; height:70%; background: linear-gradient(180deg, rgba(240,220,180,.25) 0%, rgba(240,220,180,.02) 100%); clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%); filter: blur(3px); animation: ias-spot 6s ease-in-out infinite alternate; }
@keyframes ias-curtain-l { 0% { transform:translateX(0) skewY(0) } 50% { transform:translateX(4px) skewY(1deg) } 100% { transform:translateX(-2px) skewY(-1deg) } }
@keyframes ias-curtain-r { 0% { transform:translateX(0) skewY(0) } 50% { transform:translateX(-4px) skewY(-1deg) } 100% { transform:translateX(2px) skewY(1deg) } }
@keyframes ias-speak     { 0% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(3deg) } 60% { transform:translateY(0) rotate(-2deg) } 100% { transform:translateY(-1px) rotate(1deg) } }
@keyframes ias-gesture   { 0% { transform:rotate(-25deg) translateX(0) } 50% { transform:rotate(10deg) translateX(4px) } 100% { transform:rotate(-15deg) translateX(-2px) } }
@keyframes ias-audience  { 0% { opacity:.5; transform:scaleY(1) } 50% { opacity:.7; transform:scaleY(1.05) } 100% { opacity:.4; transform:scaleY(.95) } }
@keyframes ias-spot      { 0% { opacity:.4; transform:scaleY(1) translateX(0) } 50% { opacity:.7; transform:scaleY(1.08) translateX(5px) } 100% { opacity:.5; transform:scaleY(.95) translateX(-3px) } }

/* ---- Scene: hamlet-no-faith ---- */
.scn-hamlet-no-faith {
  background:
    linear-gradient(180deg, #3a3a3e 0%, #222226 40%, #1a1a1c 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a2e 0%, transparent 70%);
}
.scn-hamlet-no-faith .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 100%);
  animation: hnf-sky 15s ease-in-out infinite alternate;
}
.scn-hamlet-no-faith .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-hamlet-no-faith .grave-mound {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: hnf-grave 6s ease-in-out infinite alternate;
}
.scn-hamlet-no-faith .headstone {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #6a6a6e 0%, #4a4a4e 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: hnf-stone 12s ease-in-out infinite alternate;
}
.scn-hamlet-no-faith .figure-hnf {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0c 100%);
  border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnf-figure 8s ease-in-out infinite;
}
.scn-hamlet-no-faith .cloud.hnf-cloud1 {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hnf-cloud1 45s linear infinite;
}
.scn-hamlet-no-faith .cloud.hnf-cloud2 {
  position: absolute; top: 20%; right: 5%; width: 80px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.02) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hnf-cloud2 60s linear infinite reverse;
}
@keyframes hnf-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes hnf-grave { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(0); } }
@keyframes hnf-stone { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-1px); } 100% { transform: scaleY(0.97); } }
@keyframes hnf-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg) translateY(-1px); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hnf-cloud1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes hnf-cloud2 { 0% { transform: translateX(50vw); } 100% { transform: translateX(-50vw); } }

/* ---- Scene: laertes-ceremony ---- */
.scn-laertes-ceremony {
  background:
    linear-gradient(180deg, #3e3e42 0%, #2a2a2e 50%, #1e1e22 100%),
    radial-gradient(ellipse at 30% 50%, #4a4a4e 0%, transparent 60%);
}
.scn-laertes-ceremony .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4e4e52 0%, #2e2e32 100%);
  animation: lc-sky 12s ease-in-out infinite alternate;
}
.scn-laertes-ceremony .ground-lc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.5);
}
.scn-laertes-ceremony .grave-hole {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 20px;
  background: #0e0e0e;
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.7);
  animation: lc-hole 4s ease-in-out infinite alternate;
}
.scn-laertes-ceremony .priest-lc {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #2a2a2e 0%, #0e0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-priest 3s ease-in-out infinite;
}
.scn-laertes-ceremony .laertes-lc {
  position: absolute; bottom: 22%; left: 32%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #3a3a3e 0%, #1a1a1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-laertes 2.5s ease-in-out infinite;
}
.scn-laertes-ceremony .flame-lc {
  position: absolute; bottom: 32%; left: 46%; width: 6px; height: 12px;
  background: radial-gradient(ellipse, #c08040 0%, #a06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 14px 4px #a06020, 0 0 30px 8px rgba(160,96,32,.4);
  animation: lc-flame 0.8s ease-in-out infinite alternate;
}
.scn-laertes-ceremony .cross-lc {
  position: absolute; bottom: 37%; left: 48%; width: 4px; height: 30px;
  background: #4e4e52;
  border-radius: 1px;
  box-shadow: 0 -8px 0 #4e4e52;
  animation: lc-cross 5s ease-in-out infinite;
}
@keyframes lc-sky { 0% { opacity: .6; } 50% { opacity: .85; } 100% { opacity: .7; } }
@keyframes lc-hole { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.1); opacity: .9; } 100% { transform: scaleY(0.9); opacity: .7; } }
@keyframes lc-priest { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lc-laertes { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 30% { transform: translateY(-3px) rotate(-3deg) scaleX(0.95); } 60% { transform: translateY(0) rotate(2deg) scaleX(1.02); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes lc-flame { 0% { transform: scaleY(0.8) translateY(0); opacity: .7; } 50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: .8; } }
@keyframes lc-cross { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }

/* ---- Scene: priest-obsequies ---- */
.scn-priest-obsequies {
  background:
    linear-gradient(180deg, #4a4a4e 0%, #3a3a3e 60%, #2a2a2e 100%),
    radial-gradient(ellipse at 70% 20%, #5a5a5e 0%, transparent 80%);
}
.scn-priest-obsequies .sky-overcast {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a5a5e 0%, #3e3e42 100%);
  animation: po-sky 18s ease-in-out infinite alternate;
}
.scn-priest-obsequies .ground-po {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
}
.scn-priest-obsequies .grave-po {
  position: absolute; bottom: 20%; left: 35%; width: 130px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: po-grave 10s ease-in-out infinite alternate;
}
.scn-priest-obsequies .flowers-po {
  position: absolute; bottom: 26%; width: 12px; height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #b88878 0%, #886868 100%);
  box-shadow: 0 0 6px 2px rgba(136,104,104,.3);
  animation: po-flower 8s ease-in-out infinite alternate;
}
.scn-priest-obsequies .flower1 {
  left: 40%;
  animation-delay: 0s;
}
.scn-priest-obsequies .flower2 {
  left: 55%;
  animation-delay: 4s;
}
.scn-priest-obsequies .priest-po {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 75px;
  background: linear-gradient(180deg, #2e2e32 0%, #0e0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-priest 14s ease-in-out infinite;
}
.scn-priest-obsequies .cloud-po {
  position: absolute; top: 10%; width: 90px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(7px);
  animation: po-cloud 50s linear infinite;
}
.scn-priest-obsequies .cloud-po1 { left: 5%; animation-delay: 0s; }
.scn-priest-obsequies .cloud-po2 { left: 50%; animation-delay: 25s; }
@keyframes po-sky { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes po-grave { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.01) translateY(-1px); } 100% { transform: scale(0.99) translateY(0); } }
@keyframes po-flower { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(0.9); } }
@keyframes po-priest { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes po-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* ---- Scene: laertes-no-more ---- */
.scn-laertes-no-more {
  background:
    linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 40%, #1e1e22 100%),
    radial-gradient(ellipse at 40% 60%, #3e3e42 0%, transparent 70%);
}
.scn-laertes-no-more .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 100%);
  animation: lnm-sky 10s ease-in-out infinite alternate;
}
.scn-laertes-no-more .ground-lnm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 6px 14px rgba(0,0,0,.5);
}
.scn-laertes-no-more .grave-lnm {
  position: absolute; bottom: 22%; left: 35%; width: 100px; height: 45px;
  background: linear-gradient(180deg, #3e2e1e 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: lnm-grave 5s ease-in-out infinite alternate;
}
.scn-laertes-no-more .violets {
  position: absolute; bottom: 28%; width: 10px; height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #806878 0%, #58404e 100%);
  box-shadow: 0 0 6px 2px rgba(88,64,78,.3);
  animation: lnm-violet 3s ease-in-out infinite alternate;
}
.scn-laertes-no-more .violets1 { left: 42%; animation-delay: 0s; }
.scn-laertes-no-more .violets2 { left: 52%; animation-delay: 1.5s; }
.scn-laertes-no-more .laertes-lnm {
  position: absolute; bottom: 20%; left: 28%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #2e2e32 0%, #0e0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: lnm-laertes 2s ease-in-out infinite;
}
.scn-laertes-no-more .priest-lnm {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 72px;
  background: linear-gradient(180deg, #2a2a2e 0%, #0a0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lnm-priest 3s ease-in-out infinite;
}
.scn-laertes-no-more .cloud.lnm-cloud {
  position: absolute; top: 15%; left: 20%; width: 110px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.02) 100%);
  border-radius: 50%;
  filter: blur(9px);
  animation: lnm-cloud 30s linear infinite;
}
@keyframes lnm-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes lnm-grave { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-2px); } 100% { transform: scale(0.97) translateY(0); } }
@keyframes lnm-violet { 0% { transform: rotate(0deg) scale(1); opacity: .8; } 50% { transform: rotate(15deg) scale(1.2); opacity: 1; } 100% { transform: rotate(-15deg) scale(0.8); opacity: .7; } }
@keyframes lnm-laertes { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 30% { transform: translateY(-4px) rotate(-8deg) scaleX(0.9); } 60% { transform: translateY(2px) rotate(4deg) scaleX(1.05); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes lnm-priest { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lnm-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* scene: ophelia-hamlet-warning (ohw) */
.scn-ophelia-hamlet-warning {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 30% 60%, #6a3a1a 0%, transparent 60%);
}
.scn-ophelia-hamlet-warning .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a0a 100%);
}
.scn-ophelia-hamlet-warning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-ophelia-hamlet-warning .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px #2a4a5a;
  animation: ohw-window 8s ease-in-out infinite alternate;
}
.scn-ophelia-hamlet-warning .moon-beam {
  position: absolute; top: 8%; left: 12%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(200,200,220,.2) 0%, rgba(200,200,220,.05) 100%);
  transform: rotate(15deg); filter: blur(8px);
  animation: ohw-beam 12s ease-in-out infinite alternate;
}
.scn-ophelia-hamlet-warning .figure-laertes {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: ohw-breathe 4s ease-in-out infinite;
}
.scn-ophelia-hamlet-warning .figure-ophelia {
  position: absolute; bottom: 28%; right: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 50% 50%;
  transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: ohw-breathe 4s ease-in-out infinite reverse;
}
.scn-ophelia-hamlet-warning .candle {
  position: absolute; bottom: 32%; left: 50%; width: 12px; height: 30px;
  margin-left: -6px;
  background: linear-gradient(180deg, #e0b080 0%, #8a6030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.3);
  animation: ohw-candle 2s ease-in-out infinite alternate;
}
@keyframes ohw-window {
  0% { opacity: .7; box-shadow: inset 0 0 10px #2a4a5a; }
  50% { opacity: .9; box-shadow: inset 0 0 30px #4a6a7a; }
  100% { opacity: .75; box-shadow: inset 0 0 15px #3a5a6a; }
}
@keyframes ohw-beam {
  0% { transform: rotate(12deg) translateX(-2px); opacity: .15; }
  50% { transform: rotate(18deg) translateX(1px); opacity: .25; }
  100% { transform: rotate(13deg) translateX(0); opacity: .18; }
}
@keyframes ohw-breathe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes ohw-candle {
  0% { box-shadow: 0 0 15px 6px #c08040; transform: scaleY(1); }
  30% { box-shadow: 0 0 25px 10px #d09050; transform: scaleY(1.05) scaleX(0.95); }
  60% { box-shadow: 0 0 18px 7px #b07030; transform: scaleY(0.98) scaleX(1.02); }
  100% { box-shadow: 0 0 22px 8px #c08040; transform: scaleY(1) scaleX(1); }
}

/* scene: polonius-parental-lecture (ppl) */
.scn-polonius-parental-lecture {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%),
    radial-gradient(ellipse at 70% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-polonius-parental-lecture .bg-study {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
}
.scn-polonius-parental-lecture .desk {
  position: absolute; bottom: 12%; left: 40%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-polonius-parental-lecture .chair {
  position: absolute; bottom: 18%; left: 42%; width: 20%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 12px rgba(0,0,0,.4);
}
.scn-polonius-parental-lecture .figure-polonius {
  position: absolute; bottom: 22%; left: 45%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ppl-sit 6s ease-in-out infinite;
}
.scn-polonius-parental-lecture .lamp {
  position: absolute; bottom: 40%; right: 25%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #a08040 0%, #604020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 30px 15px #b09050, 0 0 60px 30px rgba(176,144,80,.2);
  animation: ppl-lamp 5s ease-in-out infinite alternate;
}
.scn-polonius-parental-lecture .book-stack {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 30px;
  background: linear-gradient(90deg, #8a6040 0%, #6a4020 30%, #4a301a 60%, #6a4020 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-3deg);
}
.scn-polonius-parental-lecture .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,240,200,.3); border-radius: 50%;
  filter: blur(1px);
  animation: ppl-drift 25s linear infinite;
}
@keyframes ppl-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.3deg); }
  100% { transform: translateY(0) rotate(-0.3deg); }
}
@keyframes ppl-lamp {
  0% { box-shadow: 0 0 25px 12px #b09050, 0 0 50px 25px rgba(176,144,80,.15); opacity: .9; }
  50% { box-shadow: 0 0 35px 18px #c0a060, 0 0 70px 35px rgba(192,160,96,.25); opacity: 1; }
  100% { box-shadow: 0 0 28px 14px #b09050, 0 0 55px 28px rgba(176,144,80,.18); opacity: .93; }
}
@keyframes ppl-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  25% { transform: translate(20px, -10px) scale(1.2); opacity: 0.6; }
  50% { transform: translate(40px, 5px) scale(0.8); opacity: 0.3; }
  75% { transform: translate(60px, -15px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(80px, 0) scale(1); opacity: 0.4; }
}

/* scene: polonius-quiz-ophelia (pqo) */
.scn-polonius-quiz-ophelia {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 70%);
}
.scn-polonius-quiz-ophelia .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%);
}
.scn-polonius-quiz-ophelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.7);
}
.scn-polonius-quiz-ophelia .figure-polonius {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pqo-lean 3s ease-in-out infinite;
}
.scn-polonius-quiz-ophelia .figure-ophelia {
  position: absolute; bottom: 22%; right: 30%; width: 35px; height: 95px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 50% 50%;
  transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pqo-tremble 2s ease-in-out infinite;
}
.scn-polonius-quiz-ophelia .candle {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 25px;
  margin-left: -5px;
  background: linear-gradient(180deg, #d0a060 0%, #7a5020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 6px #b08040, 0 0 40px 14px rgba(176,128,64,.3);
  animation: pqo-flicker 1.5s ease-in-out infinite alternate;
}
.scn-polonius-quiz-ophelia .shadow {
  position: absolute; bottom: 16%; left: 28%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  transform: skewX(-10deg); filter: blur(4px);
  animation: pqo-shadow 4s ease-in-out infinite alternate;
}
.scn-polonius-quiz-ophelia .crease {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #2a1a0a 50%, transparent 100%);
  filter: blur(1px);
}
@keyframes pqo-lean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes pqo-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(1px) rotate(1deg); }
  40% { transform: translateX(-1px) rotate(-0.5deg); }
  60% { transform: translateX(2px) rotate(1.5deg); }
  80% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pqo-flicker {
  0% { box-shadow: 0 0 14px 5px #b08040; transform: scaleY(1) scaleX(1); }
  30% { box-shadow: 0 0 22px 9px #c09050; transform: scaleY(1.08) scaleX(0.92); }
  60% { box-shadow: 0 0 16px 6px #a07030; transform: scaleY(0.95) scaleX(1.05); }
  100% { box-shadow: 0 0 20px 7px #b08040; transform: scaleY(1) scaleX(1); }
}
@keyframes pqo-shadow {
  0% { opacity: .3; transform: skewX(-10deg) scaleX(1); }
  50% { opacity: .5; transform: skewX(-12deg) scaleX(1.1); }
  100% { opacity: .35; transform: skewX(-8deg) scaleX(0.95); }
}

/* scene: platform-hamlet-horatio (phh) */
.scn-platform-hamlet-horatio {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 70%);
}
.scn-platform-hamlet-horatio .bg-night {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-platform-hamlet-horatio .stars {
  position: absolute; top: 5%; left: 10%; width: 4px; height: 4px;
  background: rgba(200,200,220,.6); border-radius: 50%;
  box-shadow: 60px 20px 0 1px rgba(200,200,220,.4), 120px 80px 0 2px rgba(200,200,220,.5), 200px 40px 0 1px rgba(200,200,220,.3), 280px 120px 0 1px rgba(200,200,220,.6);
  animation: phh-twinkle 8s ease-in-out infinite alternate;
}
.scn-platform-hamlet-horatio .moon {
  position: absolute; top: 8%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8d0e0 0%, #a0a8b8 100%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 40px 20px #a0a8b8, 0 0 80px 40px rgba(160,168,184,.15);
  animation: phh-moon 20s ease-in-out infinite alternate;
}
.scn-platform-hamlet-horatio .battlement {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0% 100%, 0% 30%, 5% 30%, 5% 0%, 10% 0%, 10% 30%, 15% 30%, 15% 0%, 20% 0%, 20% 30%, 25% 30%, 25% 0%, 30% 0%, 30% 30%, 35% 30%, 35% 0%, 40% 0%, 40% 30%, 45% 30%, 45% 0%, 50% 0%, 50% 30%, 55% 30%, 55% 0%, 60% 0%, 60% 30%, 65% 30%, 65% 0%, 70% 0%, 70% 30%, 75% 30%, 75% 0%, 80% 0%, 80% 30%, 85% 30%, 85% 0%, 90% 0%, 90% 30%, 95% 30%, 95% 0%, 100% 0%, 100% 30%, 100% 100%);
}
.scn-platform-hamlet-horatio .figure-hamlet {
  position: absolute; bottom: 22%; left: 35%; width: 45px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: phh-chill 5s ease-in-out infinite;
}
.scn-platform-hamlet-horatio .figure-horatio {
  position: absolute; bottom: 22%; right: 35%; width: 40px; height: 115px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: phh-chill 5s ease-in-out infinite reverse;
}
.scn-platform-hamlet-horatio .breath-mist {
  position: absolute; top: 32%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,210,220,.2) 0%, transparent 60%);
  filter: blur(6px); border-radius: 50%;
  animation: phh-mist 10s ease-in-out infinite alternate;
}
@keyframes phh-twinkle {
  0% { opacity: .3; }
  50% { opacity: .7; }
  100% { opacity: .4; }
}
@keyframes phh-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 20px #a0a8b8; }
  50% { transform: translateY(-3px) scale(1.02); box-shadow: 0 0 50px 25px #a0a8b8; }
  100% { transform: translateY(1px) scale(0.98); box-shadow: 0 0 35px 18px #a0a8b8; }
}
@keyframes phh-chill {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.3deg); }
}
@keyframes phh-mist {
  0% { transform: translateX(0) scaleX(1); opacity: .3; }
  50% { transform: translateX(4px) scaleX(1.2); opacity: .5; }
  100% { transform: translateX(-2px) scaleX(0.9); opacity: .35; }
}

/* scene 1: queen-how-ophelia - interior cutaway with two figures */
.scn-queen-how-ophelia {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #8a6b4a 100%),
    radial-gradient(ellipse at 30% 50%, #fff4e0 0%, transparent 60%);
}
.scn-queen-how-ophelia .bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #dab896 0%, #c8a57a 100%);
  animation: qho-bg 10s ease-in-out infinite alternate;
}
.scn-queen-how-ophelia .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-queen-how-ophelia .window {
  position: absolute;
  top: 10%; left: 30%; width: 25%; height: 40%;
  background: #fff8ec;
  border: 4px solid #6a4a3a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(255,248,236,0.8);
  animation: qho-window 5s ease-in-out infinite;
}
.scn-queen-how-ophelia .light {
  position: absolute;
  top: 15%; left: 30%; width: 25%; height: 70%;
  background: linear-gradient(180deg, rgba(255,248,220,0.5), transparent);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: qho-light 4s ease-in-out infinite alternate;
}
.scn-queen-how-ophelia .ophelia {
  position: absolute;
  bottom: 22%; left: 20%; width: 12%; height: 30%;
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #4a3a2a 20%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qho-sway 3s ease-in-out infinite;
}
.scn-queen-how-ophelia .queen {
  position: absolute;
  bottom: 22%; left: 55%; width: 14%; height: 35%;
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #5a4a3a 20%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qho-sway2 4s ease-in-out infinite;
}
.scn-queen-how-ophelia .shadow {
  position: absolute;
  bottom: 0; left: 20%; width: 12%; height: 12%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: qho-shadow 3s ease-in-out infinite;
}
.scn-queen-how-ophelia .curtain {
  position: absolute;
  top: 0; width: 10%; height: 100%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 0 10px 10px 0;
}
.scn-queen-how-ophelia .curtain.left {
  left: 0;
  animation: qho-curtain-left 8s ease-in-out infinite alternate;
}
.scn-queen-how-ophelia .curtain.right {
  right: 0;
  animation: qho-curtain-right 8s ease-in-out infinite alternate;
}
@keyframes qho-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes qho-window { 0% { box-shadow: 0 0 20px rgba(255,248,236,0.5) } 50% { box-shadow: 0 0 40px rgba(255,248,236,0.9) } 100% { box-shadow: 0 0 20px rgba(255,248,236,0.5) } }
@keyframes qho-light { 0% { opacity:0.4; transform: skewX(-2deg) } 50% { opacity:0.7; transform: skewX(0deg) } 100% { opacity:0.4; transform: skewX(2deg) } }
@keyframes qho-sway { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes qho-sway2 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes qho-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) translateX(2px) } 100% { transform: scale(1) } }
@keyframes qho-curtain-left { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes qho-curtain-right { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* scene 2: queen-nay-ophelia - wide room with arch and three figures */
.scn-queen-nay-ophelia {
  background:
    linear-gradient(180deg, #e8d4bc 0%, #c8a88a 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 50%);
}
.scn-queen-nay-ophelia .bg-wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(90deg, #c8a88a 0%, #b08868 40%, #c8a88a 100%);
  animation: qno-wall 12s ease-in-out infinite alternate;
}
.scn-queen-nay-ophelia .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
}
.scn-queen-nay-ophelia .arch {
  position: absolute;
  top: 5%; left: 35%; width: 30%; height: 60%;
  background: transparent;
  border: 6px solid #8a6a4a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-sizing: border-box;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: qno-arch 6s ease-in-out infinite;
}
.scn-queen-nay-ophelia .ophelia {
  position: absolute;
  bottom: 28%; left: 15%; width: 10%; height: 25%;
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #4a3a2a 20%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qno-sway 3s ease-in-out infinite;
}
.scn-queen-nay-ophelia .queen {
  position: absolute;
  bottom: 28%; left: 45%; width: 12%; height: 28%;
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #5a4a3a 20%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qno-sway2 4s ease-in-out infinite;
}
.scn-queen-nay-ophelia .king {
  position: absolute;
  bottom: 28%; left: 70%; width: 13%; height: 32%;
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #6a3a2a 20%, #3a1a0a 100%); /* rust, not crimson */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qno-enter 5s ease-in-out infinite;
}
.scn-queen-nay-ophelia .shadow-left {
  position: absolute;
  bottom: 0; left: 15%; width: 10%; height: 8%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: qno-shade 3s ease-in-out infinite;
}
.scn-queen-nay-ophelia .shadow-right {
  position: absolute;
  bottom: 0; left: 70%; width: 13%; height: 10%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: qno-shade2 4s ease-in-out infinite alternate;
}
.scn-queen-nay-ophelia .torch {
  position: absolute;
  bottom: 60%; left: 50%; width: 4%; height: 10%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, #ffd080 20%, transparent 70%);
  border-radius: 50%;
  animation: qno-torch 2s ease-in-out infinite alternate;
}
@keyframes qno-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes qno-arch { 0% { transform: scaleY(0.98) } 50% { transform: scaleY(1) } 100% { transform: scaleY(0.98) } }
@keyframes qno-sway { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes qno-sway2 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes qno-enter { 0% { transform: translateX(0) } 30% { transform: translateX(-10px) } 60% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes qno-shade { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }
@keyframes qno-shade2 { 0% { transform: scale(1) translateX(0) } 100% { transform: scale(1.3) translateX(8px) } }
@keyframes qno-torch { 0% { opacity:0.6; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

/* scene 3: king-conceit - close-up of Ophelia figure with window */
.scn-king-conceit {
  background:
    linear-gradient(180deg, #d4c0a8 0%, #b09878 50%, #705040 100%),
    radial-gradient(ellipse at 30% 20%, #fff0d0 0%, transparent 60%);
}
.scn-king-conceit .bg-window {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b098 0%, #a08060 100%);
  animation: kco-bg 8s ease-in-out infinite alternate;
}
.scn-king-conceit .window-frame {
  position: absolute;
  top: 5%; left: 20%; width: 60%; height: 50%;
  border: 8px solid #6a4a3a;
  border-radius: 6px;
  background: #fff8ec;
  box-shadow: 0 0 40px rgba(255,248,236,0.6), inset 0 0 30px rgba(0,0,0,0.2);
  animation: kco-frame 6s ease-in-out infinite;
}
.scn-king-conceit .light-beam {
  position: absolute;
  top: 5%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,220,0.4) 30%, transparent);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: kco-beam 5s ease-in-out infinite alternate;
}
.scn-king-conceit .figure {
  position: absolute;
  bottom: 10%; left: 50%; width: 40%; height: 55%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #3a2a1a 20%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kco-figure 4s ease-in-out infinite;
}
.scn-king-conceit .dress {
  position: absolute;
  bottom: 10%; left: 50%; width: 45%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: kco-dress 4s ease-in-out infinite;
}
.scn-king-conceit .staff {
  position: absolute;
  bottom: 35%; left: 38%; width: 3%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: kco-staff 3s ease-in-out infinite alternate;
}
.scn-king-conceit .halo {
  position: absolute;
  top: 12%; left: 50%; width: 8%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(255,208,128,0.5);
  animation: kco-halo 4s ease-in-out infinite alternate;
}
@keyframes kco-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes kco-frame { 0% { transform: scale(0.98) } 50% { transform: scale(1) } 100% { transform: scale(0.98) } }
@keyframes kco-beam { 0% { opacity:0.3; transform: skewX(-3deg) } 50% { opacity:0.6; transform: skewX(0deg) } 100% { opacity:0.3; transform: skewX(3deg) } }
@keyframes kco-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes kco-dress { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes kco-staff { 0% { transform: rotate(8deg) } 100% { transform: rotate(12deg) } }
@keyframes kco-halo { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }

/* scene 4: king-pretty-ophelia - vertical shaft, maid at window with falling petals */
.scn-king-pretty-ophelia {
  background:
    linear-gradient(180deg, #b09878 0%, #8a6a4a 40%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #e8d4b8 0%, transparent 60%);
}
.scn-king-pretty-ophelia .bg-tower {
  position: absolute;
  inset: 0 0 15% 0;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  animation: kpo-bg 10s ease-in-out infinite alternate;
}
.scn-king-pretty-ophelia .window-slit {
  position: absolute;
  top: 5%; left: 45%; width: 10%; height: 55%;
  background: #fff8ec;
  border: 4px solid #4a2a1a;
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(255,248,236,0.7);
  animation: kpo-slit 6s ease-in-out infinite;
}
.scn-king-pretty-ophelia .maid {
  position: absolute;
  bottom: 20%; left: 50%; width: 16%; height: 28%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #3a2a1a 20%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kpo-maid 3s ease-in-out infinite;
}
.scn-king-pretty-ophelia .shadow {
  position: absolute;
  bottom: 0; left: 40%; width: 20%; height: 12%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: kpo-shadow 4s ease-in-out infinite alternate;
}
.scn-king-pretty-ophelia .petal {
  position: absolute;
  width: 4%; height: 4%;
  background: radial-gradient(circle, #c8553d 20%, #a0461a 60%, transparent 80%);
  border-radius: 50% 0 50% 0;
  transform: rotate(45deg);
  filter: blur(1px);
}
.scn-king-pretty-ophelia .petal1 {
  top: 10%; left: 30%;
  animation: kpo-petal1 8s linear infinite;
}
.scn-king-pretty-ophelia .petal2 {
  top: 20%; left: 60%;
  animation: kpo-petal2 10s linear infinite;
  animation-delay: -4s;
}
.scn-king-pretty-ophelia .petal3 {
  top: 35%; left: 45%;
  animation: kpo-petal3 12s linear infinite;
  animation-delay: -2s;
}
@keyframes kpo-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kpo-slit { 0% { transform: scaleX(0.98) } 50% { transform: scaleX(1) } 100% { transform: scaleX(0.98) } }
@keyframes kpo-maid { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes kpo-shadow { 0% { transform: scale(1) } 100% { transform: scale(1.2) } }
@keyframes kpo-petal1 { 0% { transform: translateY(-10vh) rotate(45deg); opacity:1 } 100% { transform: translateY(100vh) rotate(180deg); opacity:0.3 } }
@keyframes kpo-petal2 { 0% { transform: translateY(-10vh) rotate(90deg); opacity:1 } 100% { transform: translateY(100vh) rotate(270deg); opacity:0.3 } }
@keyframes kpo-petal3 { 0% { transform: translateY(-10vh) rotate(0deg); opacity:1 } 100% { transform: translateY(100vh) rotate(360deg); opacity:0.3 } }

.scn-platform-night-watch {
  background: linear-gradient(180deg, #0d0d2b 0%, #0a0a1a 50%, #1a1a3a 100%),
              radial-gradient(ellipse at 50% 0%, #1a1a4a 0%, transparent 80%);
}
.scn-platform-night-watch .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, transparent 100%);
  animation: pnw-sky 6s ease-in-out infinite alternate;
}
.scn-platform-night-watch .star-1,
.scn-platform-night-watch .star-2,
.scn-platform-night-watch .star-3 {
  position: absolute; width: 3px; height: 3px; background: #d0d0ff; border-radius: 50%;
  box-shadow: 0 0 4px #d0d0ff; animation: pnw-star 3s ease-in-out infinite alternate;
}
.scn-platform-night-watch .star-1 { top: 10%; left: 20%; animation-delay: 0s; }
.scn-platform-night-watch .star-2 { top: 15%; left: 60%; animation-delay: -1s; }
.scn-platform-night-watch .star-3 { top: 8%; left: 80%; animation-delay: -2s; }
.scn-platform-night-watch .castle-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(90deg, #1a1a3a 0%, #2a2a4a 50%, #1a1a3a 100%);
  border-radius: 5px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: pnw-wall 8s ease-in-out infinite alternate;
}
.scn-platform-night-watch .figure-francisco,
.scn-platform-night-watch .figure-bernardo {
  position: absolute; bottom: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: pnw-fig 4s ease-in-out infinite alternate;
}
.scn-platform-night-watch .figure-francisco { left: 30%; }
.scn-platform-night-watch .figure-bernardo { left: 55%; animation-delay: -2s; }
.scn-platform-night-watch .lantern {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 6px;
  background: #d4a373; border-radius: 50%;
  box-shadow: 0 0 12px 4px #d4a373;
  animation: pnw-lantern 2s ease-in-out infinite alternate;
}
@keyframes pnw-sky { 0%{opacity:.5;transform:scaleY(1)} 50%{opacity:.8;transform:scaleY(1.02)} 100%{opacity:.6;transform:scaleY(1)} }
@keyframes pnw-star { 0%{opacity:.5;transform:scale(.8)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:.7;transform:scale(.9)} }
@keyframes pnw-wall { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes pnw-fig { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-4px) rotate(1deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes pnw-lantern { 0%{opacity:.6;box-shadow:0 0 8px 2px #d4a373} 50%{opacity:1;box-shadow:0 0 20px 8px #d4a373} 100%{opacity:.8;box-shadow:0 0 12px 4px #d4a373} }

.scn-ghost-first-appearance {
  background: linear-gradient(180deg, #14143a 0%, #0e0e2a 40%, #1a1a4a 100%),
              radial-gradient(ellipse at 30% 40%, #2a2a5a 0%, transparent 70%);
}
.scn-ghost-first-appearance .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e0e2a 0%, transparent 100%);
  animation: gfa-sky 10s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .star-1,
.scn-ghost-first-appearance .star-2,
.scn-ghost-first-appearance .star-3 {
  position: absolute; width: 3px; height: 3px; background: #c0c0ff; border-radius: 50%;
  box-shadow: 0 0 5px #c0c0ff; animation: gfa-star 2s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .star-1 { top: 12%; left: 30%; animation-delay: 0s; }
.scn-ghost-first-appearance .star-2 { top: 8%; left: 65%; animation-delay: -0.7s; }
.scn-ghost-first-appearance .star-3 { top: 18%; left: 10%; animation-delay: -1.3s; }
.scn-ghost-first-appearance .ghost {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,255,0.6) 0%, rgba(150,150,255,0.2) 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px);
  animation: gfa-ghost 5s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: gfa-ground 12s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, rgba(180,180,255,0.1), rgba(180,180,255,0.3), rgba(180,180,255,0.1));
  filter: blur(8px); animation: gfa-mist 15s linear infinite alternate;
}
@keyframes gfa-sky { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.7} }
@keyframes gfa-star { 0%{opacity:.4;transform:scale(.8)} 50%{opacity:1;transform:scale(1.3)} 100%{opacity:.6;transform:scale(.9)} }
@keyframes gfa-ghost { 0%{transform:translateY(0);opacity:.7} 50%{transform:translateY(-8px);opacity:1} 100%{transform:translateY(0);opacity:.8} }
@keyframes gfa-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes gfa-mist { 0%{transform:translateX(-20px)} 50%{transform:translateX(20px)} 100%{transform:translateX(-20px)} }

.scn-watch-discussion-preparations {
  background: linear-gradient(180deg, #12123a 0%, #0e0e2a 50%, #1a1a4a 100%),
              radial-gradient(ellipse at 80% 20%, #2a2a5a 0%, transparent 70%);
}
.scn-watch-discussion-preparations .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0e0e2a 0%, transparent 100%);
  animation: wdp-sky 8s ease-in-out infinite alternate;
}
.scn-watch-discussion-preparations .star-1,
.scn-watch-discussion-preparations .star-2,
.scn-watch-discussion-preparations .star-3 {
  position: absolute; width: 3px; height: 3px; background: #d0d0ff; border-radius: 50%;
  box-shadow: 0 0 4px #d0d0ff; animation: wdp-star 3s ease-in-out infinite alternate;
}
.scn-watch-discussion-preparations .star-1 { top: 10%; left: 15%; animation-delay: 0s; }
.scn-watch-discussion-preparations .star-2 { top: 20%; left: 70%; animation-delay: -1s; }
.scn-watch-discussion-preparations .star-3 { top: 12%; left: 85%; animation-delay: -2s; }
.scn-watch-discussion-preparations .hill {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0; animation: wdp-hill 18s ease-in-out infinite alternate;
}
.scn-watch-discussion-preparations .figure-sitting {
  position: absolute; bottom: 28%; left: 30%; width: 18px; height: 25px;
  background: #1a1a2a; border-radius: 50% 50% 30% 30%;
  animation: wdp-sit 6s ease-in-out infinite alternate;
}
.scn-watch-discussion-preparations .figure-standing {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 40px;
  background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wdp-stand 8s ease-in-out infinite alternate;
}
.scn-watch-discussion-preparations .rock {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 30% 30% 20% 20%; animation: wdp-rock 10s ease-in-out infinite alternate;
}
@keyframes wdp-sky { 0%{opacity:.5;transform:scaleY(1)} 50%{opacity:.8;transform:scaleY(1.01)} 100%{opacity:.6;transform:scaleY(1)} }
@keyframes wdp-star { 0%{opacity:.3;transform:scale(.7)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:.6;transform:scale(.9)} }
@keyframes wdp-hill { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes wdp-sit { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(3deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes wdp-stand { 0%{transform:translateY(0)} 50%{transform:translateY(-5px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes wdp-rock { 0%{transform:translateX(0)} 50%{transform:translateX(3px)} 100%{transform:translateX(0)} }

.scn-fortinbras-threat-explained {
  background: linear-gradient(180deg, #0f0f2f 0%, #0a0a1a 50%, #12123a 100%),
              radial-gradient(ellipse at 20% 60%, #1a1a4a 0%, transparent 70%);
}
.scn-fortinbras-threat-explained .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%);
  animation: ftb-sky 12s ease-in-out infinite alternate;
}
.scn-fortinbras-threat-explained .star-1,
.scn-fortinbras-threat-explained .star-2 {
  position: absolute; width: 3px; height: 3px; background: #d0d0ff; border-radius: 50%;
  box-shadow: 0 0 5px #d0d0ff; animation: ftb-star 4s ease-in-out infinite alternate;
}
.scn-fortinbras-threat-explained .star-1 { top: 15%; left: 25%; animation-delay: 0s; }
.scn-fortinbras-threat-explained .star-2 { top: 10%; left: 70%; animation-delay: -2s; }
.scn-fortinbras-threat-explained .horizon-line {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 2px;
  background: #2a2a4a; animation: ftb-horiz 15s ease-in-out infinite alternate;
}
.scn-fortinbras-threat-explained .soldiers {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 4px, transparent 4px, transparent 8px);
  animation: ftb-soldiers 10s ease-in-out infinite alternate;
}
.scn-fortinbras-threat-explained .speaker {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 50px;
  background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ftb-speak 6s ease-in-out infinite alternate;
}
.scn-fortinbras-threat-explained .flag-pole {
  position: absolute; bottom: 45%; left: 60%; width: 3px; height: 40px;
  background: #2a2a3a; animation: ftb-pole 8s ease-in-out infinite alternate;
}
.scn-fortinbras-threat-explained .flag-cloth {
  position: absolute; bottom: 60%; left: 60%; width: 20px; height: 12px;
  background: #5e2a1a; border-radius: 0 0 5px 0;
  box-shadow: 2px 0 4px rgba(0,0,0,.3);
  animation: ftb-cloth 3s ease-in-out infinite alternate;
}
@keyframes ftb-sky { 0%{opacity:.4;transform:scaleY(1)} 50%{opacity:.8;transform:scaleY(1.02)} 100%{opacity:.5;transform:scaleY(1)} }
@keyframes ftb-star { 0%{opacity:.4;transform:scale(.8)} 50%{opacity:1;transform:scale(1.3)} 100%{opacity:.6;transform:scale(.9)} }
@keyframes ftb-horiz { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes ftb-soldiers { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes ftb-speak { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-4px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes ftb-pole { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes ftb-cloth { 0%{transform:rotate(0)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-3deg)} }

.scn-hamlet-fight-until { background: linear-gradient(180deg, #2e3b4e 0%, #1e2a3a 50%, #111822 100%), radial-gradient(ellipse at 50% 30%, #4a5c6e 0%, transparent 60%); }
.scn-hamlet-fight-until .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #4a5c6e 0%, #2e3b4e 100%); animation: hfu-sky 12s ease-in-out infinite alternate; }
.scn-hamlet-fight-until .mound { position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: hfu-mound 18s ease-in-out infinite alternate; }
.scn-hamlet-fight-until .tomb { position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hfu-tomb 9s ease-in-out infinite; }
.scn-hamlet-fight-until .figure-left { position: absolute; bottom: 25%; left: 20%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hfu-figL 4s ease-in-out infinite; }
.scn-hamlet-fight-until .figure-right { position: absolute; bottom: 25%; right: 20%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hfu-figR 4s ease-in-out infinite; }
.scn-hamlet-fight-until .skull { position: absolute; bottom: 40%; left: 35%; width: 12px; height: 15px; background: radial-gradient(circle, #b0a090 0%, #706050 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(0,0,0,.3); animation: hfu-skull 7s ease-in-out infinite alternate; }
.scn-hamlet-fight-until .cloud { position: absolute; top: 15%; left: -10%; width: 100px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(8px); animation: hfu-cloud 40s linear infinite; }
@keyframes hfu-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes hfu-mound { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hfu-tomb { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes hfu-figL { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes hfu-figR { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes hfu-skull { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes hfu-cloud { 0% { transform: translateX(-100px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }

.scn-hamlet-show-me { background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3a 50%, #0a1a2a 100%), radial-gradient(ellipse at 50% 20%, #3a4a5e 0%, transparent 70%); }
.scn-hamlet-show-me .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #4a5a6e 0%, #2a3a4e 100%); animation: hsm-sky 15s ease-in-out infinite alternate; }
.scn-hamlet-show-me .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: hsm-ground 20s ease-in-out infinite alternate; }
.scn-hamlet-show-me .figure-body { position: absolute; bottom: 25%; 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%; transform-origin: bottom center; animation: hsm-body 6s ease-in-out infinite; }
.scn-hamlet-show-me .figure-arms { position: absolute; bottom: 45%; left: 50%; width: 40px; height: 8px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; transform-origin: center bottom; animation: hsm-arms 3s ease-in-out infinite alternate; }
.scn-hamlet-show-me .cross { position: absolute; bottom: 35%; left: 30%; width: 10px; height: 30px; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hsm-cross 8s ease-in-out infinite; }
.scn-hamlet-show-me .cloud { position: absolute; top: 15%; left: -20%; width: 120px; height: 18px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(10px); animation: hsm-cloud 45s linear infinite; }
.scn-hamlet-show-me .grave { position: absolute; bottom: 20%; left: 35%; width: 50px; height: 20px; background: radial-gradient(ellipse, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); animation: hsm-grave 10s ease-in-out infinite alternate; }
@keyframes hsm-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes hsm-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hsm-body { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hsm-arms { 0% { transform: translateX(-50%) rotate(-30deg); } 50% { transform: translateX(-50%) rotate(10deg); } 100% { transform: translateX(-50%) rotate(-20deg); } }
@keyframes hsm-cross { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes hsm-cloud { 0% { transform: translateX(-100px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }
@keyframes hsm-grave { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }

.scn-hamlet-hear-you { background: linear-gradient(180deg, #2e3b4e 0%, #1e2a3a 50%, #111822 100%), radial-gradient(ellipse at 50% 30%, #4a5c6e 0%, transparent 60%); }
.scn-hamlet-hear-you .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #4a5c6e 0%, #2e3b4e 100%); animation: hhy-sky 12s ease-in-out infinite alternate; }
.scn-hamlet-hear-you .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: hhy-ground 15s ease-in-out infinite alternate; }
.scn-hamlet-hear-you .figure-left { position: absolute; bottom: 25%; left: 20%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hhy-figL 5s ease-in-out infinite; }
.scn-hamlet-hear-you .figure-right { position: absolute; bottom: 25%; right: 20%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hhy-figR 5s ease-in-out infinite; }
.scn-hamlet-hear-you .cat { position: absolute; bottom: 28%; left: 40%; width: 16px; height: 12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; animation: hhy-cat 4s ease-in-out infinite; }
.scn-hamlet-hear-you .dog { position: absolute; bottom: 28%; right: 40%; width: 20px; height: 14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: hhy-dog 4s ease-in-out infinite; }
.scn-hamlet-hear-you .tomb { position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hhy-tomb 7s ease-in-out infinite; }
@keyframes hhy-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes hhy-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hhy-figL { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(1px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hhy-figR { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-1px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hhy-cat { 0%,100% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(1px,-1px) rotate(5deg); } }
@keyframes hhy-dog { 0%,100% { transform: translate(0,0) rotate(5deg); } 50% { transform: translate(-1px,-1px) rotate(-5deg); } }
@keyframes hhy-tomb { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } }

.scn-king-strengthen-patience { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 0%, #8a6a4a 0%, transparent 60%); }
.scn-king-strengthen-patience .window { position: absolute; top: 10%; left: 10%; width: 100px; height: 150px; background: radial-gradient(ellipse, #ffe0b0 0%, #c0a070 70%); border-radius: 10% 10% 0 0; box-shadow: 0 0 40px 20px rgba(255,224,176,.5); animation: ksp-window 8s ease-in-out infinite alternate; }
.scn-king-strengthen-patience .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: ksp-floor 12s ease-in-out infinite alternate; }
.scn-king-strengthen-patience .throne { position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ksp-throne 10s ease-in-out infinite; }
.scn-king-strengthen-patience .figure-king { position: absolute; bottom: 25%; left: 45%; width: 25px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksp-king 5s ease-in-out infinite; }
.scn-king-strengthen-patience .figure-laertes { position: absolute; bottom: 25%; right: 20%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksp-laertes 5s ease-in-out infinite; }
.scn-king-strengthen-patience .crown { position: absolute; top: 10%; left: 50%; width: 30px; height: 15px; transform: translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); clip-path: polygon(0% 100%, 20% 0%, 50% 30%, 80% 0%, 100% 100%); animation: ksp-crown 6s ease-in-out infinite; }
.scn-king-strengthen-patience .scepter { position: absolute; bottom: 30%; left: 35%; width: 4px; height: 60px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20%; box-shadow: 0 0 8px 2px rgba(200,160,96,.5); animation: ksp-scepter 7s ease-in-out infinite alternate; }
.scn-king-strengthen-patience .tapestry { position: absolute; top: 15%; right: 10%; width: 80px; height: 100px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: ksp-tapestry 15s ease-in-out infinite alternate; }
@keyframes ksp-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ksp-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ksp-throne { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes ksp-king { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-52%) rotate(0); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ksp-laertes { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ksp-crown { 0%,100% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } }
@keyframes ksp-scepter { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(0.9); } }
@keyframes ksp-tapestry { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.6; } }

.scn-hamlet-advises-players {
  background: 
    linear-gradient(180deg, #e8c88a 0%, #d4a86a 30%, #8a5a32 100%),
    radial-gradient(ellipse at 50% 30%, #fce4b8 0%, transparent 60%);
}
.scn-hamlet-advises-players .backdrop {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c4995a 0%, #9e7538 60%, #7a5a2e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: hap-backdrop 20s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-hamlet-advises-players .curtain-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 18%;
  height: 75%;
  background: linear-gradient(90deg, #702243 0%, #8a3055 30%, rgba(112,34,67,0) 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.4);
  animation: hap-curtain-sway 8s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .curtain-right {
  position: absolute;
  top: 0;
  right: 0;
  width: 18%;
  height: 75%;
  background: linear-gradient(270deg, #702243 0%, #8a3055 30%, rgba(112,34,67,0) 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.4);
  animation: hap-curtain-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-advises-players .hamlet {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 28px;
  height: 52px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: hap-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-advises-players .hamlet::before {
  content: '';
  position: absolute;
  top: 20%;
  left: 100%;
  width: 20px;
  height: 8px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: left center;
  animation: hap-arm 4s ease-in-out infinite;
}
.scn-hamlet-advises-players .player-1 {
  position: absolute;
  bottom: 20%;
  right: 28%;
  width: 24px;
  height: 46px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: hap-player-idle 6s ease-in-out infinite;
}
.scn-hamlet-advises-players .player-2 {
  position: absolute;
  bottom: 20%;
  right: 40%;
  width: 22px;
  height: 44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: hap-player-idle 6s ease-in-out infinite 2s;
}
.scn-hamlet-advises-players .candle-glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 12px;
  height: 24px;
  background: radial-gradient(circle, #fce4a0 0%, #d4a040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 32px 8px #fce4a0, 0 0 64px 16px rgba(252,228,160,0.3);
  animation: hap-candle 3s ease-in-out infinite alternate;
}
@keyframes hap-backdrop {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes hap-curtain-sway {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes hap-hamlet {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hap-arm {
  0% { transform: translateX(0) rotate(10deg); }
  25% { transform: translateX(6px) rotate(20deg); }
  50% { transform: translateX(0) rotate(-10deg); }
  75% { transform: translateX(-4px) rotate(-20deg); }
  100% { transform: translateX(0) rotate(10deg); }
}
@keyframes hap-player-idle {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hap-candle {
  0% { transform: scale(1); opacity: .8; box-shadow: 0 0 28px 6px #fce4a0, 0 0 56px 12px rgba(252,228,160,0.2); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 40px 12px #fce4a0, 0 0 80px 20px rgba(252,228,160,0.4); }
  100% { transform: scale(1); opacity: .85; box-shadow: 0 0 30px 8px #fce4a0, 0 0 60px 14px rgba(252,228,160,0.3); }
}

.scn-nunnery-scene {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #a08060 100%),
              radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-nunnery-scene .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  box-shadow: inset 0 -12px 30px rgba(0,0,0,0.15);
}
.scn-nunnery-scene .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08868 0%, #705848 100%);
  border-radius: 20% 80% 0 0 / 10% 60% 0 0;
}
.scn-nunnery-scene .window {
  position: absolute; top: 12%; left: 25%; width: 28%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e8d8b0 60%, transparent 100%);
  border: 4px solid #8a7050; border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,248,224,0.3);
  animation: ns-window 5s ease-in-out infinite alternate;
}
.scn-nunnery-scene .light-beam {
  position: absolute; top: 12%; left: 30%; width: 12%; height: 70%;
  background: linear-gradient(180deg, rgba(255,248,224,0.25) 0%, rgba(255,248,224,0.05) 100%);
  filter: blur(6px); transform: skewX(-3deg);
  animation: ns-beam 8s ease-in-out infinite;
}
.scn-nunnery-scene .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-sway-left 3s ease-in-out infinite;
}
.scn-nunnery-scene .figure-right {
  position: absolute; bottom: 28%; right: 18%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-sway-right 4s ease-in-out infinite;
}
.scn-nunnery-scene .table {
  position: absolute; bottom: 28%; left: 38%; width: 24%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ns-table 10s ease-in-out infinite;
}
.scn-nunnery-scene .candle-glow {
  position: absolute; bottom: 36%; left: 49%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #e8a040, 0 0 48px 16px rgba(232,160,64,0.4);
  animation: ns-flicker 2s ease-in-out infinite alternate;
}
@keyframes ns-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(255,248,224,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,248,224,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 35px rgba(255,248,224,0.25); }
}
@keyframes ns-beam {
  0% { transform: skewX(-3deg) translateX(0); opacity: 0.4; }
  50% { transform: skewX(-1deg) translateX(4px); opacity: 0.7; }
  100% { transform: skewX(-3deg) translateX(0); opacity: 0.5; }
}
@keyframes ns-sway-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes ns-sway-right {
  0% { transform: translateX(0) translateY(0) rotate(1.5deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(1.5deg); }
}
@keyframes ns-table {
  0% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
  50% { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,0.5); }
  100% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
}
@keyframes ns-flicker {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 6px #e8a040; }
  50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 32px 12px #ffd080; }
  100% { transform: scale(0.95); opacity: 0.75; box-shadow: 0 0 18px 4px #e8a040; }
}

.scn-claudius-scheme-england {
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b898 50%, #a08060 100%),
              radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}
.scn-claudius-scheme-england .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0d4c0 0%, #c0b098 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.1);
}
.scn-claudius-scheme-england .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7058 0%, #5a4a38 100%);
  border-radius: 10% 90% 0 0 / 20% 60% 0 0;
}
.scn-claudius-scheme-england .throne {
  position: absolute; bottom: 18%; left: 20%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: cse-throne 12s ease-in-out infinite alternate;
}
.scn-claudius-scheme-england .figure {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a180e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cse-breathe 4s ease-in-out infinite;
}
.scn-claudius-scheme-england .desk {
  position: absolute; bottom: 18%; left: 55%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cse-desk 8s ease-in-out infinite;
}
.scn-claudius-scheme-england .map {
  position: absolute; bottom: 22%; left: 57%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #e0c888 0%, #c0a868 50%, #a08048 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cse-map 15s ease-in-out infinite;
}
.scn-claudius-scheme-england .candle {
  position: absolute; bottom: 24%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%);
  border-radius: 2px 2px 3px 3px;
  box-shadow: 0 0 16px 4px #d4a040;
  animation: cse-flicker 2.5s ease-in-out infinite alternate;
}
.scn-claudius-scheme-england .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: cse-shadow 7s ease-in-out infinite alternate;
}
@keyframes cse-throne {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
  50% { transform: scale(1.02) rotate(0.5deg); box-shadow: 0 10px 25px rgba(0,0,0,0.6); }
  100% { transform: scale(0.98) rotate(-0.5deg); box-shadow: 0 6px 16px rgba(0,0,0,0.45); }
}
@keyframes cse-breathe {
  0% { transform: translateY(0) scale(1,1); }
  50% { transform: translateY(-1px) scale(1,1.02); }
  100% { transform: translateY(0) scale(1,1); }
}
@keyframes cse-desk {
  0% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
  50% { transform: translateY(-1px); box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
  100% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
}
@keyframes cse-map {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(1px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes cse-flicker {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 12px 3px #d4a040; }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 20px 6px #f0c060; }
  100% { transform: scale(0.95); opacity: 0.75; box-shadow: 0 0 10px 2px #d4a040; }
}
@keyframes cse-shadow {
  0% { opacity: 0.3; transform: translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateY(3px) scale(1.05); }
  100% { opacity: 0.35; transform: translateY(0) scale(0.95); }
}

.scn-nunnery-scene {
  background: 
    linear-gradient(135deg, #3a3a5c 0%, #2a2a44 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 30% 40%, #ffffff 0%, rgba(200,200,220,0.1) 60%, transparent 80%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.scn-nunnery-scene .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #d4c9b8 0%, #b8a88e 50%, #8a7b64 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity: 0.3;
}

.scn-nunnery-scene .window {
  position: absolute;
  top: 10%;
  left: 8%;
  width: 28%;
  height: 55%;
  background: radial-gradient(ellipse at 50% 50%, #fdf4d1 0%, #e8dba0 50%, #b89a5e 100%);
  border: 4px solid #5e4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px 10px rgba(255,235,180,0.5), 0 0 60px 20px rgba(255,235,180,0.2);
  animation: ns-window 6s ease-in-out infinite alternate;
}

.scn-nunnery-scene .light-beam {
  position: absolute;
  top: 10%;
  left: 8%;
  width: 35%;
  height: 80%;
  background: linear-gradient(135deg, rgba(255,248,220,0.4) 0%, rgba(200,180,120,0.1) 70%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  transform-origin: left top;
  animation: ns-beam 4s ease-in-out infinite alternate;
  filter: blur(8px);
}

.scn-nunnery-scene .table {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 60%;
  height: 8%;
  background: linear-gradient(180deg, #6b5a44 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}

.scn-nunnery-scene .hamlet-figure {
  position: absolute;
  bottom: 15%;
  left: 15%;
  width: 16%;
  height: 55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 20px rgba(0,0,0,0.5);
  clip-path: inset(0% 0% 0% 0% round 10% 10% 0 0);
  animation: ns-hamlet 3.5s ease-in-out infinite;
}

.scn-nunnery-scene .ophelia-figure {
  position: absolute;
  bottom: 15%;
  right: 20%;
  width: 14%;
  height: 48%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 20px rgba(0,0,0,0.5);
  animation: ns-ophelia 4.2s ease-in-out infinite alternate;
}

.scn-nunnery-scene .remembrances {
  position: absolute;
  bottom: 24%;
  left: 48%;
  width: 8%;
  height: 6%;
  background: radial-gradient(circle, #c8a060 0%, #a07838 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(200,160,96,0.6), 0 0 24px 4px rgba(200,160,96,0.2);
  animation: ns-remembrances 5s ease-in-out infinite alternate;
}

.scn-nunnery-scene .cast-shadow-floor {
  position: absolute;
  bottom: 15%;
  left: 8%;
  width: 50%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: skewX(-15deg);
  animation: ns-shadow 6s ease-in-out infinite alternate;
}

@keyframes ns-window {
  0% { box-shadow: inset 0 0 30px 8px rgba(255,235,180,0.3), 0 0 40px 10px rgba(255,235,180,0.1); opacity: 0.9; }
  50% { box-shadow: inset 0 0 60px 15px rgba(255,235,180,0.6), 0 0 80px 20px rgba(255,235,180,0.3); opacity: 1; }
  100% { box-shadow: inset 0 0 40px 10px rgba(255,235,180,0.4), 0 0 50px 15px rgba(255,235,180,0.15); opacity: 0.95; }
}

@keyframes ns-beam {
  0% { transform: rotate(0deg) scaleX(1); opacity: 0.6; }
  50% { transform: rotate(2deg) scaleX(1.02); opacity: 1; }
  100% { transform: rotate(-1deg) scaleX(0.98); opacity: 0.7; }
}

@keyframes ns-hamlet {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(1px) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes ns-ophelia {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(-3px) translateY(1px) rotate(-1deg); opacity: 0.95; }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.85; }
}

@keyframes ns-remembrances {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  50% { transform: translate(2px, -1px) scale(1.1); opacity: 1; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.8; }
}

@keyframes ns-shadow {
  0% { transform: skewX(-15deg) scaleX(1); opacity: 0.5; }
  50% { transform: skewX(-15deg) scaleX(1.05); opacity: 0.8; }
  100% { transform: skewX(-15deg) scaleX(1); opacity: 0.6; }
}
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-polonius-commands-ophelia { background: linear-gradient(180deg, #1e1628 0%, #2a1e38 50%, #382648 100%), radial-gradient(ellipse at 60% 50%, #382648 0%, transparent 60%); }
.scn-polonius-commands-ophelia .study-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1e38 0%, #3a2e48 60%, transparent 100%); animation: pco-wall 30s ease-in-out infinite alternate; }
.scn-polonius-commands-ophelia .bookshelf { position:absolute; bottom:20%; right:5%; width:30%; height:70%; background: linear-gradient(90deg, #4a3e5c 0%, #5a4e6c 30%, #4a3e5c 70%, #3a2e4c 100%); border-radius: 3%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); overflow: hidden; }
.scn-polonius-commands-ophelia .bookshelf::before { content:''; position:absolute; inset:10px; background: repeating-linear-gradient(0deg, #3a2e4c 0px, #3a2e4c 8px, transparent 8px, transparent 10px); }
.scn-polonius-commands-ophelia .desk { position:absolute; bottom:10%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #5a4a3c 0%, #3a2e1c 100%); border-radius: 5% 5% 0 0; box-shadow: 0 5px 15px rgba(0,0,0,.5); }
.scn-polonius-commands-ophelia .polonius-figure { position:absolute; bottom:10%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #1a1628 0%, #2a1e38 100%); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pco-polonius 5s ease-in-out infinite; }
.scn-polonius-commands-ophelia .ophelia-figure { position:absolute; bottom:8%; left:55%; width:18px; height:42px; background: linear-gradient(180deg, #1e1a2a 0%, #120e1c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pco-ophelia 6s ease-in-out infinite; }
.scn-polonius-commands-ophelia .candle-light { position:absolute; bottom:15%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #b06a2a 0%, #6a3a18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 25px 10px rgba(180,90,30,.5), 0 0 50px 20px rgba(180,90,30,.15); animation: pco-candle 2.5s ease-in-out infinite alternate; }
.scn-polonius-commands-ophelia .shadow-bars { position:absolute; inset:0; background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,.4) 40%, transparent 60%, rgba(0,0,0,.3) 80%); animation: pco-shadows 15s linear infinite; }
@keyframes pco-wall { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes pco-polonius { 0% { transform: translateX(0) rotate(-2deg) scaleX(1); } 25% { transform: translateX(5px) rotate(3deg) scaleX(0.95); } 50% { transform: translateX(10px) rotate(0deg) scaleX(1); } 75% { transform: translateX(5px) rotate(-3deg) scaleX(0.95); } 100% { transform: translateX(0) rotate(2deg) scaleX(1); } }
@keyframes pco-ophelia { 0% { transform: translateX(0) rotate(0deg) scale(1); } 30% { transform: translateX(-3px) rotate(-4deg) scale(0.95); } 60% { transform: translateX(-6px) rotate(0deg) scale(0.9); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes pco-candle { 0% { transform: rotate(-3deg) scaleY(1); box-shadow: 0 0 20px 8px rgba(180,90,30,.5); } 50% { transform: rotate(3deg) scaleY(1.15); box-shadow: 0 0 30px 15px rgba(180,90,30,.7); } 100% { transform: rotate(-2deg) scaleY(0.95); box-shadow: 0 0 15px 5px rgba(180,90,30,.4); } }
@keyframes pco-shadows { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 200% 0%; } }

/* laertes-returns-revenge-plot */

.scn-hamlet-sent-to-england { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a1a30 100%), radial-gradient(ellipse at 40% 50%, #1a1a2e 0%, transparent 80%); }
.scn-hamlet-sent-to-england .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2e 30%, #2a1a30 70%, #0d0d1a 100%); }
.scn-hamlet-sent-to-england .claudius { position:absolute; bottom:25%; left:20%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a4a 0%, #1a1020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hse-claudius 5s ease-in-out infinite; }
.scn-hamlet-sent-to-england .hamlet { position:absolute; bottom:25%; right:30%; width:30px; height:75px; background: linear-gradient(180deg, #2a1a2a 0%, #0d0d1a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%; transform-origin: bottom center; animation: hse-hamlet 4s ease-in-out infinite; }
.scn-hamlet-sent-to-england .messenger { position:absolute; bottom:25%; left:40%; width:25px; height:60px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: hse-messenger 6s ease-in-out infinite; }
.scn-hamlet-sent-to-england .seal-table { position:absolute; bottom:15%; left:35%; width:60px; height:30px; background: linear-gradient(90deg, #3a2a3a 0%, #4a3a3a 50%, #2a1a2a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-hamlet-sent-to-england .letter { position:absolute; bottom:20%; left:48%; width:16px; height:12px; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hse-letter 10s ease-in-out infinite; }
.scn-hamlet-sent-to-england .shadow-bar { position:absolute; top:10%; left:5%; width:4px; height:80%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 20%, rgba(0,0,0,.3) 80%, transparent 100%); filter: blur(2px); }
.scn-hamlet-sent-to-england .ship-silhouette { position:absolute; top:5%; right:10%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; opacity:.3; animation: hse-ship 20s linear infinite; }
@keyframes hse-claudius { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hse-hamlet { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(5deg); } 75% { transform: translateY(-1px) rotate(-4deg); } }
@keyframes hse-messenger { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hse-letter { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes hse-ship { 0% { transform: translateX(0) scale(.8); opacity:.2; } 50% { transform: translateX(-20px) scale(1); opacity:.4; } 100% { transform: translateX(0) scale(.8); opacity:.2; } }

.scn-hamlet-asserts-sanity {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1f2e 40%, #1a0f1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 60%);
}
.scn-hamlet-asserts-sanity .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 100%);
  animation: s1-wall 12s ease-in-out infinite alternate;
}
.scn-hamlet-asserts-sanity .shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, #0a0a0a 0%, transparent 70%);
  animation: s1-shadow 8s ease-in-out infinite alternate;
}
.scn-hamlet-asserts-sanity .table {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
}
.scn-hamlet-asserts-sanity .lamp {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(200,160,100,0.3);
  animation: s1-lamp 4s ease-in-out infinite alternate;
}
.scn-hamlet-asserts-sanity .hand {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: s1-hand 5s ease-in-out infinite;
}
.scn-hamlet-asserts-sanity .wound {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 14px;
  background: radial-gradient(circle, #6a2a2a 0%, #4a1a1a 70%, transparent 100%);
  border-radius: 50%; box-shadow: inset 0 0 8px #8a3a3a;
  animation: s1-wound 3s ease-in-out infinite alternate;
}

@keyframes s1-wall { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes s1-shadow { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } }
@keyframes s1-lamp { 0% { box-shadow: 0 0 10px 5px rgba(200,160,100,0.2); } 100% { box-shadow: 0 0 30px 15px rgba(200,160,100,0.5); } }
@keyframes s1-hand { 0%,100% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(5px,-3px) rotate(3deg); } }
@keyframes s1-wound { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.2); opacity:1; } }

.scn-hamlet-confess-and-repent {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-hamlet-confess-and-repent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-hamlet-confess-and-repent .window {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3e 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-hamlet-confess-and-repent .kneeler {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-hamlet-confess-and-repent .figure {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure 6s ease-in-out infinite;
}
.scn-hamlet-confess-and-repent .weeds {
  position: absolute; bottom: 0; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(10deg); animation: s2-weeds 4s ease-in-out infinite alternate;
}
.scn-hamlet-confess-and-repent .compost {
  position: absolute; bottom: 5%; left: 50%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: s2-compost 8s ease-in-out infinite alternate;
}

@keyframes s2-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes s2-weeds { 0% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes s2-compost { 0% { opacity:0.5; } 100% { opacity:1; } }

.scn-hamlet-custom-livery {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-hamlet-custom-livery .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: s3-wall 20s ease-in-out infinite alternate;
}
.scn-hamlet-custom-livery .wardrobe {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 160px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateY(5deg);
}
.scn-hamlet-custom-livery .frock {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: s3-frock 6s ease-in-out infinite;
}
.scn-hamlet-custom-livery .hook {
  position: absolute; top: 20%; left: 38%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
}
.scn-hamlet-custom-livery .dust {
  position: absolute; top: 30%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,200,200,0.1) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: s3-dust 15s linear infinite alternate;
}

@keyframes s3-wall { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes s3-frock { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes s3-dust { 0% { transform: translate(0,0); } 100% { transform: translate(20px,-10px); } }

.scn-hamlet-must-be-cruel-to-be-kind {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #1a0f1a 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-hamlet-must-be-cruel-to-be-kind .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-hamlet-must-be-cruel-to-be-kind .pillar {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 160px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.4);
}
.scn-hamlet-must-be-cruel-to-be-kind .figure-left {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s4-left 4s ease-in-out infinite;
}
.scn-hamlet-must-be-cruel-to-be-kind .figure-right {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s4-right 4s ease-in-out infinite alternate;
}
.scn-hamlet-must-be-cruel-to-be-kind .mask {
  position: absolute; bottom: 50%; left: 38%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: s4-mask 3s ease-in-out infinite alternate;
}
.scn-hamlet-must-be-cruel-to-be-kind .scourge {
  position: absolute; bottom: 30%; left: 40%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: s4-scourge 2s ease-in-out infinite;
}
.scn-hamlet-must-be-cruel-to-be-kind .glow {
  position: absolute; top: 20%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,100,0.2) 0%, transparent 60%);
  border-radius: 50%; filter: blur(10px);
  animation: s4-glow 5s ease-in-out infinite alternate;
}

@keyframes s4-left { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(3deg); } }
@keyframes s4-right { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-3deg); } }
@keyframes s4-mask { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes s4-scourge { 0% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-15deg); } }
@keyframes s4-glow { 0% { opacity:0.3; } 100% { opacity:0.7; } }

/* claudius-agrees-to-test */
.scn-claudius-agrees-to-test { background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 40%, #b8966a 100%), radial-gradient(ellipse at 80% 60%, #fff5e0 0%, transparent 60%); }
.scn-claudius-agrees-to-test .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc4 0%, #c8b494 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; }
.scn-claudius-agrees-to-test .window { position:absolute; top:10%; left:15%; width:80px; height:120px; background: linear-gradient(180deg, #aad0f0 0%, #7fa8d0 100%); border:4px solid #6a4a2a; border-radius:4px; box-shadow: inset 0 0 30px #fff; }
.scn-claudius-agrees-to-test .table { position:absolute; bottom:30%; left:50%; width:160px; height:8px; transform:translateX(-50%); background: #5a3a1a; border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-claudius-agrees-to-test .king { position:absolute; bottom:30%; left:38%; width:30px; height:80px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cat-king 6s ease-in-out infinite; }
.scn-claudius-agrees-to-test .courtier { position:absolute; bottom:30%; right:38%; width:28px; height:76px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cat-courtier 7s ease-in-out infinite; }
.scn-claudius-agrees-to-test .goblet { position:absolute; bottom:30%; left:45%; width:10px; height:14px; background: radial-gradient(circle, #d4af37 0%, #a08020 100%); border-radius: 0 0 50% 50%; animation: cat-goblet 4s ease-in-out infinite alternate; }
.scn-claudius-agrees-to-test .shadow-a { position:absolute; bottom:28%; left:30%; width:40px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(3px); }
.scn-claudius-agrees-to-test .shadow-b { position:absolute; bottom:28%; right:30%; width:38px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: cat-shadow 8s ease-in-out infinite; }
@keyframes cat-king { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes cat-courtier { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes cat-goblet { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-3px) scale(1.05); } }
@keyframes cat-shadow { 0%,100% { opacity:0.5; } 50% { opacity:0.3; } }

/* hamlet-reading-enters */
.scn-hamlet-reading-enters { background: linear-gradient(180deg, #f0ead6 0%, #d4c8a0 40%, #b8a67a 100%), radial-gradient(ellipse at 30% 70%, #fff8e0 0%, transparent 50%); }
.scn-hamlet-reading-enters .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #8a6a4a 0%, #a08060 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-hamlet-reading-enters .bookshelf { position:absolute; top:15%; right:20%; width:80px; height:120px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: inset 0 0 10px #3a1a0a; }
.scn-hamlet-reading-enters .hamlet { position:absolute; bottom:25%; left:30%; width:35px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hre-hamlet 5s ease-in-out infinite; }
.scn-hamlet-reading-enters .book { position:absolute; bottom:28%; left:32%; width:20px; height:28px; background: linear-gradient(180deg, #a8a080 0%, #807060 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: hre-book 4s ease-in-out infinite alternate; }
.scn-hamlet-reading-enters .polonius { position:absolute; bottom:25%; right:25%; width:28px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hre-polonius 6s ease-in-out infinite; }
.scn-hamlet-reading-enters .candle { position:absolute; bottom:40%; left:20%; width:6px; height:30px; background: linear-gradient(180deg, #e0d0a0 0%, #a09070 100%); border-radius:2px; }
.scn-hamlet-reading-enters .glow { position:absolute; bottom:42%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, transparent 100%); box-shadow: 0 0 30px 10px #ffd080; animation: hre-glow 3s ease-in-out infinite alternate; }
@keyframes hre-hamlet { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes hre-book { 0% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes hre-polonius { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hre-glow { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.3); } }

/* hamlet-fishmonger-barb */
.scn-hamlet-fishmonger-barb { background: linear-gradient(180deg, #f5edc8 0%, #d8c8a0 40%, #c0a880 100%), radial-gradient(ellipse at 70% 50%, #fffae0 0%, transparent 60%); }
.scn-hamlet-fishmonger-barb .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e0d4b8 0%, #c0b090 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-hamlet-fishmonger-barb .door { position:absolute; bottom:10%; left:10%; width:60px; height:90px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4px; box-shadow: inset 0 0 15px #3a2a0a; }
.scn-hamlet-fishmonger-barb .hamlet { position:absolute; bottom:25%; left:28%; width:32px; height:85px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hfb-hamlet 4s ease-in-out infinite; }
.scn-hamlet-fishmonger-barb .fish { position:absolute; bottom:35%; left:35%; width:40px; height:18px; background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-15deg); animation: hfb-fish 2s ease-in-out infinite alternate; }
.scn-hamlet-fishmonger-barb .fish-head { position:absolute; bottom:35%; left:36%; width:12px; height:12px; background: #404040; border-radius:50%; animation: hfb-fish 2s ease-in-out infinite alternate; }
.scn-hamlet-fishmonger-barb .polonius { position:absolute; bottom:25%; right:25%; width:26px; height:78px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hfb-polonius 5s ease-in-out infinite; }
.scn-hamlet-fishmonger-barb .basket { position:absolute; bottom:28%; right:34%; width:30px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 10px #5a3a1a; animation: hfb-basket 6s ease-in-out infinite; }
@keyframes hfb-hamlet { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes hfb-fish { 0% { transform: translate(0,0) rotate(-15deg); } 50% { transform: translate(2px,-2px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(-15deg); } }
@keyframes hfb-polonius { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes hfb-basket { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

/* hamlet-words-words-words */
.scn-hamlet-words-words-words { background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 40%, #b8a080 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%); }
.scn-hamlet-words-words-words .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #8a7050 0%, #a08860 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-hamlet-words-words-words .book-stack { position:absolute; bottom:20%; left:15%; width:90px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-hamlet-words-words-words .hamlet { position:absolute; bottom:30%; left:30%; width:30px; 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: hww-hamlet 5s ease-in-out infinite; }
.scn-hamlet-words-words-words .speech-bubble { position:absolute; top:25%; left:35%; width:50px; height:30px; background: rgba(255,255,255,0.6); border-radius: 50% 50% 50% 10%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.1); animation: hww-bubble 3s ease-in-out infinite alternate; }
.scn-hamlet-words-words-words .word-1 { position:absolute; top:28%; left:38%; width:8px; height:8px; background: #4a3a2a; border-radius:50%; animation: hww-word 2s ease-in-out infinite; }
.scn-hamlet-words-words-words .word-2 { position:absolute; top:30%; left:42%; width:6px; height:6px; background: #3a2a1a; border-radius:50%; animation: hww-word 2.5s ease-in-out infinite; }
.scn-hamlet-words-words-words .word-3 { position:absolute; top:32%; left:46%; width:5px; height:5px; background: #2a1a0a; border-radius:50%; animation: hww-word 3s ease-in-out infinite; }
.scn-hamlet-words-words-words .shadow { position:absolute; bottom:28%; left:25%; width:50px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: hww-shadow 6s ease-in-out infinite; }
@keyframes hww-hamlet { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hww-bubble { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-12deg) scale(1.1); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes hww-word { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes hww-shadow { 0%,100% { opacity:0.4; } 50% { opacity:0.2; } }

/* hamlet-greets-horatio */
.scn-hamlet-greets-horatio {
  background: linear-gradient(180deg, #d4a76a 0%, #c48b4f 40%, #a8753a 100%), radial-gradient(ellipse at 30% 60%, #f0d090 0%, transparent 70%);
}
.scn-hamlet-greets-horatio .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4b87a 0%, #c49a5a 100%); }
.scn-hamlet-greets-horatio .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #8a6e4a 0%, #a07e52 30%, #bfa074 70%); border-top: 4px solid #6a4e2a; }
.scn-hamlet-greets-horatio .window { position:absolute; top:12%; left:20%; width:30%; height:40%; background: linear-gradient(180deg, #b0c4d8 0%, #7a9ab0 50%, #4a6a7a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(74,106,122,0.5); animation: hgh-window 12s ease-in-out infinite; }
.scn-hamlet-greets-horatio .candle { position:absolute; bottom:48%; left:30%; width:12px; height:40px; background: linear-gradient(180deg, #f0d090 0%, #c08040 30%, #a06020 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: hgh-candle 3s ease-in-out infinite alternate; }
.scn-hamlet-greets-horatio .glow { position:absolute; bottom:50%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,208,144,0.6) 0%, transparent 70%); filter: blur(10px); animation: hgh-glow 3s ease-in-out infinite alternate; }
.scn-hamlet-greets-horatio .figure1 { position:absolute; bottom:34%; left:15%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: hgh-figure 4s ease-in-out infinite; }
.scn-hamlet-greets-horatio .figure2 { position:absolute; bottom:34%; right:20%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: hgh-figure 4s ease-in-out infinite 1s; }
@keyframes hgh-window { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hgh-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1) scaleX(0.95); } 100% { transform: scaleY(0.95); } }
@keyframes hgh-glow { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes hgh-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-1px) rotate(-1deg); } }

/* hamlet-mocks-wedding-speed */
.scn-hamlet-mocks-wedding-speed {
  background: linear-gradient(180deg, #f8e8c0 0%, #e0d0a0 40%, #c0a070 100%), radial-gradient(ellipse at 50% 0%, #ffe8a0 0%, transparent 70%);
}
.scn-hamlet-mocks-wedding-speed .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #b09060 0%, #c8a870 40%, #d8b880 100%); }
.scn-hamlet-mocks-wedding-speed .table { position:absolute; bottom:25%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #a08050 0%, #c0a060 100%); border-radius: 12px 12px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-hamlet-mocks-wedding-speed .cake { position:absolute; bottom:38%; left:35%; width:30%; height:25%; background: linear-gradient(180deg, #f0d8a0 0%, #e0c088 50%, #c8a060 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: hmw-cake 0.6s ease-in-out infinite alternate; }
.scn-hamlet-mocks-wedding-speed .plate { position:absolute; bottom:36%; left:40%; width:20%; height:4%; background: radial-gradient(ellipse, #e0d0a0 0%, #c0a070 100%); border-radius: 50%; }
.scn-hamlet-mocks-wedding-speed .confetti1 { position:absolute; bottom:50%; left:50%; width:10px; height:10px; background: #f0a060; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: hmw-confetti 2s ease-in-out infinite; }
.scn-hamlet-mocks-wedding-speed .confetti2 { position:absolute; bottom:50%; left:70%; width:8px; height:8px; background: #60a0f0; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: hmw-confetti 2.5s ease-in-out infinite 0.5s; }
.scn-hamlet-mocks-wedding-speed .arm { position:absolute; bottom:30%; left:32%; width:40px; height:16px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 50% 10% 10% 50%; transform-origin: right center; animation: hmw-arm 0.8s ease-in-out infinite alternate; }
@keyframes hmw-cake { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.1) rotate(2deg); } 100% { transform: scaleX(0.9) rotate(-2deg); } }
@keyframes hmw-confetti { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(-30px) rotate(180deg); opacity:0.8; } 100% { transform: translateY(-60px) rotate(360deg); opacity:0; } }
@keyframes hmw-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }

/* hamlet-remembers-father */
.scn-hamlet-remembers-father {
  background: linear-gradient(180deg, #a0a8b8 0%, #808aa0 40%, #606878 100%), radial-gradient(ellipse at 50% 30%, #c0c8d8 0%, transparent 70%);
}
.scn-hamlet-remembers-father .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0b8c8 0%, #88909e 100%); }
.scn-hamlet-remembers-father .portrait-frame { position:absolute; top:5%; left:40%; width:20%; height:45%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-hamlet-remembers-father .portrait-figure { position:absolute; top:12%; left:44%; width:12%; height:35%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-hamlet-remembers-father .candle { position:absolute; bottom:40%; left:25%; width:10px; height:35px; background: linear-gradient(180deg, #f0e0b0 0%, #c0a070 50%, #806040 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; animation: hrf-candle 4s ease-in-out infinite alternate; }
.scn-hamlet-remembers-father .glow { position:absolute; bottom:42%; left:25%; width:50px; height:50px; background: radial-gradient(circle, rgba(240,224,176,0.5) 0%, transparent 70%); filter: blur(8px); animation: hrf-glow 4s ease-in-out infinite alternate; }
.scn-hamlet-remembers-father .figure-silhouette { position:absolute; bottom:30%; right:20%; width:20px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: hrf-figure 8s ease-in-out infinite; }
@keyframes hrf-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) scaleX(0.95); } 100% { transform: scaleY(0.97); } }
@keyframes hrf-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes hrf-figure { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-1px) rotate(0); } 66% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }

/* horatio-tells-of-ghost */
.scn-horatio-tells-of-ghost {
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 40%, #050520 100%), radial-gradient(ellipse at 50% 80%, #2a2a5e 0%, transparent 70%);
}
.scn-horatio-tells-of-ghost .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #152040 0%, #0a1020 100%); animation: htg-sky 15s ease-in-out infinite alternate; }
.scn-horatio-tells-of-ghost .castle-wall { position:absolute; bottom:20%; left:5%; width:30%; height:70%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; }
.scn-horatio-tells-of-ghost .turret { position:absolute; bottom:20%; left:12%; width:10%; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 0 0; }
.scn-horatio-tells-of-ghost .ghost { position:absolute; bottom:38%; left:50%; width:30px; height:80px; background: linear-gradient(180deg, rgba(180,200,220,0.6) 0%, rgba(100,130,170,0.3) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); transform-origin: bottom center; animation: htg-ghost 6s ease-in-out infinite alternate; }
.scn-horatio-tells-of-ghost .mist1 { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, rgba(200,210,230,0.15) 0%, transparent 100%); filter: blur(12px); animation: htg-mist 20s linear infinite; }
.scn-horatio-tells-of-ghost .mist2 { position:absolute; bottom:10%; left:0; width:100%; height:30%; background: linear-gradient(180deg, rgba(200,210,230,0.1) 0%, transparent 100%); filter: blur(8px); animation: htg-mist 25s linear infinite 5s; }
.scn-horatio-tells-of-ghost .figure { position:absolute; bottom:28%; left:18%; width:20px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: htg-figure 5s ease-in-out infinite; }
@keyframes htg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes htg-ghost { 0% { transform: translateY(0) scale(1) rotate(-2deg); filter: blur(2px); } 50% { transform: translateY(-10px) scale(1.05) rotate(2deg); filter: blur(4px); } 100% { transform: translateY(-5px) scale(0.95) rotate(-1deg); filter: blur(3px); } }
@keyframes htg-mist { 0% { transform: translateX(-20px); opacity:0.6; } 50% { transform: translateX(20px); opacity:1; } 100% { transform: translateX(-20px); opacity:0.6; } }
@keyframes htg-figure { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(1deg); } }

.scn-horatio-tells-story {
  background: linear-gradient(180deg, #1a1018 0%, #2a1a22 30%, #3a2a2a 60%, #1a1018 100%),
              radial-gradient(ellipse at 50% 30%, #4a2a2a 0%, transparent 60%);
}
.scn-horatio-tells-story .stage {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #3a2828 0%, #1a1010 100%);
  border-radius: 20% 20% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-horatio-tells-story .backdrop {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2828 50%, #1a1010 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-horatio-tells-story .body {
  position: absolute; bottom: 18%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-horatio-tells-story .body-one {
  left: 30%; animation: hts-body-l 12s ease-in-out infinite;
}
.scn-horatio-tells-story .body-two {
  right: 30%; animation: hts-body-r 12s ease-in-out infinite reverse;
}
.scn-horatio-tells-story .speaker {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 0 12px rgba(180,120,80,.3);
  animation: hts-speak 4s ease-in-out infinite;
}
.scn-horatio-tells-story .torch {
  position: absolute; top: 30%; width: 12px; height: 18px;
  border-radius: 50% 50% 20% 20%;
  background: radial-gradient(circle, #ffa040 0%, #e07020 40%, #8a3010 70%, transparent 100%);
  box-shadow: 0 0 40px 16px rgba(255,160,64,.5), 0 0 80px 32px rgba(255,160,64,.2);
}
.scn-horatio-tells-story .torch-l {
  left: 12%; animation: hts-flicker-l 3s ease-in-out infinite alternate;
}
.scn-horatio-tells-story .torch-r {
  right: 12%; animation: hts-flicker-r 2.7s ease-in-out infinite alternate;
}
.scn-horatio-tells-story .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
}
.scn-horatio-tells-story .beam {
  position: absolute; top: 0; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,140,80,.08) 0%, transparent 100%);
  filter: blur(20px);
  animation: hts-beam 5s ease-in-out infinite alternate;
}
@keyframes hts-body-l {
  0%, 100% { transform: rotate(0deg) translateY(0); opacity: .6; }
  50% { transform: rotate(2deg) translateY(-2px); opacity: .7; }
}
@keyframes hts-body-r {
  0%, 100% { transform: rotate(0deg) translateY(0); opacity: .5; }
  50% { transform: rotate(-2deg) translateY(-2px); opacity: .6; }
}
@keyframes hts-speak {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes hts-flicker-l {
  0% { box-shadow: 0 0 30px 12px rgba(255,160,64,.4), 0 0 60px 24px rgba(255,160,64,.15); opacity: .8; }
  50% { box-shadow: 0 0 50px 20px rgba(255,160,64,.6), 0 0 100px 40px rgba(255,160,64,.25); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px rgba(255,160,64,.45), 0 0 70px 28px rgba(255,160,64,.18); opacity: .85; }
}
@keyframes hts-flicker-r {
  0% { box-shadow: 0 0 35px 14px rgba(255,160,64,.4), 0 0 70px 28px rgba(255,160,64,.15); opacity: .85; }
  50% { box-shadow: 0 0 45px 18px rgba(255,160,64,.55), 0 0 90px 36px rgba(255,160,64,.22); opacity: .95; }
  100% { box-shadow: 0 0 28px 10px rgba(255,160,64,.4), 0 0 56px 20px rgba(255,160,64,.15); opacity: .8; }
}
@keyframes hts-beam {
  0% { opacity: .6; transform: scaleY(1); }
  50% { opacity: .8; transform: scaleY(1.05); }
  100% { opacity: .5; transform: scaleY(.95); }
}

.scn-horatio-will-deliver {
  background: linear-gradient(180deg, #1e1218 0%, #2e1e22 40%, #3e2a2a 70%, #1a1018 100%),
              radial-gradient(ellipse at 50% 40%, #4a3030 0%, transparent 60%);
}
.scn-horatio-will-deliver .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-horatio-will-deliver .column {
  position: absolute; bottom: 20%; width: 20px; height: 55%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #3a2a2a 100%);
  border-radius: 6px;
  box-shadow: inset -2px 0 8px rgba(0,0,0,.3), inset 2px 0 8px rgba(200,160,120,.15);
}
.scn-horatio-will-deliver .column-l { left: 12%; }
.scn-horatio-will-deliver .column-r { right: 12%; }
.scn-horatio-will-deliver .arch {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #2a1a1a 50%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.4);
  animation: hwd-arch 10s ease-in-out infinite alternate;
}
.scn-horatio-will-deliver .light-shaft {
  position: absolute; top: 0; left: 35%; right: 35%; height: 70%;
  background: linear-gradient(180deg, rgba(220,180,140,.10) 0%, rgba(220,180,140,.03) 60%, transparent 100%);
  filter: blur(30px);
  animation: hwd-shaft 6s ease-in-out infinite alternate;
}
.scn-horatio-will-deliver .speaker-two {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 74px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 60%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(200,160,120,.2);
  animation: hwd-speak 3.5s ease-in-out infinite;
}
.scn-horatio-will-deliver .scroll {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: hwd-scroll 5s ease-in-out infinite;
}
.scn-horatio-will-deliver .audience {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 30px;
  background: linear-gradient(180deg, rgba(20,14,14,.8) 0%, rgba(10,8,8,.6) 100%);
  border-radius: 40% 40% 0 0;
  filter: blur(4px);
  animation: hwd-aud 8s ease-in-out infinite alternate;
}
.scn-horatio-will-deliver .brazier {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffa040 0%, #c06020 60%, #4a2010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 16px rgba(255,160,64,.4), 0 0 80px 32px rgba(255,160,64,.15);
  animation: hwd-brazier 3s ease-in-out infinite alternate;
}
@keyframes hwd-arch {
  0% { transform: scaleX(1) scaleY(1); opacity: .8; }
  50% { transform: scaleX(1.02) scaleY(.98); opacity: .9; }
  100% { transform: scaleX(.98) scaleY(1.01); opacity: .75; }
}
@keyframes hwd-shaft {
  0% { opacity: .5; transform: translateY(0); }
  50% { opacity: .7; transform: translateY(-4px); }
  100% { opacity: .4; transform: translateY(2px); }
}
@keyframes hwd-speak {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(1.5deg); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes hwd-scroll {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(8deg) translateY(-2px); }
}
@keyframes hwd-aud {
  0% { transform: scaleY(1); opacity: .6; }
  50% { transform: scaleY(1.1); opacity: .8; }
  100% { transform: scaleY(.9); opacity: .5; }
}
@keyframes hwd-brazier {
  0% { box-shadow: 0 0 30px 12px rgba(255,160,64,.35), 0 0 60px 24px rgba(255,160,64,.12); opacity: .85; }
  50% { box-shadow: 0 0 50px 20px rgba(255,160,64,.5), 0 0 100px 40px rgba(255,160,64,.2); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px rgba(255,160,64,.4), 0 0 70px 28px rgba(255,160,64,.15); opacity: .9; }
}

.scn-hamlet-borne-like-soldier {
  background: linear-gradient(180deg, #141018 0%, #221a22 30%, #322228 60%, #18101a 100%),
              radial-gradient(ellipse at 50% 50%, #3a282a 0%, transparent 65%);
}
.scn-hamlet-borne-like-soldier .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,8,12,.6) 0%, transparent 50%, rgba(10,8,12,.4) 100%);
}
.scn-hamlet-borne-like-soldier .platform {
  position: absolute; bottom: 0; left: 8%; right: 8%; height: 35%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 30% 30% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.5);
}
.scn-hamlet-borne-like-soldier .captain {
  position: absolute; bottom: 22%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 60%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-hamlet-borne-like-soldier .captain-a { left: 22%; animation: hbs-march 4s ease-in-out infinite; }
.scn-hamlet-borne-like-soldier .captain-b { left: 36%; animation: hbs-march 4s ease-in-out infinite reverse; }
.scn-hamlet-borne-like-soldier .captain-c { right: 36%; animation: hbs-march 4s ease-in-out infinite; }
.scn-hamlet-borne-like-soldier .captain-d { right: 22%; animation: hbs-march 4s ease-in-out infinite reverse; }
.scn-hamlet-borne-like-soldier .bier {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: hbs-bier 5s ease-in-out infinite;
}
.scn-hamlet-borne-like-soldier .bier::after {
  content: ''; position: absolute; top: -20px; left: 50%; width: 20px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-hamlet-borne-like-soldier .soldiers-light {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,160,120,.08) 0%, transparent 70%);
  filter: blur(20px);
  animation: hbs-light 5s ease-in-out infinite alternate;
}
.scn-hamlet-borne-like-soldier .drum {
  position: absolute; bottom: 26%; left: 48%; width: 14px; height: 14px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: hbs-drum 2s ease-in-out infinite;
}
@keyframes hbs-march {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hbs-bier {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(.5deg); }
}
@keyframes hbs-light {
  0% { opacity: .4; transform: scaleY(1); }
  50% { opacity: .7; transform: scaleY(1.1); }
  100% { opacity: .3; transform: scaleY(.9); }
}
@keyframes hbs-drum {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); opacity: .8; }
}

/* Scene 1: polonius-vows-are-traps - tense bright interior */
.scn-polonius-vows-are-traps {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #c8b090 40%, #9a7a5a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 70% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-polonius-vows-are-traps .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a8 0%, #b09278 100%);
  animation: pvt-wall 8s ease-in-out infinite alternate;
}
.scn-polonius-vows-are-traps .window {
  position: absolute; top: 12%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #f0c080 60%, #b08050 100%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,224,160,0.6), 0 0 60px 20px rgba(255,200,100,0.3);
  animation: pvt-glow 3s ease-in-out infinite alternate;
}
.scn-polonius-vows-are-traps .light-beam {
  position: absolute; top: 12%; right: 15%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,224,160,0.5) 0%, transparent 100%);
  transform-origin: top right; filter: blur(4px);
  animation: pvt-beam 6s ease-in-out infinite alternate;
}
.scn-polonius-vows-are-traps .figure-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px); opacity:0.7;
  animation: pvt-figure 5s ease-in-out infinite;
}
.scn-polonius-vows-are-traps .trap-net {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 50px;
  background: repeating-linear-gradient(45deg, #6a4a3a 0px, #6a4a3a 2px, transparent 2px, transparent 6px);
  border-radius: 20% 20% 0 0; transform: translateX(-50%) rotate(-5deg);
  animation: pvt-net 4s ease-in-out infinite alternate;
}
.scn-polonius-vows-are-traps .vow-blaze {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #ff8c00 50%, transparent 80%);
  border-radius: 50%; filter: blur(3px);
  animation: pvt-blaze 2s ease-in-out infinite alternate;
}
@keyframes pvt-wall { 0% { opacity:0.95 } 50% { opacity:0.85 } 100% { opacity:0.95 } }
@keyframes pvt-glow { 0% { box-shadow:0 0 20px 5px rgba(255,224,160,0.4),0 0 40px 10px rgba(255,200,100,0.2); } 50% { box-shadow:0 0 40px 15px rgba(255,224,160,0.8),0 0 80px 30px rgba(255,200,100,0.5); } 100% { box-shadow:0 0 25px 8px rgba(255,224,160,0.5),0 0 50px 15px rgba(255,200,100,0.3); } }
@keyframes pvt-beam { 0% { transform: rotate(-2deg) scale(1); opacity:0.6; } 50% { transform: rotate(3deg) scale(1.1); opacity:0.9; } 100% { transform: rotate(-1deg) scale(1); opacity:0.7; } }
@keyframes pvt-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pvt-net { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(0deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(0.9); } }
@keyframes pvt-blaze { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }

/* Scene 2: polonius-commands-ophelia - tense bright interior */
.scn-polonius-commands-ophelia {
  background:
    linear-gradient(180deg, #ecd9c0 0%, #b8a088 50%, #7a6040 100%),
    radial-gradient(ellipse at 30% 80%, #f5e0c0 0%, transparent 70%);
}
.scn-polonius-commands-ophelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 10% 10% 0 0 / 100% 100% 0 0;
  animation: pco-floor 12s ease-in-out infinite alternate;
}
.scn-polonius-commands-ophelia .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d4c4a8 0%, #c0a888 50%, #b09878 100%);
  animation: pco-wall 10s ease-in-out infinite;
}
.scn-polonius-commands-ophelia .figure-polonius {
  position: absolute; bottom: 30%; left: 25%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pco-fig1 6s ease-in-out infinite;
}
.scn-polonius-commands-ophelia .figure-ophelia {
  position: absolute; bottom: 30%; left: 60%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pco-fig2 7s ease-in-out infinite alternate;
}
.scn-polonius-commands-ophelia .tether-rope {
  position: absolute; bottom: 35%; left: 25%; width: 150px; height: 4px;
  background: linear-gradient(90deg, #8a7040 0%, #5a4020 50%, #3a2a10 100%);
  border-radius: 2px; transform: rotate(-10deg);
  animation: pco-rope 5s ease-in-out infinite alternate;
}
.scn-polonius-commands-ophelia .shadow-stripe {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(40,20,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: pco-stripe 9s ease-in-out infinite;
}
@keyframes pco-floor { 0% { transform: translateY(0); opacity:0.9; } 50% { transform: translateY(-3px); opacity:1; } 100% { transform: translateY(0); opacity:0.9; } }
@keyframes pco-wall { 0% { opacity:0.95; } 50% { opacity:0.85; } 100% { opacity:0.95; } }
@keyframes pco-fig1 { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pco-fig2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pco-rope { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(0.9); } }
@keyframes pco-stripe { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* Scene 3: ophelia-promises-obey - tense bright interior */
.scn-ophelia-promises-obey {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d0b898 40%, #a08060 70%, #6a5030 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-ophelia-promises-obey .wall-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #d4c0a0 0%, #b89878 100%);
  animation: opo-wall 8s ease-in-out infinite alternate;
}
.scn-ophelia-promises-obey .light-source {
  position: absolute; top: 10%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe0a0 0%, #f0c060 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,224,160,0.5);
  animation: opo-light 4s ease-in-out infinite alternate;
}
.scn-ophelia-promises-obey .figure-bowing {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opo-bow 5s ease-in-out infinite alternate;
}
.scn-ophelia-promises-obey .obey-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: opo-shadow 5s ease-in-out infinite alternate;
}
.scn-ophelia-promises-obey .ground-line {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #6a5030 20%, #8a7050 50%, #6a5030 80%, transparent);
  animation: opo-line 10s ease-in-out infinite;
}
@keyframes opo-wall { 0% { opacity:0.9 } 50% { opacity:0.8 } 100% { opacity:0.9 } }
@keyframes opo-light { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes opo-bow { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.85); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes opo-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.3); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }
@keyframes opo-line { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* Scene 4: platform-cold-night - tense dark night */
.scn-platform-cold-night {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141430 40%, #1a1a3a 70%, #24244a 100%),
    radial-gradient(ellipse at 50% 120%, #2a2a5a 0%, transparent 60%);
}
.scn-platform-cold-night .night-sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a40 60%, #2a2a50 100%);
  animation: pcn-sky 15s ease-in-out infinite alternate;
}
.scn-platform-cold-night .stars {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 50%;
  background: radial-gradient(1px 1px at 20% 30%, #ffffff 0%, transparent 100%),
              radial-gradient(2px 2px at 40% 70%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 60% 20%, #ffffff 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 50%, #ffffff 0%, transparent 100%);
  animation: pcn-stars 30s linear infinite;
}
.scn-platform-cold-night .battlement {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: pcn-wall 8s ease-in-out infinite alternate;
}
.scn-platform-cold-night .figure-sentinel {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcn-figure 6s ease-in-out infinite;
}
.scn-platform-cold-night .breath-mist {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,210,255,0.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: pcn-breath 4s ease-in-out infinite;
}
.scn-platform-cold-night .moon-glow {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0d8f0 0%, #8088b0 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(128,136,176,0.4);
  animation: pcn-moon 20s ease-in-out infinite alternate;
}
@keyframes pcn-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pcn-stars { 0% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(0); opacity:0.6; } }
@keyframes pcn-wall { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes pcn-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pcn-breath { 0% { transform: translateX(0) scale(1); opacity:0.3; } 50% { transform: translateX(8px) scale(1.5); opacity:0.5; } 100% { transform: translateX(0) scale(1); opacity:0.2; } }
@keyframes pcn-moon { 0% { transform: scale(0.95); opacity:0.7; } 50% { transform: scale(1.05); opacity:0.9; } 100% { transform: scale(1); opacity:0.8; } }

/* claudius-sends-hamlet-england - bright tense court */
.scn-claudius-sends-hamlet-england {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b88c 40%, #b88a5e 100%),
    radial-gradient(ellipse at 50% 30%, #eed8b0 0%, transparent 70%);
}
.scn-claudius-sends-hamlet-england .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(90deg, #c9a87a 0%, #e0c89e 50%, #c9a87a 100%); animation: csh-wall 12s ease-in-out infinite alternate;
}
.scn-claudius-sends-hamlet-england .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #6b4f32 0%, #8a6a44 30%, #a5835a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: csh-floor 15s ease-in-out infinite;
}
.scn-claudius-sends-hamlet-england .window {
  position: absolute; top:8%; left:55%; width:30%; height:55%; background: linear-gradient(135deg, #fff8e7 0%, #d4c6a8 100%); border-radius: 2% 2% 5% 5%; box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 0 40px rgba(255,240,200,.2); animation: csh-window 8s ease-in-out infinite alternate;
}
.scn-claudius-sends-hamlet-england .throne {
  position: absolute; bottom:30%; left:28%; width:60px; height:90px; background: linear-gradient(180deg, #8a6e4a 0%, #5a3f22 100%); border-radius: 10% 10% 5% 5%; box-shadow: 4px 4px 12px rgba(0,0,0,.5); transform: perspective(100px) rotateY(-5deg); animation: csh-throne 6s ease-in-out infinite;
}
.scn-claudius-sends-hamlet-england .desk {
  position: absolute; bottom:32%; left:48%; width:80px; height:20px; background: linear-gradient(180deg, #7a5f38 0%, #5a401f 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: csh-desk 9s ease-in-out infinite alternate;
}
.scn-claudius-sends-hamlet-england .document {
  position: absolute; bottom:44%; left:58%; width:18px; height:12px; background: #f0dbb0; border-radius: 1px; box-shadow: 1px 1px 3px rgba(0,0,0,.3); transform: rotate(-5deg); animation: csh-doc 4s ease-in-out infinite;
}
.scn-claudius-sends-hamlet-england .figure-claudius {
  position: absolute; bottom:30%; left:32%; width:24px; height:60px; background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0a 50%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csh-fig1 5s ease-in-out infinite;
}
.scn-claudius-sends-hamlet-england .figure-guildenstern {
  position: absolute; bottom:30%; left:52%; width:22px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csh-fig2 5s ease-in-out infinite 0.5s;
}
@keyframes csh-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes csh-floor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes csh-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes csh-throne { 0%,100% { transform: perspective(100px) rotateY(-5deg) translateY(0) } 50% { transform: perspective(100px) rotateY(-3deg) translateY(-2px) } }
@keyframes csh-desk { 0% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes csh-doc { 0%,100% { transform: rotate(-5deg) translate(0,0) } 50% { transform: rotate(-2deg) translate(1px,-1px) } }
@keyframes csh-fig1 { 0%,100% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(2px,0) rotate(0) } 50% { transform: translate(0,-1px) rotate(1deg) } 75% { transform: translate(-2px,0) rotate(0) } }
@keyframes csh-fig2 { 0%,100% { transform: translate(0,0) rotate(0) } 33% { transform: translate(3px,-1px) rotate(1deg) } 66% { transform: translate(-2px,0) rotate(-1deg) } }

/* guildenstern-duty-to-state - calm bright study */
.scn-guildenstern-duty-to-state {
  background: linear-gradient(180deg, #e8dcc4 0%, #c8b89a 50%, #a08a6a 100%), radial-gradient(ellipse at 60% 40%, #f0e4cc 0%, transparent 70%);
}
.scn-guildenstern-duty-to-state .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #c8b89a 0%, #e0d4bc 50%, #c8b89a 100%); animation: gds-wall 20s ease-in-out infinite alternate;
}
.scn-guildenstern-duty-to-state .window {
  position: absolute; top:10%; left:60%; width:28%; height:50%; background: linear-gradient(135deg, #fff8e7 0%, #d4c6a8 100%); border-radius: 2% 2% 5% 5%; box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 0 50px rgba(255,240,200,.2); animation: gds-window 12s ease-in-out infinite alternate;
}
.scn-guildenstern-duty-to-state .table {
  position: absolute; bottom:28%; left:35%; width:70px; height:15px; background: linear-gradient(180deg, #7a5f38 0%, #5a401f 100%); border-radius: 3px; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: gds-table 8s ease-in-out infinite alternate;
}
.scn-guildenstern-duty-to-state .book {
  position: absolute; bottom:38%; left:45%; width:16px; height:22px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: gds-book 10s ease-in-out infinite;
}
.scn-guildenstern-duty-to-state .candle {
  position: absolute; bottom:42%; left:38%; width:6px; height:16px; background: linear-gradient(0deg, #f0d060 0%, #d0a030 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #f0d060, 0 0 24px 8px rgba(240,208,96,.3); animation: gds-candle 3s ease-in-out infinite alternate;
}
.scn-guildenstern-duty-to-state .figure-guildenstern {
  position: absolute; bottom:25%; left:40%; width:24px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-fig 6s ease-in-out infinite;
}
@keyframes gds-wall { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes gds-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gds-table { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes gds-book { 0%,100% { transform: rotate(-10deg) translate(0,0) } 50% { transform: rotate(-7deg) translate(1px,-1px) } }
@keyframes gds-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.85; transform: scaleY(.95) } }
@keyframes gds-fig { 0%,100% { transform: translate(0,0) rotate(0) } 25% { transform: translate(2px,0) rotate(1deg) } 50% { transform: translate(0,-1px) rotate(0) } 75% { transform: translate(-2px,0) rotate(-1deg) } }

/* polonius-hides-in-closet - tense interior */
.scn-polonius-hides-in-closet {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 30%, #2a1a0a 60%, #1a0e04 100%), radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-polonius-hides-in-closet .wall {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); animation: phc-wall 15s ease-in-out infinite alternate;
}
.scn-polonius-hides-in-closet .curtain {
  position: absolute; top:5%; right:15%; width:60px; height:90%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset -8px 0 15px rgba(0,0,0,.5); transform: skewX(-3deg); animation: phc-curtain 10s ease-in-out infinite alternate;
}
.scn-polonius-hides-in-closet .curtain-fold {
  position: absolute; top:10%; right:18%; width:10px; height:80%; background: linear-gradient(90deg, transparent 0%, #4a3a2a 30%, #2a1a0a 70%, transparent 100%); opacity:.6; animation: phc-fold 12s ease-in-out infinite alternate 1s;
}
.scn-polonius-hides-in-closet .door {
  position: absolute; bottom:20%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #5a3f22 0%, #3a2a15 100%); border-radius: 3% 3% 5% 5%; box-shadow: 2px 0 10px rgba(0,0,0,.5), inset 0 0 10px rgba(255,240,200,.1); transform: perspective(80px) rotateY(8deg); animation: phc-door 8s ease-in-out infinite;
}
.scn-polonius-hides-in-closet .carpet {
  position: absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 50%, #6a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: phc-carpet 18s ease-in-out infinite alternate;
}
.scn-polonius-hides-in-closet .figure-polonius {
  position: absolute; bottom:22%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); transform-origin: bottom center; animation: phc-fig 4s ease-in-out infinite;
}
.scn-polonius-hides-in-closet .shadow {
  position: absolute; bottom:18%; right:28%; width:40px; height:10px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px); animation: phc-shadow 4s ease-in-out infinite alternate;
}
@keyframes phc-wall { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes phc-curtain { 0% { transform: skewX(-3deg) translateX(0) } 50% { transform: skewX(-2deg) translateX(-2px) } 100% { transform: skewX(-3deg) translateX(0) } }
@keyframes phc-fold { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes phc-door { 0%,100% { transform: perspective(80px) rotateY(8deg) } 50% { transform: perspective(80px) rotateY(5deg) } }
@keyframes phc-carpet { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.03) } }
@keyframes phc-fig { 0%,100% { transform: scaleX(-1) translate(0,0) } 25% { transform: scaleX(-1) translate(3px,0) } 50% { transform: scaleX(-1) translate(0,-2px) } 75% { transform: scaleX(-1) translate(-2px,0) } }
@keyframes phc-shadow { 0%,100% { transform: scaleX(1) opacity(.4) } 50% { transform: scaleX(1.1) opacity(.6) } }

/* claudius-alone-prays - dark dim chapel */
.scn-claudius-alone-prays {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a30 30%, #1a1020 60%, #0a0810 100%), radial-gradient(ellipse at 50% 20%, #2a1a30 0%, transparent 70%);
}
.scn-claudius-alone-prays .wall {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(90deg, #1a1020 0%, #2a1a30 50%, #1a1020 100%); animation: calp-wall 25s ease-in-out infinite alternate;
}
.scn-claudius-alone-prays .altar {
  position: absolute; bottom:20%; left:50%; width:70px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 5% 5% 3% 3%; box-shadow: inset 0 5px 15px rgba(0,0,0,.5), 0 0 20px rgba(100,80,120,.1); animation: calp-altar 10s ease-in-out infinite alternate;
}
.scn-claudius-alone-prays .crucifix {
  position: absolute; bottom:48%; left:50%; width:4px; height:30px; transform: translateX(-50%); background: #5a4a5a; border-radius: 1px; box-shadow: 0 0 6px rgba(200,180,200,.2); animation: calp-cross 8s ease-in-out infinite;
}
.scn-claudius-alone-prays .candle {
  position: absolute; bottom:36%; left:44%; width:6px; height:18px; background: linear-gradient(0deg, #f0d060 0%, #d0a030 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #f0d060, 0 0 40px 12px rgba(240,208,96,.3); animation: calp-candle 3s ease-in-out infinite alternate;
}
.scn-claudius-alone-prays .figure-claudius {
  position: absolute; bottom:15%; left:50%; width:30px; height:70px; transform: translateX(-60%); background: linear-gradient(180deg, #2a1a2a 0%, #0e0810 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: calp-fig 7s ease-in-out infinite;
}
@keyframes calp-wall { 0% { opacity:.7 } 100% { opacity:1 } }
@keyframes calp-altar { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes calp-cross { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes calp-candle { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } 100% { opacity:.7; transform: scaleY(.95) } }
@keyframes calp-fig { 0%,100% { transform: translateX(-60%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-58%) translateY(0) rotate(0) } 50% { transform: translateX(-60%) translateY(-2px) rotate(1deg) } 75% { transform: translateX(-62%) translateY(0) rotate(0) } }

/* Scene 1: Polonius reads Hamlet's letter */
.scn-polonius-reads-hamlets-letter {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5c0 30%, #d6bca8 70%, #c4a58a 100%),
    radial-gradient(ellipse at 50% 60%, #f0dcc0 0%, transparent 70%);
}
.scn-polonius-reads-hamlets-letter .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e8d5c0 0%, #d6bca8 100%);
  box-shadow: inset 0 -4px 20px rgba(0,0,0,0.08);
}
.scn-polonius-reads-hamlets-letter .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #8b6f4c 0%, #6b5030 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-polonius-reads-hamlets-letter .letter {
  position: absolute; bottom: 28%; left: 50%; width: 28%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #faf2e0 0%, #ece0c0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: p1-letter 6s ease-in-out infinite;
}
.scn-polonius-reads-hamlets-letter .candle {
  position: absolute; bottom: 32%; left: 35%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 30%;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.3);
  animation: p1-candle 4s ease-in-out infinite;
}
.scn-polonius-reads-hamlets-letter .candle-glow {
  position: absolute; bottom: 30%; left: 33%; width: 8%; height: 12%;
  background: radial-gradient(circle, rgba(255,210,130,0.8) 0%, transparent 70%);
  filter: blur(8px);
  animation: p1-glow 3s ease-in-out infinite alternate;
}
.scn-polonius-reads-hamlets-letter .figure {
  position: absolute; bottom: 16%; left: 48%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: p1-figure 5s ease-in-out infinite;
  z-index: 2;
}
.scn-polonius-reads-hamlets-letter .shadow {
  position: absolute; bottom: 12%; left: 44%; width: 22%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(6px);
  animation: p1-shadow 5s ease-in-out infinite;
}
@keyframes p1-letter {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes p1-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes p1-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes p1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes p1-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}

/* Scene 2: Polonius tells of rejection */
.scn-polonius-tells-of-rejection {
  background:
    linear-gradient(180deg, #f5e8d8 0%, #e6d2b8 40%, #d4ba9a 100%),
    radial-gradient(ellipse at 50% 30%, #f7eedd 0%, transparent 70%);
}
.scn-polonius-tells-of-rejection .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c4a58a 0%, #a38368 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-polonius-tells-of-rejection .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #e0ccb8 0%, #c8b09a 100%);
}
.scn-polonius-tells-of-rejection .column-l {
  position: absolute; bottom: 10%; left: 18%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7a5a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-polonius-tells-of-rejection .column-r {
  position: absolute; bottom: 10%; right: 18%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7a5a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-polonius-tells-of-rejection .figure-left {
  position: absolute; bottom: 12%; left: 26%; width: 12%; height: 52%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: p2-figure-l 7s ease-in-out infinite;
}
.scn-polonius-tells-of-rejection .figure-right {
  position: absolute; bottom: 12%; right: 26%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: p2-figure-r 7s ease-in-out infinite;
}
.scn-polonius-tells-of-rejection .window {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #d4e4f0 0%, #b8cce0 100%);
  border-radius: 8% 8% 4% 4% / 12% 12% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
}
.scn-polonius-tells-of-rejection .window-light {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 60%);
  filter: blur(12px);
  animation: p2-light 10s ease-in-out infinite alternate;
}
@keyframes p2-figure-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3%) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2%) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes p2-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2%) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(3%) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes p2-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* Scene 3: Polonius confronted Ophelia */
.scn-polonius-confronted-ophelia {
  background:
    linear-gradient(180deg, #f0e0cc 0%, #dcc4aa 40%, #c4a68a 100%),
    radial-gradient(ellipse at 30% 50%, #f5e6d4 0%, transparent 70%);
}
.scn-polonius-confronted-ophelia .wall-left {
  position: absolute; top: 0; left: 0; width: 38%; height: 100%;
  background: linear-gradient(90deg, #d4ba9a 0%, #e0ccb8 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.05);
}
.scn-polonius-confronted-ophelia .wall-right {
  position: absolute; top: 0; right: 0; width: 38%; height: 100%;
  background: linear-gradient(90deg, #e0ccb8 0%, #d4ba9a 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.05);
}
.scn-polonius-confronted-ophelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7a5a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-polonius-confronted-ophelia .figure-polonius {
  position: absolute; bottom: 14%; left: 26%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: p3-polonius 6s ease-in-out infinite;
}
.scn-polonius-confronted-ophelia .figure-ophelia {
  position: absolute; bottom: 16%; right: 26%; width: 10%; height: 48%;
  background: linear-gradient(180deg, #5a4030 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p3-ophelia 6s ease-in-out infinite reverse;
}
.scn-polonius-confronted-ophelia .doorway {
  position: absolute; bottom: 10%; left: 50%; width: 20%; height: 65%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0bca8 0%, #b89a7a 100%);
  border-radius: 8% 8% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-polonius-confronted-ophelia .door-light {
  position: absolute; bottom: 12%; left: 50%; width: 14%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(255,240,200,0.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: p3-door-light 8s ease-in-out infinite alternate;
}
@keyframes p3-polonius {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4%) scale(1.02) rotate(1deg); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes p3-ophelia {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-3%) scale(0.98) rotate(-1deg); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes p3-door-light {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* Scene 4: Hamlet declined into madness */
.scn-hamlet-declined-into-madness {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #d0b8a0 30%, #b09878 70%, #907860 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0d0 0%, transparent 60%);
}
.scn-hamlet-declined-into-madness .stairs {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #c4a68a 0%, #a08060 100%);
  clip-path: polygon(5% 100%, 95% 100%, 100% 20%, 0% 20%);
  animation: p4-stairs 12s ease-in-out infinite;
}
.scn-hamlet-declined-into-madness .wall-left {
  position: absolute; top: 0; left: 0; width: 22%; height: 80%;
  background: linear-gradient(180deg, #c8b09a 0%, #a88a72 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.08);
}
.scn-hamlet-declined-into-madness .wall-right {
  position: absolute; top: 0; right: 0; width: 22%; height: 80%;
  background: linear-gradient(180deg, #c8b09a 0%, #a88a72 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.08);
}
.scn-hamlet-declined-into-madness .figure-hamlet {
  position: absolute; bottom: 38%; left: 50%; width: 10%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #100800 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: p4-hamlet 8s ease-in-out infinite;
  z-index: 2;
}
.scn-hamlet-declined-into-madness .window-top {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #c8d8e8 0%, #a8bcc8 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.2);
}
.scn-hamlet-declined-into-madness .window-light {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,240,200,0.25) 0%, transparent 60%);
  filter: blur(10px);
  animation: p4-window-light 10s ease-in-out infinite alternate;
}
.scn-hamlet-declined-into-madness .shadow {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(5px);
  animation: p4-shadow 8s ease-in-out infinite;
}
@keyframes p4-stairs {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes p4-hamlet {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-2%) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-1%) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes p4-window-light {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes p4-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.2); }
  100% { transform: scaleX(1); }
}

/* player-king-fortune-love */
.scn-player-king-fortune-love {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b98a 40%, #b08d5e 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-player-king-fortune-love .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4a8 0%, #c8b078 100%);
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.15);
}
.scn-player-king-fortune-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4528 100%);
  border-radius: 20% 20% 0 0;
}
.scn-player-king-fortune-love .window {
  position: absolute; top: 12%; left: 20%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at center, #fffad6 0%, #f0e0b0 60%, #c8a870 100%);
  border: 6px solid #6b4f2e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #fff4d6;
  animation: pkl-window 8s ease-in-out infinite alternate;
}
.scn-player-king-fortune-love .throne {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: rotate(2deg);
}
.scn-player-king-fortune-love .king-silhouette {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkl-king 6s ease-in-out infinite;
}
.scn-player-king-fortune-love .crown {
  position: absolute; bottom: 69%; left: 37%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #f0d060 0%, #c89430 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px #f0d060;
  animation: pkl-crown 6s ease-in-out infinite;
}
.scn-player-king-fortune-love .goblet {
  position: absolute; bottom: 32%; left: 48%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pkl-goblet 4s ease-in-out infinite alternate;
}
.scn-player-king-fortune-love .sunbeam {
  position: absolute; top: 0; left: 18%; width: 100px; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,210,0.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: pkl-sunbeam 10s ease-in-out infinite alternate;
}
@keyframes pkl-window { 0% { opacity: 0.7; filter: brightness(0.9); } 100% { opacity: 1; filter: brightness(1.1); } }
@keyframes pkl-king { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pkl-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pkl-goblet { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pkl-sunbeam { 0% { transform: skewX(-2deg); opacity: 0.4; } 100% { transform: skewX(2deg); opacity: 1; } }

/* player-king-concludes-speech */
.scn-player-king-concludes-speech {
  background: linear-gradient(135deg, #e8d4b0 0%, #c8b088 50%, #a08860 100%),
    radial-gradient(ellipse at 70% 20%, #f8ecc8 0%, transparent 60%);
}
.scn-player-king-concludes-speech .wall-side {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #dcc8a4 0%, #c0a880 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.1);
}
.scn-player-king-concludes-speech .desk {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #6b4f2e 0%, #4a3520 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(5deg);
}
.scn-player-king-concludes-speech .book {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #8b6f4a 0%, #5a4528 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: pkc-book 10s ease-in-out infinite;
}
.scn-player-king-concludes-speech .king-profile {
  position: absolute; bottom: 28%; left: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 60% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-10px);
  animation: pkc-profile 5s ease-in-out infinite alternate;
}
.scn-player-king-concludes-speech .hand-gesture {
  position: absolute; bottom: 32%; left: 44%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2512 0%, #2a180a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom left;
  animation: pkc-hand 3s ease-in-out infinite;
}
.scn-player-king-concludes-speech .candle {
  position: absolute; bottom: 35%; left: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-player-king-concludes-speech .candle-flame {
  position: absolute; bottom: 70%; left: 20%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #ffd060 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pkc-flame 2s ease-in-out infinite alternate;
}
@keyframes pkc-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pkc-profile { 0% { opacity: 0.8; transform: translateX(-10px); } 100% { opacity: 1; transform: translateX(-5px); } }
@keyframes pkc-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes pkc-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }

/* player-queen-swears-oath */
.scn-player-queen-swears-oath {
  background: linear-gradient(180deg, #c8a880 0%, #8b6f4a 50%, #5a4528 100%),
    radial-gradient(ellipse at 50% 30%, #f0d4a8 0%, transparent 70%);
}
.scn-player-queen-swears-oath .bg-drape {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
}
.scn-player-queen-swears-oath .altar {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #6b4f2e 0%, #4a3520 100%);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}
.scn-player-queen-swears-oath .bible {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 32px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2512 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: pqso-bible 12s ease-in-out infinite;
}
.scn-player-queen-swears-oath .queen-silhouette {
  position: absolute; bottom: 26%; left: 40%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pqso-queen 7s ease-in-out infinite;
}
.scn-player-queen-swears-oath .raised-hand {
  position: absolute; bottom: 60%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #3a2512 0%, #2a180a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pqso-hand 4s ease-in-out infinite alternate;
}
.scn-player-queen-swears-oath .candle {
  position: absolute; bottom: 30%; left: 55%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-player-queen-swears-oath .glow {
  position: absolute; bottom: 50%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, #ffd060 0%, rgba(255,208,96,0.3) 40%, transparent 100%);
  filter: blur(10px);
  animation: pqso-glow 3s ease-in-out infinite alternate;
}
@keyframes pqso-bible { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pqso-queen { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pqso-hand { 0% { transform: rotate(-15deg); } 100% { transform: rotate(15deg); } }
@keyframes pqso-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

/* hamlet-mouse-trap-intro */
.scn-hamlet-mouse-trap-intro {
  background: linear-gradient(180deg, #f0c868 0%, #e8a040 40%, #c07020 100%),
    radial-gradient(ellipse at 50% 0%, #ffe880 0%, transparent 60%);
}
.scn-hamlet-mouse-trap-intro .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8b5a30 0%, #5a3a20 100%);
  border-radius: 20% 20% 0 0;
}
.scn-hamlet-mouse-trap-intro .stage-curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 0 0 60% 60%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
  animation: hmt-curtain 5s ease-in-out infinite alternate;
}
.scn-hamlet-mouse-trap-intro .mouse-trap {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #d4a050 0%, #a08040 100%);
  border-radius: 10px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(5deg);
  animation: hmt-trap 8s ease-in-out infinite;
}
.scn-hamlet-mouse-trap-intro .player-left {
  position: absolute; bottom: 25%; left: 12%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: hmt-left 4s ease-in-out infinite;
}
.scn-hamlet-mouse-trap-intro .player-right {
  position: absolute; bottom: 22%; right: 12%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: hmt-right 4s ease-in-out infinite reverse;
}
.scn-hamlet-mouse-trap-intro .prop-poison {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #80c080 0%, #508050 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: hmt-poison 6s ease-in-out infinite alternate;
}
.scn-hamlet-mouse-trap-intro .jester-hat {
  position: absolute; bottom: 60%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #f0c060 0%, #d8a040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(240,192,96,0.4);
  animation: hmt-hat 3s ease-in-out infinite;
}
@keyframes hmt-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes hmt-trap { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(7deg) translateY(-3px); } 100% { transform: perspective(200px) rotateX(5deg) translateY(0); } }
@keyframes hmt-left { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hmt-right { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes hmt-poison { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hmt-hat { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* Scene 1: claudius-mercy-and-prayer */
.scn-claudius-mercy-and-prayer {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a1a1a 100%), 
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-claudius-mercy-and-prayer .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a1a22 0%, #2a1a1a 100%);
  animation: cl1-wall 15s ease-in-out infinite alternate;
}
.scn-claudius-mercy-and-prayer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1a12 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-claudius-mercy-and-prayer .altar {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
}
.scn-claudius-mercy-and-prayer .cross {
  position: absolute; bottom: 50%; left: 50%; width: 6px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  animation: cl1-cross 8s ease-in-out infinite;
}
.scn-claudius-mercy-and-prayer .figure-king {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl1-figure 6s ease-in-out infinite alternate;
}
.scn-claudius-mercy-and-prayer .crown {
  position: absolute; bottom: 72%; left: 44%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-5deg);
  animation: cl1-crown 4s ease-in-out infinite alternate;
}
.scn-claudius-mercy-and-prayer .prayer-book {
  position: absolute; bottom: 33%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: cl1-book 7s ease-in-out infinite;
}
.scn-claudius-mercy-and-prayer .light-shaft {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,120,0.15) 0%, rgba(200,180,120,0.05) 60%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: cl1-light 12s ease-in-out infinite alternate;
}
.scn-claudius-mercy-and-prayer .candle {
  position: absolute; bottom: 38%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-claudius-mercy-and-prayer .flame {
  position: absolute; bottom: 68%; left: 35%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffcc80 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  animation: cl1-flame 2s ease-in-out infinite alternate;
}
@keyframes cl1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cl1-cross { 0%, 100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes cl1-figure { 0% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-3px) rotate(1deg); } }
@keyframes cl1-crown { 0% { transform: rotate(-8deg) scale(0.95); } 100% { transform: rotate(2deg) scale(1.05); } }
@keyframes cl1-book { 0%, 100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }
@keyframes cl1-light { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes cl1-flame { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.3) translateY(-4px); } }

/* Scene 2: claudius-cannot-repent */
.scn-claudius-cannot-repent {
  background: linear-gradient(180deg, #12121a 0%, #221a22 50%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 70%);
}
.scn-claudius-cannot-repent .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #16161e 0%, #2a1a1a 100%);
  animation: cl2-wall 20s ease-in-out infinite alternate;
}
.scn-claudius-cannot-repent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a12 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-claudius-cannot-repent .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(60,50,80,0.3) 0%, rgba(40,30,60,0.1) 100%);
  border: 2px solid #3a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-claudius-cannot-repent .figure-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cl2-shadow 10s ease-in-out infinite alternate;
}
.scn-claudius-cannot-repent .hands {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 0 0;
  transform: rotate(30deg);
  animation: cl2-hands 4s ease-in-out infinite;
}
.scn-claudius-cannot-repent .scroll {
  position: absolute; bottom: 15%; left: 25%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #5a4a2a 0%, #4a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: cl2-scroll 8s ease-in-out infinite alternate;
}
.scn-claudius-cannot-repent .scale {
  position: absolute; bottom: 40%; left: 60%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: cl2-scale 12s ease-in-out infinite;
}
.scn-claudius-cannot-repent .chain {
  position: absolute; bottom: 30%; left: 70%; width: 4px; height: 50px;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 6px, #2a1a1a 6px, #2a1a1a 10px);
  border-radius: 1px;
  transform: rotate(15deg);
  animation: cl2-chain 3s ease-in-out infinite alternate;
}
@keyframes cl2-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cl2-shadow { 0% { transform: scale(1) translateX(0); } 100% { transform: scale(1.1) translateX(10px); } }
@keyframes cl2-hands { 0%, 100% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-5px); } }
@keyframes cl2-scroll { 0% { transform: rotate(-25deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(5px); } }
@keyframes cl2-scale { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes cl2-chain { 0% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }

/* Scene 3: hamlet-finds-claudius-praying */
.scn-hamlet-finds-claudius-praying {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 40%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%);
}
.scn-hamlet-finds-claudius-praying .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #161622 0%, #22161a 100%);
}
.scn-hamlet-finds-claudius-praying .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a12 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-hamlet-finds-claudius-praying .altar {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-hamlet-finds-claudius-praying .figure-kneeling {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: hf-kneel 4s ease-in-out infinite alternate;
}
.scn-hamlet-finds-claudius-praying .figure-hamlet {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: hf-hamlet 3s ease-in-out infinite;
}
.scn-hamlet-finds-claudius-praying .sword {
  position: absolute; bottom: 50%; left: 60%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: hf-sword 2s ease-in-out infinite alternate;
}
.scn-hamlet-finds-claudius-praying .shadow-hamlet {
  position: absolute; bottom: 15%; left: 58%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(4px);
  animation: hf-shad-h 5s ease-in-out infinite alternate;
}
.scn-hamlet-finds-claudius-praying .shadow-kneeling {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: hf-shad-k 6s ease-in-out infinite alternate;
}
@keyframes hf-kneel { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(1deg); } }
@keyframes hf-hamlet { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes hf-sword { 0% { transform: rotate(15deg) scaleY(1); } 100% { transform: rotate(25deg) scaleY(1.05); } }
@keyframes hf-shad-h { 0% { transform: scale(0.9); opacity: 0.6; } 100% { transform: scale(1.1); opacity: 0.9; } }
@keyframes hf-shad-k { 0% { transform: translateX(0); opacity: 0.5; } 100% { transform: translateX(5px); opacity: 0.8; } }

/* Scene 4: hamlet-spares-claudius */
.scn-hamlet-spares-claudius {
  background: linear-gradient(180deg, #0a0a12 0%, #16161e 50%, #000000 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-hamlet-spares-claudius .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #12121a 0%, #1a1216 100%);
  animation: hs-wall 18s ease-in-out infinite alternate;
}
.scn-hamlet-spares-claudius .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #080808 0%, #12120e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.9);
}
.scn-hamlet-spares-claudius .figure-claudius {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: hs-claudius 5s ease-in-out infinite alternate;
}
.scn-hamlet-spares-claudius .figure-hamlet {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: hs-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-spares-claudius .sword-lowered {
  position: absolute; bottom: 35%; left: 58%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 2px;
  transform: rotate(40deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: hs-sword 3s ease-in-out infinite alternate;
}
.scn-hamlet-spares-claudius .halo {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(220,200,160,0.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: hs-halo 8s ease-in-out infinite alternate;
}
.scn-hamlet-spares-claudius .shadow-lower {
  position: absolute; bottom: 15%; left: 55%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(5px);
  animation: hs-shadow 7s ease-in-out infinite alternate;
}
.scn-hamlet-spares-claudius .doorway {
  position: absolute; bottom: 0; right: 10%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-left: 2px solid #2a2a3a;
  border-right: 2px solid #2a2a3a;
  border-bottom: 2px solid #1a1a2a;
  border-radius: 4px 4px 0 0;
  opacity: 0.6;
  animation: hs-door 20s ease-in-out infinite alternate;
}
@keyframes hs-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hs-claudius { 0% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes hs-hamlet { 0%, 100% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-5px); } }
@keyframes hs-sword { 0% { transform: rotate(35deg) scaleY(1); } 100% { transform: rotate(45deg) scaleY(0.95); } }
@keyframes hs-halo { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1.2); } }
@keyframes hs-shadow { 0% { transform: scale(1); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.8; } }
@keyframes hs-door { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* Scene 1: hamlet-praises-horatio */
.scn-hamlet-praises-horatio {
  background: linear-gradient(180deg, #4a3728 0%, #6b4e3a 30%, #8b6f54 60%, #a08060 100%),
              radial-gradient(ellipse at 50% 20%, #d4a56a 0%, transparent 60%);
}
.scn-hamlet-praises-horatio .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0e 0%, #4a3728 50%, transparent 100%);
  animation: hph-back 20s ease-in-out infinite alternate;
}
.scn-hamlet-praises-horatio .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(135deg, #7a6040 0%, #5a4028 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-hamlet-praises-horatio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 30% 30% 0 0;
}
.scn-hamlet-praises-horatio .window {
  position: absolute; top: 12%; left: 25%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #ffe8b0 0%, #d4a56a 100%);
  border: 6px solid #3a2818; border-radius: 4px;
  box-shadow: inset 0 0 20px #ffe8b0, 0 0 40px rgba(255,232,176,0.4);
  animation: hph-window 6s ease-in-out infinite alternate;
}
.scn-hamlet-praises-horatio .candle {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffcc80 0%, #d4a56a 100%);
  border-radius: 2px; box-shadow: 0 0 20px 8px #ffcc80, 0 0 40px 12px rgba(255,204,128,0.5);
  animation: hph-candle 3s ease-in-out infinite alternate;
}
.scn-hamlet-praises-horatio .hamlet {
  position: absolute; bottom: 26%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hph-figure 8s ease-in-out infinite;
}
.scn-hamlet-praises-horatio .horatio {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hph-figure 8s ease-in-out infinite reverse;
}
@keyframes hph-back { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes hph-window { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.01); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes hph-candle { 0% { transform: scaleY(1) translateX(0); opacity: 0.8; } 50% { transform: scaleY(1.08) translateX(1px); opacity: 1; } 100% { transform: scaleY(0.95) translateX(-1px); opacity: 0.85; } }
@keyframes hph-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }

/* Scene 2: hamlet-asks-horatio-watch */
.scn-hamlet-asks-horatio-watch {
  background: linear-gradient(180deg, #3a2818 0%, #6b4e3a 40%, #8b6f54 100%),
              radial-gradient(ellipse at 60% 30%, #c09860 0%, transparent 70%);
}
.scn-hamlet-asks-horatio-watch .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0e 0%, #4a3728 60%, transparent 100%);
  animation: hah-back 25s linear infinite alternate;
}
.scn-hamlet-asks-horatio-watch .wall {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #6b4e3a 0%, #4a3728 100%);
  border-radius: 0 0 10% 10%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-hamlet-asks-horatio-watch .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3728 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-hamlet-asks-horatio-watch .table {
  position: absolute; bottom: 22%; left: 35%; width: 80px; height: 8px;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-hamlet-asks-horatio-watch .pipe {
  position: absolute; bottom: 23%; left: 38%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #8b6f54 0%, #6b4e3a 50%, #8b6f54 100%);
  border-radius: 3px; transform: rotate(10deg); box-shadow: 0 1px 2px rgba(0,0,0,0.3);
  animation: hah-pipe 5s ease-in-out infinite;
}
.scn-hamlet-asks-horatio-watch .hamlet {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hah-figure 7s ease-in-out infinite;
}
.scn-hamlet-asks-horatio-watch .horatio {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hah-figure 7s ease-in-out infinite reverse;
}
@keyframes hah-back { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes hah-pipe { 0% { transform: rotate(8deg) scaleX(1); } 50% { transform: rotate(12deg) scaleX(1.05); } 100% { transform: rotate(8deg) scaleX(1); } }
@keyframes hah-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }

/* Scene 3: hamlet-horatio-watch-plot */
.scn-hamlet-horatio-watch-plot {
  background: linear-gradient(180deg, #1f1a1a 0%, #3a2a2a 30%, #5a4030 100%),
              radial-gradient(ellipse at 40% 40%, #7a5a40 0%, transparent 60%);
}
.scn-hamlet-horatio-watch-plot .backdrop {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1010 0%, #2a1a1a 50%, #1a1010 100%);
  animation: hhw-back 15s ease-in-out infinite alternate;
}
.scn-hamlet-horatio-watch-plot .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 16px rgba(0,0,0,0.8);
}
.scn-hamlet-horatio-watch-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hamlet-horatio-watch-plot .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: hhw-shadow 4s ease-in-out infinite alternate;
}
.scn-hamlet-horatio-watch-plot .hamlet {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hhw-figure 3s ease-in-out infinite;
}
.scn-hamlet-horatio-watch-plot .horatio {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hhw-figure 3s ease-in-out infinite reverse;
}
.scn-hamlet-horatio-watch-plot .ghost-hint {
  position: absolute; top: 5%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,200,220,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: hhw-ghost 8s ease-in-out infinite;
}
@keyframes hhw-back { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.01); } 100% { opacity: 0.65; transform: scale(0.98); } }
@keyframes hhw-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes hhw-figure { 0% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-3px) rotate(2deg) scale(1.01); } 50% { transform: translateY(0) rotate(0) scale(1); } 75% { transform: translateY(-3px) rotate(-2deg) scale(1.01); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes hhw-ghost { 0% { opacity: 0; transform: translateY(0); } 25% { opacity: 0.6; transform: translateY(-8px); } 50% { opacity: 0.2; transform: translateY(-4px); } 75% { opacity: 0.5; transform: translateY(-12px); } 100% { opacity: 0; transform: translateY(0); } }

/* Scene 4: court-enters-play */
.scn-court-enters-play {
  background: linear-gradient(180deg, #5a4028 0%, #8b6f54 40%, #a08060 100%),
              radial-gradient(ellipse at 50% 30%, #c09860 0%, transparent 50%);
}
.scn-court-enters-play .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2818 0%, #6b4e3a 60%, transparent 100%);
  animation: cep-back 30s linear infinite alternate;
}
.scn-court-enters-play .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b4e3a 0%, #3a2818 100%);
  border-radius: 40% 40% 0 0;
}
.scn-court-enters-play .curtain {
  position: absolute; top: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, #7a4a3a 0%, #5a3020 50%, #7a4a3a 100%);
  border-radius: 0 20% 20% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: cep-curtain 10s ease-in-out infinite alternate;
}
.scn-court-enters-play .curtain.left { left: 0; }
.scn-court-enters-play .curtain.right {
  right: 0; left: auto; border-radius: 20% 0 0 20%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.5);
}
.scn-court-enters-play .player {
  position: absolute; bottom: 10%; left: 45%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cep-player 5s ease-in-out infinite;
}
.scn-court-enters-play .courtier-a {
  position: absolute; bottom: 10%; left: 25%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cep-courtier 7s ease-in-out infinite;
}
.scn-court-enters-play .courtier-b {
  position: absolute; bottom: 10%; left: 65%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cep-courtier 7s ease-in-out infinite reverse;
}
.scn-court-enters-play .crown {
  position: absolute; top: 5%; left: 48%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #b08040 0%, #d0a050 50%, #b08040 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cep-crown 8s ease-in-out infinite;
}
@keyframes cep-back { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cep-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes cep-player { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes cep-courtier { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cep-crown { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-death-undiscovered-country {
  background:
    linear-gradient(135deg, #2a1e1a 0%, #4a3528 50%, #6a4a38 100%),
    radial-gradient(ellipse at 70% 50%, #6a4a38 0%, transparent 60%);
}
.scn-death-undiscovered-country .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  animation: du-wall 12s ease-in-out infinite alternate;
}
.scn-death-undiscovered-country .window {
  position: absolute; top: 20%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #0a1420 0%, #1a2a3a 100%);
  border: 6px solid #5a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px #0a0a0a; animation: du-window 8s ease-in-out infinite alternate;
}
.scn-death-undiscovered-country .candle {
  position: absolute; bottom: 30%; left: 30%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 10px #4a2a1a;
  animation: du-candle 4s ease-in-out infinite;
}
.scn-death-undiscovered-country .flame {
  position: absolute; bottom: calc(30% + 40px); left: calc(30% + 6px);
  width: 10px; height: 20px;
  background: radial-gradient(ellipse, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: du-flame 2s ease-in-out infinite alternate;
}
.scn-death-undiscovered-country .skull {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 36px;
  background: radial-gradient(ellipse at 50% 40%, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: du-skull 6s ease-in-out infinite;
}
.scn-death-undiscovered-country .figure {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: du-figure 5s ease-in-out infinite;
}
.scn-death-undiscovered-country .table {
  position: absolute; bottom: 10%; left: 20%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: du-table 8s ease-in-out infinite alternate;
}
@keyframes du-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes du-window { 0% { box-shadow: inset 0 0 20px #0a121a } 50% { box-shadow: inset 0 0 30px #1a2a3a } 100% { box-shadow: inset 0 0 15px #0a0a0a } }
@keyframes du-candle { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } }
@keyframes du-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9 } 50% { transform: scaleY(1.2) translateY(-4px); opacity: 1 } 100% { transform: scaleY(.8) translateY(2px); opacity: .8 } }
@keyframes du-skull { 0%,100% { transform: rotate(0) } 25% { transform: rotate(3deg) } 75% { transform: rotate(-3deg) } }
@keyframes du-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes du-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }

.scn-conscience-makes-cowards {
  background:
    linear-gradient(180deg, #2a2240 0%, #3a2a60 50%, #4a3a80 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a80 0%, transparent 70%);
}
.scn-conscience-makes-cowards .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a3a 0%, #2a224a 100%);
  animation: cm-bg 10s ease-in-out infinite alternate;
}
.scn-conscience-makes-cowards .mirror {
  position: absolute; top: 25%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #3a3a6a 0%, #2a2a5a 100%);
  border: 4px solid #5a4a3a; border-radius: 6px;
  box-shadow: inset 0 0 20px #1a1a3a; animation: cm-mirror 12s ease-in-out infinite alternate;
}
.scn-conscience-makes-cowards .ghost {
  position: absolute; top: 20%; left: 45%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,255,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px); animation: cm-ghost 7s ease-in-out infinite;
}
.scn-conscience-makes-cowards .figure {
  position: absolute; bottom: 20%; left: 35%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cm-figure 5s ease-in-out infinite;
}
.scn-conscience-makes-cowards .candle {
  position: absolute; bottom: 35%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px #3a1a0a;
  animation: cm-candle 4s ease-in-out infinite;
}
.scn-conscience-makes-cowards .book {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cm-book 8s ease-in-out infinite alternate;
}
.scn-conscience-makes-cowards .sword {
  position: absolute; bottom: 10%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 0 0 50% 50%; transform: rotate(15deg);
  animation: cm-sword 6s ease-in-out infinite;
}
@keyframes cm-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes cm-mirror { 0% { box-shadow: inset 0 0 15px #1a1a3a } 50% { box-shadow: inset 0 0 30px #2a2a5a } 100% { box-shadow: inset 0 0 10px #0a0a1a } }
@keyframes cm-ghost { 0%,100% { transform: translateY(0) scale(1); opacity: .4 } 50% { transform: translateY(-10px) scale(1.1); opacity: .6 } }
@keyframes cm-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes cm-candle { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes cm-book { 0% { transform: translateX(0) } 100% { transform: translateX(6px) } }
@keyframes cm-sword { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } }

.scn-hamlet-ophelia-encounter {
  background:
    linear-gradient(135deg, #5a3a2a 0%, #7a5a3a 50%, #9a7a5a 100%),
    radial-gradient(ellipse at 40% 50%, #7a5a3a 0%, transparent 60%);
}
.scn-hamlet-ophelia-encounter .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  animation: ho-bg 12s ease-in-out infinite alternate;
}
.scn-hamlet-ophelia-encounter .figure-left {
  position: absolute; bottom: 15%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ho-left 5s ease-in-out infinite;
}
.scn-hamlet-ophelia-encounter .figure-right {
  position: absolute; bottom: 15%; left: 55%; width: 36px; height: 76px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ho-right 5s ease-in-out infinite;
}
.scn-hamlet-ophelia-encounter .table {
  position: absolute; bottom: 10%; left: 35%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ho-table 8s ease-in-out infinite alternate;
}
.scn-hamlet-ophelia-encounter .flowers {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, #8a3a2a 50%, #5a2a1a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 10px rgba(200,85,61,0.3);
  animation: ho-flowers 6s ease-in-out infinite;
}
.scn-hamlet-ophelia-encounter .letter {
  position: absolute; bottom: 12%; left: 50%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: ho-letter 10s ease-in-out infinite alternate;
}
.scn-hamlet-ophelia-encounter .candle {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px #3a1a0a;
  animation: ho-candle 4s ease-in-out infinite;
}
@keyframes ho-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ho-left { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes ho-right { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes ho-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ho-flowers { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(5deg) } }
@keyframes ho-letter { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(5px) rotate(3deg) } }
@keyframes ho-candle { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }

.scn-hamlet-are-you-honest {
  background:
    linear-gradient(180deg, #4a2a20 0%, #6a3a2a 50%, #8a4a3a 100%),
    radial-gradient(ellipse at 30% 40%, #6a3a2a 0%, transparent 70%);
}
.scn-hamlet-are-you-honest .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a1a1a 0%, #5a2a1a 100%);
  animation: hy-bg 12s ease-in-out infinite alternate;
}
.scn-hamlet-are-you-honest .figure-back {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hy-back 5s ease-in-out infinite;
}
.scn-hamlet-are-you-honest .figure-front {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 76px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hy-front 5s ease-in-out infinite;
}
.scn-hamlet-are-you-honest .chair {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hy-chair 7s ease-in-out infinite alternate;
}
.scn-hamlet-are-you-honest .mirror {
  position: absolute; top: 20%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #3a3a5a 0%, #2a2a4a 100%);
  border: 4px solid #5a3a2a; border-radius: 6px;
  box-shadow: inset 0 0 15px #1a1a3a; animation: hy-mirror 10s ease-in-out infinite alternate;
}
.scn-hamlet-are-you-honest .candle {
  position: absolute; bottom: 35%; left: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px #3a1a0a;
  animation: hy-candle 4s ease-in-out infinite;
}
.scn-hamlet-are-you-honest .shadow {
  position: absolute; bottom: 15%; left: 25%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(8px); animation: hy-shadow 9s ease-in-out infinite alternate;
}
@keyframes hy-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes hy-back { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes hy-front { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes hy-chair { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.03) } }
@keyframes hy-mirror { 0% { box-shadow: inset 0 0 15px #1a1a3a } 50% { box-shadow: inset 0 0 25px #2a2a4a } 100% { box-shadow: inset 0 0 10px #0a0a1a } }
@keyframes hy-candle { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes hy-shadow { 0% { transform: scale(1); opacity: .5 } 100% { transform: scale(1.1); opacity: .7 } }

.scn-polonius-love-madness { background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 40%, #a09078 100%), radial-gradient(ellipse at 50% 0%, #e8dcc8 0%, transparent 60%); }
.scn-polonius-love-madness .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #c8b898 0%, #b0a080 50%, #a09070 100%); }
.scn-polonius-love-madness .window { position:absolute; top:10%; right:15%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #e8dcc8 60%, transparent 100%); border-radius: 4px; box-shadow: 0 0 40px 20px rgba(255,248,232,0.3); animation: plm-window 8s ease-in-out infinite alternate; }
.scn-polonius-love-madness .window-frame { position:absolute; top:10%; right:15%; width:30%; height:45%; border: 6px solid #7a6a5a; border-radius: 4px; background: transparent; }
.scn-polonius-love-madness .figure { position:absolute; bottom:20%; left:20%; width:16%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: plm-figure 2s ease-in-out infinite; }
.scn-polonius-love-madness .chair { position:absolute; bottom:18%; left:45%; width:20%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-polonius-love-madness .shadow { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.4) 100%); border-radius: 50% 50% 0 0; animation: plm-shadow 4s ease-in-out infinite alternate; }
@keyframes plm-window { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:0.9; transform: scaleX(0.95); } }
@keyframes plm-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3%) rotate(-2deg); } 70% { transform: translateX(-2%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes plm-shadow { 0% { transform: scale(1,1) translateY(0); } 50% { transform: scale(1.1,0.9) translateY(-5%); } 100% { transform: scale(0.95,1.05) translateY(0); } }

.scn-rosencrantz-guildenstern-welcomed { background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 50%, #c8b8a8 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%); }
.scn-rosencrantz-guildenstern-welcomed .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c4b0 100%); }
.scn-rosencrantz-guildenstern-welcomed .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #b8a898 0%, #d0c0b0 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-rosencrantz-guildenstern-welcomed .throne { position:absolute; bottom:35%; left:50%; width:25%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.2); animation: rgw-throne 12s ease-in-out infinite alternate; }
.scn-rosencrantz-guildenstern-welcomed .figure-left { position:absolute; bottom:15%; left:25%; width:12%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rgw-figure-left 5s ease-in-out infinite; }
.scn-rosencrantz-guildenstern-welcomed .figure-right { position:absolute; bottom:15%; right:25%; width:12%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rgw-figure-right 5s ease-in-out infinite 0.5s; }
.scn-rosencrantz-guildenstern-welcomed .chandelier { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:30%; height:15%; background: radial-gradient(ellipse at 50% 50%, #e8d8c0 0%, #c8b8a0 60%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(232,216,192,0.3); animation: rgw-chandelier 8s ease-in-out infinite alternate; }
@keyframes rgw-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(0.97); } }
@keyframes rgw-figure-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rgw-figure-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rgw-chandelier { 0% { opacity:0.9; transform: translateX(-50%) rotate(-2deg); } 50% { opacity:1; transform: translateX(-50%) rotate(2deg); } 100% { opacity:0.85; transform: translateX(-50%) rotate(-1deg); } }

.scn-claudius-asks-spy-on-hamlet { background: linear-gradient(180deg, #d8ccb8 0%, #c0b09c 50%, #a89884 100%), radial-gradient(ellipse at 50% 100%, #e8dcc8 0%, transparent 70%); }
.scn-claudius-asks-spy-on-hamlet .corridor-bg { position:absolute; inset:0; background: linear-gradient(90deg, #b8a88c 0%, #c8b898 30%, #d0c0a8 70%, #c0b090 100%); }
.scn-claudius-asks-spy-on-hamlet .pillar-left { position:absolute; left:10%; top:0; bottom:0; width:8%; background: linear-gradient(90deg, #9a8a7a 0%, #b0a090 50%, #9a8a7a 100%); border-radius: 10px; box-shadow: 4px 0 8px rgba(0,0,0,0.2); }
.scn-claudius-asks-spy-on-hamlet .pillar-right { position:absolute; right:10%; top:0; bottom:0; width:8%; background: linear-gradient(90deg, #9a8a7a 0%, #b0a090 50%, #9a8a7a 100%); border-radius: 10px; box-shadow: -4px 0 8px rgba(0,0,0,0.2); }
.scn-claudius-asks-spy-on-hamlet .figure-spy { position:absolute; bottom:10%; left:18%; width:10%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: csh-spy 6s ease-in-out infinite; }
.scn-claudius-asks-spy-on-hamlet .figure-king { position:absolute; bottom:15%; right:20%; width:14%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: csh-king 4s ease-in-out infinite alternate; }
.scn-claudius-asks-spy-on-hamlet .light-beam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,248,232,0.2) 0%, rgba(255,248,232,0.05) 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: csh-beam 10s ease-in-out infinite alternate; }
.scn-claudius-asks-spy-on-hamlet .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%); }
@keyframes csh-spy { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(10%) scaleY(1.05); } 70% { transform: translateX(-5%) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes csh-king { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes csh-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-gertrude-joins-request { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4b0 50%, #c0b09c 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%); }
.scn-gertrude-joins-request .chamber-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d8c8b0 0%, #c8b8a0 50%, #b8a890 100%); }
.scn-gertrude-joins-request .throne-back { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:40%; height:60%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.15); animation: gjr-throne 15s ease-in-out infinite alternate; }
.scn-gertrude-joins-request .figure-gertrude { position:absolute; bottom:20%; left:30%; width:12%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gjr-gertrude 6s ease-in-out infinite; }
.scn-gertrude-joins-request .figure-claudius { position:absolute; bottom:20%; right:30%; width:14%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gjr-claudius 6s ease-in-out infinite 1s; }
.scn-gertrude-joins-request .table { position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:50%; height:8%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 5% 5% 10% 10% / 30% 30% 20% 20%; }
.scn-gertrude-joins-request .candle { position:absolute; bottom:26%; left:50%; transform:translateX(-50%); width:4%; height:20%; background: linear-gradient(180deg, #e0c8a0 0%, #c8a870 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: gjr-candle 3s ease-in-out infinite alternate; }
.scn-gertrude-joins-request .candle-glow { position:absolute; bottom:24%; left:48%; width:8%; height:25%; background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #e8a040 60%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: gjr-glow 3s ease-in-out infinite alternate; }
@keyframes gjr-throne { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes gjr-gertrude { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gjr-claudius { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gjr-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.8; } }
@keyframes gjr-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }

/* ===== hamlet-lack-advancement (funny, bright-interior) ===== */
.scn-hamlet-lack-advancement {
  background: linear-gradient(180deg, #ffe8c0 0%, #ffd698 30%, #e8b878 70%, #c89050 100%), linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 50%);
}
.scn-hamlet-lack-advancement .throne {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 50%, #5a4005 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: hla-throne 4s ease-in-out infinite;
}
.scn-hamlet-lack-advancement .scepter {
  position: absolute; bottom: 48%; left: 58%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 50%, #8b6508 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: hla-scepter 3s ease-in-out infinite alternate;
}
.scn-hamlet-lack-advancement .recorder {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 50%, #806040 100%);
  border-radius: 4px 4px 4px 4px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: hla-recorder 5s ease-in-out infinite;
}
.scn-hamlet-lack-advancement .grass-strip {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(90deg, #7cfc00 0%, #32cd32 50%, #32cd32 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: hla-grass 6s ease-in-out infinite alternate;
}
.scn-hamlet-lack-advancement .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 60%);
  transform: skewX(-10deg);
  animation: hla-sunbeam 8s ease-in-out infinite alternate;
}
.scn-hamlet-lack-advancement .court-arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #e8c080 0%, transparent 70%);
  border: 2px solid #8b6508;
  border-top: none;
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
}
.scn-hamlet-lack-advancement .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #800020 0%, #500015 100%);
  border-radius: 0 40% 40% 0;
  animation: hla-curtain 12s ease-in-out infinite alternate;
}
.scn-hamlet-lack-advancement .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #500015 0%, #800020 100%);
  border-radius: 40% 0 0 40%;
  animation: hla-curtain 12s ease-in-out infinite alternate-reverse;
}
@keyframes hla-throne { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) rotate(0.5deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes hla-scepter { 0% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes hla-recorder { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes hla-grass { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.2); opacity: 1; } 100% { transform: scaleX(1); opacity: 0.8; } }
@keyframes hla-sunbeam { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes hla-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

/* ===== hamlet-play-me-not (tense, bright-interior) ===== */
.scn-hamlet-play-me-not {
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 50%, #a07040 100%), radial-gradient(circle at 60% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-hamlet-play-me-not .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-hamlet-play-me-not .pipe {
  position: absolute; bottom: 28%; left: 28%; width: 50px; height: 10px;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 50%, #806040 100%);
  border-radius: 50% 10% 10% 50%;
  transform: rotate(25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hpn-pipe 2s ease-in-out infinite alternate;
}
.scn-hamlet-play-me-not .hamlet-hand {
  position: absolute; bottom: 30%; left: 22%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpn-hand 1.5s ease-in-out infinite;
}
.scn-hamlet-play-me-not .guil-hand {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #f5deb3 0%, #c0a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: hpn-hand 1.8s ease-in-out infinite reverse;
}
.scn-hamlet-play-me-not .shadow-stripe {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 50%, transparent 100%);
  animation: hpn-stripe 4s ease-in-out infinite alternate;
}
.scn-hamlet-play-me-not .candle {
  position: absolute; bottom: 35%; right: 15%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #fff8dc 0%, #f0d090 50%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #ffd700;
  animation: hpn-candle 3s ease-in-out infinite;
}
.scn-hamlet-play-me-not .candle-glow {
  position: absolute; bottom: 30%; right: 13%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,50,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: hpn-glow 2s ease-in-out infinite alternate;
}
@keyframes hpn-pipe { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes hpn-hand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(5deg); } 60% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hpn-stripe { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes hpn-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes hpn-glow { 0% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.8; } }

/* ===== hamlet-cannot-play-me (tense, bright-interior) ===== */
.scn-hamlet-cannot-play-me {
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 30%, #a89060 70%, #807040 100%), radial-gradient(circle at 30% 40%, #fff8e0 0%, transparent 60%);
}
.scn-hamlet-cannot-play-me .pipe-broken {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #c0a070 0%, #806040 50%, #604020 100%);
  border-radius: 4px;
  transform: rotate(45deg) scale(0.8);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: hcp-pipe 3s ease-in-out infinite alternate;
}
.scn-hamlet-cannot-play-me .hamlet-finger {
  position: absolute; bottom: 30%; left: 52%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 30%;
  transform-origin: bottom center;
  animation: hcp-finger 1s ease-in-out infinite;
}
.scn-hamlet-cannot-play-me .guil-face {
  position: absolute; bottom: 25%; left: 15%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 50% 50% 45% 45%;
  filter: blur(1px);
  animation: hcp-face 4s ease-in-out infinite;
}
.scn-hamlet-cannot-play-me .cloud-shape {
  position: absolute; top: 12%; right: 20%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.3;
  animation: hcp-cloud 20s linear infinite;
}
.scn-hamlet-cannot-play-me .cloud-reflection {
  position: absolute; bottom: 50%; left: 10%; width: 80px; height: 30px;
  background: linear-gradient(180deg, rgba(240,224,192,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hcp-cloud 25s linear infinite reverse;
}
.scn-hamlet-cannot-play-me .floor-tile {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 12%;
  background: repeating-linear-gradient(90deg, #8b7355 0px, #8b7355 40px, #a08060 40px, #a08060 80px);
  border-radius: 2px;
}
.scn-hamlet-cannot-play-me .wall-panel {
  position: absolute; top: 0; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #d4b888 0%, #b89868 100%);
  border: 2px solid #6b4226;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
@keyframes hcp-pipe { 0% { transform: rotate(45deg) scale(0.8) translateY(0); } 50% { transform: rotate(50deg) scale(0.85) translateY(-2px); } 100% { transform: rotate(45deg) scale(0.8) translateY(0); } }
@keyframes hcp-finger { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hcp-face { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hcp-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* ===== hamlet-witching-time (dark, dark) ===== */
.scn-hamlet-witching-time {
  background: linear-gradient(180deg, #0a0a1e 0%, #121230 30%, #1a1a3e 70%, #0d0d20 100%), radial-gradient(ellipse at 50% 0%, #1a1a3e 0%, transparent 70%);
}
.scn-hamlet-witching-time .churchyard-mound {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 80% 80% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
  animation: hwt-mound 8s ease-in-out infinite alternate;
}
.scn-hamlet-witching-time .yawning-gate {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, transparent 70%);
  border: 2px solid #2a2a2a;
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  animation: hwt-gate 12s ease-in-out infinite;
}
.scn-hamlet-witching-time .hell-breath {
  position: absolute; bottom: 40%; left: 45%; width: 60px; height: 40px;
  background: radial-gradient(circle, rgba(50,20,20,0.6) 0%, transparent 100%);
  filter: blur(10px);
  animation: hwt-breath 6s ease-in-out infinite alternate;
}
.scn-hamlet-witching-time .distant-spire {
  position: absolute; top: 10%; left: 15%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: hwt-spire 20s ease-in-out infinite;
}
.scn-hamlet-witching-time .moon-sickly {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #a0a0b0 0%, #606070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,160,176,0.3);
  animation: hwt-moon 15s ease-in-out infinite alternate;
}
.scn-hamlet-witching-time .bat-swarm {
  position: absolute; top: 30%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(20,20,30,0.9) 0%, transparent 100%);
  filter: blur(4px);
  animation: hwt-bats 5s ease-in-out infinite;
}
.scn-hamlet-witching-time .wilting-flower {
  position: absolute; bottom: 28%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: hwt-flower 4s ease-in-out infinite;
}
@keyframes hwt-mound { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hwt-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hwt-breath { 0% { transform: scale(0.5); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(0.5); opacity: 0.3; } }
@keyframes hwt-spire { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0deg); } }
@keyframes hwt-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(3px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes hwt-bats { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px, -8px) rotate(15deg); } 50% { transform: translate(5px, -15px) rotate(-10deg); } 75% { transform: translate(-8px, -5px) rotate(20deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes hwt-flower { 0% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }

/* ---------- Scene: lucianus-enters-murder ---------- */
.scn-lucianus-enters-murder {
  background: linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #b08050 0%, transparent 60%);
}
.scn-lucianus-enters-murder .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-lucianus-enters-murder .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-lucianus-enters-murder .victim {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-lucianus-enters-murder .murderer {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lu-murderer 4s ease-in-out infinite;
}
.scn-lucianus-enters-murder .dagger {
  position: absolute; bottom: 35%; left: 52%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c0b0a0 0%, #706050 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(20deg);
  box-shadow: 0 0 4px rgba(192,176,160,0.5);
  animation: lu-dagger 3s ease-in-out infinite alternate;
}
.scn-lucianus-enters-murder .shadow-left {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  filter: blur(8px);
}
.scn-lucianus-enters-murder .shadow-right {
  position: absolute; bottom: 0; right: 0; width: 40%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  filter: blur(8px);
  animation: lu-shadow 8s ease-in-out infinite alternate;
}
.scn-lucianus-enters-murder .candle {
  position: absolute; top: 15%; left: 50%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #d0a050 0%, #806030 80%, #403010 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px #d0a050;
}
.scn-lucianus-enters-murder .candle-glow {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 80px;
  background: radial-gradient(circle, rgba(208,160,80,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: lu-glow 3s ease-in-out infinite alternate;
}
@keyframes lu-murderer {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes lu-dagger {
  0% { transform: rotate(20deg) scaleY(1); }
  50% { transform: rotate(25deg) scaleY(1.1); }
  100% { transform: rotate(20deg) scaleY(1); }
}
@keyframes lu-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes lu-glow {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.2); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
}

/* ---------- Scene: poison-poured-in-ear ---------- */
.scn-poison-poured-in-ear {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 80%);
}
.scn-poison-poured-in-ear .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}
.scn-poison-poured-in-ear .garden-wall {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-poison-poured-in-ear .king {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
}
.scn-poison-poured-in-ear .poisoner {
  position: absolute; bottom: 27%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: po-poisoner 5s ease-in-out infinite;
}
.scn-poison-poured-in-ear .bottle {
  position: absolute; bottom: 40%; left: 52%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #80a050 0%, #506030 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(40deg);
  box-shadow: 0 0 6px  2px #80a050;
  animation: po-bottle 4s ease-in-out infinite alternate;
}
.scn-poison-poured-in-ear .ear {
  position: absolute; bottom: 35%; left: 38%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-10deg);
}
.scn-poison-poured-in-ear .vial-drip {
  position: absolute; bottom: 42%; left: 52%; width: 2px; height: 20px;
  background: linear-gradient(180deg, transparent 0%, #80a050 50%, #506030 100%);
  border-radius: 50%;
  animation: po-drip 2s ease-in-out infinite;
}
.scn-poison-poured-in-ear .moonlight {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(150,150,200,0.2) 0%, transparent 60%);
  filter: blur(10px);
  animation: po-moonlight 10s ease-in-out infinite alternate;
}
@keyframes po-poisoner {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes po-bottle {
  0% { transform: rotate(40deg) scale(1); opacity: 1; }
  50% { transform: rotate(35deg) scale(1.05); opacity: 0.9; }
  100% { transform: rotate(40deg) scale(1); opacity: 1; }
}
@keyframes po-drip {
  0% { height: 20px; opacity: 1; }
  50% { height: 30px; opacity: 0.5; }
  100% { height: 20px; opacity: 1; }
}
@keyframes po-moonlight {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* ---------- Scene: claudius-rises-play-stopped ---------- */
.scn-claudius-rises-play-stopped {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #5a4a3a 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 50%, #b09070 0%, transparent 70%);
}
.scn-claudius-rises-play-stopped .throne {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-claudius-rises-play-stopped .king-standing {
  position: absolute; bottom: 45%; left: 42%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-king 2s ease-in-out infinite alternate;
}
.scn-claudius-rises-play-stopped .queen {
  position: absolute; bottom: 25%; left: 50%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: cl-queen 3s ease-in-out infinite;
}
.scn-claudius-rises-play-stopped .courtier {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: cl-courtier 4s ease-in-out infinite;
}
.scn-claudius-rises-play-stopped .torch {
  position: absolute; top: 12%; left: 20%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d0a050 0%, #806030 100%);
  border-radius: 3px;
  box-shadow: 0 0 8px 4px #d0a050;
  animation: cl-torch 1.5s ease-in-out infinite alternate;
}
.scn-claudius-rises-play-stopped .torch-glow {
  position: absolute; top: 8%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(208,160,80,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: cl-torch-glow 2s ease-in-out infinite alternate;
}
.scn-claudius-rises-play-stopped .shadow-spread {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: cl-shadow 3s ease-in-out infinite alternate;
}
.scn-claudius-rises-play-stopped .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%);
  border-radius: 0 20% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.4);
  animation: cl-curtain 6s ease-in-out infinite alternate;
}
.scn-claudius-rises-play-stopped .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%);
  border-radius: 20% 0 0 0;
  box-shadow: -4px 0 10px rgba(0,0,0,0.4);
  animation: cl-curtain 6s ease-in-out infinite alternate-reverse;
}
@keyframes cl-king {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes cl-queen {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(-4px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes cl-courtier {
  0% { transform: rotate(8deg) translateX(0); }
  50% { transform: rotate(6deg) translateX(6px); }
  100% { transform: rotate(8deg) translateX(0); }
}
@keyframes cl-torch {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes cl-torch-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes cl-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes cl-curtain {
  0% { width: 15%; }
  50% { width: 18%; }
  100% { width: 15%; }
}

/* ---------- Scene: hamlet-triumphant-with-horatio ---------- */
.scn-hamlet-triumphant-with-horatio {
  background: linear-gradient(180deg, #6a5a3a 0%, #8a7a5a 30%, #5a4a2a 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 20%, #c0a070 0%, transparent 60%);
}
.scn-hamlet-triumphant-with-horatio .floor-gold {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-hamlet-triumphant-with-horatio .wall-warm {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 0 0 15% 15%;
}
.scn-hamlet-triumphant-with-horatio .hamlet {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ha-hamlet 3s ease-in-out infinite;
}
.scn-hamlet-triumphant-with-horatio .horatio {
  position: absolute; bottom: 28%; left: 50%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ha-horatio 3.5s ease-in-out infinite;
}
.scn-hamlet-triumphant-with-horatio .wreath {
  position: absolute; top: 22%; left: 47%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #6a8a3a 0%, #8a6a3a 50%, #6a8a3a 100%);
  border-radius: 50%;
  transform: rotate(-15deg);
  box-shadow: 0 0 8px rgba(106,138,58,0.5);
  animation: ha-wreath 4s ease-in-out infinite alternate;
}
.scn-hamlet-triumphant-with-horatio .light-rays {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: ha-rays 6s ease-in-out infinite alternate;
}
.scn-hamlet-triumphant-with-horatio .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(255,208,128,0.8);
  animation: ha-sparkle 2s ease-in-out infinite;
}
.scn-hamlet-triumphant-with-horatio .sparkle-1 {
  top: 15%; left: 30%;
  animation-delay: 0s;
}
.scn-hamlet-triumphant-with-horatio .sparkle-2 {
  top: 25%; left: 55%;
  animation-delay: 0.7s;
}
.scn-hamlet-triumphant-with-horatio .sparkle-3 {
  top: 10%; left: 60%;
  animation-delay: 1.4s;
}
@keyframes ha-hamlet {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-4px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ha-horatio {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(6px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes ha-wreath {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(-15deg) scaleX(1); }
}
@keyframes ha-rays {
  0% { opacity: 0.4; }
  50% { opacity: 1; }
  100% { opacity: 0.4; }
}
@keyframes ha-sparkle {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.3; }
  100% { transform: scale(1); opacity: 1; }
}

/* laertes-to-be-organ - tense bright interior */
.scn-laertes-to-be-organ {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #c09a70 30%, #7a5a3a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #ffeedd 0%, transparent 60%);
}
.scn-laertes-to-be-organ .chamber-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b08860 0%, #a07050 50%, #805030 100%);
  animation: lo-shimmer 12s ease-in-out infinite alternate;
}
.scn-laertes-to-be-organ .organ-pipes {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 50%;
  background: repeating-linear-gradient(90deg, #d4b080 0px, #d4b080 8px, #a08060 8px, #a08060 10px);
  border-radius: 4px 4px 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.3);
  animation: lo-resonate 4s ease-in-out infinite;
}
.scn-laertes-to-be-organ .organ-keyboard {
  position: absolute; bottom: 8%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lo-keypress 2s ease-in-out infinite alternate;
}
.scn-laertes-to-be-organ .shadow-figure {
  position: absolute; bottom: 8%; left: 60%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lo-figure 6s ease-in-out infinite;
}
.scn-laertes-to-be-organ .candle-glow {
  position: absolute; bottom: 14%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd68a 0%, #e0a060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 10px #e0a060, 0 0 40px 20px rgba(224,160,96,0.3);
  animation: lo-flicker 1.5s ease-in-out infinite alternate;
}
.scn-laertes-to-be-organ .smoke {
  position: absolute; bottom: 24%; left: 28%; width: 40px; height: 10px;
  background: rgba(200,180,160,0.15); filter: blur(8px); border-radius: 50%;
}
.scn-laertes-to-be-organ .wisps {
  animation: lo-drift-up 8s linear infinite;
}
.scn-laertes-to-be-organ .wisps2 {
  left: 32%; bottom: 20%; width: 30px; height: 8px;
  animation: lo-drift-up 11s linear infinite;
  animation-delay: 1s;
}
@keyframes lo-shimmer { 0% { opacity: 0.7; filter: brightness(0.9); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.8; filter: brightness(0.95); } }
@keyframes lo-resonate { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); opacity: 0.95; } }
@keyframes lo-keypress { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lo-figure { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes lo-flicker { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px #e0a060; } 50% { opacity: 1; box-shadow: 0 0 25px 10px #ffcc80; } 100% { opacity: 0.8; box-shadow: 0 0 18px 6px #e0a060; } }
@keyframes lo-drift-up { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* norman-horseman-lamond - calm bright interior */
.scn-norman-horseman-lamond {
  background:
    linear-gradient(180deg, #f5eed5 0%, #e0d4b8 40%, #b8a88a 70%, #7a6a4e 100%),
    radial-gradient(ellipse at 50% 0%, #fff9e6 0%, transparent 60%);
}
.scn-norman-horseman-lamond .stable-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #a08860 0%, #c0a880 50%, #a08860 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
  animation: nh-warm 20s ease-in-out infinite alternate;
}
.scn-norman-horseman-lamond .horse-silhouette {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 30% 50% / 60% 50% 50% 40%;
  animation: nh-breathe 6s ease-in-out infinite;
}
.scn-norman-horseman-lamond .rider-back {
  position: absolute; bottom: 35%; left: 43%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(10deg);
  animation: nh-rock 8s ease-in-out infinite;
}
.scn-norman-horseman-lamond .mane-flow {
  position: absolute; bottom: 28%; left: 27%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 20% 40% 30%;
  animation: nh-blow 9s ease-in-out infinite alternate;
}
.scn-norman-horseman-lamond .drifting-hay {
  position: absolute; bottom: 0; left: 0; width: 20px; height: 6px;
  background: #c0a060; border-radius: 2px; filter: blur(1px);
  animation: nh-hay 15s linear infinite;
}
.scn-norman-horseman-lamond .hay2 {
  left: 10%; animation-delay: 5s; width: 15px; height: 4px;
  animation: nh-hay 18s linear infinite;
}
@keyframes nh-warm { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.98); } }
@keyframes nh-breathe { 0%, 100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(1px); } }
@keyframes nh-rock { 0% { transform: rotate(10deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(10deg); } }
@keyframes nh-blow { 0% { transform: translateX(0); } 50% { transform: translateX(3px); opacity: 0.8; } 100% { transform: translateX(0); } }
@keyframes nh-hay { 0% { transform: translateX(-20px) rotate(0); } 50% { transform: translateX(60px) rotate(45deg); } 100% { transform: translateX(120px) rotate(90deg); } }

/* lamond-praised-laertes - calm bright interior */
.scn-lamond-praised-laertes {
  background:
    linear-gradient(180deg, #e8dfc8 0%, #d4c4a8 40%, #b8a08a 70%, #8a7058 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-lamond-praised-laertes .practice-room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c0a890 0%, #d8c0a8 50%, #c0a890 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08);
  animation: lp-soft 15s ease-in-out infinite alternate;
}
.scn-lamond-praised-laertes .rapier-blade {
  position: absolute; bottom: 15%; left: 45%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #e0e0e0 0%, #c0c0c0 50%, #a0a0a0 100%);
  border-radius: 2px; box-shadow: 0 0 8px 2px rgba(200,200,200,0.3);
  transform-origin: bottom center; animation: lp-thrust 4s ease-in-out infinite;
}
.scn-lamond-praised-laertes .rapier-hilt {
  position: absolute; bottom: 28%; left: 44%; width: 16px; height: 10px;
  background: linear-gradient(135deg, #b08a4a 0%, #8a6a2a 100%);
  border-radius: 4px 4px 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(5deg); animation: lp-guard 2s ease-in-out infinite alternate;
}
.scn-lamond-praised-laertes .hand-profile {
  position: absolute; bottom: 28%; left: 46%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg); animation: lp-grip 3s ease-in-out infinite;
}
.scn-lamond-praised-laertes .dust-motes {
  position: absolute; top: 20%; left: 20%; width: 6px; height: 6px;
  background: rgba(255,240,200,0.2); border-radius: 50%; filter: blur(2px);
  animation: lp-motepath 30s linear infinite;
}
.scn-lamond-praised-laertes .motes2 {
  left: 70%; top: 40%; animation-delay: 10s; width: 4px; height: 4px;
  animation: lp-motepath 45s linear infinite;
}
@keyframes lp-soft { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.02); } 100% { filter: brightness(0.98); } }
@keyframes lp-thrust { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes lp-guard { 0% { transform: rotate(5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(5deg); } }
@keyframes lp-grip { 0%, 100% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } }
@keyframes lp-motepath { 0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 25% { transform: translate(30px, -20px) scale(1.3); opacity: 0.3; } 50% { transform: translate(60px, 10px) scale(0.8); opacity: 0.1; } 75% { transform: translate(90px, -10px) scale(1.1); opacity: 0.25; } 100% { transform: translate(120px, 0) scale(1); opacity: 0.2; } }

/* claudius-questions-loves-father - tense bright interior */
.scn-claudius-questions-loves-father {
  background:
    linear-gradient(180deg, #d4bfa0 0%, #c0a080 30%, #8a6a4a 70%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 70%);
}
.scn-claudius-questions-loves-father .throne-room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #b09878 0%, #d0b898 50%, #b09878 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
  animation: cq-pulse 8s ease-in-out infinite alternate;
}
.scn-claudius-questions-loves-father .throne-back {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: cq-rigid 6s ease-in-out infinite;
}
.scn-claudius-questions-loves-father .king-silhouette {
  position: absolute; bottom: 10%; left: 30%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cq-king 5s ease-in-out infinite;
}
.scn-claudius-questions-loves-father .laertes-silhouette {
  position: absolute; bottom: 10%; right: 30%; width: 24px; height: 62px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cq-laertes 5s ease-in-out infinite;
  animation-delay: 0.2s;
}
.scn-claudius-questions-loves-father .shadow-crown {
  position: absolute; bottom: 48%; left: 31%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  z-index: 10; animation: cq-crown 3s ease-in-out infinite alternate;
}
.scn-claudius-questions-loves-father .gold-ray {
  position: absolute; bottom: 50%; left: 38%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #ffd080 0%, transparent 100%);
  transform: rotate(-5deg); animation: cq-ray 2s ease-in-out infinite alternate;
}
.scn-claudius-questions-loves-father .ray2 {
  left: 42%; height: 30px; transform: rotate(5deg);
  animation: cq-ray 2.3s ease-in-out infinite alternate;
  animation-delay: 0.4s;
}
@keyframes cq-pulse { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes cq-rigid { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes cq-king { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(2deg); } }
@keyframes cq-laertes { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-2deg); } }
@keyframes cq-crown { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cq-ray { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }

/* Scene: hamlet-no-conscience (tense, bright interior) */
.scn-hamlet-no-conscience {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%),
    radial-gradient(ellipse at 60% 30%, #ffee88 0%, transparent 60%);
}
.scn-hamlet-no-conscience .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8a878 0%, #b89868 100%); }
.scn-hamlet-no-conscience .floor { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #a07848 0%, #7a5838 100%); border-radius: 20% 20% 0 0; transform: perspective(400px) rotateX(10deg); }
.scn-hamlet-no-conscience .desk { position:absolute; bottom:25%; left:25%; width:40%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-hamlet-no-conscience .letter { position:absolute; bottom:30%; left:38%; width:12%; height:7%; background: #fff8e7; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-5deg); animation: hnc-letter 3s ease-in-out infinite; }
.scn-hamlet-no-conscience .hand { position:absolute; bottom:26%; left:35%; width:10%; height:14%; background: linear-gradient(180deg, #d4a074 0%, #b08054 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hnc-hand 2s ease-in-out infinite; }
.scn-hamlet-no-conscience .shadow { position:absolute; bottom:18%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: hnc-shadow 4s ease-in-out infinite alternate; }
.scn-hamlet-no-conscience .lamp-glow { position:absolute; top:10%; left:50%; width:20%; height:30%; background: radial-gradient(circle, #fff4c0 0%, transparent 70%); mix-blend-mode: screen; animation: hnc-glow 3s ease-in-out infinite alternate; }

@keyframes hnc-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hnc-hand { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes hnc-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes hnc-glow { 0% { opacity: 0.7; transform: scale(1) translate(-50%, 0); } 50% { opacity: 1; transform: scale(1.1) translate(-50%, -2px); } 100% { opacity: 0.7; transform: scale(1) translate(-50%, 0); } }

/* Scene: hamlet-sorry-for-laertes (calm, bright interior) */
.scn-hamlet-sorry-for-laertes {
  background:
    linear-gradient(180deg, #efe6d8 0%, #d6c8b8 60%),
    radial-gradient(ellipse at 30% 20%, #ffffff 0%, transparent 50%);
}
.scn-hamlet-sorry-for-laertes .bg-window { position:absolute; top:5%; left:15%; width:40%; height:50%; background: linear-gradient(180deg, #cde0e8 0%, #b0c8d8 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,255,255,.3); }
.scn-hamlet-sorry-for-laertes .curtain-left { position:absolute; top:0; left:10%; width:8%; height:60%; background: linear-gradient(180deg, #7a889a 0%, #5a6878 100%); border-radius: 0 20% 20% 0; animation: hsl-curtain 12s ease-in-out infinite alternate; transform-origin: top; }
.scn-hamlet-sorry-for-laertes .curtain-right { position:absolute; top:0; right:10%; width:8%; height:60%; background: linear-gradient(180deg, #7a889a 0%, #5a6878 100%); border-radius: 20% 0 0 20%; animation: hsl-curtain 12s ease-in-out infinite alternate-reverse; transform-origin: top; }
.scn-hamlet-sorry-for-laertes .figure-seated { position:absolute; bottom:20%; left:30%; width:16%; height:30%; background: linear-gradient(180deg, #a08870 0%, #786050 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; animation: hsl-figure 6s ease-in-out infinite; }
.scn-hamlet-sorry-for-laertes .chair { position:absolute; bottom:18%; left:28%; width:20%; height:25%; background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%); border-radius: 10% 10% 20% 20%; }
.scn-hamlet-sorry-for-laertes .table { position:absolute; bottom:22%; left:55%; width:20%; height:6%; background: linear-gradient(180deg, #a08060 0%, #785840 100%); border-radius: 4px; }
.scn-hamlet-sorry-for-laertes .book { position:absolute; bottom:28%; left:58%; width:8%; height:6%; background: #a06040; border-radius: 2px; transform: rotate(10deg); animation: hsl-book 5s ease-in-out infinite; }
.scn-hamlet-sorry-for-laertes .candle { position:absolute; bottom:26%; left:60%; width:3%; height:12%; background: linear-gradient(180deg, #eee0c8 0%, #c0a878 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #ffd680; animation: hsl-candle 4s ease-in-out infinite alternate; }

@keyframes hsl-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes hsl-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hsl-book { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(1px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes hsl-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(1); } }

/* Scene: osric-enters (funny, bright interior) */
.scn-osric-enters {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 40%),
    repeating-linear-gradient(45deg, rgba(255,215,150,0.2) 0px, rgba(255,215,150,0.2) 10px, transparent 10px, transparent 20px);
}
.scn-osric-enters .bg-stripes { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #c0a880 0px, #c0a880 15px, #e0d0b8 15px, #e0d0b8 30px); opacity:0.3; }
.scn-osric-enters .ground-checker { position:absolute; bottom:0; left:0; right:0; height:35%; background: repeating-conic-gradient(#b8a888 0% 25%, #e0d0b8 0% 50%) 0 0 / 40px 40px; opacity:0.5; }
.scn-osric-enters .figure-bow { position:absolute; bottom:25%; left:40%; width:18%; height:40%; background: linear-gradient(180deg, #c08858 0%, #886848 100%); border-radius: 40% 40% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: oe-bow 3s ease-in-out infinite; }
.scn-osric-enters .hat-large { position:absolute; bottom:58%; left:36%; width:26%; height:12%; background: #403020; border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: oe-hat 4s ease-in-out infinite; }
.scn-osric-enters .fan { position:absolute; bottom:30%; left:55%; width:10%; height:15%; background: radial-gradient(circle at 50% 100%, #e8c8a0 0%, #c09870 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: oe-fan 2.5s ease-in-out infinite; }
.scn-osric-enters .collar { position:absolute; bottom:38%; left:38%; width:22%; height:8%; background: #f0e8d8; border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: oe-collar 3.5s ease-in-out infinite alternate; }
.scn-osric-enters .glove { position:absolute; bottom:28%; left:60%; width:8%; height:6%; background: #d0b090; border-radius: 30% 30% 20% 20%; animation: oe-glove 3s ease-in-out infinite; }

@keyframes oe-bow { 0% { transform: rotate(0deg); } 30% { transform: rotate(-20deg); } 70% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes oe-hat { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(-5deg); } 70% { transform: translateY(3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oe-fan { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.2); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes oe-collar { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.1) scaleY(1.05); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes oe-glove { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: hamlet-bonnet-banter (funny, bright interior) */
.scn-hamlet-bonnet-banter {
  background:
    linear-gradient(180deg, #f2e8d8 0%, #dcc8b0 50%),
    radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 60%);
}
.scn-hamlet-bonnet-banter .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d0bea8 100%); }
.scn-hamlet-bonnet-banter .figure-1 { position:absolute; bottom:20%; left:15%; width:20%; height:45%; background: linear-gradient(180deg, #b89070 0%, #907050 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: hbb-fig1 4s ease-in-out infinite; }
.scn-hamlet-bonnet-banter .figure-2 { position:absolute; bottom:20%; right:15%; width:20%; height:45%; background: linear-gradient(180deg, #a08060 0%, #785840 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: hbb-fig2 4s ease-in-out infinite; }
.scn-hamlet-bonnet-banter .bonnet { position:absolute; bottom:55%; left:35%; width:25%; height:15%; background: #c08050; border-radius: 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: hbb-bonnet 5s ease-in-out infinite; }
.scn-hamlet-bonnet-banter .hand-left { position:absolute; bottom:45%; left:28%; width:8%; height:12%; background: #d0a880; border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: hbb-handl 3s ease-in-out infinite; }
.scn-hamlet-bonnet-banter .hand-right { position:absolute; bottom:45%; right:28%; width:8%; height:12%; background: #c09870; border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: hbb-handr 3s ease-in-out infinite; }
.scn-hamlet-bonnet-banter .glow-spot { position:absolute; top:20%; left:40%; width:20%; height:30%; background: radial-gradient(circle, #fff8d0 0%, transparent 70%); mix-blend-mode: screen; animation: hbb-glow 3s ease-in-out infinite alternate; }

@keyframes hbb-fig1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hbb-fig2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hbb-bonnet { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(15px) rotate(-10deg); } 50% { transform: translateX(30px) rotate(0deg); } 75% { transform: translateX(15px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hbb-handl { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes hbb-handr { 0% { transform: rotate(0deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(0deg); } }
@keyframes hbb-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }

.scn-claudius-letter-to-england {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 40%, #3a2a4e 100%), radial-gradient(ellipse at 70% 20%, #4a3a5e 0%, transparent 60%);
}
.scn-claudius-letter-to-england .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1e 100%); opacity: 0.9; animation: c2-wall 20s ease-in-out infinite;
}
.scn-claudius-letter-to-england .desk {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,0.8); transform: skewX(-3deg); animation: c2-desk 8s ease-in-out infinite alternate;
}
.scn-claudius-letter-to-england .letter {
  position: absolute; bottom: 28%; left: 30%; width: 20%; height: 14%; background: linear-gradient(135deg, #efe0c0 0%, #c0a070 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-2deg); animation: c2-letter 10s ease-in-out infinite;
}
.scn-claudius-letter-to-england .seal {
  position: absolute; bottom: 32%; left: 44%; width: 8%; height: 8%; background: radial-gradient(circle, #c8553d 0%, #a0461a 60%); border-radius: 50%; box-shadow: 0 0 12px 2px rgba(200,85,61,0.6); animation: c2-seal 6s ease-in-out infinite;
}
.scn-claudius-letter-to-england .candle {
  position: absolute; bottom: 35%; left: 55%; width: 4%; height: 20%; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 50% / 10%; box-shadow: 0 0 20px 8px #ffd080; animation: c2-candle 4s ease-in-out infinite alternate;
}
.scn-claudius-letter-to-england .shadow-figure {
  position: absolute; bottom: 0; right: 20%; width: 30%; height: 70%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: bottom right; animation: c2-figure 12s ease-in-out infinite;
}
.scn-claudius-letter-to-england .dust {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 30%, rgba(255,240,200,0.15) 0%, transparent 40%); animation: c2-dust 15s linear infinite;
}
@keyframes c2-wall { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes c2-desk { 0% { transform: skewX(-2deg) translateY(0) } 50% { transform: skewX(-4deg) translateY(-2px) } 100% { transform: skewX(-3deg) translateY(0) } }
@keyframes c2-letter { 0% { transform: rotate(-1deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes c2-seal { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(15deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes c2-candle { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.9; transform: scaleY(0.95) } }
@keyframes c2-figure { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(2deg) translateX(-5px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes c2-dust { 0% { opacity: 0.3 } 50% { opacity: 0.1 } 100% { opacity: 0.3 } }

.scn-claudius-death-warrant {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a1a2a 30%, #3a2a3a 100%), radial-gradient(ellipse at 30% 80%, #4a3a4a 0%, transparent 60%);
}
.scn-claudius-death-warrant .throne-back {
  position: absolute; top: 0; left: 20%; width: 60%; height: 70%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% / 30%; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); animation: dw-throne-back 15s ease-in-out infinite alternate;
}
.scn-claudius-death-warrant .throne-seat {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 20%; background: linear-gradient(135deg, #5a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,0.7); transform: perspective(400px) rotateX(10deg); animation: dw-throne-seat 12s ease-in-out infinite;
}
.scn-claudius-death-warrant .warrant {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 12%; background: linear-gradient(135deg, #efe0c0 0%, #b0a080 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: rotate(3deg); animation: dw-warrant 8s ease-in-out infinite;
}
.scn-claudius-death-warrant .seal-red {
  position: absolute; bottom: 26%; left: 48%; width: 6%; height: 6%; background: radial-gradient(circle, #a0461a 0%, #702243 60%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(160,70,26,0.7); animation: dw-seal 5s ease-in-out infinite alternate;
}
.scn-claudius-death-warrant .hand {
  position: absolute; bottom: 20%; left: 38%; width: 12%; height: 20%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(10deg); transform-origin: bottom left; animation: dw-hand 6s ease-in-out infinite;
}
.scn-claudius-death-warrant .candle-glow {
  position: absolute; bottom: 30%; right: 30%; width: 8%; height: 25%; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 50% / 10%; box-shadow: 0 0 40px 20px #ffa040; animation: dw-candle 4s ease-in-out infinite alternate;
}
.scn-claudius-death-warrant .curtain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, #2a1a2a 0%, transparent 40%, transparent 60%, #2a1a2a 100%); opacity: 0.6; animation: dw-curtain 20s ease-in-out infinite;
}
@keyframes dw-throne-back { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes dw-throne-seat { 0% { transform: perspective(400px) rotateX(8deg) } 50% { transform: perspective(400px) rotateX(12deg) } 100% { transform: perspective(400px) rotateX(10deg) } }
@keyframes dw-warrant { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes dw-seal { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.08) rotate(20deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes dw-hand { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) scale(1.02) } 100% { transform: rotate(10deg) } }
@keyframes dw-candle { 0% { opacity: 0.8; transform: scaleY(0.95) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.9; transform: scaleY(1) } }
@keyframes dw-curtain { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

.scn-fortinbras-marches {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8f0 30%, #f0e8d0 100%), radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 70%);
}
.scn-fortinbras-marches .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%; background: linear-gradient(180deg, #c0e0ff 0%, #e0f0ff 100%); animation: fb-sky 20s ease-in-out infinite alternate;
}
.scn-fortinbras-marches .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6a8a6a 0%, #3a5a3a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: fb-hills 25s ease-in-out infinite;
}
.scn-fortinbras-marches .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 10% 20% 0 0; transform: scale(1.05); box-shadow: inset 0 8px 30px rgba(0,0,0,0.3); animation: fb-ground 30s ease-in-out infinite;
}
.scn-fortinbras-marches .soldier-1 {
  position: absolute; bottom: 18%; left: 15%; width: 6%; height: 20%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: fb-soldier1 4s ease-in-out infinite alternate;
}
.scn-fortinbras-marches .soldier-2 {
  position: absolute; bottom: 18%; left: 30%; width: 6%; height: 20%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: fb-soldier2 4s ease-in-out infinite alternate; animation-delay: -1s;
}
.scn-fortinbras-marches .soldier-3 {
  position: absolute; bottom: 18%; right: 25%; width: 6%; height: 20%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: fb-soldier3 4s ease-in-out infinite alternate; animation-delay: -2s;
}
.scn-fortinbras-marches .banner {
  position: absolute; bottom: 22%; left: 18%; width: 4%; height: 30%; background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%); transform: rotate(-5deg); transform-origin: bottom center; border-radius: 0 0 20% 20%; animation: fb-banner 6s ease-in-out infinite;
}
.scn-fortinbras-marches .spear {
  position: absolute; bottom: 22%; left: 10%; width: 2%; height: 40%; background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%); transform: rotate(3deg); border-radius: 0 0 10% 10%; animation: fb-spear 6s ease-in-out infinite alternate;
}
@keyframes fb-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fb-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes fb-ground { 0% { transform: scale(1.05) translateY(0) } 50% { transform: scale(1.03) translateY(-2px) } 100% { transform: scale(1.05) translateY(0) } }
@keyframes fb-soldier1 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fb-soldier2 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fb-soldier3 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fb-banner { 0% { transform: rotate(-4deg) } 50% { transform: rotate(-6deg) scale(1.05) } 100% { transform: rotate(-5deg) } }
@keyframes fb-spear { 0% { transform: rotate(2deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(3deg) } }

.scn-hamlet-asks-whose-army {
  background: linear-gradient(180deg, #c0d8e8 0%, #e0e8f0 40%, #f0e8d0 100%), radial-gradient(ellipse at 50% 0%, #fff0e0 0%, transparent 60%);
}
.scn-hamlet-asks-whose-army .sky-warm {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%; background: linear-gradient(180deg, #ffd0a0 0%, #ffe0c0 60%, #f0f0e0 100%); animation: ha-sky 25s ease-in-out infinite alternate;
}
.scn-hamlet-asks-whose-army .campsite {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8a8a6a 0%, #5a5a4a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: ha-campsite 20s ease-in-out infinite;
}
.scn-hamlet-asks-whose-army .tent {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 40%; background: linear-gradient(135deg, #b0a080 0%, #8a7a60 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); box-shadow: 0 6px 20px rgba(0,0,0,0.4); animation: ha-tent 15s ease-in-out infinite;
}
.scn-hamlet-asks-whose-army .flag {
  position: absolute; bottom: 55%; left: 30%; width: 6%; height: 15%; background: linear-gradient(180deg, #c0a040 0%, #8a7020 100%); transform: rotate(-10deg); transform-origin: bottom center; animation: ha-flag 5s ease-in-out infinite alternate;
}
.scn-hamlet-asks-whose-army .hamlet-silhouette {
  position: absolute; bottom: 22%; right: 15%; width: 10%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: ha-hamlet 6s ease-in-out infinite;
}
.scn-hamlet-asks-whose-army .captain {
  position: absolute; bottom: 22%; right: 28%; width: 8%; height: 32%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: ha-captain 6s ease-in-out infinite; animation-delay: -2s;
}
.scn-hamlet-asks-whose-army .fire {
  position: absolute; bottom: 20%; left: 40%; width: 8%; height: 12%; background: radial-gradient(circle, #ff8020 0%, #ff4000 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 15px #ff6020; animation: ha-fire 3s ease-in-out infinite alternate;
}
.scn-hamlet-asks-whose-army .smoke {
  position: absolute; bottom: 30%; left: 42%; width: 20%; height: 30%; background: radial-gradient(ellipse, rgba(200,200,200,0.3) 0%, transparent 70%); transform: translateX(-10px); filter: blur(8px); animation: ha-smoke 10s linear infinite;
}
@keyframes ha-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ha-campsite { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) } }
@keyframes ha-tent { 0% { transform: scaleY(1) rotate(0) } 50% { transform: scaleY(1.02) rotate(1deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes ha-flag { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-10deg) } }
@keyframes ha-hamlet { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ha-captain { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ha-fire { 0% { transform: scale(0.9) rotate(0) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ha-smoke { 0% { transform: translateX(-10px) translateY(0) scale(1); opacity: 0.4 } 50% { transform: translateX(-20px) translateY(-20px) scale(1.5); opacity: 0.2 } 100% { transform: translateX(-10px) translateY(-40px) scale(2); opacity: 0 } }

/* fortinbras-submits-to-uncle */
.scn-fortinbras-submits-to-uncle {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b8967a 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 70%);
}
.scn-fortinbras-submits-to-uncle .throne {
  position: absolute; bottom: 20%; right: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #8b6f47 0%, #5a4024 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  transform: perspective(200px) rotateY(-5deg);
}
.scn-fortinbras-submits-to-uncle .banner-left {
  position: absolute; top: 5%; left: 5%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #a0522d 0%, #7a3b1e 50%, #5c2a12 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  animation: ft1-banner-l 6s ease-in-out infinite alternate;
}
.scn-fortinbras-submits-to-uncle .banner-right {
  position: absolute; top: 5%; right: 5%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #a0522d 0%, #7a3b1e 50%, #5c2a12 100%);
  border-radius: 2px;
  transform: skewX(10deg);
  animation: ft1-banner-r 6s ease-in-out infinite alternate 3s;
}
.scn-fortinbras-submits-to-uncle .kneeler {
  position: absolute; bottom: 20%; left: 20%; width: 30px; 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: ft1-kneel 4s ease-in-out infinite;
}
.scn-fortinbras-submits-to-uncle .crown {
  position: absolute; top: 8%; right: 24%; width: 20px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(255,215,0,0.5);
  animation: ft1-crown 5s ease-in-out infinite alternate;
}
.scn-fortinbras-submits-to-uncle .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-fortinbras-submits-to-uncle .window {
  position: absolute; top: 8%; left: 40%; width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 30%, #f0e6d0 0%, #c8b89a 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: ft1-window 8s ease-in-out infinite alternate;
}
@keyframes ft1-banner-l {
  0% { transform: skewX(-10deg) translateY(0); }
  50% { transform: skewX(-10deg) translateY(4px); }
  100% { transform: skewX(-10deg) translateY(0); }
}
@keyframes ft1-banner-r {
  0% { transform: skewX(10deg) translateY(0); }
  50% { transform: skewX(10deg) translateY(4px); }
  100% { transform: skewX(10deg) translateY(0); }
}
@keyframes ft1-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ft1-crown {
  0% { box-shadow: 0 0 8px 2px rgba(255,215,0,0.4); transform: scale(1); }
  50% { box-shadow: 0 0 20px 6px rgba(255,215,0,0.7); transform: scale(1.05); }
  100% { box-shadow: 0 0 12px 3px rgba(255,215,0,0.5); transform: scale(1); }
}
@keyframes ft1-window {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

/* claudius-accepts-norway-news */
.scn-claudius-accepts-norway-news {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a08870 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e8 0%, transparent 60%);
}
.scn-claudius-accepts-norway-news .king {
  position: absolute; bottom: 22%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: perspective(300px) rotateY(-10deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-claudius-accepts-norway-news .ambassador-left {
  position: absolute; bottom: 18%; left: 15%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(8deg);
  animation: cl1-bow 5s ease-in-out infinite alternate;
}
.scn-claudius-accepts-norway-news .ambassador-right {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-8deg);
  animation: cl1-bow 5s ease-in-out infinite alternate 2.5s;
}
.scn-claudius-accepts-norway-news .table {
  position: absolute; bottom: 12%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 5% 5% 10% 10%;
  transform: perspective(200px) rotateX(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-claudius-accepts-norway-news .document {
  position: absolute; bottom: 22%; left: 46%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c8a8 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: cl1-doc 7s ease-in-out infinite alternate;
}
.scn-claudius-accepts-norway-news .column {
  position: absolute; top: 5%; left: 50%; width: 16px; height: 60%;
  background: linear-gradient(180deg, #c8b89a 0%, #a08870 50%, #806858 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
}
.scn-claudius-accepts-norway-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
@keyframes cl1-bow {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes cl1-doc {
  0% { transform: rotate(5deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(8deg) scale(1.05); opacity: 1; }
  100% { transform: rotate(3deg) scale(1); opacity: 0.9; }
}

/* polonius-brevity-soul-wit */
.scn-polonius-brevity-soul-wit {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b8967a 100%),
              radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-polonius-brevity-soul-wit .polonius {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pb1-fidget 3s ease-in-out infinite;
}
.scn-polonius-brevity-soul-wit .arm {
  position: absolute; bottom: 35%; left: 52%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: left center;
  animation: pb1-gesture 1.5s ease-in-out infinite;
}
.scn-polonius-brevity-soul-wit .hourglass {
  position: absolute; bottom: 10%; right: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a878 0%, #a68858 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pb1-sand 8s linear infinite;
}
.scn-polonius-brevity-soul-wit .lamp {
  position: absolute; top: 25%; left: 10%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #b08040 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3);
  animation: pb1-lamp 4s ease-in-out infinite alternate;
}
.scn-polonius-brevity-soul-wit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-polonius-brevity-soul-wit .wall {
  position: absolute; inset: 0; background: none; /* placeholder for depth */
}
.scn-polonius-brevity-soul-wit .shadow {
  position: absolute; bottom: 12%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: pb1-shadow 3s ease-in-out infinite;
}
@keyframes pb1-fidget {
  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 pb1-gesture {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.1); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes pb1-sand {
  0% { opacity: 0.8; clip-path: inset(0 0 0 0 round 30%); }
  50% { opacity: 0.6; clip-path: inset(30% 0 0 0 round 30%); }
  100% { opacity: 0.8; clip-path: inset(60% 0 0 0 round 30%); }
}
@keyframes pb1-lamp {
  0% { box-shadow: 0 0 12px 4px #c08040; opacity: 0.9; }
  50% { box-shadow: 0 0 24px 8px #d09050; opacity: 1; }
  100% { box-shadow: 0 0 16px 5px #c08040; opacity: 0.9; }
}
@keyframes pb1-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.2) translateX(10px); }
  100% { transform: scaleX(1) translateX(0); }
}

/* polonius-produced-letter */
.scn-polonius-produced-letter {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a08870 100%),
              radial-gradient(ellipse at 40% 30%, #fff8e8 0%, transparent 60%);
}
.scn-polonius-produced-letter .polonius {
  position: absolute; bottom: 15%; left: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pl1-pose 5s ease-in-out infinite;
}
.scn-polonius-produced-letter .letter {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c8a8 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pl1-letter 6s ease-in-out infinite alternate;
}
.scn-polonius-produced-letter .gertrude {
  position: absolute; bottom: 18%; right: 20%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: pl1-gert 8s ease-in-out infinite alternate;
}
.scn-polonius-produced-letter .chair {
  position: absolute; bottom: 6%; right: 18%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 40% 40% / 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-polonius-produced-letter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-polonius-produced-letter .window {
  position: absolute; top: 10%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 40%, #f0e6d0 0%, #c8b89a 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(255,255,200,0.3);
  animation: pl1-window 10s ease-in-out infinite alternate;
}
.scn-polonius-produced-letter .curtain {
  position: absolute; top: 5%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #8b6f47 0%, #5a4024 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: top center;
  animation: pl1-curtain 7s ease-in-out infinite alternate;
}
@keyframes pl1-pose {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pl1-letter {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.9; }
  50% { transform: rotate(-10deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(-15deg) translateY(0); opacity: 0.9; }
}
@keyframes pl1-gert {
  0% { transform: scale(0.95) translateX(0); }
  50% { transform: scale(0.95) translateX(4px); }
  100% { transform: scale(0.95) translateX(0); }
}
@keyframes pl1-window {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes pl1-curtain {
  0% { transform: scaleY(1); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
  50% { transform: scaleY(1.02); border-radius: 25% 25% 10% 10% / 45% 45% 20% 20%; }
  100% { transform: scaleY(1); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
}

/* hamlet-play-is-the-thing – tense, dim interior */
.scn-hamlet-play-is-the-thing {
  background: 
    linear-gradient(180deg, #1a1018 0%, #2a1a1a 35%, #1e1212 70%, #0d0808 100%),
    radial-gradient(ellipse at 50% 0%, #3a2020 0%, transparent 60%);
}
.scn-hamlet-play-is-the-thing .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 60% 60% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-hamlet-play-is-the-thing .curtain-l {
  position: absolute; top: 0; left: 0; width: 50%; height: 100%;
  background: linear-gradient(90deg, #5e1a1d 0%, #3a1010 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  transform-origin: left center;
  animation: hp-curtain 8s ease-in-out infinite;
}
.scn-hamlet-play-is-the-thing .curtain-r {
  position: absolute; top: 0; right: 0; width: 50%; height: 100%;
  background: linear-gradient(-90deg, #5e1a1d 0%, #3a1010 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  transform-origin: right center;
  animation: hp-curtain 8s ease-in-out infinite reverse;
}
.scn-hamlet-play-is-the-thing .actor {
  position: absolute; bottom: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-hamlet-play-is-the-thing .king {
  left: 38%;
  animation: hp-king 5s ease-in-out infinite;
}
.scn-hamlet-play-is-the-thing .queen {
  right: 38%;
  animation: hp-queen 6s ease-in-out infinite;
}
.scn-hamlet-play-is-the-thing .spotlight {
  position: absolute; top: 8%; left: 50%; width: 120px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center bottom, rgba(255,220,180,.3) 0%, transparent 70%);
  animation: hp-spotlight 3s ease-in-out infinite alternate;
}
.scn-hamlet-play-is-the-thing .ghost-shadow {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 60px;
  background: rgba(20,15,20,.5);
  filter: blur(3px);
  border-radius: 50% 50% 40% 40%;
  animation: hp-ghost 7s ease-in-out infinite;
}
.scn-hamlet-play-is-the-thing .floor-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  border-radius: 50%;
  filter: blur(10px);
}
@keyframes hp-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(.95); }
  100% { transform: scaleX(1); }
}
@keyframes hp-king {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp-queen {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp-spotlight {
  0% { opacity: .5; transform: translateX(-50%) scaleY(1); }
  50% { opacity: .75; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: .6; transform: translateX(-50%) scaleY(.95); }
}
@keyframes hp-ghost {
  0% { transform: translateY(0) scaleY(1); opacity: .3; }
  50% { transform: translateY(-8px) scaleY(1.2); opacity: .6; }
  100% { transform: translateY(0) scaleY(1); opacity: .3; }
}

/* claudius-questions-rosencrantz – tense, bright interior */
.scn-claudius-questions-rosencrantz {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 40%, #a88a6a 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-claudius-questions-rosencrantz .throne-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-claudius-questions-rosencrantz .throne {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-claudius-questions-rosencrantz .king-figure {
  position: absolute; bottom: 30%; left: 22%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-king 4s ease-in-out infinite;
}
.scn-claudius-questions-rosencrantz .courtier {
  position: absolute; bottom: 28%; right: 28%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cr-courtier 5s ease-in-out infinite;
}
.scn-claudius-questions-rosencrantz .window-light {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff8e0 0%, transparent 80%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 40px 20px rgba(255,248,224,.2);
  animation: cr-light 6s ease-in-out infinite alternate;
}
.scn-claudius-questions-rosencrantz .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #b8a88a 0px, #b8a88a 20px, #a88a6a 20px, #a88a6a 40px);
  opacity: .3;
}
.scn-claudius-questions-rosencrantz .shadow-pillar {
  position: absolute; top: 0; left: 50%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.3) 100%);
  transform: skewX(-5deg);
}
@keyframes cr-king {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cr-courtier {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cr-light {
  0% { opacity: .7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.08); }
  100% { opacity: .8; transform: scaleX(.95); }
}

/* rosencrantz-reports-hamlet – calm, bright interior */
.scn-rosencrantz-reports-hamlet {
  background:
    linear-gradient(180deg, #e8dfc8 0%, #d0c8b0 50%, #b8a88a 100%),
    radial-gradient(ellipse at 70% 10%, #fffce8 0%, transparent 70%);
}
.scn-rosencrantz-reports-hamlet .archway {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: radial-gradient(ellipse at 50% 0%, #d0c8b0 0%, transparent 60%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -30px 40px rgba(0,0,0,.1);
}
.scn-rosencrantz-reports-hamlet .rosencrantz {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: rr-figure 7s ease-in-out infinite;
}
.scn-rosencrantz-reports-hamlet .guildenstern {
  position: absolute; bottom: 25%; left: 45%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: rr-figure 8s ease-in-out infinite reverse;
}
.scn-rosencrantz-reports-hamlet .chair {
  position: absolute; bottom: 22%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
}
.scn-rosencrantz-reports-hamlet .window-sky {
  position: absolute; top: 8%; right: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #b0d0e0 0%, #a0b8cc 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(255,255,255,.4);
}
.scn-rosencrantz-reports-hamlet .sunbeam {
  position: absolute; top: 8%; right: 18%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rr-sunbeam 12s ease-in-out infinite alternate;
}
.scn-rosencrantz-reports-hamlet .table {
  position: absolute; bottom: 22%; left: 20%; width: 60px; height: 10px;
  background: #6a4a2a;
  border-radius: 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
@keyframes rr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rr-sunbeam {
  0% { opacity: .4; transform: scaleY(1) rotate(0deg); }
  50% { opacity: .7; transform: scaleY(1.05) rotate(2deg); }
  100% { opacity: .5; transform: scaleY(.95) rotate(-1deg); }
}

/* claudius-approves-play – warm, bright interior */
.scn-claudius-approves-play {
  background:
    linear-gradient(180deg, #f5d8a8 0%, #e0b880 40%, #c89050 100%),
    radial-gradient(ellipse at 30% 30%, #fff0c0 0%, transparent 60%);
}
.scn-claudius-approves-play .throne-room-bg {
  position: absolute; inset: 0; height: 100%;
  background: radial-gradient(ellipse at 50% 30%, #f0c888 0%, transparent 70%);
}
.scn-claudius-approves-play .king-seated {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: cap-king 4s ease-in-out infinite;
}
.scn-claudius-approves-play .queen-standing {
  position: absolute; bottom: 27%; right: 22%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: cap-queen 5s ease-in-out infinite;
}
.scn-claudius-approves-play .player-bowing {
  position: absolute; bottom: 22%; left: 55%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cap-bow 3s ease-in-out infinite;
}
.scn-claudius-approves-play .candle {
  position: absolute; bottom: 40%; left: 60%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 8px #f0d0a0;
}
.scn-claudius-approves-play .candle-glow {
  position: absolute; bottom: 38%; left: 59%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%);
  animation: cap-glow 2s ease-in-out infinite alternate;
}
.scn-claudius-approves-play .tapestry {
  position: absolute; top: 0; right: 5%; width: 80px; height: 70%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: cap-tapestry 10s ease-in-out infinite alternate;
}
.scn-claudius-approves-play .copper-vase {
  position: absolute; bottom: 20%; left: 10%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
@keyframes cap-king {
  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 cap-queen {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-1px) rotate(1deg); }
  70% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cap-bow {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(0) rotate(20deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cap-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.3); }
  100% { opacity: .5; transform: scale(1.1); }
}
@keyframes cap-tapestry {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}

.scn-gravedigger-tanner-skull { background: linear-gradient(180deg, #fce4b8 0%, #d4a574 40%, #8b6f4a 70%), radial-gradient(ellipse at 50% 80%, #e0c090 0%, transparent 60%); }
.scn-gravedigger-tanner-skull .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #e8d4b0 0%, #fce4b8 50%, transparent 100%); animation: gts-sky 14s ease-in-out infinite alternate; }
.scn-gravedigger-tanner-skull .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #6a523a 0%, #3e2e1e 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-gravedigger-tanner-skull .mound { position: absolute; bottom: 30%; left: 30%; width: 120px; height: 60px; background: radial-gradient(ellipse at 50% 0%, #7a5c3a 0%, #4a3820 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform: scale(1.2); animation: gts-mound 20s ease-in-out infinite; }
.scn-gravedigger-tanner-skull .skull { position: absolute; bottom: 42%; left: 45%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, #b09870 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transform-origin: bottom center; animation: gts-skull 6s ease-in-out infinite; }
.scn-gravedigger-tanner-skull .figure { position: absolute; bottom: 28%; left: 50%; width: 28px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gts-figure 4s ease-in-out infinite; }
.scn-gravedigger-tanner-skull .shovel { position: absolute; bottom: 32%; left: 58%; width: 8px; height: 60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e1e 100%); border-radius: 20% 20% 10% 10%; transform: rotate(15deg); transform-origin: bottom right; animation: gts-shovel 9s ease-in-out infinite; }
.scn-gravedigger-tanner-skull .grass { position: absolute; bottom: 24%; left: 20%; width: 100px; height: 12px; background: linear-gradient(90deg, #3e5a2a 0%, #5a7a3a 50%, #3e5a2a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: gts-grass 8s ease-in-out infinite alternate; }
@keyframes gts-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gts-mound { 0% { transform: scale(1.2) translateY(0); } 50% { transform: scale(1.22) translateY(-2px); } 100% { transform: scale(1.18) translateY(0); } }
@keyframes gts-skull { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes gts-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gts-shovel { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(14deg); } }
@keyframes gts-grass { 0% { filter: blur(2px) brightness(0.9); } 50% { filter: blur(3px) brightness(1.1); } 100% { filter: blur(2px) brightness(0.95); } }

.scn-yoricks-skull-revealed { background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 50%, #8b7355 100%), radial-gradient(ellipse at 50% 100%, #e0c090 0%, transparent 70%); }
.scn-yoricks-skull-revealed .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #fce4b8 0%, transparent 100%); animation: ysr-sky 12s ease-in-out infinite alternate; }
.scn-yoricks-skull-revealed .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); }
.scn-yoricks-skull-revealed .skull { position: absolute; bottom: 40%; left: 42%; width: 34px; height: 44px; background: radial-gradient(ellipse at 50% 40%, #f5e6d0 0%, #c0a880 100%); border-radius: 45% 45% 50% 50% / 65% 65% 35% 35%; box-shadow: 0 6px 12px rgba(0,0,0,0.25); transform-origin: bottom center; animation: ysr-skull 7s ease-in-out infinite; }
.scn-yoricks-skull-revealed .hand { position: absolute; bottom: 36%; left: 38%; width: 20px; height: 40px; background: linear-gradient(180deg, #d4b892 0%, #a88462 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(20deg); transform-origin: bottom left; animation: ysr-hand 5s ease-in-out infinite; }
.scn-yoricks-skull-revealed .shadow { position: absolute; bottom: 34%; left: 40%; width: 50px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ysr-shadow 6s ease-in-out infinite alternate; }
.scn-yoricks-skull-revealed .grass { position: absolute; bottom: 24%; left: 15%; width: 120px; height: 10px; background: linear-gradient(90deg, #4a6a2a 0%, #6a8a3a 50%, #4a6a2a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: ysr-grass 10s ease-in-out infinite alternate; }
.scn-yoricks-skull-revealed .dust { position: absolute; bottom: 44%; left: 48%; width: 16px; height: 16px; background: radial-gradient(circle, #d4c0a0 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ysr-dust 8s ease-in-out infinite; }
@keyframes ysr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ysr-skull { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.03); } 100% { transform: rotate(-1deg) scale(0.97); } }
@keyframes ysr-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-3px); } 100% { transform: rotate(19deg) translateY(0); } }
@keyframes ysr-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.25; transform: scale(0.95); } }
@keyframes ysr-grass { 0% { filter: blur(3px) brightness(0.9); } 50% { filter: blur(4px) brightness(1.1); } 100% { filter: blur(3px) brightness(0.95); } }
@keyframes ysr-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(-3px, -2px) scale(1.2); opacity: 0.8; } 100% { transform: translate(2px, 1px) scale(0.9); opacity: 0.4; } }

.scn-alas-poor-yorick { background: linear-gradient(180deg, #c9a56b 0%, #8b6f4a 40%, #4a3820 100%), radial-gradient(ellipse at 50% 90%, #5a4a2a 0%, transparent 80%); }
.scn-alas-poor-yorick .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b8a070 0%, #c9a56b 50%, transparent 100%); animation: apy-sky 15s ease-in-out infinite alternate; }
.scn-alas-poor-yorick .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 12px 24px rgba(0,0,0,0.4); }
.scn-alas-poor-yorick .figure { position: absolute; bottom: 32%; left: 45%; width: 34px; height: 90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: apy-figure 5s ease-in-out infinite; }
.scn-alas-poor-yorick .skull { position: absolute; bottom: 48%; left: 52%; width: 36px; height: 46px; background: radial-gradient(ellipse at 50% 40%, #e0c8a8 0%, #a88c68 100%); border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); transform-origin: bottom center; animation: apy-skull 6s ease-in-out infinite; }
.scn-alas-poor-yorick .cape { position: absolute; bottom: 30%; left: 40%; width: 60px; height: 80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 0 60% 30% 40% / 0 80% 20% 40%; transform-origin: top center; animation: apy-cape 7s ease-in-out infinite; }
.scn-alas-poor-yorick .shadow { position: absolute; bottom: 28%; left: 42%; width: 80px; height: 30px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: apy-shadow 8s ease-in-out infinite alternate; }
.scn-alas-poor-yorick .tear { position: absolute; bottom: 52%; left: 48%; width: 6px; height: 8px; background: radial-gradient(circle, #c0e0f0 0%, #80a0b0 100%); border-radius: 50%; filter: blur(1px); animation: apy-tear 3s ease-in-out infinite; }
@keyframes apy-sky { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes apy-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes apy-skull { 0% { transform: rotate(-5deg) scale(1); } 30% { transform: rotate(5deg) scale(1.04); } 70% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(4deg) scale(1.02); } }
@keyframes apy-cape { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes apy-shadow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.15); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes apy-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(6px) scale(0.8); opacity: 0.3; } 100% { transform: translateY(12px) scale(0.5); opacity: 0; } }

.scn-alexander-to-dust { background: linear-gradient(180deg, #d4b892 0%, #b09870 40%, #7a6040 100%), radial-gradient(ellipse at 50% 100%, #b09060 0%, transparent 70%); }
.scn-alexander-to-dust .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #e0c8a8 0%, #d4b892 50%, transparent 100%); animation: atd-sky 13s ease-in-out infinite alternate; }
.scn-alexander-to-dust .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-alexander-to-dust .skull { position: absolute; bottom: 40%; left: 40%; width: 38px; height: 48px; background: radial-gradient(ellipse at 50% 40%, #f0dcc0 0%, #c0a880 100%); border-radius: 45% 45% 50% 50% / 65% 65% 35% 35%; box-shadow: 0 6px 12px rgba(0,0,0,0.25); transform-origin: bottom center; animation: atd-skull 8s ease-in-out infinite; }
.scn-alexander-to-dust .dust-pile { position: absolute; bottom: 30%; left: 38%; width: 60px; height: 30px; background: radial-gradient(ellipse at 50% 0%, #c0a880 0%, #8b7355 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; filter: blur(2px); animation: atd-dust 10s ease-in-out infinite; }
.scn-alexander-to-dust .crown { position: absolute; bottom: 48%; left: 42%; width: 24px; height: 10px; background: linear-gradient(90deg, #d4a050 0%, #b08030 50%, #d4a050 100%); border-radius: 50% 50% 0 0; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: atd-crown 7s ease-in-out infinite; }
.scn-alexander-to-dust .particle-1 { position: absolute; bottom: 34%; left: 46%; width: 8px; height: 8px; background: radial-gradient(circle, #c0a880 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: atd-particle1 5s ease-in-out infinite; }
.scn-alexander-to-dust .particle-2 { position: absolute; bottom: 38%; left: 50%; width: 6px; height: 6px; background: radial-gradient(circle, #b09870 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: atd-particle2 7s ease-in-out infinite; animation-delay: 1.5s; }
.scn-alexander-to-dust .particle-3 { position: absolute; bottom: 36%; left: 44%; width: 10px; height: 10px; background: radial-gradient(circle, #8b7355 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: atd-particle3 9s ease-in-out infinite; animation-delay: 3s; }
@keyframes atd-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes atd-skull { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes atd-dust { 0% { transform: translateY(0) scale(1); filter: blur(2px) brightness(1); } 50% { transform: translateY(-4px) scale(1.05); filter: blur(3px) brightness(1.1); } 100% { transform: translateY(0) scale(0.95); filter: blur(2px) brightness(0.95); } }
@keyframes atd-crown { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes atd-particle1 { 0% { transform: translate(0,0) scale(1); opacity: 0.6; } 50% { transform: translate(-8px, -6px) scale(1.5); opacity: 0.9; } 100% { transform: translate(6px, 4px) scale(0.8); opacity: 0.3; } }
@keyframes atd-particle2 { 0% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(10px, -8px) scale(1.4); opacity: 0.8; } 100% { transform: translate(-6px, 5px) scale(0.9); opacity: 0.2; } }
@keyframes atd-particle3 { 0% { transform: translate(0,0) scale(1); opacity: 0.4; } 50% { transform: translate(-12px, -10px) scale(1.6); opacity: 0.7; } 100% { transform: translate(8px, 6px) scale(0.7); opacity: 0.1; } }

/* --- hamlet-bad-dreams --- */
.scn-hamlet-bad-dreams {
  background:
    linear-gradient(180deg, #c8b89a 0%, #e8dcc8 40%, #f0e6d6 70%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 0%, rgba(200,180,150,0.4) 0%, transparent 70%);
}
.scn-hamlet-bad-dreams .room-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b8a88a 0%, #d4c4a8 100%);
  animation: hbd-room 12s ease-in-out infinite alternate;
}
.scn-hamlet-bad-dreams .nut-shell {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #c8b898 0%, #a09070 80%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
  animation: hbd-nut 20s ease-in-out infinite;
}
.scn-hamlet-bad-dreams .figure-sitting {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hbd-figure 8s ease-in-out infinite alternate;
}
.scn-hamlet-bad-dreams .window-frame {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 50%;
  border: 6px solid #705a42;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 0 2px #8a7050;
  animation: hbd-window 15s linear infinite;
}
.scn-hamlet-bad-dreams .infinity-space {
  position: absolute; top: 7%; left: 17%; width: 66%; height: 46%;
  background:
    radial-gradient(ellipse at 30% 40%, #1a1a3e 0%, #0a0a1a 100%),
    radial-gradient(circle at 70% 50%, #2a2a6e 0%, transparent 60%);
  border-radius: 2px;
  animation: hbd-stars 30s linear infinite;
}
.scn-hamlet-bad-dreams .shadow-bars {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 50%;
  background: repeating-linear-gradient(
    90deg,
    transparent 0%, transparent 8%,
    rgba(0,0,0,0.15) 8%, rgba(0,0,0,0.15) 10%
  );
  animation: hbd-bars 10s ease-in-out infinite alternate;
}
.scn-hamlet-bad-dreams .light-beam {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 60%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: hbd-beam 6s ease-in-out infinite alternate;
}
@keyframes hbd-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hbd-nut { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes hbd-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes hbd-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes hbd-stars { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes hbd-bars { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes hbd-beam { 0% { opacity: 0.6; } 100% { opacity: 1; } }

/* --- hamlet-questions-friendship --- */
.scn-hamlet-questions-friendship {
  background:
    linear-gradient(180deg, #d8c8a0 0%, #c8b890 30%, #b8a880 70%, #a89870 100%),
    radial-gradient(ellipse at 50% 100%, rgba(180,160,120,0.3) 0%, transparent 60%);
}
.scn-hamlet-questions-friendship .parquet-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(
    90deg,
    #a08868 0px, #a08868 8px,
    #b09878 8px, #b09878 16px
  );
  animation: hqf-floor 25s linear infinite;
}
.scn-hamlet-questions-friendship .table {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a523a 0%, #4a3822 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hqf-table 18s ease-in-out infinite alternate;
}
.scn-hamlet-questions-friendship .figure-seated {
  position: absolute; bottom: 28%; left: 35%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hqf-seated 6s ease-in-out infinite alternate;
}
.scn-hamlet-questions-friendship .figure-standing {
  position: absolute; bottom: 28%; left: 60%; width: 34px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hqf-standing 8s ease-in-out infinite alternate;
}
.scn-hamlet-questions-friendship .candelabra {
  position: absolute; top: 10%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c09850 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.4);
  animation: hqf-candle 4s ease-in-out infinite alternate;
}
.scn-hamlet-questions-friendship .shadow-stretch {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: hqf-shadow 12s ease-in-out infinite alternate;
}
.scn-hamlet-questions-friendship .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #705038 0%, #5a4028 50%, #4a3018 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: hqf-curtain 20s ease-in-out infinite alternate;
}
.scn-hamlet-questions-friendship .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(270deg, #705038 0%, #5a4028 50%, #4a3018 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: hqf-curtain 20s ease-in-out infinite alternate-reverse;
}
@keyframes hqf-floor { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }
@keyframes hqf-table { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } }
@keyframes hqf-seated { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hqf-standing { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hqf-candle { 0%, 100% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(255,200,100,0.5); } }
@keyframes hqf-shadow { 0% { opacity: 0.6; } 100% { opacity: 1; } }
@keyframes hqf-curtain { 0% { opacity: 0.7; } 100% { opacity: 1; } }

/* --- hamlet-demands-truth --- */
.scn-hamlet-demands-truth {
  background:
    linear-gradient(180deg, #b8a088 0%, #c8b098 30%, #d0b8a0 60%, #c0a890 100%),
    radial-gradient(ellipse at 50% 0%, rgba(200,180,150,0.5) 0%, transparent 70%);
}
.scn-hamlet-demands-truth .bare-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #a89078 0%, #b8a088 100%);
  animation: hdt-wall 10s ease-in-out infinite alternate;
}
.scn-hamlet-demands-truth .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 130px;
  transform: translateX(-50%);
  background: #2a1e14;
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: hdt-door 18s ease-in-out infinite;
}
.scn-hamlet-demands-truth .figure-pointing {
  position: absolute; bottom: 24%; left: 40%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hdt-point 5s ease-in-out infinite alternate;
}
.scn-hamlet-demands-truth .shadow-of-self {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 50px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: hdt-shadow 7s ease-in-out infinite alternate;
}
.scn-hamlet-demands-truth .floor-checker {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: repeating-conic-gradient(#8a7050 0% 25%, #9a8060 0% 50%) 0 0 / 40px 40px;
  animation: hdt-floor 30s linear infinite;
}
.scn-hamlet-demands-truth .light-tilt {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(170deg, rgba(255,240,200,0.25) 0%, transparent 50%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  animation: hdt-tilt 8s ease-in-out infinite alternate;
}
@keyframes hdt-wall { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes hdt-door { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes hdt-point { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hdt-shadow { 0% { opacity: 0.5; transform: translateX(0); } 100% { opacity: 0.8; transform: translateX(5px); } }
@keyframes hdt-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes hdt-tilt { 0% { opacity: 0.6; } 100% { opacity: 1; } }

/* --- hamlet-conjures-fellowship --- */
.scn-hamlet-conjures-fellowship {
  background:
    linear-gradient(180deg, #c8b098 0%, #b8a088 30%, #a89078 60%, #98806a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(220,180,120,0.2) 0%, transparent 60%);
}
.scn-hamlet-conjures-fellowship .gloom-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #3a2a1a 100%);
  opacity: 0.3;
  animation: hcf-gloom 10s ease-in-out infinite alternate;
}
.scn-hamlet-conjures-fellowship .hearth-glow {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8830 0%, #cc6630 50%, transparent 80%);
  border-radius: 50% 50% 0 0;
  animation: hcf-hearth 4s ease-in-out infinite alternate;
}
.scn-hamlet-conjures-fellowship .figure-left {
  position: absolute; bottom: 22%; left: 35%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hcf-left 7s ease-in-out infinite alternate;
}
.scn-hamlet-conjures-fellowship .figure-right {
  position: absolute; bottom: 22%; left: 58%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hcf-right 7s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-conjures-fellowship .clasped-hands {
  position: absolute; bottom: 40%; left: 47%; width: 24px; height: 16px;
  background: #4a3822;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: hcf-hands 3s ease-in-out infinite alternate;
}
.scn-hamlet-conjures-fellowship .embers {
  position: absolute; bottom: 10%; left: 45%; width: 40px; height: 20px;
  background: radial-gradient(circle at 20% 50%, #ffaa40 0%, transparent 60%);
  filter: blur(2px);
  animation: hcf-embers 2s ease-in-out infinite alternate;
}
.scn-hamlet-conjures-fellowship .rising-smoke {
  position: absolute; top: 10%; left: 48%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: hcf-smoke 15s linear infinite;
}
.scn-hamlet-conjures-fellowship .warm-halo {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,200,100,0.08) 0%, transparent 70%);
  animation: hcf-halo 6s ease-in-out infinite alternate;
}
@keyframes hcf-gloom { 0% { opacity: 0.2; } 100% { opacity: 0.4; } }
@keyframes hcf-hearth { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes hcf-left { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hcf-right { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hcf-hands { 0% { transform: scale(1); } 100% { transform: scale(1.1); } }
@keyframes hcf-embers { 0% { opacity: 0.6; transform: translateY(0); } 100% { opacity: 1; transform: translateY(-2px); } }
@keyframes hcf-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-30px) scale(1.5); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }
@keyframes hcf-halo { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }

/* ghost-reappears-to-hamlet */
.scn-ghost-reappears-to-hamlet {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1a3e 100%),
              radial-gradient(ellipse at 50% 0%, #4a3a6e 0%, transparent 70%);
}
.scn-ghost-reappears-to-hamlet .wall-left {
  position: absolute; left:0; top:0; width:40%; height:100%;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-ghost-reappears-to-hamlet .wall-right {
  position: absolute; right:0; top:0; width:40%; height:100%;
  background: linear-gradient(270deg, #1a1a2e 0%, #2a2a3e 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-ghost-reappears-to-hamlet .floor {
  position: absolute; bottom:0; left:0; width:100%; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-ghost-reappears-to-hamlet .candle {
  position: absolute; bottom:28%; left:45%; width:6px; height:20px;
  background: linear-gradient(180deg, #ffd080 0%, #a06020 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-2deg);
  animation: gh-candle 4s ease-in-out infinite alternate;
}
.scn-ghost-reappears-to-hamlet .candle-glow {
  position: absolute; bottom:30%; left:44%; width:14px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.2);
  animation: gh-glow 3s ease-in-out infinite alternate;
}
.scn-ghost-reappears-to-hamlet .hamlet-silhouette {
  position: absolute; bottom:25%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #0a0a14 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: gh-hamlet 5s ease-in-out infinite;
}
.scn-ghost-reappears-to-hamlet .ghost-figure {
  position: absolute; bottom:25%; right:30%; width:28px; height:58px;
  background: radial-gradient(ellipse at 50% 40%, rgba(180,200,255,0.4) 0%, rgba(100,140,255,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  box-shadow: 0 0 20px 10px rgba(100,140,255,0.3);
  animation: gh-ghost 8s ease-in-out infinite;
}
.scn-ghost-reappears-to-hamlet .shadow {
  position: absolute; bottom:20%; left:25%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: gh-shadow 5s ease-in-out infinite;
}
@keyframes gh-candle {
  0% { transform: rotate(-2deg) scaleY(1); }
  20% { transform: rotate(-3deg) scaleY(1.05); }
  50% { transform: rotate(2deg) scaleY(0.95); }
  80% { transform: rotate(1deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(1); }
}
@keyframes gh-glow {
  0% { box-shadow: 0 0 20px 8px #ffd080, 0 0 50px 15px rgba(255,208,128,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px #ffe0a0, 0 0 80px 25px rgba(255,208,128,0.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.25); opacity: 0.85; }
}
@keyframes gh-hamlet {
  0% { transform: rotate(5deg) translateY(0); }
  30% { transform: rotate(3deg) translateY(-2px); }
  60% { transform: rotate(6deg) translateY(1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes gh-ghost {
  0% { transform: translateY(0) rotate(-3deg); opacity: 0.6; }
  25% { transform: translateY(-5px) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-2px) rotate(2deg); opacity: 0.7; }
  75% { transform: translateY(-7px) rotate(-1deg); opacity: 0.85; }
  100% { transform: translateY(0) rotate(3deg); opacity: 0.6; }
}
@keyframes gh-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
  100% { transform: scaleX(0.8); opacity: 0.5; }
}

/* ghost-comes-to-whet-purpose */
.scn-ghost-comes-to-whet-purpose {
  background: linear-gradient(180deg, #12122a 0%, #1e1e3a 40%, #2e1e3e 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a5a 0%, transparent 70%);
}
.scn-ghost-comes-to-whet-purpose .arch {
  position: absolute; top:10%; left:10%; width:80%; height:40%;
  background: transparent;
  border: 6px solid #2a2a4a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-ghost-comes-to-whet-purpose .column-left {
  position: absolute; top:10%; left:10%; width:8px; height:70%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 10px rgba(0,0,0,0.4);
}
.scn-ghost-comes-to-whet-purpose .column-right {
  position: absolute; top:10%; right:10%; width:8px; height:70%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: -4px 0 10px rgba(0,0,0,0.4);
}
.scn-ghost-comes-to-whet-purpose .ghost-hand {
  position: absolute; bottom:20%; left:25%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, rgba(160,190,255,0.5) 0%, rgba(100,140,255,0.2) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  transform: rotate(-20deg);
  animation: wh-hand 7s ease-in-out infinite;
}
.scn-ghost-comes-to-whet-purpose .hamlet-back {
  position: absolute; bottom:25%; right:20%; width:35px; height:65px;
  background: linear-gradient(180deg, #0e0e1a 0%, #000 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: wh-back 6s ease-in-out infinite;
}
.scn-ghost-comes-to-whet-purpose .halo {
  position: absolute; top:15%; left:40%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(150,180,255,0.2);
  animation: wh-halo 10s ease-in-out infinite alternate;
}
.scn-ghost-comes-to-whet-purpose .dust {
  position: absolute; top:20%; left:60%; width:4px; height:4px;
  background: rgba(200,220,255,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: wh-dust 12s linear infinite;
}
@keyframes wh-hand {
  0% { transform: rotate(-20deg) translateY(0); opacity: 0.4; }
  20% { transform: rotate(-15deg) translateY(-10px); opacity: 0.8; }
  40% { transform: rotate(-25deg) translateY(-5px); opacity: 0.6; }
  60% { transform: rotate(-10deg) translateY(-15px); opacity: 0.9; }
  80% { transform: rotate(-18deg) translateY(-8px); opacity: 0.7; }
  100% { transform: rotate(-20deg) translateY(0); opacity: 0.4; }
}
@keyframes wh-back {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(-7deg) translateX(3px); }
  50% { transform: rotate(-3deg) translateX(-2px); }
  75% { transform: rotate(-6deg) translateX(4px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes wh-halo {
  0% { transform: scale(0.8); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.4; }
}
@keyframes wh-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translate(-20px, -40px) scale(0.5); opacity: 0; }
}

/* gertrude-sees-nothing */
.scn-gertrude-sees-nothing {
  background: linear-gradient(180deg, #18182a 0%, #2a1a2e 40%, #3a1a2a 100%),
              radial-gradient(ellipse at 60% 30%, #5a2a3e 0%, transparent 60%);
}
.scn-gertrude-sees-nothing .chair {
  position: absolute; bottom:22%; left:30%; width:40px; height:60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
}
.scn-gertrude-sees-nothing .gertrude-figure {
  position: absolute; bottom:28%; left:32%; width:28px; height:50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  animation: ge-gertrude 8s ease-in-out infinite;
}
.scn-gertrude-sees-nothing .hamlet-arm {
  position: absolute; bottom:30%; left:50%; width:30px; height:10px;
  background: linear-gradient(90deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: left center;
  transform: rotate(-30deg);
  animation: ge-arm 4s ease-in-out infinite alternate;
}
.scn-gertrude-sees-nothing .candelabra {
  position: absolute; bottom:20%; right:25%; width:10px; height:40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(3deg);
}
.scn-gertrude-sees-nothing .candelabra-glow {
  position: absolute; bottom:45%; right:24%; width:18px; height:18px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.2);
  animation: ge-glow 3s ease-in-out infinite alternate;
}
.scn-gertrude-sees-nothing .empty-space {
  position: absolute; bottom:30%; left:55%; width:40px; height:60px;
  background: radial-gradient(ellipse, rgba(100,120,200,0.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ge-space 6s ease-in-out infinite;
}
.scn-gertrude-sees-nothing .tapestry {
  position: absolute; top:5%; left:5%; width:20%; height:60%;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ge-tapestry 15s ease-in-out infinite;
}
@keyframes ge-gertrude {
  0% { transform: rotate(2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-3px); }
  50% { transform: rotate(3deg) translateY(1px); }
  75% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ge-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(-35deg); }
}
@keyframes ge-glow {
  0% { box-shadow: 0 0 20px 8px #ffd080, 0 0 50px 15px rgba(255,208,128,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px #ffe0a0, 0 0 80px 25px rgba(255,208,128,0.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.25); opacity: 0.85; }
}
@keyframes ge-space {
  0% { transform: scale(0.8); opacity: 0.2; }
  50% { transform: scale(1.1); opacity: 0.5; }
  100% { transform: scale(0.9); opacity: 0.3; }
}
@keyframes ge-tapestry {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
}

/* hamlet-sees-ghost-leave */
.scn-hamlet-sees-ghost-leave {
  background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2e 40%, #2a1a2e 100%),
              radial-gradient(ellipse at 20% 60%, #3a2a5a 0%, transparent 60%);
}
.scn-hamlet-sees-ghost-leave .doorway {
  position: absolute; top:5%; left:35%; width:30%; height:70%;
  background: transparent;
  border: 4px solid #2a2a4a;
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-hamlet-sees-ghost-leave .door-left {
  position: absolute; top:5%; left:35%; width:15%; height:70%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-right: 2px solid #2a2a4a;
  animation: hl-door 6s ease-in-out infinite alternate;
}
.scn-hamlet-sees-ghost-leave .door-right {
  position: absolute; top:5%; left:50%; width:15%; height:70%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-left: 2px solid #2a2a4a;
  animation: hl-door 6s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-sees-ghost-leave .hamlet-profile {
  position: absolute; bottom:25%; left:15%; width:30px; height:55px;
  background: linear-gradient(180deg, #0e0e1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: hl-hamlet 7s ease-in-out infinite;
}
.scn-hamlet-sees-ghost-leave .ghost-trail {
  position: absolute; bottom:30%; right:20%; width:25px; height:60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(130,170,255,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: hl-trail 9s ease-in-out infinite;
}
.scn-hamlet-sees-ghost-leave .floor-line {
  position: absolute; bottom:20%; left:0; width:100%; height:2px;
  background: linear-gradient(90deg, transparent 20%, #3a3a5a 50%, transparent 80%);
  animation: hl-floor 5s ease-in-out infinite alternate;
}
.scn-hamlet-sees-ghost-leave .cold-breath {
  position: absolute; bottom:35%; left:20%; width:10px; height:10px;
  background: rgba(200,220,255,0.15);
  border-radius: 50%;
  filter: blur(5px);
  animation: hl-breath 4s ease-in-out infinite;
}
@keyframes hl-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1); }
}
@keyframes hl-hamlet {
  0% { transform: rotate(3deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-4px); }
  50% { transform: rotate(4deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes hl-trail {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  30% { transform: translateY(-15px) scale(1.3); opacity: 0.6; }
  60% { transform: translateY(-5px) scale(0.8); opacity: 0.3; }
  100% { transform: translateY(0) scale(1.1); opacity: 0.1; }
}
@keyframes hl-floor {
  0% { transform: scaleX(0.8); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes hl-breath {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.5; }
  100% { transform: translate(30px, -20px) scale(2); opacity: 0; }
}

.scn-claudius-celebratory-exit {
  background: linear-gradient(180deg, #4a2e1a 0%, #6b4423 40%, #8b5e34 100%), radial-gradient(ellipse at 50% 0%, #d4a373 0%, transparent 60%);
  color: #ffd9b3;
}
.scn-claudius-celebratory-exit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2010 0%, #5a3822 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-claudius-celebratory-exit .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #7a5535 0%, #5a3a1e 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 90%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.3);
}
.scn-claudius-celebratory-exit .pillar {
  position: absolute; bottom: 10%; width: 12%; height: 70%;
  background: linear-gradient(90deg, #8b6f4a 0%, #c9a87c 30%, #8b6f4a 60%, #6b4f2a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 4px 0 8px rgba(0,0,0,.4);
}
.scn-claudius-celebratory-exit .pillar-left { left: 10%; }
.scn-claudius-celebratory-exit .pillar-right { right: 10%; }
.scn-claudius-celebratory-exit .king {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-40%);
  width: 28%; height: 55%;
  background: linear-gradient(180deg, #1a0e05 0%, #3a2a18 30%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  box-shadow: -4px 0 12px rgba(0,0,0,.7), inset -8px 0 20px rgba(255,200,100,.1);
  animation: ce-king 8s ease-in-out infinite;
}
.scn-claudius-celebratory-exit .crown {
  position: absolute; bottom: 75%; left: 50%; transform: translateX(-45%);
  width: 20%; height: 8%;
  background: linear-gradient(180deg, #d4af37 0%, #f0d080 50%, #b8962a 100%);
  clip-path: polygon(0 100%, 15% 30%, 30% 100%, 50% 10%, 70% 100%, 85% 30%, 100% 100%);
  animation: ce-crown 4s ease-in-out infinite alternate;
}
.scn-claudius-celebratory-exit .torch {
  position: absolute; bottom: 50%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #6b4f2a 0%, #3a2a18 100%);
  border-radius: 10% 10% 0 0;
}
.scn-claudius-celebratory-exit .torch::after {
  content: ''; position: absolute; top: -30%; left: -50%; width: 200%; height: 50%;
  background: radial-gradient(circle, #ffb347 0%, #ff8c00 40%, transparent 100%);
  filter: blur(8px);
  animation: ce-torch-glow 2s ease-in-out infinite alternate;
}
.scn-claudius-celebratory-exit .torch-left { left: 20%; }
.scn-claudius-celebratory-exit .torch-right { right: 20%; animation-delay: 1s; }
@keyframes ce-king { 0% { transform: translateX(-40%) rotate(0deg); } 50% { transform: translateX(-38%) rotate(2deg); } 100% { transform: translateX(-42%) rotate(-1deg); } }
@keyframes ce-crown { 0% { transform: translateX(-45%) translateY(0) scale(1); } 100% { transform: translateX(-45%) translateY(-4px) scale(1.05); } }
@keyframes ce-torch-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }

.scn-hamlet-first-soliloquy {
  background: linear-gradient(180deg, #1b2838 0%, #0d1b26 40%, #1a2f3f 100%);
  color: #b0c4de;
}
.scn-hamlet-first-soliloquy .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2c4a5e 100%);
  opacity: 0.5;
  animation: hs-sky 12s ease-in-out infinite alternate;
}
.scn-hamlet-first-soliloquy .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-hamlet-first-soliloquy .weeds {
  position: absolute; bottom: 5%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2a5a2a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: hs-weed 6s ease-in-out infinite alternate;
}
.scn-hamlet-first-soliloquy .grass-left { left: 15%; transform-origin: bottom left; }
.scn-hamlet-first-soliloquy .grass-right { right: 15%; transform-origin: bottom right; animation-delay: 2s; }
.scn-hamlet-first-soliloquy .figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 50%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,.8);
  animation: hs-figure 8s ease-in-out infinite;
}
.scn-hamlet-first-soliloquy .window {
  position: absolute; bottom: 55%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 40%, #5a7a9a 0%, transparent 100%);
  border: 4px solid #2a3a4a;
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 20px #3a5a7a;
  animation: hs-window-glow 5s ease-in-out infinite alternate;
}
.scn-hamlet-first-soliloquy .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: hs-shadow 10s ease-in-out infinite alternate;
}
@keyframes hs-sky { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes hs-weed { 0% { transform: scaleY(1) rotate(-5deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 100% { transform: scaleY(0.9) rotate(-2deg); } }
@keyframes hs-figure { 0% { transform: translateX(-50%) rotate(2deg); } 25% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(3deg); } 75% { transform: translateX(-50%) rotate(0deg) translateY(-4px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hs-window-glow { 0% { box-shadow: inset 0 0 10px #3a5a7a; opacity: 0.5; } 100% { box-shadow: inset 0 0 30px #5a8aaf; opacity: 0.9; } }
@keyframes hs-shadow { 0% { transform: scale(1); opacity: 0.6; } 100% { transform: scale(1.1); opacity: 0.9; } }

.scn-hamlet-rages-at-mother {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #3a1a1a 0%, transparent 70%);
  color: #8a5a4a;
}
.scn-hamlet-rages-at-mother .backdrop {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%);
}
.scn-hamlet-rages-at-mother .curtain {
  position: absolute; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(180deg, #4a2a2a 0%, #3a1a1a 100%);
  border-radius: 0 40% 0 0;
  animation: hr-curtain 10s ease-in-out infinite alternate;
}
.scn-hamlet-rages-at-mother .curtain-left { left: 0; transform-origin: top left; }
.scn-hamlet-rages-at-mother .curtain-right { right: 0; border-radius: 40% 0 0 0; transform-origin: top right; animation-delay: 2s; }
.scn-hamlet-rages-at-mother .figure {
  position: absolute; bottom: 10%; left: 40%; width: 25%; height: 65%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: -4px 0 10px rgba(0,0,0,.9);
  animation: hr-figure 4s ease-in-out infinite;
}
.scn-hamlet-rages-at-mother .shatter {
  position: absolute; bottom: 60%; width: 8%; height: 8%;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%);
  clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 20% 80%, 0% 40%);
  opacity: 0.7;
  animation: hr-shatter 2s ease-in-out infinite alternate;
}
.scn-hamlet-rages-at-mother .shatter.shard-1 { left: 30%; animation-delay: 0.2s; }
.scn-hamlet-rages-at-mother .shatter.shard-2 { left: 50%; animation-delay: 0.5s; transform: rotate(30deg); }
.scn-hamlet-rages-at-mother .shatter.shard-3 { left: 60%; animation-delay: 0.8s; }
.scn-hamlet-rages-at-mother .lamp {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(circle, #d48a5a 0%, #8a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(180, 100, 50, 0.6);
  animation: hr-lamp 3s ease-in-out infinite alternate;
}
@keyframes hr-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }
@keyframes hr-figure { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(4px) rotate(-3deg); } 50% { transform: translateX(0) rotate(7deg); } 75% { transform: translateX(-4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes hr-shatter { 0% { transform: scale(1) rotate(0deg); opacity: 0.5; } 100% { transform: scale(1.4) rotate(15deg); opacity: 1; } }
@keyframes hr-lamp { 0% { box-shadow: 0 0 20px 5px rgba(180, 100, 50, 0.4); } 100% { box-shadow: 0 0 60px 15px rgba(180, 100, 50, 0.8); } }

.scn-hamlet-incest-rage {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1212 40%, #1a0505 100%), radial-gradient(ellipse at 50% 0%, #4a2a2a 0%, transparent 70%);
  color: #6a3a3a;
}
.scn-hamlet-incest-rage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hamlet-incest-rage .bed {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-hamlet-incest-rage .sheet {
  position: absolute; bottom: 20%; height: 30%;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a2222 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: ir-sheet 6s ease-in-out infinite alternate;
}
.scn-hamlet-incest-rage .sheet-fold { left: 20%; width: 25%; transform: rotate(-10deg); transform-origin: bottom left; }
.scn-hamlet-incest-rage .sheet-tangle { right: 20%; width: 30%; transform: rotate(15deg); transform-origin: bottom right; animation-delay: 2s; }
.scn-hamlet-incest-rage .figure {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 55%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #050505 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,.9);
  animation: ir-figure 6s ease-in-out infinite;
}
.scn-hamlet-incest-rage .shadow-lump {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.8) 0%, transparent 100%);
  filter: blur(10px);
  animation: ir-shadow 8s ease-in-out infinite alternate;
}
.scn-hamlet-incest-rage .candle {
  position: absolute; bottom: 60%; left: 45%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 4px rgba(200, 150, 100, 0.5);
  animation: ir-candle 3s ease-in-out infinite alternate;
}
@keyframes ir-sheet { 0% { transform: rotate(-10deg) translateY(0); opacity: 0.7; } 50% { transform: rotate(-5deg) translateY(-4px); opacity: 0.9; } 100% { transform: rotate(-15deg) translateY(2px); opacity: 0.8; } }
@keyframes ir-figure { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-4deg) translateY(0); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(0); } }
@keyframes ir-shadow { 0% { transform: scale(1); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.9; } }
@keyframes ir-candle { 0% { box-shadow: 0 0 10px 2px rgba(200, 150, 100, 0.3); } 100% { box-shadow: 0 0 30px 8px rgba(255, 200, 100, 0.7); } }

.scn-ghost-and-hamlet-alone{background:linear-gradient(180deg,#0f1228 0%,#1a1a3e 40%,#2a2a5e 100%),radial-gradient(ellipse at 50% 0%,#4a4a7a 0%,transparent 60%);position:relative;overflow:hidden;height:100vh;}
.scn-ghost-and-hamlet-alone .sky{position:absolute;inset:0;background:linear-gradient(180deg,#0a0e22 0%,#151838 50%,#1f2248 100%);}
.scn-ghost-and-hamlet-alone .moon{position:absolute;top:6%;left:70%;width:60px;height:60px;background:radial-gradient(circle,#e0e8ff 0%,#a0b8e0 60%,transparent 100%);border-radius:50%;box-shadow:0 0 60px 20px rgba(160,184,224,.5),0 0 120px 40px rgba(160,184,224,.2);animation:gh1-moon 20s ease-in-out infinite alternate;}
.scn-ghost-and-hamlet-alone .stars{position:absolute;inset:0;background:radial-gradient(2px 2px at 20% 10%,#fff 50%,transparent 100%) repeat;background-size:80px 80px;animation:gh1-stars 40s linear infinite;}
.scn-ghost-and-hamlet-alone .ghost{position:absolute;bottom:25%;left:28%;width:40px;height:90px;background:linear-gradient(180deg,rgba(200,220,255,.4) 0%,rgba(160,180,220,.3) 60%,transparent 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;box-shadow:0 0 30px 10px rgba(160,180,220,.3);animation:gh1-ghost 6s ease-in-out infinite;}
.scn-ghost-and-hamlet-alone .hamlet{position:absolute;bottom:25%;right:22%;width:35px;height:100px;background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/55% 55% 30% 30%;transform-origin:bottom center;animation:gh1-hamlet 4s ease-in-out infinite;}
.scn-ghost-and-hamlet-alone .ground{position:absolute;bottom:0;left:0;right:0;height:25%;background:linear-gradient(180deg,#1a1a2e 0%,#0f0f1a 100%);border-radius:40% 40% 0 0/20% 20% 0 0;box-shadow:inset 0 10px 30px rgba(0,0,0,.5);}
.scn-ghost-and-hamlet-alone .mist{position:absolute;bottom:20%;width:200%;height:40px;background:linear-gradient(90deg,transparent,rgba(180,200,230,.15),transparent);filter:blur(8px);animation:gh1-mist 15s linear infinite;}
.scn-ghost-and-hamlet-alone .mist-a{left:0;}
.scn-ghost-and-hamlet-alone .mist-b{left:-100%;animation-delay:-7s;}

@keyframes gh1-moon{0%{transform:translate(0,0) scale(1);}50%{transform:translate(10px,-5px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}
@keyframes gh1-stars{0%{opacity:0.7;}50%{opacity:1;}100%{opacity:0.7;}}
@keyframes gh1-ghost{0%{transform:translateY(0) rotate(-2deg) scaleX(1);opacity:0.8;}50%{transform:translateY(-15px) rotate(2deg) scaleX(0.95);opacity:0.9;}100%{transform:translateY(0) rotate(-2deg) scaleX(1);opacity:0.8;}}
@keyframes gh1-hamlet{0%{transform:translateX(0) rotate(0deg);}25%{transform:translateX(5px) rotate(3deg);}50%{transform:translateX(0) rotate(0deg);}75%{transform:translateX(-5px) rotate(-3deg);}100%{transform:translateX(0) rotate(0deg);}}
@keyframes gh1-mist{0%{transform:translateX(0);}100%{transform:translateX(50%);}}

.scn-ghost-reveals-purgatory{background:linear-gradient(180deg,#0a0a1a 0%,#151535 50%,#2a1a2a 100%),radial-gradient(ellipse at 50% 100%,#6a2a1a 0%,transparent 70%);position:relative;overflow:hidden;height:100vh;}
.scn-ghost-reveals-purgatory .bg{position:absolute;inset:0;background:linear-gradient(180deg,#0a0a1a 0%,#151535 50%,#1a1a3a 100%);}
.scn-ghost-reveals-purgatory .purgatory-glow{position:absolute;bottom:0;left:0;right:0;height:30%;background:radial-gradient(ellipse at 50% 100%,#8a3a2a 0%,#5a1a1a 40%,transparent 100%);opacity:0.7;animation:gh2-glow 8s ease-in-out infinite alternate;}
.scn-ghost-reveals-purgatory .ghost-float{position:absolute;bottom:35%;left:50%;transform:translateX(-50%);width:45px;height:100px;background:linear-gradient(180deg,rgba(200,200,255,.4) 0%,rgba(180,160,200,.3) 50%,transparent 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;box-shadow:0 0 40px 15px rgba(180,160,200,.3),0 0 80px 30px rgba(200,100,80,.2);animation:gh2-float 5s ease-in-out infinite;}
.scn-ghost-reveals-purgatory .hamlet-kneel{position:absolute;bottom:22%;right:30%;width:30px;height:80px;background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%);border-radius:40% 40% 20% 20%/50% 50% 20% 20%;transform-origin:bottom center;animation:gh2-kneel 4s ease-in-out infinite;}
.scn-ghost-reveals-purgatory .ground{position:absolute;bottom:0;left:0;right:0;height:22%;background:linear-gradient(180deg,#1a1a2a 0%,#0f0f1a 100%);border-radius:20% 20% 0 0/10% 10% 0 0;}
.scn-ghost-reveals-purgatory .ash{position:absolute;bottom:25%;width:4px;height:4px;background:#8a5a3a;border-radius:50%;box-shadow:0 0 6px 2px rgba(138,90,58,.5);animation:gh2-ash 6s linear infinite;}
.scn-ghost-reveals-purgatory .ash-a{left:20%;animation-delay:0s;}
.scn-ghost-reveals-purgatory .ash-b{left:40%;animation-delay:-2s;}
.scn-ghost-reveals-purgatory .ash-c{left:60%;animation-delay:-4s;}

@keyframes gh2-glow{0%{opacity:0.6;transform:scaleY(1);}50%{opacity:0.9;transform:scaleY(1.1);}100%{opacity:0.6;transform:scaleY(1);}}
@keyframes gh2-float{0%{transform:translateX(-50%) translateY(0) rotate(-3deg);}50%{transform:translateX(-50%) translateY(-12px) rotate(2deg);}100%{transform:translateX(-50%) translateY(0) rotate(-3deg);}}
@keyframes gh2-kneel{0%{transform:translateX(0) rotate(0deg) scaleY(1);}25%{transform:translateX(3px) rotate(2deg) scaleY(0.95);}50%{transform:translateX(0) rotate(0deg) scaleY(1);}75%{transform:translateX(-3px) rotate(-2deg) scaleY(0.95);}100%{transform:translateX(0) rotate(0deg) scaleY(1);}}
@keyframes gh2-ash{0%{transform:translateY(0) scale(1);opacity:1;}100%{transform:translateY(-80px) scale(0.5);opacity:0;}}

.scn-ghost-commands-revenge{background:linear-gradient(180deg,#0a0e1a 0%,#14183a 40%,#1c1c4a 100%),radial-gradient(ellipse at 50% 0%,#3a4a7a 0%,transparent 70%);position:relative;overflow:hidden;height:100vh;}
.scn-ghost-commands-revenge .sky{position:absolute;inset:0;background:linear-gradient(180deg,#0a0e1a 0%,#14183a 50%,#1c1c4a 100%);}
.scn-ghost-commands-revenge .moon{position:absolute;top:5%;right:15%;width:50px;height:50px;background:radial-gradient(circle,#d0dcf0 0%,#8aa0c0 60%,transparent 100%);border-radius:50%;box-shadow:0 0 50px 15px rgba(138,160,192,.5);animation:gh3-moon 25s ease-in-out infinite alternate;}
.scn-ghost-commands-revenge .ghost-point{position:absolute;bottom:20%;left:30%;width:50px;height:100px;background:linear-gradient(180deg,rgba(180,200,240,.4) 0%,rgba(140,160,200,.3) 70%,transparent 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom left;box-shadow:0 0 30px 10px rgba(140,160,200,.3);animation:gh3-point 5s ease-in-out infinite;}
.scn-ghost-commands-revenge .ghost-point::before{content:"";position:absolute;top:-20%;left:70%;width:30px;height:50px;background:linear-gradient(180deg,rgba(180,200,240,.3),transparent);border-radius:50% 50% 0 0;transform:rotate(30deg);transform-origin:bottom left;}
.scn-ghost-commands-revenge .hamlet-bow{position:absolute;bottom:15%;right:25%;width:40px;height:70px;background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/50% 50% 30% 30%;transform-origin:bottom center;animation:gh3-bow 4s ease-in-out infinite;}
.scn-ghost-commands-revenge .ground{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,#14142a 0%,#0a0a1a 100%);border-radius:30% 30% 0 0/15% 15% 0 0;}
.scn-ghost-commands-revenge .mist{position:absolute;bottom:18%;width:300%;height:30px;background:linear-gradient(90deg,transparent,rgba(180,200,230,.1),transparent);filter:blur(6px);animation:gh3-mist 20s linear infinite;}
.scn-ghost-commands-revenge .mist-c{left:0;}
.scn-ghost-commands-revenge .mist-d{left:-100%;animation-delay:-10s;}

@keyframes gh3-moon{0%{transform:translate(0,0) scale(1);}50%{transform:translate(5px,-8px) scale(1.03);}100%{transform:translate(0,0) scale(1);}}
@keyframes gh3-point{0%{transform:translateY(0) rotate(-5deg);opacity:0.8;}50%{transform:translateY(-10px) rotate(0deg);opacity:1;}100%{transform:translateY(0) rotate(-5deg);opacity:0.8;}}
@keyframes gh3-bow{0%{transform:translateX(0) rotate(0deg);}25%{transform:translateX(-5px) rotate(-10deg);}50%{transform:translateX(0) rotate(0deg);}75%{transform:translateX(5px) rotate(10deg);}100%{transform:translateX(0) rotate(0deg);}}
@keyframes gh3-mist{0%{transform:translateX(0);}100%{transform:translateX(33%);}}

.scn-ghost-tells-of-murder{background:linear-gradient(180deg,#0a0a1a 0%,#12123a 40%,#1a1a4a 100%),radial-gradient(ellipse at 50% 0%,#2a3a6a 0%,transparent 70%);position:relative;overflow:hidden;height:100vh;}
.scn-ghost-tells-of-murder .sky{position:absolute;inset:0;background:linear-gradient(180deg,#0a0a1a 0%,#12123a 50%,#1a1a4a 100%);}
.scn-ghost-tells-of-murder .moon{position:absolute;top:5%;left:60%;width:55px;height:55px;background:radial-gradient(circle,#d0dcf0 0%,#8aa0c0 60%,transparent 100%);border-radius:50%;box-shadow:0 0 50px 15px rgba(138,160,192,.5);animation:gh4-moon 22s ease-in-out infinite alternate;}
.scn-ghost-tells-of-murder .tree{position:absolute;bottom:20%;left:10%;width:40px;height:120px;background:linear-gradient(180deg,#1a1a2a 0%,#0f0f1a 100%);border-radius:0 0 20% 20%;transform-origin:bottom center;animation:gh4-tree 15s ease-in-out infinite;}
.scn-ghost-tells-of-murder .tree::after{content:"";position:absolute;top:-40%;left:-10px;width:60px;height:80px;background:radial-gradient(ellipse at 50% 100%,#1a1a2a 0%,transparent 80%);border-radius:50%;}
.scn-ghost-tells-of-murder .ghost-speak{position:absolute;bottom:25%;left:40%;width:45px;height:100px;background:linear-gradient(180deg,rgba(180,200,240,.4) 0%,rgba(140,160,200,.3) 70%,transparent 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;box-shadow:0 0 30px 10px rgba(140,160,200,.3);animation:gh4-speak 5s ease-in-out infinite;}
.scn-ghost-tells-of-murder .hamlet-stand{position:absolute;bottom:22%;right:20%;width:35px;height:100px;background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/55% 55% 30% 30%;transform-origin:bottom center;animation:gh4-stand 4s ease-in-out infinite;}
.scn-ghost-tells-of-murder .ground{position:absolute;bottom:0;left:0;right:0;height:25%;background:linear-gradient(180deg,#14142a 0%,#0a0a1a 100%);border-radius:20% 20% 0 0/10% 10% 0 0;}
.scn-ghost-tells-of-murder .fog{position:absolute;bottom:15%;width:200%;height:40px;background:linear-gradient(90deg,transparent,rgba(180,200,230,.08),transparent);filter:blur(10px);animation:gh4-fog 25s linear infinite;}
.scn-ghost-tells-of-murder .fog-a{left:0;}
.scn-ghost-tells-of-murder .fog-b{left:-100%;animation-delay:-12s;}

@keyframes gh4-moon{0%{transform:translate(0,0) scale(1);}50%{transform:translate(-8px,-4px) scale(1.04);}100%{transform:translate(0,0) scale(1);}}
@keyframes gh4-tree{0%{transform:translateY(0) rotate(0deg) scaleY(1);}50%{transform:translateY(-3px) rotate(2deg) scaleY(1.01);}100%{transform:translateY(0) rotate(0deg) scaleY(1);}}
@keyframes gh4-speak{0%{transform:translateY(0) rotate(-2deg);opacity:0.8;}50%{transform:translateY(-12px) rotate(1deg);opacity:1;}100%{transform:translateY(0) rotate(-2deg);opacity:0.8;}}
@keyframes gh4-stand{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 gh4-fog{0%{transform:translateX(0);}100%{transform:translateX(50%);}}

.scn-hamlet-condemns-mothers-act {
  background: linear-gradient(180deg, #1a1420 0%, #2c1a28 40%, #3d2430 70%, #1a1420 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a34 0%, transparent 70%);
}
.scn-hamlet-condemns-mothers-act .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2c1a28 0%, #1a1420 100%); }
.scn-hamlet-condemns-mothers-act .window-glow { position:absolute; top:15%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.3) 0%, rgba(200,180,120,0.05) 70%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 40px 10px rgba(200,180,120,0.2); animation: hm1-glow 4s ease-in-out infinite alternate; }
.scn-hamlet-condemns-mothers-act .figure-hamlet { position:absolute; bottom:25%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hm1-figure 6s ease-in-out infinite; }
.scn-hamlet-condemns-mothers-act .figure-gertrude { position:absolute; bottom:20%; right:25%; width:35px; height:75px; background: linear-gradient(180deg, #2a1a28 0%, #1a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm1-figure 8s ease-in-out infinite reverse; }
.scn-hamlet-condemns-mothers-act .candle { position:absolute; bottom:15%; left:48%; width:4px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius:10% 10% 20% 20%; }
.scn-hamlet-condemns-mothers-act .flame { position:absolute; bottom:43%; left:48%; width:6px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c88030 60%, transparent 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 6px #c88030; animation: hm1-flame 1.5s ease-in-out infinite; }
.scn-hamlet-condemns-mothers-act .book { position:absolute; bottom:12%; left:40%; width:24px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: hm1-book 12s ease-in-out infinite alternate; }
.scn-hamlet-condemns-mothers-act .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(10,5,5,0.5) 0%, transparent 70%); filter: blur(8px); animation: hm1-shadow 10s ease-in-out infinite alternate; }
@keyframes hm1-glow { 0% { opacity:0.6; box-shadow: inset 0 0 30px 6px rgba(200,180,120,0.2); } 50% { opacity:1; box-shadow: inset 0 0 60px 15px rgba(200,180,120,0.4); } 100% { opacity:0.7; box-shadow: inset 0 0 40px 10px rgba(200,180,120,0.25); } }
@keyframes hm1-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hm1-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.95) rotate(-2deg); } }
@keyframes hm1-book { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm1-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-hamlet-picture-comparison {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 50%, #1a1220 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a44 0%, transparent 70%);
}
.scn-hamlet-picture-comparison .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a30 0%, #1a1220 100%); }
.scn-hamlet-picture-comparison .frame-left { position:absolute; top:10%; left:15%; width:70px; height:90px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:5% 5% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform-origin: center; animation: hm2-frame 20s ease-in-out infinite alternate; }
.scn-hamlet-picture-comparison .frame-right { position:absolute; top:12%; right:15%; width:70px; height:90px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:5% 5% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform-origin: center; animation: hm2-frame 20s ease-in-out infinite alternate-reverse; }
.scn-hamlet-picture-comparison .portrait-left { position:absolute; top:13%; left:17%; width:54px; height:74px; background: linear-gradient(180deg, #c8b08a 0%, #a8886a 100%); border-radius:10% 10% 15% 15%; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
.scn-hamlet-picture-comparison .portrait-right { position:absolute; top:15%; right:17%; width:54px; height:74px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 15% 15%; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
.scn-hamlet-picture-comparison .figure-hand { position:absolute; bottom:35%; left:50%; width:50px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hm2-hand 5s ease-in-out infinite; }
.scn-hamlet-picture-comparison .table { position:absolute; bottom:25%; left:0; right:0; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-hamlet-picture-comparison .candle { position:absolute; bottom:30%; left:30%; width:4px; height:25px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius:10% 10% 20% 20%; }
.scn-hamlet-picture-comparison .candle + .candle { left:70%; } /* duplicate via HTML? Actually we only have one candle defined, but we can use a second candle in HTML by adding another div? We have 8 divs already. To keep 8, we can omit second candle. But we need at least 5-9, we have exactly 8. That's fine. */
@keyframes hm2-frame { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(0.5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hm2-hand { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

.scn-hamlet-shames-mother {
  background: linear-gradient(180deg, #1a1418 0%, #2a1a20 40%, #1a1418 100%),
              radial-gradient(ellipse at 50% 60%, #3a242a 0%, transparent 70%);
}
.scn-hamlet-shames-mother .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a20 0%, #1a1418 100%); }
.scn-hamlet-shames-mother .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a18 0%, #1a0a08 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-hamlet-shames-mother .figure-hamlet { position:absolute; bottom:30%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hm3-stand 7s ease-in-out infinite; }
.scn-hamlet-shames-mother .figure-gertrude-seated { position:absolute; bottom:28%; right:25%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a28 0%, #1a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm3-seat 9s ease-in-out infinite; }
.scn-hamlet-shames-mother .chair { position:absolute; bottom:26%; right:20%; width:50px; height:35px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
.scn-hamlet-shames-mother .candle { position:absolute; bottom:20%; left:45%; width:4px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius:10% 10% 20% 20%; }
.scn-hamlet-shames-mother .flame { position:absolute; bottom:48%; left:45%; width:6px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c88030 60%, transparent 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 6px #c88030; animation: hm3-flame 1.8s ease-in-out infinite; }
.scn-hamlet-shames-mother .shadow-arm { position:absolute; bottom:35%; left:20%; width:60px; height:8px; background: linear-gradient(180deg, rgba(10,5,5,0.6) 0%, transparent 100%); filter: blur(4px); transform: rotate(20deg); transform-origin: left center; animation: hm3-arm 4s ease-in-out infinite alternate; }
@keyframes hm3-stand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hm3-seat { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hm3-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.2) rotate(3deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-3deg); } }
@keyframes hm3-arm { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.1); } 100% { transform: rotate(15deg) scaleX(1); } }

.scn-gertrude-sees-her-soul {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1220 50%, #0e0a12 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a34 0%, transparent 70%);
}
.scn-gertrude-sees-her-soul .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1220 0%, #0e0a12 100%); }
.scn-gertrude-sees-her-soul .mirror-frame { position:absolute; top:10%; left:50%; width:100px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 15% 15%; box-shadow: 0 6px 12px rgba(0,0,0,0.7); animation: hm4-mframe 20s ease-in-out infinite alternate; }
.scn-gertrude-sees-her-soul .mirror-glass { position:absolute; top:14%; left:50%; width:80px; height:112px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(180,160,120,0.3) 0%, rgba(120,100,80,0.15) 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 30px rgba(200,180,140,0.2); animation: hm4-glass 6s ease-in-out infinite alternate; }
.scn-gertrude-sees-her-soul .figure-gertrude { position:absolute; bottom:25%; left:30%; width:35px; height:75px; background: linear-gradient(180deg, #2a1a28 0%, #1a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm4-fig 7s ease-in-out infinite; }
.scn-gertrude-sees-her-soul .reflection { position:absolute; top:20%; left:50%; width:35px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(42,26,40,0.5) 0%, rgba(26,10,20,0.3) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: hm4-ref 8s ease-in-out infinite alternate; }
.scn-gertrude-sees-her-soul .candle { position:absolute; bottom:20%; right:20%; width:4px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius:10% 10% 20% 20%; }
.scn-gertrude-sees-her-soul .flame { position:absolute; bottom:48%; right:20%; width:6px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c88030 60%, transparent 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 6px #c88030; animation: hm4-flame 1.5s ease-in-out infinite; }
.scn-gertrude-sees-her-soul .shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(10,5,10,0.6) 0%, transparent 70%); filter: blur(10px); animation: hm4-shadow 12s ease-in-out infinite alternate; }
@keyframes hm4-mframe { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.01) rotate(1deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes hm4-glass { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes hm4-fig { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hm4-ref { 0% { transform: translateX(-50%) translateY(0) scaleY(1); } 50% { transform: translateX(-50%) translateY(-2px) scaleY(1.05); } 100% { transform: translateX(-50%) translateY(0) scaleY(1); } }
@keyframes hm4-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-2deg); } }
@keyframes hm4-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-claudius-pledges-innocence {
  background: linear-gradient(165deg, #f9e7c2 0%, #d4b88a 40%, #b8935a 100%),
              radial-gradient(ellipse at 30% 40%, #fcead8 0%, transparent 60%);
}
.scn-claudius-pledges-innocence .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #e8d4b4 0%, #c9aa7a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-claudius-pledges-innocence .window {
  position:absolute; top:15%; left:25%; width:35%; height:40%;
  background: radial-gradient(ellipse at 40% 30%, #fff5e0 0%, #ffeac8 40%, transparent 70%);
  border-radius: 4% 4% 20% 20% / 8% 8% 30% 30%;
  box-shadow: inset 0 0 30px #ffd9a0, 0 0 50px rgba(255,217,160,0.3);
  animation: cl-win 6s ease-in-out infinite alternate;
}
.scn-claudius-pledges-innocence .lightbeam {
  position:absolute; top:15%; left:30%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(255,245,224,0.6) 0%, rgba(255,234,200,0.2) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: cl-beam 9s ease-in-out infinite alternate;
}
.scn-claudius-pledges-innocence .figure {
  position:absolute; bottom:20%; left:45%; width:50px; height:100px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-fig 8s ease-in-out infinite;
}
.scn-claudius-pledges-innocence .throne {
  position:absolute; bottom:18%; left:38%; width:90px; height:50px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: scale(1.1);
}
.scn-claudius-pledges-innocence .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #c09a6a 0%, #a07850 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
@keyframes cl-win { 0% { opacity:0.7; filter:blur(3px); } 50% { opacity:1; filter:blur(0); } 100% { opacity:0.8; filter:blur(1px); } }
@keyframes cl-beam { 0% { transform: translateX(-5px) rotate(-1deg); opacity:0.5; } 50% { transform: translateX(5px) rotate(1deg); opacity:0.8; } 100% { transform: translateX(-3px) rotate(-0.5deg); opacity:0.6; } }
@keyframes cl-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-ophelia-mad-again {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 70%);
}
.scn-ophelia-mad-again .bg-dark {
  position:absolute; inset:0;
  background: inherit;
}
.scn-ophelia-mad-again .spotlight {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,235,200,0.3) 0%, transparent 100%);
  clip-path: ellipse(30% 60% at 50% 20%);
  filter: blur(10px);
  animation: opm-spot 5s ease-in-out infinite alternate;
}
.scn-ophelia-mad-again .figure {
  position:absolute; bottom:10%; left:35%; width:80px; height:140px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  animation: opm-fig 4s ease-in-out infinite;
}
.scn-ophelia-mad-again .hair {
  position:absolute; bottom:80%; left:30%; width:70px; height:80px;
  background: radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: opm-hair 3s ease-in-out infinite alternate;
}
.scn-ophelia-mad-again .tear1,
.scn-ophelia-mad-again .tear2 {
  position:absolute; width:6px; height:10px;
  background: radial-gradient(circle, #a0c0d0 0%, #7090a0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity:0.8;
  animation: opm-tear 2s ease-in infinite;
}
.scn-ophelia-mad-again .tear1 { left:42%; bottom:50%; animation-delay:0.3s; }
.scn-ophelia-mad-again .tear2 { left:52%; bottom:55%; animation-delay:0.8s; }
.scn-ophelia-mad-again .arm {
  position:absolute; bottom:35%; left:45%; width:12px; height:60px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: opm-arm 5s ease-in-out infinite alternate;
}
@keyframes opm-spot { 0% { transform: scaleY(0.8) translateY(0); opacity:0.3; } 50% { transform: scaleY(1.1) translateY(-5px); opacity:0.6; } 100% { transform: scaleY(0.9) translateY(2px); opacity:0.4; } }
@keyframes opm-fig { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes opm-hair { 0% { transform: rotate(-5deg) scaleX(0.9); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-3deg) scaleX(0.95); } }
@keyframes opm-tear { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(20px) scale(0.8); opacity:0.4; } 100% { transform: translateY(40px) scale(0.5); opacity:0; } }
@keyframes opm-arm { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } 100% { transform: rotate(-15deg) translateX(-2px); } }

.scn-ophelia-sings-bier-song {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 60%);
}
.scn-ophelia-sings-bier-song .wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-ophelia-sings-bier-song .bier {
  position:absolute; bottom:15%; left:15%; width:70%; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: opb-bier 12s ease-in-out infinite alternate;
}
.scn-ophelia-sings-bier-song .shroud {
  position:absolute; bottom:25%; left:30%; width:40%; height:50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #907060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: opb-shroud 10s ease-in-out infinite;
}
.scn-ophelia-sings-bier-song .flowers {
  position:absolute; bottom:30%; left:40%; width:30px; height:30px;
  background: radial-gradient(circle, #c08060 0%, #a06040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px #c08060;
  animation: opb-flow 6s ease-in-out infinite alternate;
}
.scn-ophelia-sings-bier-song .raindrop1,
.scn-ophelia-sings-bier-song .raindrop2 {
  position:absolute; width:4px; height:12px;
  background: linear-gradient(180deg, rgba(180,200,220,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: opb-rain 2s linear infinite;
}
.scn-ophelia-sings-bier-song .raindrop1 { left:20%; top:10%; animation-delay:0s; }
.scn-ophelia-sings-bier-song .raindrop2 { left:60%; top:20%; animation-delay:0.7s; }
.scn-ophelia-sings-bier-song .figure {
  position:absolute; bottom:12%; left:38%; width:40px; height:100px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  animation: opb-fig 8s ease-in-out infinite;
}
@keyframes opb-bier { 0% { transform: scaleX(0.95) translateY(0); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(0.98) translateY(0); } }
@keyframes opb-shroud { 0% { transform: translateY(0) rotate(-2deg); opacity:0.8; } 50% { transform: translateY(-5px) rotate(2deg); opacity:1; } 100% { transform: translateY(2px) rotate(-1deg); opacity:0.9; } }
@keyframes opb-flow { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-8px) rotate(10deg) scale(1.1); } 100% { transform: translateY(-3px) rotate(-5deg) scale(0.95); } }
@keyframes opb-rain { 0% { transform: translateY(-100px) scaleX(1); opacity:1; } 50% { transform: translateY(50px) scaleX(0.6); opacity:0.6; } 100% { transform: translateY(200px) scaleX(0.3); opacity:0; } }
@keyframes opb-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-ophelia-distributes-flowers {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-ophelia-distributes-flowers .bg-deep {
  position:absolute; inset:0;
  background: inherit;
  filter: brightness(0.8);
}
.scn-ophelia-distributes-flowers .figure {
  position:absolute; bottom:10%; left:30%; width:60px; height:130px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  animation: opf-fig 7s ease-in-out infinite;
}
.scn-ophelia-distributes-flowers .hand-l,
.scn-ophelia-distributes-flowers .hand-r {
  position:absolute; bottom:20%; width:18px; height:30px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: opf-hand 5s ease-in-out infinite alternate;
}
.scn-ophelia-distributes-flowers .hand-l { left:20%; animation-delay:0.2s; }
.scn-ophelia-distributes-flowers .hand-r { right:20%; animation-delay:0.6s; }
.scn-ophelia-distributes-flowers .flower-rosemary,
.scn-ophelia-distributes-flowers .flower-pansy,
.scn-ophelia-distributes-flowers .flower-rue {
  position:absolute; width:20px; height:20px;
  border-radius: 50%;
  animation: opf-flower 8s ease-in-out infinite;
}
.scn-ophelia-distributes-flowers .flower-rosemary { top:30%; left:15%; background: radial-gradient(circle, #6a7a3a 0%, #4a5a2a 70%); box-shadow: 0 0 8px #6a7a3a; animation-delay:0s; }
.scn-ophelia-distributes-flowers .flower-pansy   { top:20%; left:50%; background: radial-gradient(circle, #7a4a6a 0%, #5a3a4a 70%); box-shadow: 0 0 8px #7a4a6a; animation-delay:1.5s; }
.scn-ophelia-distributes-flowers .flower-rue      { top:40%; right:15%; background: radial-gradient(circle, #8a7a4a 0%, #6a5a3a 70%); box-shadow: 0 0 8px #8a7a4a; animation-delay:3s; }
@keyframes opf-fig { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes opf-hand { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(5px) rotate(-3deg); } }
@keyframes opf-flower { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.6; } 50% { transform: translateY(-20px) rotate(15deg) scale(1.2); opacity:1; } 100% { transform: translateY(10px) rotate(-10deg) scale(0.9); opacity:0.7; } }

/* child-actors-fashion */
.scn-child-actors-fashion {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b68c 30%, #af7f5c 60%, #8c5a3a 100%), radial-gradient(ellipse at 50% 30%, #ffdbb5 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-child-actors-fashion .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c89b6a 0%, #a07248 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: caf-stage 12s ease-in-out infinite alternate;
}
.scn-child-actors-fashion .backdrop {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(135deg, #dab88a 0%, #bf9b70 50%, #a87b4f 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  filter: drop-shadow(0 -4px 6px rgba(0,0,0,0.1));
}
.scn-child-actors-fashion .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; bottom: 35%;
  background: linear-gradient(180deg, #b86a40 0%, #8a4a28 60%, #5a2a10 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: caf-curtain 8s ease-in-out infinite alternate;
}
.scn-child-actors-fashion .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; bottom: 35%;
  background: linear-gradient(180deg, #b86a40 0%, #8a4a28 60%, #5a2a10 100%);
  border-radius: 60% 0 0 0 / 80% 0 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: caf-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-child-actors-fashion .child-actor {
  position: absolute; bottom: 37%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #e8c88a 0%, #c8a060 40%, #906838 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: caf-actor 4s ease-in-out infinite;
}
.scn-child-actors-fashion .spotlight {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 120px solid transparent;
  border-right: 120px solid transparent;
  border-top: 300px solid rgba(255,235,190,0.15);
  filter: blur(12px);
  animation: caf-spotlight 5s ease-in-out infinite alternate;
}
@keyframes caf-stage {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}
@keyframes caf-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes caf-actor {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-45%) translateY(-3px) rotate(3deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-55%) translateY(-3px) rotate(-3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes caf-spotlight {
  0% { opacity: 0.3; border-top-width: 280px; }
  50% { opacity: 0.7; border-top-width: 320px; }
  100% { opacity: 0.4; border-top-width: 280px; }
}

/* players-controversy */
.scn-players-controversy {
  background: linear-gradient(180deg, #d9bb8c 0%, #b89560 40%, #8c6a3a 100%), radial-gradient(ellipse at 50% 80%, #eccc90 0%, transparent 70%);
}
.scn-players-controversy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a87b4f 0%, #7a5a38 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-players-controversy .wall-back {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: radial-gradient(ellipse at 50% 100%, #bf9b70 0%, #8a6a4a 60%, #5a3a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.2);
  animation: pc-wall 20s ease-in-out infinite alternate;
}
.scn-players-controversy .player-left {
  position: absolute; bottom: 30%; left: 35%; transform: translateX(-50%);
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #c8a060 0%, #a07040 50%, #6a4420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: pc-left 3s ease-in-out infinite;
}
.scn-players-controversy .player-right {
  position: absolute; bottom: 30%; left: 65%; transform: translateX(-50%);
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #b89860 0%, #986838 50%, #684020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: pc-right 3.2s ease-in-out infinite;
}
.scn-players-controversy .rapier-left {
  position: absolute; bottom: 45%; left: 38%; transform-origin: bottom center;
  width: 4px; height: 70px;
  background: linear-gradient(180deg, #c8a060 0%, #704820 100%);
  border-radius: 40%;
  box-shadow: 0 0 4px rgba(200,160,96,0.6);
  animation: pc-rapier-left 2.5s ease-in-out infinite alternate;
}
.scn-players-controversy .rapier-right {
  position: absolute; bottom: 45%; left: 62%; transform-origin: bottom center;
  width: 4px; height: 70px;
  background: linear-gradient(180deg, #b89860 0%, #684020 100%);
  border-radius: 40%;
  box-shadow: 0 0 4px rgba(184,152,96,0.6);
  animation: pc-rapier-right 2.8s ease-in-out infinite alternate;
}
@keyframes pc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes pc-left {
  0% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(3deg); }
  75% { transform: translateX(-52%) translateY(-2px) rotate(6deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
}
@keyframes pc-right {
  0% { transform: translateX(-50%) translateY(0) rotate(5deg); }
  25% { transform: translateX(-52%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
  75% { transform: translateX(-48%) translateY(-2px) rotate(-6deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(5deg); }
}
@keyframes pc-rapier-left {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(15deg); }
}
@keyframes pc-rapier-right {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-15deg); }
}

/* hamlet-welcomes-friends */
.scn-hamlet-welcomes-friends {
  background: linear-gradient(180deg, #edcfa0 0%, #c9a870 40%, #a08050 100%), radial-gradient(ellipse at 50% 20%, #ffe5b0 0%, transparent 60%);
}
.scn-hamlet-welcomes-friends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b89060 0%, #8a6a3a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.3);
}
.scn-hamlet-welcomes-friends .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: radial-gradient(ellipse at 50% 100%, #cba878 0%, #a08050 60%, #705030 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.15);
  animation: hwf-wall 15s ease-in-out infinite alternate;
}
.scn-hamlet-welcomes-friends .column {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 80%;
  background: linear-gradient(180deg, #dbba80 0%, #b89860 50%, #907040 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
}
.scn-hamlet-welcomes-friends .hamlet {
  position: absolute; bottom: 28%; left: 32%; transform: translateX(-50%);
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #d8b070 0%, #a88040 50%, #785020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hwf-hamlet 5s ease-in-out infinite;
}
.scn-hamlet-welcomes-friends .player1 {
  position: absolute; bottom: 28%; left: 55%; transform: translateX(-50%);
  width: 28px; height: 52px;
  background: linear-gradient(180deg, #c8a060 0%, #a07040 50%, #684020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hwf-player1 4.5s ease-in-out infinite 0.5s;
}
.scn-hamlet-welcomes-friends .player2 {
  position: absolute; bottom: 28%; left: 68%; transform: translateX(-50%);
  width: 28px; height: 52px;
  background: linear-gradient(180deg, #c8a060 0%, #a07040 50%, #684020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hwf-player2 4.8s ease-in-out infinite 1s;
}
.scn-hamlet-welcomes-friends .torch {
  position: absolute; bottom: 50%; left: 80%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.4), 0 0 60px 20px rgba(255,200,100,0.2);
  animation: hwf-torch 2s ease-in-out infinite alternate;
}
@keyframes hwf-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes hwf-hamlet {
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(3deg); }
  75% { transform: translateX(-52%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
}
@keyframes hwf-player1 {
  0% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  25% { transform: translateX(-52%) translateY(-1px) rotate(5deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-48%) translateY(-1px) rotate(-5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes hwf-player2 {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-48%) translateY(-1px) rotate(-5deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes hwf-torch {
  0% { transform: scale(0.8); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}

/* polonius-announces-players */
.scn-polonius-announces-players {
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 40%, #b09060 100%), radial-gradient(ellipse at 50% 70%, #ffe8c0 0%, transparent 60%);
}
.scn-polonius-announces-players .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8a878 0%, #906838 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.3);
}
.scn-polonius-announces-players .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: radial-gradient(ellipse at 50% 100%, #d8b890 0%, #b89870 60%, #8a6a4a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15);
  animation: pap-wall 18s ease-in-out infinite alternate;
}
.scn-polonius-announces-players .swaddle {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a078 50%, #a08058 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: pap-swaddle 6s ease-in-out infinite;
}
.scn-polonius-announces-players .baby-polonius {
  position: absolute; bottom: 23%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 30px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b080 50%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pap-baby 4s ease-in-out infinite;
}
.scn-polonius-announces-players .rattle {
  position: absolute; bottom: 30%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(192,128,64,0.4);
  animation: pap-rattle 2s ease-in-out infinite alternate;
}
.scn-polonius-announces-players .crown {
  position: absolute; bottom: 35%; left: 49%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #ffd080 0%, #d4a050 100%);
  clip-path: polygon(10% 100%, 30% 0%, 50% 50%, 70% 0%, 90% 100%);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
  animation: pap-crown 5s ease-in-out infinite;
}
@keyframes pap-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.98; }
}
@keyframes pap-swaddle {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  75% { transform: translateX(-52%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pap-baby {
  0% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(5deg); }
  75% { transform: translateX(-52%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
}
@keyframes pap-rattle {
  0% { transform: rotate(-20deg) scale(0.8); }
  50% { transform: rotate(20deg) scale(1.2); }
  100% { transform: rotate(-30deg) scale(0.9); }
}
@keyframes pap-crown {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}

.scn-hamlet-alone-rogue-peasant {
  background: linear-gradient(145deg, #1a1210 0%, #2a1d18 50%, #1a1210 100%), radial-gradient(ellipse at 70% 30%, #3a2520 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-hamlet-alone-rogue-peasant .bg-panel {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, #241a16 0px, #2a1f1a 4px, #241a16 8px);
  opacity: 0.6;
}
.scn-hamlet-alone-rogue-peasant .window-frame {
  position: absolute; top: 15%; left: 60%; width: 22%; height: 50%;
  border: 6px solid #3a2a22; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  background: #1a1512; border-radius: 4px;
  animation: ha1-frame 6s ease-in-out infinite alternate;
}
.scn-hamlet-alone-rogue-peasant .window-pane {
  position: absolute; top: 15%; left: 60%; width: 22%; height: 50%;
  background: radial-gradient(ellipse at 40% 40%, #4a4038 0%, #1a1512 70%);
  opacity: 0.4; margin: 6px; border-radius: 2px;
  animation: ha1-pane 8s ease-in-out infinite alternate;
}
.scn-hamlet-alone-rogue-peasant .figure-stand {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #0d0908 0%, #1a1210 50%, #0d0908 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ha1-stand 5s ease-in-out infinite;
}
.scn-hamlet-alone-rogue-peasant .candle-flame {
  position: absolute; bottom: 30%; left: 48%; width: 2.5%; height: 6%;
  background: radial-gradient(circle, #f0c480 0%, #d4984a 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: ha1-flame 0.8s ease-in-out infinite alternate;
}
.scn-hamlet-alone-rogue-peasant .candle-base {
  position: absolute; bottom: 28%; left: 47.5%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-hamlet-alone-rogue-peasant .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0806 100%);
  animation: ha1-shadow 7s ease-in-out infinite alternate;
}
@keyframes ha1-frame {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.02); opacity: 0.9; }
  100% { transform: scale(0.98); opacity: 0.6; }
}
@keyframes ha1-pane {
  0% { opacity: 0.3; filter: brightness(0.6); }
  50% { opacity: 0.5; filter: brightness(0.8); }
  100% { opacity: 0.2; filter: brightness(0.5); }
}
@keyframes ha1-stand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  50% { transform: translateY(1px) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ha1-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.7; }
}
@keyframes ha1-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-hamlet-compares-himself {
  background: linear-gradient(180deg, #1a1210 0%, #2a1f1a 40%, #1a1210 100%), radial-gradient(ellipse at 30% 50%, #3a2520 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-hamlet-compares-himself .bg-dark {
  position: absolute; inset: 0; 
  background: radial-gradient(circle at 40% 60%, #2a1f1a 0%, #120a08 100%);
  opacity: 0.8;
}
.scn-hamlet-compares-himself .table-plank {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 4%;
  background: linear-gradient(180deg, #4a3830 0%, #2a1d18 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ha2-table 9s ease-in-out infinite alternate;
}
.scn-hamlet-compares-himself .skull {
  position: absolute; bottom: 28%; left: 38%; width: 7%; height: 9%;
  background: radial-gradient(ellipse at 50% 40%, #c0b098 0%, #8a7a6a 60%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ha2-skull 4s ease-in-out infinite;
}
.scn-hamlet-compares-himself .figure-bent {
  position: absolute; bottom: 12%; left: 28%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #0d0908 0%, #1a1210 70%, #0d0908 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ha2-bent 6s ease-in-out infinite;
}
.scn-hamlet-compares-himself .candle-glow {
  position: absolute; bottom: 33%; left: 58%; width: 8%; height: 12%;
  background: radial-gradient(circle, #e8b060 0%, #d09040 40%, transparent 80%);
  border-radius: 50%; filter: blur(8px);
  animation: ha2-glow 2s ease-in-out infinite alternate;
}
.scn-hamlet-compares-himself .candle-stick {
  position: absolute; bottom: 30%; left: 60%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 2px;
}
.scn-hamlet-compares-himself .wall-shadow {
  position: absolute; top: 0; right: 0; bottom: 0; left: 50%;
  background: linear-gradient(90deg, transparent 0%, rgba(10,8,6,0.6) 100%);
  animation: ha2-wall 5s ease-in-out infinite alternate;
}
@keyframes ha2-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.98); }
  100% { transform: translateY(1px) scaleX(1.02); }
}
@keyframes ha2-skull {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(1px) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ha2-bent {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(1deg); }
  60% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ha2-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes ha2-wall {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}

.scn-hamlet-self-loathing {
  background: linear-gradient(180deg, #1a1210 0%, #241a16 50%, #1a1210 100%), radial-gradient(ellipse at 50% 30%, #2a1f1a 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-hamlet-self-loathing .bg-stone {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #2a221e 0px, #302624 2px, #2a221e 4px);
  opacity: 0.3;
}
.scn-hamlet-self-loathing .ground-tile {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #3a2e28 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.7);
  animation: ha3-ground 10s ease-in-out infinite alternate;
}
.scn-hamlet-self-loathing .figure-kneel {
  position: absolute; bottom: 12%; left: 35%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #0d0908 0%, #1a1210 60%, #0d0908 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ha3-kneel 8s ease-in-out infinite;
}
.scn-hamlet-self-loathing .fists {
  position: absolute; bottom: 25%; left: 38%; width: 3%; height: 5%;
  background: #0d0908;
  border-radius: 40% 40% 20% 20%;
  animation: ha3-fists 2s ease-in-out infinite alternate;
}
.scn-hamlet-self-loathing .light-beam {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(220,200,160,0.2) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%);
  animation: ha3-beam 7s ease-in-out infinite alternate;
}
.scn-hamlet-self-loathing .cast-shadow {
  position: absolute; bottom: 0; left: 15%; width: 50%; height: 50%;
  background: radial-gradient(ellipse at 40% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ha3-shadow 5s ease-in-out infinite;
}
.scn-hamlet-self-loathing .dust-mote {
  position: absolute; top: 20%; left: 30%; width: 1.5%; height: 1.5%;
  background: radial-gradient(circle, rgba(240,220,180,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: ha3-mote 12s linear infinite;
}
@keyframes ha3-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ha3-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-5px) rotate(2deg); }
  66% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ha3-fists {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.2); }
  100% { transform: translateY(1px) scale(0.9); }
}
@keyframes ha3-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.2; transform: scaleY(0.95); }
}
@keyframes ha3-shadow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes ha3-mote {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.3; }
  100% { transform: translate(40px, -80px) rotate(720deg); opacity: 0; }
}

.scn-hamlet-villain-cursing {
  background: linear-gradient(135deg, #1a1210 0%, #2a1f1a 50%, #1a1210 100%), radial-gradient(ellipse at 60% 40%, #3a2520 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-hamlet-villain-cursing .bg-tapestry {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, #2a1f1a 0px, #3a2a22 2px, #2a1f1a 4px), radial-gradient(circle at 20% 80%, #4a3830 0%, transparent 50%);
  opacity: 0.5;
  animation: ha4-tapestry 15s ease-in-out infinite alternate;
}
.scn-hamlet-villain-cursing .wall-drape {
  position: absolute; top: 0; right: 0; bottom: 30%; left: 70%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1d18 100%);
  border-radius: 0 0 20% 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: ha4-drape 10s ease-in-out infinite alternate;
}
.scn-hamlet-villain-cursing .figure-rage {
  position: absolute; bottom: 15%; left: 30%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #0d0908 0%, #1a1210 70%, #0d0908 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ha4-rage 4s ease-in-out infinite;
}
.scn-hamlet-villain-cursing .dagger-raise {
  position: absolute; bottom: 55%; left: 38%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 30%, #3a3a3a 60%, #1a1a1a 100%);
  border-radius: 0 0 2px 2px;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: ha4-dagger 0.8s ease-in-out infinite alternate;
}
.scn-hamlet-villain-cursing .candle-flicker {
  position: absolute; bottom: 28%; left: 55%; width: 4%; height: 8%;
  background: radial-gradient(circle, #f0c480 0%, #d4984a 40%, transparent 80%);
  border-radius: 50%; filter: blur(4px);
  animation: ha4-candle 0.6s ease-in-out infinite alternate;
}
.scn-hamlet-villain-cursing .candle-stub {
  position: absolute; bottom: 25%; left: 55.5%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 2px;
}
.scn-hamlet-villain-cursing .shadow-arm {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 80% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ha4-arm 3s ease-in-out infinite alternate;
}
@keyframes ha4-tapestry {
  0% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.02); opacity: 0.6; }
  100% { transform: scale(0.98); opacity: 0.5; }
}
@keyframes ha4-drape {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(2px); }
}
@keyframes ha4-rage {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-6px) rotate(3deg); }
  66% { transform: translateY(3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ha4-dagger {
  0% { transform: rotate(18deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(1px); }
}
@keyframes ha4-candle {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.15) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-2deg); opacity: 0.7; }
}
@keyframes ha4-arm {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-ghost-beckons-hamlet {
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a3a 40%, #2a2244 100%), radial-gradient(ellipse at 60% 40%, #3a3a6a 0%, transparent 60%);
}
.scn-ghost-beckons-hamlet .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0d0ff 0%, #7080b0 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(120,160,255,.3);
  animation: gh-moon 6s ease-in-out infinite alternate;
}
.scn-ghost-beckons-hamlet .cloud-cloud-a, .scn-ghost-beckons-hamlet .cloud-cloud-b {
  position: absolute; width: 80px; height: 16px; background: rgba(180,200,255,.15); filter: blur(8px);
  border-radius: 50%; animation: gh-cloud 30s linear infinite;
}
.scn-ghost-beckons-hamlet .cloud-cloud-a { top: 12%; left: 10%; animation-duration: 25s; }
.scn-ghost-beckons-hamlet .cloud-cloud-b { top: 18%; right: 10%; animation-duration: 35s; animation-direction: reverse; }
.scn-ghost-beckons-hamlet .castle-wall {
  position: absolute; bottom: 30%; left: 5%; width: 40%; height: 50%;
  background: linear-gradient(90deg, #18182a 0%, #28283c 50%, #18182a 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.6);
}
.scn-ghost-beckons-hamlet .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-ghost-beckons-hamlet .ghost-figure {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #d4d4f0 0%, #a0a0c8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px); animation: gh-ghost 4s ease-in-out infinite alternate;
}
.scn-ghost-beckons-hamlet .ghost-cloak {
  position: absolute; bottom: 26%; left: 32%; width: 30px; height: 36px;
  background: linear-gradient(180deg, transparent 0%, #8080b0 50%, #606090 100%);
  border-radius: 50% 50% 0 0; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: gh-cloak 5s ease-in-out infinite;
}
.scn-ghost-beckons-hamlet .ghost-arm {
  position: absolute; bottom: 38%; left: 42%; width: 20px; height: 8px;
  background: linear-gradient(90deg, #c0c0e0 0%, #a0a0c0 100%);
  border-radius: 50% 50% 0 0; transform-origin: left center;
  animation: gh-arm 2.5s ease-in-out infinite alternate;
}
@keyframes gh-moon { 0% { opacity: .7; transform: scale(1); } 50% { opacity: .9; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }
@keyframes gh-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes gh-ghost { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gh-cloak { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }
@keyframes gh-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(15deg); } }

.scn-hamlet-defies-warnings {
  background: linear-gradient(180deg, #101028 0%, #1a1a3a 40%, #2a2244 100%), radial-gradient(ellipse at 50% 0%, #3a4a6a 0%, transparent 70%);
}
.scn-hamlet-defies-warnings .moon {
  position: absolute; top: 6%; left: 60%; width: 36px; height: 36px;
  background: radial-gradient(circle, #c8d8ff 0%, #8090c0 100%);
  border-radius: 50%; box-shadow: 0 0 25px 8px rgba(100,140,255,.3);
  animation: dw-moon 7s ease-in-out infinite alternate;
}
.scn-hamlet-defies-warnings .sea {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  animation: dw-sea 12s ease-in-out infinite alternate;
}
.scn-hamlet-defies-warnings .cliff {
  position: absolute; bottom: 20%; left: 20%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0; box-shadow: -5px -5px 15px rgba(0,0,0,.5);
  animation: dw-cliff 8s ease-in-out infinite;
}
.scn-hamlet-defies-warnings .horatio-figure {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dw-horatio 3s ease-in-out infinite alternate;
}
.scn-hamlet-defies-warnings .hamlet-figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dw-hamlet 2.5s ease-in-out infinite alternate;
}
.scn-hamlet-defies-warnings .rocks {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%;
  box-shadow: 5px 3px 8px rgba(0,0,0,.4);
}
.scn-hamlet-defies-warnings .sky-bg {
  position: absolute; inset: 0 0 80% 0;
  background: radial-gradient(ellipse at 60% 10%, #2a3a5a 0%, transparent 70%);
  animation: dw-sky 15s linear infinite alternate;
}
@keyframes dw-moon { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes dw-sea { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes dw-cliff { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dw-horatio { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dw-hamlet { 0% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(3deg); } }
@keyframes dw-sky { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

.scn-hamlet-breaks-free {
  background: linear-gradient(180deg, #12122a 0%, #1e1e3a 40%, #2a2244 100%), radial-gradient(ellipse at 30% 50%, #3a2a5a 0%, transparent 60%);
}
.scn-hamlet-breaks-free .sky-dark {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, transparent 70%);
  animation: bf-sky 10s ease-in-out infinite alternate;
}
.scn-hamlet-breaks-free .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-hamlet-breaks-free .hamlet-body {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bf-hamlet 2s ease-in-out infinite alternate;
}
.scn-hamlet-breaks-free .horatio-hand {
  position: absolute; bottom: 30%; left: 34%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: bf-hand 1.5s ease-in-out infinite alternate;
}
.scn-hamlet-breaks-free .hamlet-arm {
  position: absolute; bottom: 35%; left: 44%; width: 18px; height: 8px;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: left center;
  animation: bf-arm 1.8s ease-in-out infinite alternate;
}
.scn-hamlet-breaks-free .moon-bright {
  position: absolute; top: 5%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0e0ff 0%, #8090c0 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(100,140,255,.4);
  animation: bf-moon 5s ease-in-out infinite alternate;
}
.scn-hamlet-breaks-free .motion-lines {
  position: absolute; top: 50%; left: 30%; width: 40%; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(150,180,255,.4) 50%, transparent 100%);
  filter: blur(2px); animation: bf-lines 0.8s ease-in-out infinite alternate;
}
@keyframes bf-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes bf-hamlet { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes bf-hand { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes bf-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-20deg); } }
@keyframes bf-moon { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); opacity: .9; } }
@keyframes bf-lines { 0% { opacity: 0; transform: scaleX(0.5); } 100% { opacity: 1; transform: scaleX(1.2); } }

.scn-hamlet-follows-ghost {
  background: linear-gradient(180deg, #0e0e22 0%, #1a1a3a 40%, #2a2244 100%), radial-gradient(ellipse at 40% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-hamlet-follows-ghost .sky-night {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 10%, #2a3a5a 0%, transparent 70%);
  animation: fl-sky 12s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: fl-ground 20s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .ghost-ahead {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #d0d0f0 0%, #a0a0c8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px); animation: fl-ghost 4s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .hamlet-follower {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fl-hamlet 3.5s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .tree-left {
  position: absolute; bottom: 20%; left: 12%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 70% 30% 30% 70% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: fl-tree 15s ease-in-out infinite alternate;
}
.scn-hamlet-follows-ghost .tree-right {
  position: absolute; bottom: 22%; right: 15%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 70% 30% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: fl-tree 12s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-follows-ghost .moon-glow {
  position: absolute; top: 8%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8d8ff 0%, #8090c0 100%);
  border-radius: 50%; box-shadow: 0 0 30px 12px rgba(100,140,255,.4);
  animation: fl-moon 8s ease-in-out infinite alternate;
}
@keyframes fl-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes fl-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fl-ghost { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes fl-hamlet { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes fl-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes fl-moon { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); } 100% { opacity: .8; transform: scale(1); } }

/* laertes-laments-father-sister - tense bright interior */
.scn-laertes-laments-father-sister {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d4c3a8 50%, #b8a38c 100%),
    radial-gradient(ellipse at 50% 80%, #f5e6d0 0%, transparent 70%);
}
.scn-laertes-laments-father-sister .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc5 0%, #d4c3a8 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
}
.scn-laertes-laments-father-sister .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #a08670 0%, #7a6652 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-laertes-laments-father-sister .window {
  position: absolute; top: 15%; left: 60%; width: 120px; height: 180px;
  background: radial-gradient(circle, #fffbe6 0%, #f5e6d0 70%);
  border: 6px solid #8a755e;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5), 0 0 60px rgba(255,255,200,0.3);
  animation: lll-window 8s ease-in-out infinite alternate;
}
.scn-laertes-laments-father-sister .figure {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lll-figure 4s ease-in-out infinite;
}
.scn-laertes-laments-father-sister .chair {
  position: absolute; bottom: 28%; left: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6b5b4e 0%, #4a3e34 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-laertes-laments-father-sister .portrait {
  position: absolute; top: 12%; left: 22%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a755e 0%, #6b5b4e 100%);
  border-radius: 4px;
  border: 8px solid #5c4a3a;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: lll-portrait 12s ease-in-out infinite alternate;
}
.scn-laertes-laments-father-sister .candle {
  position: absolute; bottom: 34%; left: 42%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px #f0d080;
  animation: lll-candle 3s ease-in-out infinite alternate;
}
.scn-laertes-laments-father-sister .pendant-light {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #fffbe6 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lll-pendant 6s ease-in-out infinite alternate;
}
@keyframes lll-window {
  0% { opacity: 0.7; transform: scale(0.98); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.99); }
}
@keyframes lll-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes lll-portrait {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes lll-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #f0d080; transform: scaleY(0.95); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px #f0d080; transform: scaleY(1.05); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 6px #f0d080; transform: scaleY(0.98); }
}
@keyframes lll-pendant {
  0% { opacity: 0.5; transform: translateX(-50%) translateY(-3px) scale(0.95); }
  50% { opacity: 0.8; transform: translateX(-50%) translateY(0) scale(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) translateY(2px) scale(0.98); }
}

/* hamlet-returns-letter - tense bright interior */
.scn-hamlet-returns-letter {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4c3a8 50%, #b8a38c 100%),
    radial-gradient(ellipse at 50% 80%, #f5e6d0 0%, transparent 70%);
}
.scn-hamlet-returns-letter .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0d4be 0%, #c0b09a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.1);
}
.scn-hamlet-returns-letter .floor {
  position: absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #a08670 0%, #6b5b4e 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-hamlet-returns-letter .throne {
  position: absolute; bottom: 32%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #8a755e 0%, #5c4a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: hrl-throne 10s ease-in-out infinite alternate;
}
.scn-hamlet-returns-letter .king {
  position: absolute; bottom: 30%; left: 22%; width: 48px; height: 100px;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrl-king 5s ease-in-out infinite;
}
.scn-hamlet-returns-letter .table {
  position: absolute; bottom: 30%; right: 25%; width: 90px; height: 40px;
  background: linear-gradient(180deg, #7a6652 0%, #4a3e34 100%);
  border-radius: 5% 5% 15% 15% / 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-hamlet-returns-letter .letter {
  position: absolute; bottom: 36%; right: 29%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #f5f0e0 0%, #d4c3a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: hrl-letter 4s ease-in-out infinite alternate;
}
.scn-hamlet-returns-letter .candle {
  position: absolute; bottom: 38%; right: 22%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 18px 6px #f0d080;
  animation: hrl-candle 3s ease-in-out infinite alternate;
}
@keyframes hrl-throne {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-3px); }
  100% { transform: scale(0.98) translateY(0); }
}
@keyframes hrl-king {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  60% { transform: translateX(1px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hrl-letter {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(2px); }
  100% { transform: rotate(-7deg) translateX(-1px); }
}
@keyframes hrl-candle {
  0% { opacity: 0.8; box-shadow: 0 0 12px 4px #f0d080; }
  50% { opacity: 1; box-shadow: 0 0 28px 10px #f0d080; }
  100% { opacity: 0.9; box-shadow: 0 0 18px 6px #f0d080; }
}

/* hamlet-naked-return - tense bright interior */
.scn-hamlet-naked-return {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4c3a8 50%, #b8a38c 100%),
    radial-gradient(ellipse at 50% 100%, #f5e6d0 0%, transparent 70%);
}
.scn-hamlet-naked-return .door {
  position: absolute; top: 10%; left: 30%; width: 140px; height: 200px;
  background: linear-gradient(180deg, #6b5b4e 0%, #4a3e34 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  border: 8px solid #3a2e28;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.4);
  animation: hnr-door 12s ease-in-out infinite alternate;
}
.scn-hamlet-naked-return .floor {
  position: absolute; inset: 80% 0 0 0;
  background: linear-gradient(180deg, #a08670 0%, #7a6652 100%);
}
.scn-hamlet-naked-return .figure {
  position: absolute; bottom: 18%; left: 35%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #2a221e 0%, #0f0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnr-figure 4s ease-in-out infinite;
}
.scn-hamlet-naked-return .light-beam {
  position: absolute; top: 0%; left: 40%; width: 60px; height: 100%;
  background: linear-gradient(180deg, #fffbe6 0%, transparent 100%);
  opacity: 0.4;
  filter: blur(10px);
  animation: hnr-beam 6s ease-in-out infinite alternate;
}
.scn-hamlet-naked-return .shadow {
  position: absolute; bottom: 15%; left: 38%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: hnr-shadow 4s ease-in-out infinite;
}
.scn-hamlet-naked-return .threshold {
  position: absolute; bottom: 20%; left: 30%; width: 140px; height: 10px;
  background: linear-gradient(180deg, #8a755e 0%, #6b5b4e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
@keyframes hnr-door {
  0% { transform: perspective(400px) rotateY(0deg) scale(1); }
  50% { transform: perspective(400px) rotateY(3deg) scale(1.02); }
  100% { transform: perspective(400px) rotateY(-2deg) scale(0.98); }
}
@keyframes hnr-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  60% { transform: translateX(-2px) translateY(2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hnr-beam {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.5; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.98); }
}
@keyframes hnr-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.6; }
  100% { transform: scaleX(1.05) scaleY(0.95); opacity: 0.3; }
}

/* claudius-plot-with-laertes - tense bright interior */
.scn-claudius-plot-with-laertes {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4c3a8 50%, #b8a38c 100%),
    radial-gradient(ellipse at 50% 80%, #f5e6d0 0%, transparent 70%);
}
.scn-claudius-plot-with-laertes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d4be 0%, #c0b09a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.12);
}
.scn-claudius-plot-with-laertes .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #a08670 0%, #6b5b4e 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-claudius-plot-with-laertes .figure-king {
  position: absolute; bottom: 28%; left: 25%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpl-king 5s ease-in-out infinite;
}
.scn-claudius-plot-with-laertes .figure-laertes {
  position: absolute; bottom: 28%; right: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a221e 0%, #0f0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpl-laertes 4.5s ease-in-out infinite;
}
.scn-claudius-plot-with-laertes .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 36px;
  background: linear-gradient(180deg, #7a6652 0%, #4a3e34 100%);
  border-radius: 5% 5% 15% 15% / 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-claudius-plot-with-laertes .map {
  position: absolute; bottom: 34%; left: 46%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #d4c3a8 0%, #b8a38c 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: cpl-map 7s ease-in-out infinite alternate;
}
.scn-claudius-plot-with-laertes .candle {
  position: absolute; bottom: 38%; left: 48%; width: 10px; height: 22px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px #f0d080;
  animation: cpl-candle 3s ease-in-out infinite alternate;
}
.scn-claudius-plot-with-laertes .dagger {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #a08670 0%, #6b5b4e 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cpl-dagger 6s ease-in-out infinite;
}
@keyframes cpl-king {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  60% { transform: translateX(1px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cpl-laertes {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  30% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  60% { transform: translateX(-1px) translateY(1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cpl-map {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.03); }
  100% { transform: rotate(-12deg) scale(0.98); }
}
@keyframes cpl-candle {
  0% { opacity: 0.8; box-shadow: 0 0 14px 4px #f0d080; }
  50% { opacity: 1; box-shadow: 0 0 30px 10px #f0d080; }
  100% { opacity: 0.9; box-shadow: 0 0 20px 6px #f0d080; }
}
@keyframes cpl-dagger {
  0% { transform: rotate(20deg) translateX(0); opacity: 0.7; }
  50% { transform: rotate(15deg) translateX(2px); opacity: 1; }
  100% { transform: rotate(22deg) translateX(-1px); opacity: 0.8; }
}

.scn-ft1 { background: linear-gradient(180deg, #0b0e1a 0%, #12162a 40%, #1a1e3a 100%), radial-gradient(ellipse at 50% 60%, #1a2a4a 0%, transparent 70%); }
.scn-ft1 .bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-ft1 .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #1a1e3a 0%, #0b0e1a 60%, transparent 100%); animation: ft1-sky 12s ease-in-out infinite alternate; }
.scn-ft1 .castle { position: absolute; bottom: 40%; left: 10%; width: 40%; height: 30%; background: linear-gradient(90deg, #1e1a2a 0%, #2a2636 50%, #1e1a2a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(0% 100%, 10% 60%, 20% 100%, 30% 50%, 40% 100%, 50% 40%, 60% 100%, 70% 50%, 80% 100%, 90% 60%, 100% 100%); animation: ft1-castle 20s ease-in-out infinite; }
.scn-ft1 .figure { position: absolute; bottom: 30%; left: 45%; width: 20px; height: 55px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft1-figure 3s ease-in-out infinite; }
.scn-ft1 .sword { position: absolute; bottom: 45%; left: 48%; width: 4px; height: 35px; background: linear-gradient(180deg, #7a7a8a 0%, #3a3a4a 100%); border-radius: 2px; transform-origin: bottom center; animation: ft1-sword 2s ease-in-out infinite alternate; }
.scn-ft1 .cloak { position: absolute; bottom: 35%; left: 42%; width: 28px; height: 40px; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 60% 40% 30% 70% / 60% 50% 50% 40%; transform-origin: top center; animation: ft1-cloak 4s ease-in-out infinite; }
.scn-ft1 .shadow { position: absolute; bottom: 28%; left: 43%; width: 30px; height: 8px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); border-radius: 50%; animation: ft1-shadow 3s ease-in-out infinite; }
@keyframes ft1-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ft1-castle { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(5px); } }
@keyframes ft1-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ft1-sword { 0% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes ft1-cloak { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.9); } 100% { transform: rotate(3deg) scaleX(1); } }
@keyframes ft1-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.6; transform: scaleX(0.9); } }

.scn-ft2 { background: linear-gradient(180deg, #12121a 0%, #1a1a2a 50%, #0e0e16 100%), radial-gradient(ellipse at 30% 70%, #2a2a3a 0%, transparent 60%); }
.scn-ft2 .bg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 40%); }
.scn-ft2 .table { position: absolute; bottom: 25%; left: 15%; width: 70%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: ft2-table 10s ease-in-out infinite; }
.scn-ft2 .map { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 25%; background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 50%, #4a3a1a 100%); border-radius: 2px; border: 1px solid #4a3a2a; transform: rotate(2deg); animation: ft2-map 8s ease-in-out infinite alternate; }
.scn-ft2 .hand { position: absolute; bottom: 40%; left: 25%; width: 12px; height: 30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: ft2-hand 4s ease-in-out infinite; }
.scn-ft2 .candle { position: absolute; bottom: 45%; left: 65%; width: 8px; height: 25px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 2px 2px 0 0; }
.scn-ft2 .flame { position: absolute; bottom: 65%; left: 65%; width: 10px; height: 12px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); animation: ft2-flame 1.5s ease-in-out infinite alternate; }
.scn-ft2 .weight { position: absolute; bottom: 28%; left: 70%; width: 16px; height: 16px; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; animation: ft2-weight 6s ease-in-out infinite; }
@keyframes ft2-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ft2-map { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(-1deg) scale(0.98); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes ft2-hand { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ft2-flame { 0% { transform: scaleY(1) translateX(0); opacity: 0.8; } 50% { transform: scaleY(1.3) translateX(2px); opacity: 1; } 100% { transform: scaleY(0.9) translateX(-1px); opacity: 0.9; } }
@keyframes ft2-weight { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }

.scn-po { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, transparent 70%); }
.scn-po .bg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 60%); }
.scn-po .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); animation: po-sky 15s ease-in-out infinite alternate; }
.scn-po .comet { position: absolute; top: 10%; left: 10%; width: 80px; height: 4px; background: linear-gradient(90deg, rgba(200,180,255,0.8) 0%, rgba(200,180,255,0) 100%); border-radius: 2px; filter: blur(1px); animation: po-comet 12s linear infinite; }
.scn-po .grave { position: absolute; bottom: 35%; width: 24px; height: 30px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 4px 4px 8px rgba(0,0,0,0.5); }
.scn-po .grave-a { left: 30%; animation: po-grave-a 8s ease-in-out infinite; }
.scn-po .grave-b { left: 60%; width: 20px; height: 25px; animation: po-grave-b 10s ease-in-out infinite; }
.scn-po .ghost { position: absolute; bottom: 50%; left: 45%; width: 30px; height: 50px; background: radial-gradient(ellipse, rgba(200,200,220,0.4) 0%, rgba(200,200,220,0) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: po-ghost 6s ease-in-out infinite; }
.scn-po .pillar { position: absolute; bottom: 30%; left: 15%; width: 12px; height: 60px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: po-pillar 20s ease-in-out infinite alternate; }
@keyframes po-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes po-comet { 0% { transform: translateX(-100px) rotate(20deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateX(120vw) rotate(20deg); opacity: 0; } }
@keyframes po-grave-a { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes po-grave-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes po-ghost { 0% { transform: translateY(0) scaleX(1); opacity: 0.3; } 50% { transform: translateY(-15px) scaleX(0.8); opacity: 0.6; } 100% { transform: translateY(0) scaleX(1); opacity: 0.4; } }
@keyframes po-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }

.scn-gh { background: linear-gradient(180deg, #0c1220 0%, #182640 50%, #0a0f1a 100%), radial-gradient(ellipse at 50% 30%, #2a4a6a 0%, transparent 70%); }
.scn-gh .bg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 50%); }
.scn-gh .moon { position: absolute; top: 12%; right: 20%; width: 40px; height: 40px; background: radial-gradient(circle, #d0d8e8 0%, #a0b0c8 80%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(160,176,200,0.3); animation: gh-moon 6s ease-in-out infinite alternate; }
.scn-gh .cloud { position: absolute; height: 16px; background: linear-gradient(90deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0.15) 100%); border-radius: 50%; filter: blur(4px); }
.scn-gh .cloud-a { top: 18%; left: 0; width: 120px; animation: gh-cloud-a 40s linear infinite; }
.scn-gh .cloud-b { top: 25%; left: 40%; width: 80px; animation: gh-cloud-b 60s linear infinite; }
.scn-gh .wall { position: absolute; bottom: 25%; left: 20%; width: 60%; height: 20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: gh-wall 14s ease-in-out infinite; }
.scn-gh .figure { position: absolute; bottom: 35%; left: 35%; width: 18px; height: 45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gh-figure 3s ease-in-out infinite; }
.scn-gh .ghost { position: absolute; bottom: 40%; left: 50%; width: 25px; height: 50px; background: radial-gradient(ellipse, rgba(200,210,230,0.5) 0%, rgba(200,210,230,0) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(5px); animation: gh-ghost 7s ease-in-out infinite; }
.scn-gh .mist { position: absolute; bottom: 20%; left: 0; width: 100%; height: 30%; background: linear-gradient(180deg, rgba(180,200,220,0.1) 0%, rgba(180,200,220,0.2) 50%, transparent 100%); filter: blur(10px); animation: gh-mist 20s ease-in-out infinite alternate; }
@keyframes gh-moon { 0% { transform: scale(1); box-shadow: 0 0 50px 15px rgba(160,176,200,0.2); } 50% { transform: scale(1.05); box-shadow: 0 0 70px 25px rgba(160,176,200,0.4); } 100% { transform: scale(0.98); box-shadow: 0 0 55px 18px rgba(160,176,200,0.25); } }
@keyframes gh-cloud-a { 0% { transform: translateX(-130px); } 100% { transform: translateX(110vw); } }
@keyframes gh-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes gh-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gh-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gh-ghost { 0% { transform: translateY(0) scaleX(1); opacity: 0.2; } 50% { transform: translateY(-20px) scaleX(0.7); opacity: 0.6; } 100% { transform: translateY(0) scaleX(1); opacity: 0.3; } }
@keyframes gh-mist { 0% { opacity: 0.3; transform: scaleY(0.9); } 50% { opacity: 0.6; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(1); } }

.scn-gertrude-closet-conflict {
  background: linear-gradient(135deg, #1a1020 0%, #2a1a2a 40%, #1a0a10 100%), radial-gradient(ellipse at 40% 20%, #3a2030 0%, transparent 60%);
}
.scn-gertrude-closet-conflict .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2020 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-gertrude-closet-conflict .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1414 100%);
  border-radius: 20% 0 0 0 / 40% 0 0 0;
  transform: perspective(400px) rotateX(20deg);
}
.scn-gertrude-closet-conflict .arras {
  position: absolute; top: 10%; left: 20%; width: 35%; height: 70%;
  background: linear-gradient(180deg, #4a2a2a 0%, #3a1818 50%, #2a1010 100%);
  border-radius: 0 10% 40% 0 / 0 20% 60% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.7);
  animation: gc-arras 8s ease-in-out infinite;
}
.scn-gertrude-closet-conflict .chair {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #2a1508 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(5deg);
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-gertrude-closet-conflict .candle {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e0b060 0%, #c08840 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(224, 176, 96, 0.6), 0 0 40px rgba(224, 176, 96, 0.3);
  animation: gc-candle 3s ease-in-out infinite alternate;
}
.scn-gertrude-closet-conflict .figure-hamlet {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gc-figure 2s ease-in-out infinite;
}
.scn-gertrude-closet-conflict .figure-gertrude {
  position: absolute; bottom: 28%; left: 55%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(1.1);
  animation: gc-figure 2.5s ease-in-out infinite reverse;
}
.scn-gertrude-closet-conflict .shadow-polonius {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50% 50% 10% 10%;
  filter: blur(4px);
  animation: gc-shadow 4s ease-in-out infinite alternate;
}
@keyframes gc-arras {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes gc-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px #e0b060, 0 0 30px rgba(224,176,96,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px #e0b060, 0 0 60px rgba(224,176,96,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 20px #e0b060, 0 0 40px rgba(224,176,96,0.35); }
}
@keyframes gc-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); }
}
@keyframes gc-shadow {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-2px) scale(0.95); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}

.scn-hamlet-confronts-mother {
  background: linear-gradient(135deg, #1a1020 0%, #2a1a2a 40%, #1a0a10 100%), radial-gradient(ellipse at 60% 30%, #3a2030 0%, transparent 60%);
}
.scn-hamlet-confronts-mother .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2020 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.5);
}
.scn-hamlet-confronts-mother .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1414 100%);
  border-radius: 30% 0 0 0 / 50% 0 0 0;
  transform: perspective(500px) rotateX(25deg);
}
.scn-hamlet-confronts-mother .table {
  position: absolute; bottom: 32%; left: 58%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #3a2010 0%, #2a1508 100%);
  border-radius: 5%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  transform: rotate(3deg);
}
.scn-hamlet-confronts-mother .candle {
  position: absolute; bottom: 44%; left: 60%; width: 6px; height: 45px;
  background: linear-gradient(180deg, #e0b060 0%, #c08840 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px #e0b060, 0 0 40px rgba(224,176,96,0.3);
  animation: hc-candle 3.5s ease-in-out infinite alternate;
}
.scn-hamlet-confronts-mother .figure-hamlet {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hc-figure 2s ease-in-out infinite;
}
.scn-hamlet-confronts-mother .figure-queen {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(1.1);
  animation: hc-figure 2.5s ease-in-out infinite reverse;
}
.scn-hamlet-confronts-mother .painting {
  position: absolute; top: 12%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%);
  border: 3px solid #4a3020;
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: hc-painting 15s ease-in-out infinite alternate;
}
@keyframes hc-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px #e0b060, 0 0 30px rgba(224,176,96,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px #e0b060, 0 0 60px rgba(224,176,96,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 20px #e0b060, 0 0 40px rgba(224,176,96,0.35); }
}
@keyframes hc-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1.5deg); }
  50% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); }
}
@keyframes hc-painting {
  0% { transform: rotate(0deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(2deg) scale(0.98); opacity: 0.6; }
  100% { transform: rotate(-1deg) scale(1); opacity: 0.9; }
}

.scn-polonius-killed-behind-arras {
  background: linear-gradient(135deg, #1a0a10 0%, #2a1015 40%, #1a050a 100%), radial-gradient(ellipse at 50% 70%, #3a1515 0%, transparent 60%);
}
.scn-polonius-killed-behind-arras .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-polonius-killed-behind-arras .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0505 0%, #2a1010 100%);
  border-radius: 10% 0 0 0 / 20% 0 0 0;
  transform: perspective(400px) rotateX(15deg);
}
.scn-polonius-killed-behind-arras .arras {
  position: absolute; top: 8%; left: 25%; width: 50%; height: 75%;
  background: linear-gradient(180deg, #4a2020 0%, #3a1515 50%, #2a0a0a 100%);
  border-radius: 0 20% 40% 0 / 0 30% 60% 0;
  box-shadow: inset -15px 0 30px rgba(0,0,0,0.8);
  animation: pk-arras 6s ease-in-out infinite alternate;
}
.scn-polonius-killed-behind-arras .body-polonius {
  position: absolute; bottom: 10%; left: 40%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #3a1515 0%, #2a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: rotate(-15deg);
  animation: pk-body 8s ease-in-out infinite;
}
.scn-polonius-killed-behind-arras .sword {
  position: absolute; bottom: 22%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0a0b0 0%, #707080 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(200,200,200,0.2);
  transform: rotate(30deg);
  animation: pk-sword 3s ease-in-out infinite alternate;
}
.scn-polonius-killed-behind-arras .figure-hamlet {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pk-figure 2s ease-in-out infinite;
}
.scn-polonius-killed-behind-arras .figure-gertrude {
  position: absolute; bottom: 28%; left: 55%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scale(1.1);
  animation: pk-figure 2.5s ease-in-out infinite reverse;
}
.scn-polonius-killed-behind-arras .pool-blood {
  position: absolute; bottom: 5%; left: 38%; width: 60px; height: 15px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pk-blood 10s ease-in-out infinite alternate;
}
@keyframes pk-arras {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.03); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes pk-body {
  0%, 100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-13deg) translateY(-2px); }
}
@keyframes pk-sword {
  0% { transform: rotate(28deg) translateY(0); opacity: 0.9; }
  50% { transform: rotate(32deg) translateY(-1px); opacity: 1; }
  100% { transform: rotate(28deg) translateY(0); opacity: 0.9; }
}
@keyframes pk-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); }
}
@keyframes pk-blood {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
  50% { transform: scaleX(1.1) scaleY(0.8); opacity: 0.9; }
  100% { transform: scaleX(0.9) scaleY(1.2); opacity: 0.8; }
}

.scn-hamlet-wrings-heart-not-hands {
  background: linear-gradient(135deg, #1a1015 0%, #2a1518 40%, #1a0810 100%), radial-gradient(ellipse at 50% 40%, #3a1a1a 0%, transparent 60%);
}
.scn-hamlet-wrings-heart-not-hands .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.8);
}
.scn-hamlet-wrings-heart-not-hands .hands {
  position: absolute; bottom: 40%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #3a2020 0%, #2a1515 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: hw-hands 4s ease-in-out infinite;
}
.scn-hamlet-wrings-heart-not-hands .heart {
  position: absolute; bottom: 42%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 30%, #c8553d 0%, #5e1a1d 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(45deg);
  box-shadow: 0 0 30px rgba(200,85,60,0.5), 0 0 60px rgba(200,85,60,0.2);
  animation: hw-heart 2s ease-in-out infinite alternate;
}
.scn-hamlet-wrings-heart-not-hands .figure-hamlet {
  position: absolute; bottom: 20%; left: 32%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hw-figure 3s ease-in-out infinite;
}
.scn-hamlet-wrings-heart-not-hands .candle {
  position: absolute; bottom: 50%; left: 55%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #e0b060 0%, #c08840 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px #e0b060, 0 0 30px rgba(224,176,96,0.3);
  animation: hw-candle 3s ease-in-out infinite alternate;
}
.scn-hamlet-wrings-heart-not-hands .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: hw-shadow 5s ease-in-out infinite alternate;
}
@keyframes hw-hands {
  0%, 100% { transform: rotate(-10deg) translateY(0) scale(1); }
  50% { transform: rotate(-5deg) translateY(-3px) scale(1.05); }
}
@keyframes hw-heart {
  0% { transform: rotate(40deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(50deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(40deg) scale(0.95); opacity: 0.9; }
}
@keyframes hw-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1.5deg); }
  50% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); }
}
@keyframes hw-candle {
  0% { opacity: 0.8; box-shadow: 0 0 10px #e0b060, 0 0 20px rgba(224,176,96,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px #e0b060, 0 0 50px rgba(224,176,96,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 15px #e0b060, 0 0 30px rgba(224,176,96,0.35); }
}
@keyframes hw-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(5px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}

/* Scene 1: rosencrantz-accept-mission */
.scn-rosencrantz-accept-mission {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 60%, #b8a080 100%), 
              radial-gradient(ellipse at 70% 20%, #fff2d6 0%, transparent 60%);
}
.scn-rosencrantz-accept-mission .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
}
.scn-rosencrantz-accept-mission .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-rosencrantz-accept-mission .throne {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: raam-throne 6s ease-in-out infinite;
}
.scn-rosencrantz-accept-mission .figure-left {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: raam-bow-left 4s ease-in-out infinite;
}
.scn-rosencrantz-accept-mission .figure-right {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: raam-bow-right 4s ease-in-out infinite 0.5s;
}
.scn-rosencrantz-accept-mission .window {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d8a0 100%);
  border: 4px solid #6a5a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,248,220,0.8);
  animation: raam-window 8s ease-in-out infinite;
}
.scn-rosencrantz-accept-mission .light-ray {
  position: absolute; top: 18%; right: 18%; width: 40px; height: 200px;
  background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, transparent 100%);
  transform: rotate(-10deg);
  transform-origin: top center;
  animation: raam-light 6s ease-in-out infinite alternate;
}
.scn-rosencrantz-accept-mission .banner {
  position: absolute; top: 5%; left: 10%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #a05830 0%, #703820 100%);
  border-radius: 0 0 30% 30%;
  animation: raam-banner 12s ease-in-out infinite;
}
@keyframes raam-throne {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.01); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes raam-bow-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes raam-bow-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes raam-window {
  0%,100% { opacity: 0.9; box-shadow: inset 0 0 10px rgba(255,248,220,0.8); }
  50% { opacity: 1; box-shadow: inset 0 0 20px rgba(255,248,220,1); }
}
@keyframes raam-light {
  0% { opacity: 0.6; transform: rotate(-10deg); }
  100% { opacity: 1; transform: rotate(0deg); }
}
@keyframes raam-banner {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
}

/* Scene 2: polonius-returns-ambassadors */
.scn-polonius-returns-ambassadors {
  background: linear-gradient(180deg, #f0e4c8 0%, #d4c4a0 50%, #b8a080 100%),
              radial-gradient(ellipse at 30% 70%, #fff2d6 0%, transparent 60%);
}
.scn-polonius-returns-ambassadors .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
}
.scn-polonius-returns-ambassadors .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-polonius-returns-ambassadors .arch {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(180deg, #c8b898 0%, #b8a080 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 6px solid #8a7a5a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-polonius-returns-ambassadors .polonius {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pra-walk 5s ease-in-out infinite;
}
.scn-polonius-returns-ambassadors .ambassador1 {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pra-stand 6s ease-in-out infinite;
}
.scn-polonius-returns-ambassadors .ambassador2 {
  position: absolute; bottom: 22%; left: 65%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pra-stand 6s ease-in-out infinite 1s;
}
.scn-polonius-returns-ambassadors .glow {
  position: absolute; top: 15%; right: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff2d6 0%, transparent 70%);
  animation: pra-glow 8s ease-in-out infinite alternate;
}
@keyframes pra-walk {
  0% { transform: translateX(-20px) rotate(-2deg); }
  25% { transform: translateX(-10px) rotate(0deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(10px) rotate(0deg); }
  100% { transform: translateX(20px) rotate(-2deg); }
}
@keyframes pra-stand {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes pra-glow {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* Scene 3: polonius-claims-knowledge */
.scn-polonius-claims-knowledge {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #9a8a6a 100%),
              radial-gradient(ellipse at 50% 30%, #fff2d6 0%, transparent 70%);
}
.scn-polonius-claims-knowledge .bg-curtain {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  opacity: 0.3;
}
.scn-polonius-claims-knowledge .head {
  position: absolute; top: 15%; left: 50%; width: 30px; height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pck-head 4s ease-in-out infinite;
}
.scn-polonius-claims-knowledge .body {
  position: absolute; top: 35%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pck-body 6s ease-in-out infinite;
}
.scn-polonius-claims-knowledge .arm {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 50px;
  transform-origin: top center;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40%;
  animation: pck-arm 3s ease-in-out infinite;
}
.scn-polonius-claims-knowledge .paper {
  position: absolute; top: 45%; left: 62%; width: 20px; height: 25px;
  background: #f0e4c8;
  transform: rotate(15deg);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pck-paper 5s ease-in-out infinite;
}
.scn-polonius-claims-knowledge .light-spot {
  position: absolute; top: 10%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,240,200,0.3) 0%, transparent 70%);
  animation: pck-spot 7s ease-in-out infinite alternate;
}
@keyframes pck-head {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pck-body {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
}
@keyframes pck-arm {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes pck-paper {
  0%,100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
}
@keyframes pck-spot {
  0% { opacity: 0.5; transform: translateX(0); }
  100% { opacity: 1; transform: translateX(10px); }
}

/* Scene 4: voltimand-reports-norway */
.scn-voltimand-reports-norway {
  background: linear-gradient(180deg, #f0e4c8 0%, #d4c4a0 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 50%, #fff2d6 0%, transparent 60%);
}
.scn-voltimand-reports-norway .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
}
.scn-voltimand-reports-norway .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-voltimand-reports-norway .king {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: vrn-royal 8s ease-in-out infinite;
}
.scn-voltimand-reports-norway .queen {
  position: absolute; bottom: 18%; left: 50%; width: 35px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: vrn-royal 8s ease-in-out infinite 0.5s;
}
.scn-voltimand-reports-norway .voltimand {
  position: absolute; bottom: 18%; left: 75%; width: 22px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vrn-bow 6s ease-in-out infinite;
}
.scn-voltimand-reports-norway .window {
  position: absolute; top: 10%; left: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d8a0 100%);
  border: 5px solid #6a5a3a;
  border-radius: 6px;
  box-shadow: inset 0 0 15px rgba(255,248,220,0.9);
  animation: vrn-window 10s ease-in-out infinite;
}
.scn-voltimand-reports-norway .banner {
  position: absolute; top: 5%; right: 10%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #a05830 0%, #703820 100%);
  border-radius: 0 0 40% 40%;
  animation: vrn-banner 15s ease-in-out infinite;
}
@keyframes vrn-royal {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.02); }
}
@keyframes vrn-bow {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes vrn-window {
  0%,100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(255,248,220,0.9); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(255,248,220,1); }
}
@keyframes vrn-banner {
  0%,100% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(4px) rotate(3deg); }
}

/* Scenes for tense Shakespearean reader */

/* claudius-carousing-custom – dark hall, silent revel */
.scn-claudius-carousing-custom {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a1a1e 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a1e 0%, #0e0e1a 80%);
  background-blend-mode: overlay;
}
.scn-claudius-carousing-custom .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, transparent 60%);
  animation: cc1-hall 12s ease-in-out infinite alternate;
}
.scn-claudius-carousing-custom .throne {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: cc1-throne 6s ease-in-out infinite;
}
.scn-claudius-carousing-custom .king-silhouette {
  position: absolute; bottom: 25%; left: 42%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 40%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cc1-king 4s ease-in-out infinite;
}
.scn-claudius-carousing-custom .goblet {
  position: absolute; bottom: 30%; left: 58%; width: 6%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #705030 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: cc1-goblet 3s ease-in-out infinite;
}
.scn-claudius-carousing-custom .candle-glow {
  position: absolute; bottom: 45%; left: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffaa55 0%, #cc8833 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(204,136,51,0.4);
  animation: cc1-candle 2s ease-in-out infinite alternate;
}
.scn-claudius-carousing-custom .table-edge {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cc1-table 8s ease-in-out infinite;
}
.scn-claudius-carousing-custom .wine-pool {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 4%;
  background: radial-gradient(ellipse, #6f3828 0%, #4a2015 60%, transparent 100%);
  border-radius: 50%;
  animation: cc1-wine 5s ease-in-out infinite alternate;
}
@keyframes cc1-hall { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes cc1-throne { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cc1-king { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cc1-goblet { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } 75% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cc1-candle { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes cc1-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cc1-wine { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.1); } 100% { opacity:0.8; transform: scaleX(1); } }

/* hamlet-on-defect-and-reputation – dark, introspective close-up */
.scn-hamlet-on-defect-and-reputation {
  background:
    linear-gradient(0deg, #0a0a12 0%, #1c1c2a 30%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 70%, #1a1a28 0%, transparent 70%);
}
.scn-hamlet-on-defect-and-reputation .void-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(20,20,40,0.6), transparent 70%);
  animation: hdr-void 15s ease-in-out infinite alternate;
}
.scn-hamlet-on-defect-and-reputation .face-profile {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2e 50%, #0e0e1a 100%);
  border-radius: 60% 40% 50% 50% / 70% 50% 60% 50%;
  animation: hdr-face 6s ease-in-out infinite;
}
.scn-hamlet-on-defect-and-reputation .eye {
  position: absolute; bottom: 55%; left: 40%; width: 8%; height: 5%;
  background: radial-gradient(circle, #ffffff 0%, #aaaaaa 60%, transparent 100%);
  border-radius: 50%;
  animation: hdr-eye 4s ease-in-out infinite alternate;
}
.scn-hamlet-on-defect-and-reputation .mole {
  position: absolute; bottom: 45%; left: 55%; width: 3%; height: 3%;
  background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  animation: hdr-mole 8s ease-in-out infinite;
}
.scn-hamlet-on-defect-and-reputation .hand-clenched {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom left;
  animation: hdr-hand 5s ease-in-out infinite;
}
.scn-hamlet-on-defect-and-reputation .hair-strand {
  position: absolute; bottom: 70%; left: 30%; width: 20%; height: 8%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: hdr-hair 10s ease-in-out infinite alternate;
}
.scn-hamlet-on-defect-and-reputation .collar-edge {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%);
  border-radius: 10% 50% 10% 50%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  animation: hdr-collar 12s ease-in-out infinite;
}
@keyframes hdr-void { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes hdr-face { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes hdr-eye { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(0.2); opacity:0.4; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes hdr-mole { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hdr-hand { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(3deg); } 60% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hdr-hair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hdr-collar { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

/* ghost-appears-to-hamlet – moonlit battlements, ghost rises */
.scn-ghost-appears-to-hamlet {
  background:
    linear-gradient(180deg, #090a18 0%, #12142a 50%, #1a1c36 100%),
    radial-gradient(ellipse at 50% 0%, #2a3a6a 0%, transparent 70%);
}
.scn-ghost-appears-to-hamlet .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 100%);
  animation: gah-sky 20s ease-in-out infinite alternate;
}
.scn-ghost-appears-to-hamlet .moon {
  position: absolute; top: 8%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle, #e8e8f0 0%, #a0a0c0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,160,192,0.3);
  animation: gah-moon 30s linear infinite;
}
.scn-ghost-appears-to-hamlet .battlement-left {
  position: absolute; bottom: 35%; left: 0; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 0 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: gah-wall 8s ease-in-out infinite;
}
.scn-ghost-appears-to-hamlet .battlement-right {
  position: absolute; bottom: 35%; right: 0; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 0 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: gah-wall 8s ease-in-out infinite reverse;
}
.scn-ghost-appears-to-hamlet .ghost-armor {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #6a7a8a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(100,130,160,0.4);
  animation: gah-ghost 5s ease-in-out infinite alternate;
}
.scn-ghost-appears-to-hamlet .hamlet-figure {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: gah-hamlet 6s ease-in-out infinite;
}
.scn-ghost-appears-to-hamlet .mist {
  position: absolute; bottom: 25%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, rgba(180,200,230,0.1) 0%, rgba(180,200,230,0.05) 50%, transparent 100%);
  filter: blur(20px);
  animation: gah-mist 15s ease-in-out infinite alternate;
}
@keyframes gah-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes gah-moon { 0% { transform: translateX(0); opacity:0.7; } 50% { transform: translateX(10px); opacity:1; } 100% { transform: translateX(-10px); opacity:0.8; } }
@keyframes gah-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gah-ghost { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-10px) scale(1.05); opacity:0.9; } 100% { transform: translateY(2px) scale(0.98); opacity:0.7; } }
@keyframes gah-hamlet { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(3deg); } 70% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gah-mist { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* hamlet-addresses-ghost – moonlit graveyard, kneeling and towering */
.scn-hamlet-addresses-ghost {
  background:
    linear-gradient(180deg, #0c0e20 0%, #161838 50%, #1c1e3a 100%),
    radial-gradient(ellipse at 50% 30%, #2a3a5a 0%, transparent 80%);
}
.scn-hamlet-addresses-ghost .moonlit-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1c34 0%, #0c0e20 100%);
  animation: ha1-sky 20s ease-in-out infinite alternate;
}
.scn-hamlet-addresses-ghost .sepulchre-mouth {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, #2a2a3e 50%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.8), 0 0 20px 5px rgba(200,180,220,0.1);
  animation: ha1-sepulchre 8s ease-in-out infinite;
}
.scn-hamlet-addresses-ghost .ghost-tall {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #7a8a9a 0%, #3a4a5a 50%, #1a2a3a 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(120,140,180,0.3);
  animation: ha1-ghost 6s ease-in-out infinite alternate;
}
.scn-hamlet-addresses-ghost .hamlet-kneeling {
  position: absolute; bottom: 5%; left: 20%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha1-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-addresses-ghost .chain-link {
  position: absolute; bottom: 40%; left: 45%; width: 10%; height: 25%;
  background: repeating-linear-gradient(0deg, #5a5a6a 0px, #5a5a6a 4px, #2a2a3a 4px, #2a2a3a 8px);
  border-radius: 10%;
  animation: ha1-chain 3s ease-in-out infinite alternate;
}
.scn-hamlet-addresses-ghost .grave-earth {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ha1-earth 15s ease-in-out infinite;
}
.scn-hamlet-addresses-ghost .shroud-ribbon {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(90deg, transparent, #6a6a7a, transparent);
  filter: blur(2px);
  animation: ha1-ribbon 10s ease-in-out infinite alternate;
}
@keyframes ha1-sky { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes ha1-sepulchre { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes ha1-ghost { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-8px) rotate(1deg) scale(1.02); } 100% { transform: translateY(3px) rotate(-1deg) scale(0.98); } }
@keyframes ha1-hamlet { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(5px) rotate(2deg) scale(1.02); } 75% { transform: translateX(-5px) rotate(-2deg) scale(1.02); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes ha1-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(5deg); } 100% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes ha1-earth { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ha1-ribbon { 0% { transform: translateX(0) scaleX(1); opacity:0.3; } 50% { transform: translateX(-10px) scaleX(1.2); opacity:0.7; } 100% { transform: translateX(10px) scaleX(1); opacity:0.4; } }

.scn-polonius-method-madness {
  background: linear-gradient(180deg, #f9ecc4 0%, #dbb884 50%, #b8945a 100%), radial-gradient(ellipse at 50% 100%, #dbb884 0%, transparent 70%);
}
.scn-polonius-method-madness .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ffffff90 0%, #f5d99080 100%);
}
.scn-polonius-method-madness .curtain-l {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%);
  border-radius: 0 40% 40% 0; transform-origin: left center;
  animation: pm1-curtain 6s ease-in-out infinite alternate;
}
.scn-polonius-method-madness .curtain-r {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%);
  border-radius: 40% 0 0 40%; transform-origin: right center;
  animation: pm1-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-polonius-method-madness .polonius {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 180px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pm1-figure 3s ease-in-out infinite;
}
.scn-polonius-method-madness .book {
  position: absolute; bottom: 18%; left: 52%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3010 100%);
  border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: pm1-book 4s ease-in-out infinite;
}
.scn-polonius-method-madness .candle {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #b08050 100%);
  border-radius: 2px;
}
.scn-polonius-method-madness .glow {
  position: absolute; bottom: 42%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd68080 0%, #ffd68020 50%, transparent 100%);
  border-radius: 50%; animation: pm1-glow 2s ease-in-out infinite alternate;
}
@keyframes pm1-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.95); }
}
@keyframes pm1-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-5px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes pm1-book {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-8px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes pm1-glow {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-hamlet-except-my-life {
  background: linear-gradient(180deg, #fef5d9 0%, #e8c78a 50%, #c9975a 100%), radial-gradient(circle at 50% 30%, #fef5d9 0%, transparent 60%);
}
.scn-hamlet-except-my-life .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #fff8e7 0%, #f5dbb0 80%);
}
.scn-hamlet-except-my-life .hamlet {
  position: absolute; bottom: 8%; left: 35%; width: 100px; height: 200px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: he2-figure 2s ease-in-out infinite alternate;
}
.scn-hamlet-except-my-life .life1 {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 12px #ffd68060;
  animation: he2-life 3s ease-in-out infinite;
}
.scn-hamlet-except-my-life .life2 {
  position: absolute; bottom: 50%; left: 44%; width: 18px; height: 18px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 10px #ffd68060;
  animation: he2-life 3s ease-in-out infinite 0.8s;
}
.scn-hamlet-except-my-life .life3 {
  position: absolute; bottom: 35%; left: 54%; width: 22px; height: 22px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 14px #ffd68060;
  animation: he2-life 3s ease-in-out infinite 1.6s;
}
.scn-hamlet-except-my-life .hand {
  position: absolute; bottom: 30%; left: 60%; width: 25px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: left bottom;
  animation: he2-hand 3s ease-in-out infinite;
}
.scn-hamlet-except-my-life .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20px;
  background: radial-gradient(ellipse, #00000020 0%, transparent 70%);
  border-radius: 50%;
}
@keyframes he2-figure {
  0% { transform: rotate(-1deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(-8px); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(-2deg) translateX(8px); }
  100% { transform: rotate(1deg) translateX(0); }
}
@keyframes he2-life {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes he2-hand {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-10deg); }
}

.scn-rosencrantz-indifferent-children {
  background: linear-gradient(180deg, #dce8f0 0%, #b2ccd9 50%, #8aaec2 100%), radial-gradient(ellipse at 50% 20%, #dce8f0 0%, transparent 60%);
}
.scn-rosencrantz-indifferent-children .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0f8ff 0%, #caddf0 100%);
}
.scn-rosencrantz-indifferent-children .cap {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #d4af37 0%, #896c24 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: translateX(-50%);
  animation: ri3-cap 12s ease-in-out infinite alternate;
}
.scn-rosencrantz-indifferent-children .shoe {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ri3-shoe 15s ease-in-out infinite alternate;
}
.scn-rosencrantz-indifferent-children .belt {
  position: absolute; bottom: 40%; left: 40%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #7a5a2a 0%, #4a3010 50%, #7a5a2a 100%);
  border-radius: 4px;
  animation: ri3-belt 10s ease-in-out infinite;
}
.scn-rosencrantz-indifferent-children .figure {
  position: absolute; bottom: 10%; left: 38%; width: 70px; height: 160px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ri3-figure 8s ease-in-out infinite alternate;
}
.scn-rosencrantz-indifferent-children .button {
  position: absolute; top: 10%; left: 52%; width: 14px; height: 14px;
  background: radial-gradient(circle, #d4af37 0%, #896c24 100%);
  border-radius: 50%;
  animation: ri3-button 6s ease-in-out infinite;
}
.scn-rosencrantz-indifferent-children .float-orb {
  position: absolute; top: 30%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(180,210,230,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ri3-float 20s ease-in-out infinite;
}
@keyframes ri3-cap {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(5deg) translateY(-5px); }
  100% { transform: translateX(-50%) rotate(-3deg) translateY(0); }
}
@keyframes ri3-shoe {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(10px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes ri3-belt {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ri3-figure {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes ri3-button {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}
@keyframes ri3-float {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(20px, -15px) scale(1.1); }
  50% { transform: translate(-10px, -30px) scale(0.9); }
  75% { transform: translate(30px, -10px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}

.scn-denmark-is-a-prison {
  background: linear-gradient(180deg, #d4c8b0 0%, #b0a090 50%, #8a7a6a 100%), radial-gradient(ellipse at 50% 20%, #d4c8b0 0%, transparent 70%);
}
.scn-denmark-is-a-prison .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0d8c0 0%, #bfb098 100%);
}
.scn-denmark-is-a-prison .bar-l {
  position: absolute; top: 0; left: 20%; width: 6px; height: 100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: dp4-bar 1s ease-in-out infinite alternate;
}
.scn-denmark-is-a-prison .bar-r {
  position: absolute; top: 0; right: 20%; width: 6px; height: 100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: dp4-bar 1.2s ease-in-out infinite alternate-reverse;
}
.scn-denmark-is-a-prison .bar-mid {
  position: absolute; top: 0; left: 50%; width: 6px; height: 100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: dp4-bar 0.8s ease-in-out infinite alternate;
}
.scn-denmark-is-a-prison .prisoner {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 170px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: dp4-prisoner 3s ease-in-out infinite;
}
.scn-denmark-is-a-prison .chain {
  position: absolute; bottom: 40%; left: 28%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #8a7a6a 0%, #4a3a2a 50%, #8a7a6a 100%);
  border-radius: 4px;
  animation: dp4-chain 4s ease-in-out infinite;
}
.scn-denmark-is-a-prison .window {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #ffe090 0%, #c09040 100%);
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #ffe09040;
  animation: dp4-window 5s ease-in-out infinite alternate;
}
.scn-denmark-is-a-prison .light-beam {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 300px;
  background: linear-gradient(180deg, rgba(255,224,144,0.3) 0%, transparent 100%);
  transform-origin: top center;
  transform: rotate(-10deg);
  animation: dp4-beam 7s ease-in-out infinite alternate;
}
@keyframes dp4-bar {
  0% { opacity: 0.9; }
  50% { opacity: 0.5; }
  100% { opacity: 0.9; }
}
@keyframes dp4-prisoner {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dp4-chain {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dp4-window {
  0% { box-shadow: inset 0 0 20px #ffe09040; }
  50% { box-shadow: inset 0 0 40px #ffe09080; }
  100% { box-shadow: inset 0 0 20px #ffe09040; }
}
@keyframes dp4-beam {
  0% { opacity: 0.5; transform: rotate(-15deg); }
  50% { opacity: 0.8; transform: rotate(-5deg); }
  100% { opacity: 0.5; transform: rotate(-15deg); }
}

.scn-hamlet-loved-you-not {
  background: linear-gradient(180deg, #c8b89a 0%, #a08870 40%, #705840 100%), radial-gradient(ellipse at 50% 0%, #e0d8c0 0%, transparent 50%);
}
.scn-hamlet-loved-you-not .wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #b0a088 0%, #d8c8b0 40%, #b09878 100%); animation: hl1-wall 12s ease-in-out infinite alternate;
}
.scn-hamlet-loved-you-not .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-hamlet-loved-you-not .figure {
  position:absolute; bottom:28%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hl1-figure 6s ease-in-out infinite;
}
.scn-hamlet-loved-you-not .mirror {
  position:absolute; top:22%; left:30%; width:60px; height:80px; background: linear-gradient(135deg, #c8c8d0 0%, #a0a0b0 100%); border: solid 4px #8a7a62; border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: hl1-mirror 15s ease-in-out infinite;
}
.scn-hamlet-loved-you-not .shadow {
  position:absolute; bottom:22%; left:52%; width:60px; height:30px; background: rgba(0,0,0,0.35); border-radius: 50%; filter: blur(8px); transform: skewX(-10deg); animation: hl1-shadow 6s ease-in-out infinite;
}
.scn-hamlet-loved-you-not .candle {
  position:absolute; bottom:34%; left:68%; width:6px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #b09860 100%); border-radius: 3px 3px 2px 2px; transform-origin: bottom center; animation: hl1-candle 4s ease-in-out infinite;
}
.scn-hamlet-loved-you-not .glow {
  position:absolute; bottom:35%; left:69%; width:40px; height:40px; background: radial-gradient(circle, #ffd060 0%, transparent 70%); animation: hl1-glow 2s ease-in-out infinite alternate;
}
.scn-hamlet-loved-you-not .dust {
  position:absolute; top:15%; left:10%; width:4px; height:4px; background: rgba(255,255,200,0.6); border-radius:50%; filter:blur(2px); animation: hl1-dust 12s linear infinite;
}
@keyframes hl1-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hl1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(4px) rotate(-3deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hl1-mirror { 0% { opacity:0.85; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes hl1-shadow { 0% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-14deg) scaleX(1.05); } 100% { transform: skewX(-10deg) scaleX(1); } }
@keyframes hl1-candle { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes hl1-glow { 0% { opacity:0.7; transform:scale(1); } 100% { opacity:1; transform:scale(1.1); } }
@keyframes hl1-dust { 0% { transform: translate(0,0) opacity(0); } 25% { transform: translate(30px,-20px) opacity(0.6); } 50% { transform: translate(60px,-40px) opacity(0.3); } 75% { transform: translate(90px,-60px) opacity(0.6); } 100% { transform: translate(120px,-80px) opacity(0); } }

.scn-hamlet-nunnery-continued {
  background: linear-gradient(180deg, #b0a088 0%, #887058 50%, #504030 100%), radial-gradient(ellipse at 50% 0%, #e0d0b8 0%, transparent 60%);
}
.scn-hamlet-nunnery-continued .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #9a8878 0%, #c0b0a0 50%, #8a7868 100%); animation: hl2-wall 10s ease-in-out infinite alternate;
}
.scn-hamlet-nunnery-continued .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 12% 12% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,0.4);
}
.scn-hamlet-nunnery-continued .doorway {
  position:absolute; bottom:30%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: #2a1a0a; border-radius: 50% 50% 4% 4% / 60% 60% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: hl2-door 20s ease-in-out infinite;
}
.scn-hamlet-nunnery-continued .figure-crawl {
  position:absolute; bottom:28%; left:44%; width:50px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; animation: hl2-crawl 7s ease-in-out infinite;
}
.scn-hamlet-nunnery-continued .shadow-crawl {
  position:absolute; bottom:25%; left:43%; width:70px; height:20px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px); transform: skewX(-10deg); animation: hl2-shadow2 7s ease-in-out infinite;
}
.scn-hamlet-nunnery-continued .chandelier {
  position:absolute; top:8%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #b09870 0%, #887058 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: hl2-chandelier 8s ease-in-out infinite;
}
.scn-hamlet-nunnery-continued .light-shaft {
  position:absolute; top:0; left:46%; width:20px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); filter: blur(4px); animation: hl2-shaft 15s ease-in-out infinite alternate;
}
.scn-hamlet-nunnery-continued .motes {
  position:absolute; top:5%; left:45%; width:3px; height:3px; background: rgba(255,255,200,0.7); border-radius:50%; filter:blur(1px); animation: hl2-motes 18s linear infinite;
}
@keyframes hl2-wall { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes hl2-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hl2-crawl { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-3deg); } 50% { transform: translateX(6px) rotate(5deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hl2-shadow2 { 0% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-12deg) scaleX(1.1); } 100% { transform: skewX(-10deg) scaleX(1); } }
@keyframes hl2-chandelier { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hl2-shaft { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes hl2-motes { 0% { transform: translateY(0) opacity(0); } 10% { opacity:0.8; } 25% { transform: translateY(40px) opacity(0.4); } 50% { transform: translateY(80px) opacity(0.7); } 75% { transform: translateY(120px) opacity(0.3); } 100% { transform: translateY(160px) opacity(0); } }

.scn-hamlet-rages-paintings {
  background: linear-gradient(180deg, #b89878 0%, #906848 50%, #603828 100%), radial-gradient(ellipse at 70% 40%, #d0b898 0%, transparent 50%);
}
.scn-hamlet-rages-paintings .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #a08068 0%, #c8a888 50%, #886858 100%); animation: hl3-wall 14s ease-in-out infinite alternate;
}
.scn-hamlet-rages-paintings .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #604838 0%, #382820 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-hamlet-rages-paintings .painting-frame {
  position:absolute; top:14%; left:25%; width:80px; height:100px; border: solid 6px #8a7058; border-radius: 4%; background: #2a1a0a; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: hl3-frame 20s ease-in-out infinite;
}
.scn-hamlet-rages-paintings .painting-face {
  position:absolute; top:18%; left:28%; width:60px; height:50px; background: linear-gradient(180deg, #b08060 0%, #8a6048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -6px 8px rgba(0,0,0,0.3); animation: hl3-face 8s ease-in-out infinite;
}
.scn-hamlet-rages-paintings .figure-rage {
  position:absolute; bottom:26%; left:60%; width:45px; height:70px; background: linear-gradient(180deg, #3a2820 0%, #1a1208 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hl3-rage 6s ease-in-out infinite;
}
.scn-hamlet-rages-paintings .shadow-rage {
  position:absolute; bottom:22%; left:56%; width:70px; height:30px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); transform: skewX(-15deg); animation: hl3-shadow3 6s ease-in-out infinite;
}
.scn-hamlet-rages-paintings .candle-rage {
  position:absolute; bottom:34%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #d0b070 0%, #a08850 100%); border-radius: 2px; transform-origin: bottom center; animation: hl3-candle3 4s ease-in-out infinite;
}
.scn-hamlet-rages-paintings .glow-rage {
  position:absolute; bottom:35%; left:49%; width:35px; height:35px; background: radial-gradient(circle, #ffd070 0%, transparent 70%); animation: hl3-glow3 2s ease-in-out infinite alternate;
}
.scn-hamlet-rages-paintings .scatter {
  position:absolute; top:10%; left:70%; width:5px; height:5px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(2px); animation: hl3-scatter 15s linear infinite;
}
@keyframes hl3-wall { 0% { opacity:0.85; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes hl3-frame { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes hl3-face { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hl3-rage { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-5deg); } 50% { transform: translateX(-6px) rotate(4deg); } 75% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hl3-shadow3 { 0% { transform: skewX(-15deg) scaleX(1); } 50% { transform: skewX(-18deg) scaleX(1.1); } 100% { transform: skewX(-15deg) scaleX(1); } }
@keyframes hl3-candle3 { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes hl3-glow3 { 0% { opacity:0.6; transform:scale(1); } 100% { opacity:1; transform:scale(1.1); } }
@keyframes hl3-scatter { 0% { transform: translateX(0) translateY(0) opacity(0); } 25% { transform: translateX(-20px) translateY(-30px) opacity(0.5); } 50% { transform: translateX(-40px) translateY(-60px) opacity(0.2); } 75% { transform: translateX(-60px) translateY(-90px) opacity(0.4); } 100% { transform: translateX(-80px) translateY(-120px) opacity(0); } }

.scn-ophelia-noble-mind-oerthrown {
  background: linear-gradient(180deg, #605868 0%, #382838 40%, #201420 100%), radial-gradient(ellipse at 50% 30%, #806878 0%, transparent 60%);
}
.scn-ophelia-noble-mind-oerthrown .wall-dim {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4a3a4a 0%, #6a5a6a 50%, #3a2a3a 100%); animation: op4-wall 16s ease-in-out infinite alternate;
}
.scn-ophelia-noble-mind-oerthrown .floor-dim {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-ophelia-noble-mind-oerthrown .figure-slump {
  position:absolute; bottom:24%; left:50%; width:45px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: op4-slump 8s ease-in-out infinite;
}
.scn-ophelia-noble-mind-oerthrown .crown-broken {
  position:absolute; bottom:38%; left:46%; width:30px; height:10px; background: linear-gradient(90deg, #b09870 0%, #887058 50%, #604828 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: op4-crown 12s ease-in-out infinite;
}
.scn-ophelia-noble-mind-oerthrown .book-fallen {
  position:absolute; bottom:21%; left:56%; width:28px; height:20px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 2px; transform: rotate(25deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: op4-book 20s ease-in-out infinite;
}
.scn-ophelia-noble-mind-oerthrown .candle-dim {
  position:absolute; bottom:34%; left:42%; width:5px; height:16px; background: linear-gradient(180deg, #c0a078 0%, #907058 100%); border-radius: 2px; transform-origin: bottom center; animation: op4-candle4 5s ease-in-out infinite;
}
.scn-ophelia-noble-mind-oerthrown .aura-dim {
  position:absolute; bottom:35%; left:43%; width:30px; height:30px; background: radial-gradient(circle, #c09870 0%, transparent 70%); animation: op4-aura 3s ease-in-out infinite alternate;
}
.scn-ophelia-noble-mind-oerthrown .petal {
  position:absolute; top:5%; left:20%; width:8px; height:8px; background: #b07878; border-radius: 50% 50% 0 50%; transform: rotate(45deg); opacity:0.6; animation: op4-petal 15s linear infinite;
}
@keyframes op4-wall { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes op4-slump { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes op4-crown { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-18deg) scaleY(1.05); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes op4-book { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(28deg) translateY(-2px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes op4-candle4 { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes op4-aura { 0% { opacity:0.5; transform:scale(1); } 100% { opacity:0.8; transform:scale(1.1); } }
@keyframes op4-petal { 0% { transform: translateY(0) rotate(45deg) opacity(0.6); } 25% { transform: translateY(40px) rotate(90deg) opacity(0.3); } 50% { transform: translateY(80px) rotate(135deg) opacity(0.5); } 75% { transform: translateY(120px) rotate(180deg) opacity(0.2); } 100% { transform: translateY(160px) rotate(225deg) opacity(0); } }

/* hamlet-tells-his-story */
.scn-hamlet-tells-his-story { background: linear-gradient(135deg, #f5e6c8 0%, #d9c8a8 50%, #b8a080 100%), radial-gradient(ellipse at 80% 50%, #f0dbb0 0%, transparent 70%); }
.scn-hamlet-tells-his-story .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 100%); }
.scn-hamlet-tells-his-story .window { position:absolute; top:10%; right:10%; width:20%; height:35%; background: linear-gradient(180deg, #fdfce8 0%, #e8e0c0 100%); border: 6px solid #a08060; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: htsh-window 8s ease-in-out infinite alternate; }
.scn-hamlet-tells-his-story .desk { position:absolute; bottom:20%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4028 100%); border-radius: 4px; box-shadow: 0 -8px 20px rgba(0,0,0,.4); }
.scn-hamlet-tells-his-story .candle { position:absolute; bottom:40%; left:30%; width:8px; height:28px; background: linear-gradient(180deg, #f5e0c0 0%, #d0b090 100%); border-radius: 2px 2px 4px 4px; animation: htsh-candle 3s ease-in-out infinite; }
.scn-hamlet-tells-his-story .paper { position:absolute; bottom:30%; left:40%; width:30%; height:18%; background: #faf0e0; border: 1px solid #b0a090; border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 8px rgba(0,0,0,.3); }
.scn-hamlet-tells-his-story .hand { position:absolute; bottom:28%; left:35%; width:20px; height:25px; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: htsh-hand 4s ease-in-out infinite alternate; }
.scn-hamlet-tells-his-story .shadow-figure { position:absolute; bottom:18%; right:20%; width:50px; height:60px; background: linear-gradient(180deg, rgba(40,30,20,.8) 0%, rgba(20,15,10,.9) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(4px); animation: htsh-shadow 6s ease-in-out infinite; }
@keyframes htsh-window { 0% { opacity:.7; box-shadow: inset 0 0 10px rgba(255,255,200,.2); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,200,.5); } 100% { opacity:.8; box-shadow: inset 0 0 15px rgba(255,255,200,.3); } }
@keyframes htsh-candle { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.1) translateY(-2px); } 50% { transform: scaleY(0.9) translateY(1px); } 75% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes htsh-hand { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes htsh-shadow { 0% { transform: scaleY(1) translateY(0); opacity:.5; } 50% { transform: scaleY(1.2) translateY(-5px); opacity:.8; } 100% { transform: scaleY(1) translateY(0); opacity:.5; } }

/* hamlet-stole-commission */
.scn-hamlet-stole-commission { background: linear-gradient(135deg, #e8d5b0 0%, #c8b090 50%, #a88870 100%), radial-gradient(ellipse at 20% 60%, #f0dbb0 0%, transparent 70%); }
.scn-hamlet-stole-commission .desk { position:absolute; bottom:15%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 6px; box-shadow: 0 -10px 30px rgba(0,0,0,.5); }
.scn-hamlet-stole-commission .packet { position:absolute; bottom:30%; left:35%; width:30%; height:20%; background: linear-gradient(135deg, #c8b090 0%, #a88870 100%); border: 2px solid #7a5a3a; border-radius: 4px; transform: rotate(3deg); box-shadow: 3px 3px 10px rgba(0,0,0,.4); animation: hsc-packet 5s ease-in-out infinite; }
.scn-hamlet-stole-commission .seal { position:absolute; bottom:35%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #b08040 0%, #805020 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(128,80,32,.5); animation: hsc-seal 3s ease-in-out infinite alternate; }
.scn-hamlet-stole-commission .hand-left { position:absolute; bottom:28%; left:30%; width:18px; height:22px; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: hsc-hand-l 4s ease-in-out infinite alternate; }
.scn-hamlet-stole-commission .hand-right { position:absolute; bottom:28%; right:30%; width:18px; height:22px; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: hsc-hand-r 4s ease-in-out infinite alternate; }
.scn-hamlet-stole-commission .letter { position:absolute; bottom:38%; left:38%; width:20%; height:12%; background: #faf0e0; border: 1px solid #b0a090; border-radius: 2px; transform: rotate(-8deg); box-shadow: 1px 1px 6px rgba(0,0,0,.3); animation: hsc-letter 6s ease-in-out infinite; }
.scn-hamlet-stole-commission .shadow { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: rgba(0,0,0,.2); filter: blur(10px); animation: hsc-shadow 8s ease-in-out infinite; }
@keyframes hsc-packet { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes hsc-seal { 0% { box-shadow: 0 0 6px 1px rgba(128,80,32,.4); } 50% { box-shadow: 0 0 14px 4px rgba(128,80,32,.7); } 100% { box-shadow: 0 0 8px 2px rgba(128,80,32,.4); } }
@keyframes hsc-hand-l { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes hsc-hand-r { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-4px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes hsc-letter { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes hsc-shadow { 0% { transform: scaleY(1); opacity:.5; } 50% { transform: scaleY(1.3); opacity:.7; } 100% { transform: scaleY(1); opacity:.5; } }

/* hamlet-forged-commission */
.scn-hamlet-forged-commission { background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 40%, #a88870 100%), radial-gradient(ellipse at 50% 20%, #f5e6c8 0%, transparent 60%); }
.scn-hamlet-forged-commission .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d9c8a8 0%, #b8a080 100%); }
.scn-hamlet-forged-commission .desk { position:absolute; bottom:15%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 6px; box-shadow: 0 -8px 20px rgba(0,0,0,.4); }
.scn-hamlet-forged-commission .lamp { position:absolute; bottom:40%; left:15%; width:10px; height:30px; background: linear-gradient(180deg, #f0dbb0 0%, #c8a888 100%); border-radius: 2px; box-shadow: 0 0 20px 8px rgba(240,219,176,.3); animation: hfc-lamp 3s ease-in-out infinite; }
.scn-hamlet-forged-commission .figure { position:absolute; bottom:20%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hfc-figure 6s ease-in-out infinite; }
.scn-hamlet-forged-commission .quill { position:absolute; bottom:30%; left:45%; width:4px; height:40px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom; animation: hfc-quill 2s ease-in-out infinite alternate; }
.scn-hamlet-forged-commission .paper { position:absolute; bottom:30%; left:40%; width:25%; height:15%; background: #faf0e0; border: 1px solid #b0a090; border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 8px rgba(0,0,0,.3); }
.scn-hamlet-forged-commission .inkpot { position:absolute; bottom:28%; left:38%; width:14px; height:16px; background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes hfc-lamp { 0% { opacity:.8; box-shadow: 0 0 10px 4px rgba(240,219,176,.2); } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(240,219,176,.5); } 100% { opacity:.9; box-shadow: 0 0 15px 6px rgba(240,219,176,.3); } }
@keyframes hfc-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hfc-quill { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }

/* fathers-signet-seal */
.scn-fathers-signet-seal { background: linear-gradient(135deg, #d9c8a8 0%, #b8a080 50%, #8a6a4a 100%), radial-gradient(ellipse at 70% 40%, #f0dbb0 0%, transparent 60%); }
.scn-fathers-signet-seal .desk-bg { position:absolute; inset:50% 10% 10% 10%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 8px; box-shadow: 0 -8px 20px rgba(0,0,0,.5); }
.scn-fathers-signet-seal .hand { position:absolute; bottom:35%; left:40%; width:24px; height:30px; background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: fss-hand 4s ease-in-out infinite alternate; }
.scn-fathers-signet-seal .ring { position:absolute; bottom:42%; left:44%; width:10px; height:12px; background: radial-gradient(circle, #d0a060 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(160,128,64,.5); animation: fss-ring 3s ease-in-out infinite; }
.scn-fathers-signet-seal .wax { position:absolute; bottom:35%; left:48%; width:16px; height:10px; background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: fss-wax 5s ease-in-out infinite; }
.scn-fathers-signet-seal .paper { position:absolute; bottom:30%; left:35%; width:30%; height:15%; background: #faf0e0; border: 1px solid #b0a090; border-radius: 2px; transform: rotate(-2deg); box-shadow: 2px 2px 8px rgba(0,0,0,.3); }
.scn-fathers-signet-seal .shadow { position:absolute; bottom:28%; left:30%; right:30%; height:8%; background: rgba(0,0,0,.15); filter: blur(8px); animation: fss-shadow 7s ease-in-out infinite; }
@keyframes fss-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fss-ring { 0% { transform: scale(1); box-shadow: 0 0 4px 1px rgba(160,128,64,.4); } 50% { transform: scale(1.2); box-shadow: 0 0 10px 3px rgba(160,128,64,.7); } 100% { transform: scale(1); box-shadow: 0 0 6px 2px rgba(160,128,64,.4); } }
@keyframes fss-wax { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes fss-shadow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-sheep-and-calves {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%), radial-gradient(ellipse at 30% 80%, #fffacd 0%, transparent 60%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-sheep-and-calves .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-sheep-and-calves .hill {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 35%;
  background: linear-gradient(180deg, #7ccd7c 0%, #228b22 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: sc-hill 6s ease-in-out infinite alternate;
}
.scn-sheep-and-calves .sheep {
  position: absolute; bottom: 38%; left: 25%; width: 40px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #f5f5dc 0%, #d2b48c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: sc-sheep 2s ease-in-out infinite alternate;
}
.scn-sheep-and-calves .calf {
  position: absolute; bottom: 35%; left: 55%; width: 50px; height: 35px;
  background: radial-gradient(circle at 50% 30%, #deb887 0%, #8b4513 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: sc-calf 2.8s ease-in-out infinite alternate;
}
.scn-sheep-and-calves .parchment {
  position: absolute; bottom: 42%; left: 42%; width: 28px; height: 18px;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 60%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: sc-parchment 4s ease-in-out infinite alternate;
  opacity: 0.9;
}
.scn-sheep-and-calves .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: sc-cloud-a 30s linear infinite;
}
.scn-sheep-and-calves .cloud-b {
  position: absolute; top: 18%; right: 8%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: sc-cloud-b 35s linear infinite reverse;
}
.scn-sheep-and-calves .sun-glow {
  position: absolute; top: 5%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%; opacity: 0.5;
  animation: sc-sun 8s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sc-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sc-sheep { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sc-calf { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes sc-parchment { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(3px,-2px); } 100% { transform: rotate(-12deg) translate(-2px,1px); } }
@keyframes sc-cloud-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }
@keyframes sc-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }
@keyframes sc-sun { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.95); } }

.scn-gravedigger-wordplay {
  background: linear-gradient(180deg, #87ceeb 0%, #b0c4de 50%, #f0e68c 100%), radial-gradient(ellipse at 70% 20%, #fffacd 0%, transparent 50%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-gravedigger-wordplay .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0c4de 0%, transparent 100%);
  animation: gw-sky 12s ease-in-out infinite alternate;
}
.scn-gravedigger-wordplay .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #556b2f 0%, #2e4a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-gravedigger-wordplay .mound {
  position: absolute; bottom: 18%; left: 35%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #6b8e23 0%, #3a5f1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: gw-mound 5s ease-in-out infinite alternate;
}
.scn-gravedigger-wordplay .gravedigger {
  position: absolute; bottom: 28%; left: 28%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gw-digger 3s ease-in-out infinite alternate;
}
.scn-gravedigger-wordplay .shovel {
  position: absolute; bottom: 30%; left: 34%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: gw-shovel 2.5s ease-in-out infinite alternate;
}
.scn-gravedigger-wordplay .skull {
  position: absolute; bottom: 24%; left: 48%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #f5f5dc 0%, #d2b48c 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gw-skull 4s ease-in-out infinite alternate;
}
.scn-gravedigger-wordplay .cloud-a {
  position: absolute; top: 10%; left: 15%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: gw-cloud-a 25s linear infinite;
}
.scn-gravedigger-wordplay .cloud-b {
  position: absolute; top: 20%; right: 10%; width: 40px; height: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: gw-cloud-b 30s linear infinite reverse;
}
@keyframes gw-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gw-mound { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes gw-digger { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gw-shovel { 0% { transform: rotate(-20deg) translate(0,0); } 50% { transform: rotate(-15deg) translate(2px,-3px); } 100% { transform: rotate(-25deg) translate(-1px,1px); } }
@keyframes gw-skull { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(-2deg); } }
@keyframes gw-cloud-a { 0% { transform: translateX(-10px); } 100% { transform: translateX(100vw); } }
@keyframes gw-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

.scn-absolute-knave {
  background: linear-gradient(180deg, #87ceeb 0%, #e0e8f0 40%, #f5deb3 100%), radial-gradient(circle at 20% 30%, #fff8dc 0%, transparent 60%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-absolute-knave .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ak-wall 10s ease-in-out infinite alternate;
}
.scn-absolute-knave .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-absolute-knave .courtier {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #4a3a6e 0%, #2a1a4e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ak-courtier 3s ease-in-out infinite alternate;
}
.scn-absolute-knave .peasant {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ak-peasant 3.5s ease-in-out infinite alternate;
}
.scn-absolute-knave .foot-toe {
  position: absolute; bottom: 8%; left: 36%; width: 14px; height: 10px;
  background: #6b4a3a;
  border-radius: 50% 30% 30% 50%;
  transform: rotate(10deg);
  animation: ak-toe 2s ease-in-out infinite alternate;
}
.scn-absolute-knave .foot-heel {
  position: absolute; bottom: 8%; left: 56%; width: 12px; height: 14px;
  background: #4a3a6e;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: ak-heel 2.2s ease-in-out infinite alternate;
}
.scn-absolute-knave .crown {
  position: absolute; top: 8%; left: 56%; width: 24px; height: 14px;
  background: linear-gradient(180deg, #ffd700 0%, #daa520 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(0deg);
  animation: ak-crown 4s ease-in-out infinite alternate;
}
.scn-absolute-knave .cloud {
  position: absolute; top: 12%; left: 20%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ak-cloud 40s linear infinite;
}
@keyframes ak-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ak-courtier { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ak-peasant { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-5px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ak-toe { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(15deg) translate(2px,-1px); } 100% { transform: rotate(8deg) translate(0,0); } }
@keyframes ak-heel { 0% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(-1px,1px); } 100% { transform: rotate(-3deg) translate(0,0); } }
@keyframes ak-crown { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes ak-cloud { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-gravedigger-hamlet-born {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f5f5dc 100%), radial-gradient(ellipse at 80% 20%, #fff8dc 0%, transparent 50%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-gravedigger-hamlet-born .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: gh-sky 20s ease-in-out infinite alternate;
}
.scn-gravedigger-hamlet-born .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7ccd7c 0%, #3a7a3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-gravedigger-hamlet-born .cross-1 {
  position: absolute; bottom: 32%; left: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a35 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gh-cross 8s ease-in-out infinite alternate;
}
.scn-gravedigger-hamlet-born .cross-2 {
  position: absolute; bottom: 34%; left: 30%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a35 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gh-cross 8s ease-in-out infinite alternate 2s;
}
.scn-gravedigger-hamlet-born .cradle {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gh-cradle 5s ease-in-out infinite alternate;
}
.scn-gravedigger-hamlet-born .baby {
  position: absolute; bottom: 27%; left: 50%; width: 20px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #f5f5dc 0%, #d2b48c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gh-baby 4s ease-in-out infinite alternate;
}
.scn-gravedigger-hamlet-born .flower-a {
  position: absolute; bottom: 16%; left: 40%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #f08080 0%, #b0306a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: gh-flower 6s ease-in-out infinite alternate;
}
.scn-gravedigger-hamlet-born .flower-b {
  position: absolute; bottom: 18%; left: 60%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #f08080 0%, #b0306a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: gh-flower 6s ease-in-out infinite alternate 3s;
}
.scn-gravedigger-hamlet-born .cloud {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: gh-cloud 45s linear infinite;
}
@keyframes gh-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gh-cross { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes gh-cradle { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes gh-baby { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes gh-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(-3deg); } }
@keyframes gh-cloud { 0% { transform: translateX(20px); } 100% { transform: translateX(-100vw); } }

.scn-laertes-storms-castle {
  background: linear-gradient(180deg, #4a2a1a 0%, #2e1a0e 50%, #1a0e06 100%),
              radial-gradient(ellipse at 80% 20%, #7a4a2a 0%, transparent 70%);
}
.scn-laertes-storms-castle .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(180,140,100,.15) 30%, transparent 70%);
  animation: lst-wall 6s linear infinite;
}
.scn-laertes-storms-castle .window-storm {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 80px;
  height: 100px;
  background: radial-gradient(circle at 50% 50%, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255,200,100,.2);
  animation: lst-window 8s ease-in-out infinite alternate;
}
.scn-laertes-storms-castle .broken-door {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 140px;
  height: 200px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 4px 0 8px rgba(0,0,0,.4);
}
.scn-laertes-storms-castle .figure-laertes {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lst-laertes 2.5s ease-in-out infinite;
}
.scn-laertes-storms-castle .figure-officer {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 28px;
  height: 58px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lst-officer 3s ease-in-out infinite;
}
.scn-laertes-storms-castle .shadow-sweep {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 90%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: lst-shadow 4s linear infinite;
}
.scn-laertes-storms-castle .light-beam {
  position: absolute;
  top: 20%;
  left: 55%;
  width: 200px;
  height: 300px;
  background: linear-gradient(135deg, rgba(255,200,100,.08) 0%, transparent 60%);
  transform-origin: top left;
  animation: lst-beam 5s ease-in-out infinite alternate;
}
@keyframes lst-wall {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes lst-window {
  0% { box-shadow: inset 0 0 30px rgba(255,200,100,.2); transform: scale(1,.98); }
  50% { box-shadow: inset 0 0 60px rgba(255,200,100,.4); transform: scale(1,1.02); }
  100% { box-shadow: inset 0 0 20px rgba(255,200,100,.1); transform: scale(1,.98); }
}
@keyframes lst-laertes {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes lst-officer {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes lst-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 0.4; }
  100% { opacity: 0.7; }
}
@keyframes lst-beam {
  0% { opacity: 0.1; transform: rotate(-5deg); }
  50% { opacity: 0.3; transform: rotate(5deg); }
  100% { opacity: 0.1; transform: rotate(-5deg); }
}

.scn-laertes-demands-father {
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 40%, #0a0600 100%),
              radial-gradient(ellipse at 30% 70%, #6a3a1a 0%, transparent 60%);
}
.scn-laertes-demands-father .wall {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 60px, rgba(120,80,40,.1) 60px, rgba(120,80,40,.1) 62px);
  animation: ldf-wall 12s linear infinite;
}
.scn-laertes-demands-father .broken-door {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 120px;
  height: 180px;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1206 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.5), -4px 0 6px rgba(0,0,0,.3);
  transform: skewX(2deg);
}
.scn-laertes-demands-father .figure-laertes {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 32px;
  height: 65px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldf-laertes 2s ease-in-out infinite;
}
.scn-laertes-demands-father .figure-king {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 35px;
  height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldf-king 3s ease-in-out infinite alternate;
}
.scn-laertes-demands-father .guard {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldf-guard 2.5s ease-in-out infinite;
}
.scn-laertes-demands-father .crown-glow {
  position: absolute;
  top: 5%;
  left: 58%;
  width: 20px;
  height: 15px;
  background: radial-gradient(circle, #c09040 0%, #a07030 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 6px rgba(192,144,64,.4), 0 0 40px 12px rgba(192,144,64,.2);
  animation: ldf-crown 2s ease-in-out infinite alternate;
}
.scn-laertes-demands-father .shadow-pulse {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 90%, rgba(0,0,0,.6) 0%, transparent 60%);
  animation: ldf-pulse 3s ease-in-out infinite alternate;
}
@keyframes ldf-wall {
  0% { background-position: 0 0; }
  100% { background-position: 60px 0; }
}
@keyframes ldf-laertes {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(8px) rotate(4deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ldf-king {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(2px) scale(.98); }
}
@keyframes ldf-guard {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}
@keyframes ldf-crown {
  0% { box-shadow: 0 0 20px 6px rgba(192,144,64,.4), 0 0 40px 12px rgba(192,144,64,.2); opacity: .9; }
  50% { box-shadow: 0 0 30px 10px rgba(192,144,64,.6), 0 0 60px 20px rgba(192,144,64,.35); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(192,144,64,.4), 0 0 40px 12px rgba(192,144,64,.2); opacity: .9; }
}
@keyframes ldf-pulse {
  0% { opacity: 0.5; }
  100% { opacity: 0.8; }
}

.scn-claudius-faces-laertes {
  background: linear-gradient(180deg, #3a2212 0%, #1a0e06 50%, #0a0600 100%),
              radial-gradient(ellipse at 40% 50%, #5a3220 0%, transparent 70%);
}
.scn-claudius-faces-laertes .throne {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0600 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  transform: translateX(-50%);
}
.scn-claudius-faces-laertes .figure-claudius {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 32px;
  height: 65px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: cfl-claudius 2.5s ease-in-out infinite;
}
.scn-claudius-faces-laertes .figure-laertes {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 30px;
  height: 62px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfl-laertes 2s ease-in-out infinite;
}
.scn-claudius-faces-laertes .figure-gertrude {
  position: absolute;
  bottom: 20%;
  left: 65%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfl-gertrude 3s ease-in-out infinite alternate;
}
.scn-claudius-faces-laertes .scepter {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 6px;
  height: 40px;
  background: linear-gradient(180deg, #c09040 0%, #a07030 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cfl-scepter 2s ease-in-out infinite;
}
.scn-claudius-faces-laertes .shadow-crawl {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 35% 90%, rgba(0,0,0,.5) 0%, transparent 60%);
  animation: cfl-shadow 4s linear infinite;
}
.scn-claudius-faces-laertes .light-flicker {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 150px;
  height: 200px;
  background: radial-gradient(ellipse, rgba(255,200,100,.1) 0%, transparent 70%);
  animation: cfl-flicker 2s ease-in-out infinite alternate;
}
@keyframes cfl-claudius {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(1px) rotate(0); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes cfl-laertes {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  30% { transform: translateX(6px) translateY(-2px) rotate(5deg); }
  60% { transform: translateX(-3px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes cfl-gertrude {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-4px) scale(1.03); }
}
@keyframes cfl-scepter {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cfl-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes cfl-flicker {
  0% { opacity: 0.15; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}

.scn-laertes-vows-revenge {
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e06 40%, #0a0600 100%),
              radial-gradient(ellipse at 60% 30%, #7a4a2a 0%, transparent 70%);
}
.scn-laertes-vows-revenge .bg-fire {
  position: absolute;
  inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,100,30,.2) 0%, transparent 70%);
  animation: lvr-fire 4s ease-in-out infinite alternate;
}
.scn-laertes-vows-revenge .figure-laertes {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 34px;
  height: 70px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: lvr-laertes 2s ease-in-out infinite;
}
.scn-laertes-vows-revenge .sword {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  animation: lvr-sword 3s ease-in-out infinite;
}
.scn-laertes-vows-revenge .shadow-burst {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 90%, rgba(0,0,0,.6) 0%, transparent 50%);
  animation: lvr-shadow 3s ease-in-out infinite alternate;
}
.scn-laertes-vows-revenge .light-strike {
  position: absolute;
  top: 5%;
  left: 45%;
  width: 120px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,200,100,.15) 0%, transparent 60%);
  transform: skewX(-10deg);
  animation: lvr-strike 2s ease-in-out infinite alternate;
}
.scn-laertes-vows-revenge .dust {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60px;
  height: 10px;
  background: radial-gradient(ellipse, rgba(120,80,40,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: lvr-dust 8s linear infinite;
}
@keyframes lvr-fire {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.1); }
  100% { opacity: 0.15; transform: scale(1.05); }
}
@keyframes lvr-laertes {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  20% { transform: translateX(-50%) translateY(-2px) rotate(3deg); }
  40% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  60% { transform: translateX(-50%) translateY(-3px) rotate(4deg); }
  80% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes lvr-sword {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.05); }
  100% { transform: rotate(-25deg) scaleY(.95); }
}
@keyframes lvr-shadow {
  0% { opacity: 0.4; }
  100% { opacity: 0.8; }
}
@keyframes lvr-strike {
  0% { opacity: 0.1; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: 0.25; transform: skewX(-10deg) scaleY(1.15); }
  100% { opacity: 0.1; transform: skewX(-10deg) scaleY(1); }
}
@keyframes lvr-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(30px) scale(1.5); opacity: 0.1; }
  100% { transform: translateX(60px) scale(1); opacity: 0.3; }
}

/* Scene: ophelia-sings-no-more */
.scn-ophelia-sings-no-more {
  background: 
    linear-gradient(180deg, #8b7a66 0%, #6e5d4a 40%, #4a3c2c 100%),
    radial-gradient(ellipse at 30% 20%, #c4a87c 0%, transparent 60%),
    linear-gradient(135deg, #d9c9a0 0%, #a18d6a 50%, #7a6950 100%);
}
.scn-ophelia-sings-no-more .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #a08c6e 0%, #c4b094 40%, #d6c6a8 100%); }
.scn-ophelia-sings-no-more .bg-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5e4e3c 0%, #3f3228 100%); }
.scn-ophelia-sings-no-more .window-frame { position:absolute; top:15%; left:25%; width:40%; height:50%; border:12px solid #4a3c2c; border-radius:4px; background: #b0a080; box-shadow: inset 0 0 40px #7a6950; }
.scn-ophelia-sings-no-more .window-light { position:absolute; top:18%; left:28%; width:34%; height:44%; background: radial-gradient(ellipse at center, #f0e6c0 0%, #e8d4a0 50%, transparent 90%); opacity:0.5; animation: os-light 8s ease-in-out infinite alternate; }
.scn-ophelia-sings-no-more .window-sill { position:absolute; top:65%; left:24%; width:42%; height:8%; background: linear-gradient(180deg, #6e5d4a 0%, #4a3c2c 100%); border-radius:4px; }
.scn-ophelia-sings-no-more .figure-seated { position:absolute; bottom:25%; left:40%; width:16%; height:50%; background: linear-gradient(135deg, #2a2018 0%, #1c1510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: os-figure 6s ease-in-out infinite; }
.scn-ophelia-sings-no-more .bed { position:absolute; bottom:20%; right:10%; width:35%; height:25%; background: linear-gradient(180deg, #6a5940 0%, #3f3228 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
.scn-ophelia-sings-no-more .pillow { position:absolute; bottom:38%; right:20%; width:12%; height:8%; background: radial-gradient(circle, #d6c6a8 0%, #b0a080 100%); border-radius:40%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: os-pillow 10s ease-in-out infinite alternate; }
@keyframes os-light { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.02); } 100% { opacity:0.4; transform: scaleX(0.98); } }
@keyframes os-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes os-pillow { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-4px) scale(1.05); } }

/* Scene: laertes-agrees-to-hear-king */
.scn-laertes-agrees-to-hear-king {
  background: 
    linear-gradient(180deg, #c4a87c 0%, #a08c6e 50%, #8b7a66 100%),
    radial-gradient(ellipse at 50% 80%, #e0c8a0 0%, transparent 70%);
}
.scn-laertes-agrees-to-hear-king .throne-room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #6e5d4a 0%, #8b7a66 30%, #a08c6e 70%, #6e5d4a 100%); }
.scn-laertes-agrees-to-hear-king .throne { position:absolute; bottom:10%; left:20%; width:30%; height:50%; background: linear-gradient(180deg, #4a3c2c 0%, #2a2018 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 10px 30px rgba(0,0,0,0.6); animation: lak-throne 12s ease-in-out infinite alternate; }
.scn-laertes-agrees-to-hear-king .king-figure { position:absolute; bottom:30%; left:25%; width:15%; height:45%; background: linear-gradient(180deg, #1c1510 0%, #0a0806 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom; animation: lak-king 8s ease-in-out infinite; }
.scn-laertes-agrees-to-hear-king .laertes-figure { position:absolute; bottom:20%; right:20%; width:18%; height:55%; background: linear-gradient(180deg, #2a2018 0%, #1c1510 100%); border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom; animation: lak-laertes 6s ease-in-out infinite alternate; }
.scn-laertes-agrees-to-hear-king .crown { position:absolute; top:28%; left:28%; width:8%; height:10%; background: radial-gradient(circle, #e0c8a0 0%, #c4a87c 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 20px 5px rgba(224,200,160,0.5); animation: lak-crown 4s ease-in-out infinite alternate; }
.scn-laertes-agrees-to-hear-king .floor-shadow { position:absolute; bottom:0; left:10%; right:10%; height:5%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: lak-shadow 4s ease-in-out infinite alternate; }
@keyframes lak-throne { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes lak-king { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes lak-laertes { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(-3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes lak-crown { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 15px 3px rgba(224,200,160,0.4); } 100% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 25px 8px rgba(224,200,160,0.7); } }
@keyframes lak-shadow { 0% { opacity:0.3; } 100% { opacity:0.7; } }

/* Scene: laertes-demands-justice */
.scn-laertes-demands-justice {
  background: 
    linear-gradient(180deg, #5a4e3c 0%, #4a3c2c 40%, #2c2218 100%),
    radial-gradient(ellipse at 50% 20%, #8b7a66 0%, transparent 60%);
}
.scn-laertes-demands-justice .chapel-bg { position:absolute; inset:0; background: linear-gradient(90deg, #3f3228 0%, #5a4e3c 50%, #3f3228 100%); }
.scn-laertes-demands-justice .altar { position:absolute; bottom:5%; left:50%; width:40%; height:30%; transform:translateX(-50%); background: linear-gradient(180deg, #6e5d4a 0%, #4a3c2c 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5); }
.scn-laertes-demands-justice .laertes-kneeling { position:absolute; bottom:25%; left:35%; width:18%; height:40%; background: linear-gradient(180deg, #2a2018 0%, #1c1510 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom; animation: ldj-kneel 10s ease-in-out infinite alternate; }
.scn-laertes-demands-justice .memorial-sword { position:absolute; bottom:40%; right:20%; width:6%; height:30%; background: linear-gradient(180deg, #b0a080 0%, #8b7a66 100%); border-radius: 10% 10% 50% 50% / 10% 10% 20% 20%; transform: rotate(-15deg); box-shadow: 0 0 15px 3px rgba(224,200,160,0.3); animation: ldj-sword 8s ease-in-out infinite; }
.scn-laertes-demands-justice .ray-light { position:absolute; top:-5%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 80%); animation: ldj-ray 6s ease-in-out infinite alternate; }
.scn-laertes-demands-justice .crown-floor { position:absolute; bottom:18%; left:20%; width:10%; height:6%; background: radial-gradient(circle, #c4a87c 0%, #8b7a66 100%); border-radius: 30% 30% 50% 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: ldj-crown 12s ease-in-out infinite alternate; }
@keyframes ldj-kneel { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ldj-sword { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(-2px); } }
@keyframes ldj-ray { 0% { opacity:0.2; } 100% { opacity:0.7; } }
@keyframes ldj-crown { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-5px) scale(1.1); } }

/* Scene: horatio-receives-sailors */
.scn-horatio-receives-sailors {
  background: 
    linear-gradient(180deg, #d9c9a0 0%, #c4b094 40%, #a08c6e 100%),
    radial-gradient(ellipse at 20% 50%, #e0d4b8 0%, transparent 70%);
}
.scn-horatio-receives-sailors .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #8b7a66 0%, #a08c6e 40%, #c4b094 100%); }
.scn-horatio-receives-sailors .door-open { position:absolute; left:5%; top:10%; width:20%; height:80%; background: linear-gradient(180deg, #5a4e3c 0%, #3f3228 100%); border-radius: 0 20% 20% 0 / 0 10% 10% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.4); animation: hrs-door 20s ease-in-out infinite alternate; }
.scn-horatio-receives-sailors .horatio-figure { position:absolute; bottom:20%; left:30%; width:18%; height:50%; background: linear-gradient(180deg, #2a2018 0%, #1c1510 100%); border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom; animation: hrs-horatio 8s ease-in-out infinite; }
.scn-horatio-receives-sailors .sailor-figure { position:absolute; bottom:25%; right:15%; width:16%; height:45%; background: linear-gradient(180deg, #3f3228 0%, #2a2018 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom; animation: hrs-sailor 10s ease-in-out infinite alternate; }
.scn-horatio-receives-sailors .table { position:absolute; bottom:15%; left:45%; width:30%; height:15%; background: linear-gradient(180deg, #6e5d4a 0%, #4a3c2c 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-horatio-receives-sailors .letter { position:absolute; bottom:45%; left:55%; width:8%; height:5%; background: #d9c9a0; border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: hrs-letter 6s ease-in-out infinite alternate; }
.scn-horatio-receives-sailors .chair { position:absolute; bottom:15%; left:35%; width:12%; height:18%; background: linear-gradient(180deg, #4a3c2c 0%, #2a2018 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: hrs-chair 15s ease-in-out infinite alternate; }
@keyframes hrs-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.02); } }
@keyframes hrs-horatio { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hrs-sailor { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes hrs-letter { 0% { transform: translateY(0) rotate(0deg); opacity:0.9; } 100% { transform: translateY(-3px) rotate(5deg); opacity:1; } }
@keyframes hrs-chair { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-2px) scale(1.02); } }

/* ghost-condemns-gertrude — moonlit chamber */
.scn-ghost-condemns-gertrude {
  background: linear-gradient(180deg, #0e1428 0%, #1b2340 30%, #2a3555 60%, #1f2842 100%),
              radial-gradient(ellipse at 50% 0%, #2a4477 0%, transparent 60%);
}
.scn-ghost-condemns-gertrude .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8ff 0%, #b0c4ff 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(176,196,255,0.3);
  animation: scg-moon 12s ease-in-out infinite alternate;
}
.scn-ghost-condemns-gertrude .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-ghost-condemns-gertrude .pillar {
  position: absolute; bottom: 25%; width: 18px; height: 60%;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 50%, #3a3a4a 100%);
  border-radius: 4px 4px 0 0; box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: scg-pillar 20s ease-in-out infinite;
}
.scn-ghost-condemns-gertrude .pillar.left { left: 15%; }
.scn-ghost-condemns-gertrude .pillar.right { right: 15%; }
.scn-ghost-condemns-gertrude .ghost-figure {
  position: absolute; bottom: 25%; left: 38%; width: 22px; height: 50px;
  background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, rgba(150,180,230,0.3) 80%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px); opacity: 0.85;
  animation: scg-ghost 5s ease-in-out infinite alternate;
}
.scn-ghost-condemns-gertrude .gertrude-figure {
  position: absolute; bottom: 25%; right: 28%; width: 20px; 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: scg-gertrude 8s ease-in-out infinite alternate;
}
.scn-ghost-condemns-gertrude .moonbeam {
  position: absolute; top: 8%; left: 70%; width: 200px; height: 250px;
  background: linear-gradient(135deg, rgba(176,196,255,0.15) 0%, rgba(176,196,255,0) 100%);
  transform-origin: 0 0; transform: rotate(-30deg);
  animation: scg-beam 7s ease-in-out infinite alternate;
}
@keyframes scg-moon {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-4px); opacity: 1; }
  100% { transform: translateY(2px); opacity: 0.85; }
}
@keyframes scg-pillar {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes scg-ghost {
  0% { transform: translateY(0) scaleY(1); opacity: 0.85; }
  50% { transform: translateY(-6px) scaleY(1.05); opacity: 0.7; }
  100% { transform: translateY(-2px) scaleY(0.98); opacity: 0.9; }
}
@keyframes scg-gertrude {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes scg-beam {
  0% { opacity: 0.4; transform: rotate(-30deg) scaleX(1); }
  50% { opacity: 0.8; transform: rotate(-28deg) scaleX(1.2); }
  100% { opacity: 0.5; transform: rotate(-32deg) scaleX(0.9); }
}

/* ghost-describes-poisoning — moonlit orchard */
.scn-ghost-describes-poisoning {
  background: linear-gradient(180deg, #0a0e1a 0%, #121b2e 40%, #1a2a3e 70%, #0f1724 100%),
              radial-gradient(ellipse at 50% 90%, #1a2a3e 0%, transparent 60%);
}
.scn-ghost-describes-poisoning .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, transparent 100%);
  animation: sdp-sky 20s linear infinite;
}
.scn-ghost-describes-poisoning .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
}
.scn-ghost-describes-poisoning .tree-bole {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 80px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
  border-radius: 4px;
  animation: sdp-tree 15s ease-in-out infinite alternate;
}
.scn-ghost-describes-poisoning .tree-branch {
  position: absolute; bottom: 100%; left: 40%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; transform-origin: left center; transform: rotate(20deg);
  animation: sdp-branch 12s ease-in-out infinite alternate;
}
.scn-ghost-describes-poisoning .ghost-body {
  position: absolute; bottom: 35%; left: 35%; width: 24px; height: 45px;
  background: linear-gradient(180deg, rgba(200,220,255,0.5) 0%, rgba(150,180,230,0.2) 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px); transform: rotate(-10deg);
  animation: sdp-ghost-body 6s ease-in-out infinite;
}
.scn-ghost-describes-poisoning .vial {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 14px;
  background: radial-gradient(circle at 30% 30%, #7aa07a 0%, #3a5a3a 80%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(58,90,58,0.5);
  animation: sdp-vial 4s ease-in-out infinite alternate;
}
.scn-ghost-describes-poisoning .poison-drip {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 12px;
  background: radial-gradient(circle, #7aa07a 0%, #3a5a3a 100%);
  border-radius: 50%;
  animation: sdp-drip 3s ease-in-out infinite;
}
@keyframes sdp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sdp-tree {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.98); }
}
@keyframes sdp-branch {
  0% { transform: rotate(20deg) scaleX(1); }
  50% { transform: rotate(18deg) scaleX(1.1); }
  100% { transform: rotate(22deg) scaleX(0.95); }
}
@keyframes sdp-ghost-body {
  0% { transform: translateX(0) translateY(0) rotate(-10deg); opacity: 0.6; }
  30% { transform: translateX(4px) translateY(-2px) rotate(-8deg); opacity: 0.9; }
  60% { transform: translateX(-2px) translateY(1px) rotate(-12deg); opacity: 0.5; }
  100% { transform: translateX(0) translateY(0) rotate(-10deg); opacity: 0.7; }
}
@keyframes sdp-vial {
  0% { transform: translateY(0) rotate(-5deg); box-shadow: 0 0 12px 4px rgba(58,90,58,0.5); }
  50% { transform: translateY(-3px) rotate(5deg); box-shadow: 0 0 20px 6px rgba(58,90,58,0.7); }
  100% { transform: translateY(0) rotate(-5deg); box-shadow: 0 0 12px 4px rgba(58,90,58,0.5); }
}
@keyframes sdp-drip {
  0% { transform: translateY(0); opacity: 0; }
  50% { transform: translateY(15px); opacity: 0.6; }
  100% { transform: translateY(30px); opacity: 0; }
}

/* ghost-dies-unhouseled — moonlit corpse */
.scn-ghost-dies-unhouseled {
  background: linear-gradient(180deg, #0a0d14 0%, #151c2a 40%, #1f2838 70%, #121822 100%),
              radial-gradient(ellipse at 50% 100%, #1f2838 0%, transparent 60%);
}
.scn-ghost-dies-unhouseled .dark-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a0d14 0%, transparent 100%);
  animation: sdu-sky 18s ease-in-out infinite alternate;
}
.scn-ghost-dies-unhouseled .earth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-ghost-dies-unhouseled .corpse-form {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 8px rgba(100,120,150,0.2);
  transform: rotate(5deg);
  animation: sdu-corpse 7s ease-in-out infinite alternate;
}
.scn-ghost-dies-unhouseled .crust-flake {
  position: absolute; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 80% 30% 70% / 60% 40% 60% 40%;
  animation: sdu-flake 4s ease-in-out infinite alternate;
}
.scn-ghost-dies-unhouseled .crust-flake.a {
  bottom: 30%; left: 25%; width: 16px; height: 12px;
  animation-duration: 3.5s;
}
.scn-ghost-dies-unhouseled .crust-flake.b {
  bottom: 28%; left: 45%; width: 20px; height: 14px;
  animation-duration: 5s; animation-delay: 1s;
}
.scn-ghost-dies-unhouseled .crown {
  position: absolute; bottom: 28%; right: 28%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sdu-crown 10s ease-in-out infinite;
}
@keyframes sdu-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes sdu-corpse {
  0% { transform: rotate(5deg) scaleY(1); opacity: 0.9; }
  50% { transform: rotate(3deg) scaleY(1.02); opacity: 1; }
  100% { transform: rotate(7deg) scaleY(0.98); opacity: 0.85; }
}
@keyframes sdu-flake {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateX(4px) rotate(15deg); opacity: 0.9; }
  100% { transform: translateX(-2px) rotate(-10deg); opacity: 0.6; }
}
@keyframes sdu-crown {
  0% { transform: translateY(0) rotate(-5deg); filter: brightness(1); }
  50% { transform: translateY(-2px) rotate(3deg); filter: brightness(1.1); }
  100% { transform: translateY(0) rotate(-5deg); filter: brightness(0.9); }
}

/* ghost-commands-remember — dawn on ramparts */
.scn-ghost-commands-remember {
  background: linear-gradient(180deg, #2a3440 0%, #4a5a6a 30%, #7a8a9a 60%, #9aabbb 80%, #c0d0e0 100%),
              radial-gradient(ellipse at 50% 0%, #e0be80 0%, transparent 50%);
}
.scn-ghost-commands-remember .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3440 0%, #7a8a9a 60%, transparent 100%);
  animation: scr-sky 25s ease-in-out infinite alternate;
}
.scn-ghost-commands-remember .rampart-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 70% 50% 0 0 / 40% 30% 0 0;
}
.scn-ghost-commands-remember .horizon-line {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #e0be80 20%, #e0b070 50%, #e0be80 80%, transparent 100%);
  opacity: 0.5; animation: scr-horizon 8s ease-in-out infinite;
}
.scn-ghost-commands-remember .ghost-apparition {
  position: absolute; bottom: 35%; left: 25%; width: 26px; height: 55px;
  background: linear-gradient(180deg, rgba(220,230,240,0.8) 0%, rgba(200,210,220,0.4) 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: scr-ghost 6s ease-in-out infinite alternate;
}
.scn-ghost-commands-remember .hamlet-figure {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scr-hamlet 5s ease-in-out infinite;
}
.scn-ghost-commands-remember .dawn-ray {
  position: absolute; top: 0; left: 10%; width: 120px; height: 250px;
  background: linear-gradient(135deg, rgba(224,190,128,0.2) 0%, rgba(224,190,128,0) 100%);
  transform-origin: 0 0; transform: rotate(-40deg);
  animation: scr-ray 9s ease-in-out infinite alternate;
}
.scn-ghost-commands-remember .dew {
  position: absolute; bottom: 30%; left: 60%; width: 4px; height: 4px;
  background: radial-gradient(circle, #aabbcc 0%, #8899aa 100%);
  border-radius: 50%; box-shadow: 0 0 4px 1px rgba(170,187,204,0.6);
  animation: scr-dew 3s ease-in-out infinite;
}
@keyframes scr-sky {
  0% { background: linear-gradient(180deg, #2a3440 0%, #7a8a9a 60%, transparent 100%); }
  50% { background: linear-gradient(180deg, #3a4460 0%, #8a9aaa 60%, transparent 100%); }
  100% { background: linear-gradient(180deg, #2a3440 0%, #7a8a9a 60%, transparent 100%); }
}
@keyframes scr-horizon {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.5); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes scr-ghost {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(-6px) translateY(-4px) rotate(-2deg); opacity: 0.5; }
  100% { transform: translateX(3px) translateY(2px) rotate(1deg); opacity: 0.9; }
}
@keyframes scr-hamlet {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(2px) rotate(1deg) scaleY(0.98); }
  50% { transform: translateX(0) rotate(-2deg) scaleY(1.02); }
  75% { transform: translateX(-2px) rotate(1deg) scaleY(0.97); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes scr-ray {
  0% { transform: rotate(-40deg) scaleX(1); opacity: 0.6; }
  50% { transform: rotate(-38deg) scaleX(1.3); opacity: 1; }
  100% { transform: rotate(-42deg) scaleX(0.9); opacity: 0.7; }
}
@keyframes scr-dew {
  0% { transform: translateY(0); opacity: 0.4; }
  50% { transform: translateY(-3px); opacity: 0.9; }
  100% { transform: translateY(0); opacity: 0.4; }
}

.scn-polonius-famous-precepts {
  background: 
    linear-gradient(180deg, #f5e6ca 0%, #e5d4b8 40%, #d4c0a0 100%),
    linear-gradient(90deg, #d4c0a0 0%, #e0ccb0 50%, #d4c0a0 100%);
}
.scn-polonius-famous-precepts .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5e6ca 0%, #e8d8ba 100%);
  animation: pfp-wall 12s ease-in-out infinite alternate;
}
.scn-polonius-famous-precepts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #cbb09a 0%, #a58b76 100%);
  border-top: 2px solid #b89f89;
}
.scn-polonius-famous-precepts .window {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #fffbee 0%, #f0e6d0 100%);
  border: 6px solid #7a6638;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.6), 0 0 40px rgba(255,240,180,0.3);
  animation: pfp-window 8s ease-in-out infinite alternate;
}
.scn-polonius-famous-precepts .table {
  position: absolute; bottom: 32%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #8a6e4e 0%, #6a5238 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-polonius-famous-precepts .book {
  position: absolute; bottom: 38%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a5230 0%, #5a3a20 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pfp-book 10s ease-in-out infinite;
}
.scn-polonius-famous-precepts .candle {
  position: absolute; bottom: 45%; left: 30%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #f0d898 0%, #e0b860 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px rgba(255,200,100,0.7);
  animation: pfp-candle 3s ease-in-out infinite alternate;
}
.scn-polonius-famous-precepts .figure-polonius {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 200px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
  animation: pfp-figure 6s ease-in-out infinite;
}
.scn-polonius-famous-precepts .hand {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 30px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: pfp-hand 4s ease-in-out infinite;
}
@keyframes pfp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pfp-window {
  0% { box-shadow: inset 0 0 30px rgba(255,255,200,0.6), 0 0 40px rgba(255,240,180,0.3); }
  50% { box-shadow: inset 0 0 50px rgba(255,255,200,0.9), 0 0 60px rgba(255,240,180,0.5); }
  100% { box-shadow: inset 0 0 30px rgba(255,255,200,0.6), 0 0 40px rgba(255,240,180,0.3); }
}
@keyframes pfp-book {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg); }
}
@keyframes pfp-candle {
  0% { opacity: 0.8; box-shadow: 0 0 20px rgba(255,200,100,0.7); }
  50% { opacity: 1; box-shadow: 0 0 30px rgba(255,200,100,0.9); }
  100% { opacity: 0.85; box-shadow: 0 0 20px rgba(255,200,100,0.7); }
}
@keyframes pfp-figure {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-4px) rotate(2deg); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes pfp-hand {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg) scaleY(1.1); }
  100% { transform: rotate(15deg); }
}

.scn-polonius-bids-laertes-farewell {
  background: 
    linear-gradient(180deg, #f5e6ca 0%, #e5d4b8 40%, #d4c0a0 100%),
    linear-gradient(90deg, #d4c0a0 0%, #e0ccb0 50%, #d4c0a0 100%);
}
.scn-polonius-bids-laertes-farewell .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5e6ca 0%, #e8d8ba 100%);
  animation: pbl-wall 12s ease-in-out infinite alternate;
}
.scn-polonius-bids-laertes-farewell .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #cbb09a 0%, #a58b76 100%);
  border-top: 2px solid #b89f89;
}
.scn-polonius-bids-laertes-farewell .door-frame {
  position: absolute; top: 5%; right: 15%; width: 100px; height: 180px;
  background: linear-gradient(180deg, #7a6638 0%, #5a4a28 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-polonius-bids-laertes-farewell .figure-polonius {
  position: absolute; bottom: 10%; left: 15%; width: 70px; height: 190px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
  animation: pbl-figure1 8s ease-in-out infinite;
}
.scn-polonius-bids-laertes-farewell .figure-laertes {
  position: absolute; bottom: 10%; right: 25%; width: 60px; height: 180px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
  animation: pbl-figure2 8s ease-in-out infinite;
}
.scn-polonius-bids-laertes-farewell .handshake {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 20px;
  background: #5a4a3a;
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: pbl-handshake 4s ease-in-out infinite;
}
.scn-polonius-bids-laertes-farewell .cloak {
  position: absolute; bottom: 15%; left: 5%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-10deg);
  animation: pbl-cloak 6s ease-in-out infinite;
}
@keyframes pbl-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pbl-figure1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0); }
}
@keyframes pbl-figure2 {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(1deg); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes pbl-handshake {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pbl-cloak {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg); }
}

.scn-polonius-questions-ophelia {
  background: 
    linear-gradient(180deg, #c8b8a0 0%, #b0a088 40%, #988870 100%),
    linear-gradient(90deg, #988870 0%, #a89880 50%, #988870 100%);
}
.scn-polonius-questions-ophelia .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #b8a890 100%);
  filter: brightness(0.8);
  animation: pqu-wall 15s ease-in-out infinite alternate;
}
.scn-polonius-questions-ophelia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
}
.scn-polonius-questions-ophelia .chair {
  position: absolute; bottom: 25%; right: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(-2deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-polonius-questions-ophelia .figure-ophelia {
  position: absolute; bottom: 20%; right: 30%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scale(0.85);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.4));
  animation: pqu-ophelia 5s ease-in-out infinite;
}
.scn-polonius-questions-ophelia .figure-polonius {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 210px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.7));
  animation: pqu-polonius 6s ease-in-out infinite;
}
.scn-polonius-questions-ophelia .hand-pointing {
  position: absolute; bottom: 40%; left: 45%; width: 20px; height: 40px;
  background: #3a2a1a;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: pqu-hand 3s ease-in-out infinite;
}
.scn-polonius-questions-ophelia .shadow {
  position: absolute; bottom: 10%; left: 10%; width: 150px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: pqu-shadow 8s ease-in-out infinite alternate;
}
@keyframes pqu-wall {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(0.7); }
  100% { filter: brightness(0.9); }
}
@keyframes pqu-ophelia {
  0% { transform: scale(0.85) translateY(0); }
  50% { transform: scale(0.85) translateY(-3px) rotate(2deg); }
  100% { transform: scale(0.85) translateY(0); }
}
@keyframes pqu-polonius {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pqu-hand {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-30deg) scaleY(1.1); }
  100% { transform: rotate(-20deg); }
}
@keyframes pqu-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

.scn-polonius-dismisses-hamlets-love {
  background: 
    linear-gradient(180deg, #fdf4d0 0%, #f0e0b0 40%, #e0c890 100%),
    radial-gradient(circle at 50% 80%, #fdf4d0 0%, #e0c890 100%);
}
.scn-polonius-dismisses-hamlets-love .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fdf4d0 0%, #f0e0b0 100%);
  animation: pdhl-wall 12s ease-in-out infinite alternate;
}
.scn-polonius-dismisses-hamlets-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d0b880 0%, #b8a060 100%);
}
.scn-polonius-dismisses-hamlets-love .figure-polonius {
  position: absolute; bottom: 10%; left: 10%; width: 90px; height: 220px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 20% 20%;
  transform: rotate(3deg);
  filter: drop-shadow(0 6px 12px rgba(0,0,0,0.5));
  animation: pdhl-polonius 4s ease-in-out infinite;
}
.scn-polonius-dismisses-hamlets-love .figure-ophelia {
  position: absolute; bottom: 15%; right: 20%; width: 45px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scale(0.7);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.3));
  animation: pdhl-ophelia 5s ease-in-out infinite;
}
.scn-polonius-dismisses-hamlets-love .letter {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border: 1px solid #a08060;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pdhl-letter 6s ease-in-out infinite;
}
.scn-polonius-dismisses-hamlets-love .mask {
  position: absolute; bottom: 40%; left: 35%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #d05040 0%, #b03020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 10px rgba(200,50,30,0.5);
  animation: pdhl-mask 3s ease-in-out infinite alternate;
}
.scn-polonius-dismisses-hamlets-love .laugh-burst {
  position: absolute; top: 15%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: pdhl-burst 2s ease-in-out infinite;
}
@keyframes pdhl-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pdhl-polonius {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-6px) scale(1.02); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes pdhl-ophelia {
  0% { transform: scale(0.7) translateY(0); }
  50% { transform: scale(0.7) translateY(-2px) rotate(-2deg); }
  100% { transform: scale(0.7) translateY(0); }
}
@keyframes pdhl-letter {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-15deg); }
}
@keyframes pdhl-mask {
  0% { box-shadow: 0 0 10px rgba(200,50,30,0.5); }
  50% { box-shadow: 0 0 20px rgba(200,50,30,0.8); }
  100% { box-shadow: 0 0 10px rgba(200,50,30,0.5); }
}
@keyframes pdhl-burst {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.8); opacity: 0.6; }
}

/* Scene: ophelia-valentine-song (tag: opv) */
.scn-ophelia-valentine-song {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 50%, #6a4a28 100%),
              radial-gradient(ellipse at 50% 60%, #8a5a30 0%, transparent 70%);
}
.scn-ophelia-valentine-song .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); }
.scn-ophelia-valentine-song .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1a0a 0%, #4a3020 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-ophelia-valentine-song .door { position:absolute; bottom:25%; left:30%; width:60px; height:90px; background: linear-gradient(90deg, #5a3a22, #3a2212); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.5); transform: perspective(300px) rotateY(5deg); }
.scn-ophelia-valentine-song .window { position:absolute; bottom:45%; right:20%; width:40px; height:50px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(255,208,128,.4); animation: opv-window 6s ease-in-out infinite alternate; }
.scn-ophelia-valentine-song .maid { position:absolute; bottom:22%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #a08060 0%, #604830 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: opv-maid 4s ease-in-out infinite; }
.scn-ophelia-valentine-song .lamp { position:absolute; bottom:30%; left:28%; width:8px; height:12px; background: radial-gradient(circle, #ffe080 0%, #b08030 100%); border-radius: 50%; box-shadow: 0 0 18px 6px rgba(255,224,128,.7); animation: opv-lamp 2s ease-in-out infinite alternate; }
.scn-ophelia-valentine-song .ray { position:absolute; top:0; left:30%; width:100px; height:200px; background: linear-gradient(135deg, rgba(255,200,100,.15) 0%, transparent 60%); transform: skewX(-15deg); filter: blur(4px); animation: opv-ray 8s ease-in-out infinite; }
@keyframes opv-window {
  0% { opacity:.7; box-shadow: 0 0 15px 4px rgba(255,208,128,.3); }
  50% { opacity:1; box-shadow: 0 0 30px 10px rgba(255,208,128,.6); }
  100% { opacity:.8; box-shadow: 0 0 20px 6px rgba(255,208,128,.4); }
}
@keyframes opv-maid {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes opv-lamp {
  0% { transform: scale(1); opacity:.8; }
  50% { transform: scale(1.2); opacity:1; }
  100% { transform: scale(0.9); opacity:.7; }
}
@keyframes opv-ray {
  0% { opacity:0; transform: skewX(-15deg) translateX(0); }
  50% { opacity:.15; transform: skewX(-15deg) translateX(10px); }
  100% { opacity:0; transform: skewX(-15deg) translateX(20px); }
}

/* Scene: ophelia-exits-mad (tag: opm) */
.scn-ophelia-exits-mad {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-ophelia-exits-mad .bg { position:absolute; inset:0; background: linear-gradient(180deg, #101020 0%, #202040 100%); }
.scn-ophelia-exits-mad .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-ophelia-exits-mad .pillar-l { position:absolute; bottom:20%; left:15%; width:14px; height:120px; background: linear-gradient(90deg, #4a4a5a, #3a3a4a); border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,.3); }
.scn-ophelia-exits-mad .pillar-r { position:absolute; bottom:20%; right:15%; width:14px; height:120px; background: linear-gradient(90deg, #4a4a5a, #3a3a4a); border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,.3); }
.scn-ophelia-exits-mad .figure { position:absolute; bottom:22%; left:50%; width:20px; height:55px; background: linear-gradient(180deg, #8080a0 0%, #404060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: opm-figure 5s ease-in-out infinite; }
.scn-ophelia-exits-mad .doorway { position:absolute; bottom:20%; left:45%; width:40px; height:100px; background: #0a0a1a; border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-ophelia-exits-mad .shadow { position:absolute; bottom:18%; left:44%; width:50px; height:70px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: opm-shadow 5s ease-in-out infinite; }
@keyframes opm-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:.8; }
  25% { transform: translateX(-10px) translateY(-3px) rotate(-3deg); opacity:.6; }
  50% { transform: translateX(-20px) translateY(0) rotate(-6deg); opacity:.4; }
  75% { transform: translateX(-30px) translateY(-2px) rotate(-9deg); opacity:.2; }
  100% { transform: translateX(-40px) translateY(0) rotate(-12deg); opacity:0; }
}
@keyframes opm-shadow {
  0% { transform: scale(1); opacity:.4; }
  50% { transform: scale(1.3); opacity:.2; }
  100% { transform: scale(1.5); opacity:0; }
}

/* Scene: claudius-sorrows-battalion (tag: cls) */
.scn-claudius-sorrows-battalion {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2818 50%, #1a1008 100%),
              radial-gradient(ellipse at 50% 50%, #5a4020 0%, transparent 80%);
}
.scn-claudius-sorrows-battalion .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1208, #2a1a0a); }
.scn-claudius-sorrows-battalion .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #1a0e06 0%, #3a2414 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.6); }
.scn-claudius-sorrows-battalion .throne { position:absolute; bottom:28%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a22, #3a2212); border-radius: 8% 8% 4% 4% / 12% 12% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-claudius-sorrows-battalion .king { position:absolute; bottom:30%; left:46%; width:24px; height:50px; background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cls-king 6s ease-in-out infinite; }
.scn-claudius-sorrows-battalion .queen { position:absolute; bottom:30%; left:56%; width:22px; height:48px; background: linear-gradient(180deg, #6a4a28 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cls-queen 7s ease-in-out infinite; }
.scn-claudius-sorrows-battalion .column-l { position:absolute; bottom:20%; left:10%; width:12px; height:130px; background: linear-gradient(90deg, #4a2a1a, #2a1a0a); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,.4); }
.scn-claudius-sorrows-battalion .column-r { position:absolute; bottom:20%; right:10%; width:12px; height:130px; background: linear-gradient(90deg, #4a2a1a, #2a1a0a); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,.4); }
.scn-claudius-sorrows-battalion .window { position:absolute; top:10%; left:40%; width:50px; height:70px; background: radial-gradient(circle, #b08040 0%, #6a4a28 50%, #1a0e06 100%); border-radius: 4px; box-shadow: 0 0 20px 4px rgba(176,128,64,.3); animation: cls-window 10s ease-in-out infinite alternate; }
@keyframes cls-king {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cls-queen {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes cls-window {
  0% { opacity:.6; box-shadow: 0 0 10px 2px rgba(176,128,64,.2); }
  50% { opacity:1; box-shadow: 0 0 30px 8px rgba(176,128,64,.5); }
  100% { opacity:.7; box-shadow: 0 0 15px 4px rgba(176,128,64,.3); }
}

/* Scene: laertes-returns-riot (tag: lrt) */
.scn-laertes-returns-riot {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a08 50%, #1a0e04 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a1a 0%, transparent 70%);
}
.scn-laertes-returns-riot .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a04, #1a1208); }
.scn-laertes-returns-riot .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e04 0%, #2a1a08 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-laertes-returns-riot .doorway { position:absolute; bottom:22%; left:45%; width:40px; height:90px; background: #0a0602; border-radius: 10% 10% 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,.9); }
.scn-laertes-returns-riot .leader-fig { position:absolute; bottom:24%; left:50%; width:24px; height:58px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lrt-leader 4s ease-in-out infinite; }
.scn-laertes-returns-riot .mob-fig { position:absolute; bottom:22%; width:14px; height:38px; background: linear-gradient(180deg, #3a2a12 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-laertes-returns-riot .mob-1 { left:35%; animation: lrt-mob-1 3.5s ease-in-out infinite; }
.scn-laertes-returns-riot .mob-2 { left:60%; animation: lrt-mob-2 4.2s ease-in-out infinite; }
.scn-laertes-returns-riot .table { position:absolute; bottom:20%; left:25%; width:50px; height:14px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 4px; transform: rotate(-15deg); box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: lrt-table 6s ease-in-out infinite alternate; }
.scn-laertes-returns-riot .torch { position:absolute; bottom:50%; right:20%; width:6px; height:20px; background: linear-gradient(180deg, #c08040 0%, #6a4020 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 0 0 12px 4px rgba(192,128,64,.6); animation: lrt-torch 1.5s ease-in-out infinite alternate; }
@keyframes lrt-leader {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes lrt-mob-1 {
  0% { transform: translateX(0) translateY(0); opacity:.7; }
  25% { transform: translateX(4px) translateY(-1px); opacity:.8; }
  50% { transform: translateX(8px) translateY(0); opacity:.7; }
  75% { transform: translateX(12px) translateY(-1px); opacity:.6; }
  100% { transform: translateX(16px) translateY(0); opacity:.5; }
}
@keyframes lrt-mob-2 {
  0% { transform: translateX(0) translateY(0); opacity:.6; }
  25% { transform: translateX(-4px) translateY(-2px); opacity:.7; }
  50% { transform: translateX(-8px) translateY(0); opacity:.6; }
  75% { transform: translateX(-12px) translateY(-1px); opacity:.5; }
  100% { transform: translateX(-16px) translateY(0); opacity:.4; }
}
@keyframes lrt-table {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes lrt-torch {
  0% { transform: rotate(10deg) scale(1); opacity:.8; }
  50% { transform: rotate(15deg) scale(1.1); opacity:1; }
  100% { transform: rotate(10deg) scale(0.95); opacity:.7; }
}

/* gravedigger-logic-water */
.scn-gravedigger-logic-water { background: linear-gradient(180deg, #f9e6b3 0%, #ffe6a0 40%, #d9c68a 100%), radial-gradient(circle at 60% 20%, #fff8d0 0%, transparent 60%); }
.scn-gravedigger-logic-water .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d4f0 0%, #e2f0ff 70%); animation: gdw-sky 15s ease-in-out infinite alternate; }
.scn-gravedigger-logic-water .sun { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #fff0a0 0%, #ffd040 60%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 12px rgba(255,200,50,0.4); animation: gdw-sun 10s ease-in-out infinite; }
.scn-gravedigger-logic-water .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b89060 0%, #8a6a3a 60%, #5c4420 100%); border-radius: 20% 10% 0 0 / 40% 20% 0 0; }
.scn-gravedigger-logic-water .figure { position:absolute; bottom:38%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5c4420 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gdw-figure 3s ease-in-out infinite; }
.scn-gravedigger-logic-water .water-pool { position:absolute; bottom:28%; left:50%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 30%, #7bb8d9 0%, #4a8aac 70%, #2a5a7c 100%); border-radius:50%; transform:translateX(-50%); box-shadow: inset 0 4px 8px rgba(0,20,40,0.3); animation: gdw-pool 5s ease-in-out infinite; }
.scn-gravedigger-logic-water .water-splash { position:absolute; bottom:40%; left:55%; width:20px; height:16px; background: radial-gradient(ellipse, #a0d8f0 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: gdw-splash 2s ease-out infinite; }
.scn-gravedigger-logic-water .grave { position:absolute; bottom:30%; left:70%; width:40px; height:30px; background: linear-gradient(180deg, #c8a878 0%, #a08040 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); }
.scn-gravedigger-logic-water .cloud-a { position:absolute; top:15%; left:5%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,230,255,0.2) 100%); border-radius:50%; filter: blur(5px); animation: gdw-cloud 40s linear infinite; }
@keyframes gdw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gdw-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.05); box-shadow:0 0 50px 16px rgba(255,200,50,0.6); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes gdw-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gdw-pool { 0% { height:30px; transform:translateX(-50%) scaleX(1); } 50% { height:36px; transform:translateX(-50%) scaleX(1.02); } 100% { height:30px; transform:translateX(-50%) scaleX(0.98); } }
@keyframes gdw-splash { 0% { opacity:1; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-20px) scale(2); } }
@keyframes gdw-cloud { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }

/* gravedigger-adams-profession */
.scn-gravedigger-adams-profession { background: linear-gradient(180deg, #f0dba0 0%, #e8c880 40%, #c8a860 100%), radial-gradient(circle at 80% 30%, #ffe8b0 0%, transparent 70%); }
.scn-gravedigger-adams-profession .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d0e0 0%, #d8e8f8 70%); animation: gda-sky 12s ease-in-out infinite alternate; }
.scn-gravedigger-adams-profession .sun { position:absolute; top:10%; left:15%; width:50px; height:50px; background: radial-gradient(circle, #ffe080 0%, #ffc030 60%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 8px rgba(255,200,50,0.5); animation: gda-sun 12s ease-in-out infinite; }
.scn-gravedigger-adams-profession .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a7a50 0%, #6a5a30 50%, #4a3a1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-gravedigger-adams-profession .grave-mound { position:absolute; bottom:25%; left:50%; width:100px; height:30px; background: radial-gradient(ellipse at 50% 40%, #7a6a40 0%, #5a4a20 100%); border-radius:50%; transform:translateX(-50%); box-shadow:0 6px 10px rgba(0,0,0,0.4); animation: gda-mound 6s ease-in-out infinite; }
.scn-gravedigger-adams-profession .headstone { position:absolute; bottom:38%; left:48%; width:30px; height:45px; background: linear-gradient(180deg, #b8a088 0%, #988068 100%); border-radius:30% 30% 20% 20%; transform:translateX(-50%); box-shadow:3px 0 6px rgba(0,0,0,0.3); }
.scn-gravedigger-adams-profession .digger { position:absolute; bottom:30%; left:32%; width:22px; height:48px; background: linear-gradient(180deg, #6a5a30 0%, #4a3a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gda-digger 4s ease-in-out infinite; }
.scn-gravedigger-adams-profession .spade { position:absolute; bottom:30%; left:38%; width:8px; height:40px; background: linear-gradient(180deg, #8a7a50 0%, #6a5a30 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: gda-spade 4s ease-in-out infinite; }
.scn-gravedigger-adams-profession .cross { position:absolute; bottom:45%; left:56%; width:10px; height:35px; background: #8a6a40; border-radius:2px; transform:translateX(-50%); box-shadow: -12px 0 0 -2px #8a6a40; }
@keyframes gda-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gda-sun { 0% { transform: translate(0) scale(1); } 50% { transform: translate(5px, -6px) scale(1.03); } 100% { transform: translate(-3px, 2px) scale(0.97); } }
@keyframes gda-mound { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(0.95); } 50% { transform: translateX(-50%) scaleY(1.05); } 75% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes gda-digger { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gda-spade { 0% { transform: rotate(0deg); } 30% { transform: rotate(20deg); } 60% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }

/* gravedigger-riddles */
.scn-gravedigger-riddles { background: linear-gradient(180deg, #f0dba0 0%, #e0c880 40%, #c0a860 100%), radial-gradient(circle at 20% 40%, #ffe0a0 0%, transparent 70%); }
.scn-gravedigger-riddles .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0c8d8 0%, #d8e0f0 70%); animation: gdr-sky 18s ease-in-out infinite alternate; }
.scn-gravedigger-riddles .sun { position:absolute; top:5%; right:10%; width:45px; height:45px; background: radial-gradient(circle, #ffe080 0%, #ffc030 60%, transparent 80%); border-radius:50%; box-shadow:0 0 25px 6px rgba(255,200,50,0.4); animation: gdr-sun 8s ease-in-out infinite; }
.scn-gravedigger-riddles .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a6a40 0%, #5a4a20 50%, #3a2a10 100%); border-radius: 50% 20% 0 0 / 60% 30% 0 0; }
.scn-gravedigger-riddles .gallows { position:absolute; bottom:25%; left:50%; width:8px; height:80px; background: linear-gradient(180deg, #5a4a20 0%, #3a2a10 100%); transform:translateX(-50%); border-radius:2px; }
.scn-gravedigger-riddles .gallows::before { content:''; position:absolute; top:0; left:-30px; width:68px; height:8px; background: linear-gradient(90deg, #5a4a20 0%, #3a2a10 100%); border-radius:2px; }
.scn-gravedigger-riddles .gallows::after { content:''; position:absolute; top:0; left:-25px; width:8px; height:20px; background: #3a2a10; }
.scn-gravedigger-riddles .rope { position:absolute; top:8%; left:calc(50% - 1px); width:4px; height:30px; background:#8a7a50; transform-origin: top center; animation: gdr-rope 3s ease-in-out infinite; }
.scn-gravedigger-riddles .skeleton { position:absolute; bottom:22%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius:30% 30% 20% 20%; transform:translateX(-50%); opacity:0.8; animation: gdr-skel 4s ease-in-out infinite; }
.scn-gravedigger-riddles .church-spire { position:absolute; bottom:30%; right:20%; width:6px; height:50px; background: #8a6a40; border-radius:20% 20% 0 0; }
.scn-gravedigger-riddles .cloud-a { position:absolute; top:12%; left:5%; width:70px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(200,230,255,0.2) 100%); border-radius:50%; filter: blur(5px); animation: gdr-cloud-a 30s linear infinite; }
.scn-gravedigger-riddles .cloud-b { position:absolute; top:8%; right:5%; width:50px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,230,255,0.1) 100%); border-radius:50%; filter: blur(4px); animation: gdr-cloud-b 45s linear infinite reverse; }
@keyframes gdr-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes gdr-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-9px) scale(1.02); box-shadow:0 0 35px 10px rgba(255,200,50,0.6); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes gdr-rope { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes gdr-skel { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gdr-cloud-a { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes gdr-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* gravedigger-answer-grave-maker */
.scn-gravedigger-answer-grave-maker { background: linear-gradient(180deg, #f0dba0 0%, #e0c880 40%, #c8a860 100%), radial-gradient(circle at 40% 70%, #ffe0a0 0%, transparent 70%); }
.scn-gravedigger-answer-grave-maker .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d4e8 0%, #d8e8f8 70%); animation: gdm-sky 14s ease-in-out infinite alternate; }
.scn-gravedigger-answer-grave-maker .sun { position:absolute; top:10%; left:25%; width:50px; height:50px; background: radial-gradient(circle, #ffe080 0%, #ffc030 60%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 8px rgba(255,200,50,0.5); animation: gdm-sun 11s ease-in-out infinite; }
.scn-gravedigger-answer-grave-maker .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a7a50 0%, #6a5a30 50%, #4a3a1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-gravedigger-answer-grave-maker .mason { position:absolute; bottom:28%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #7a6a40 0%, #5a4a20 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gdm-mason 4s ease-in-out infinite; }
.scn-gravedigger-answer-grave-maker .hammer { position:absolute; bottom:40%; left:52%; width:8px; height:25px; background: #6a5a30; transform-origin: bottom center; border-radius:10%; animation: gdm-hammer 2.5s ease-in-out infinite; }
.scn-gravedigger-answer-grave-maker .stone-block { position:absolute; bottom:20%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #b8a088 0%, #988068 100%); border-radius:10%; box-shadow: inset 0 -3px 4px rgba(0,0,0,0.3); animation: gdm-stone 6s ease-in-out infinite; }
.scn-gravedigger-answer-grave-maker .grave { position:absolute; bottom:18%; left:30%; width:40px; height:25px; background: radial-gradient(ellipse at 50% 30%, #6a5a30 0%, #4a3a1a 100%); border-radius:50%; }
.scn-gravedigger-answer-grave-maker .tool-pile { position:absolute; bottom:22%; left:70%; width:10px; height:30px; background: #5a4a20; border-radius:20%; box-shadow: 5px 2px 0 -2px #5a4a20, 8px 6px 0 -2px #5a4a20; animation: gdm-pile 8s ease-in-out infinite; }
.scn-gravedigger-answer-grave-maker .cloud-c { position:absolute; top:10%; right:10%; width:60px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(200,230,255,0.2) 100%); border-radius:50%; filter: blur(5px); animation: gdm-cloud 50s linear infinite; }
@keyframes gdm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gdm-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.04); box-shadow:0 0 35px 10px rgba(255,200,50,0.5); } 100% { transform: translateY(0) scale(0.96); } }
@keyframes gdm-mason { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gdm-hammer { 0% { transform: rotate(0deg); } 25% { transform: rotate(40deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(35deg); } 100% { transform: rotate(0deg); } }
@keyframes gdm-stone { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(0.96); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gdm-pile { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gdm-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-hamlet-swears-friends {
  background:
    linear-gradient(180deg, #3a4a6a 0%, #7a8a6a 40%, #c8a870 100%),
    radial-gradient(ellipse at 50% 100%, #d4b060 0%, transparent 70%);
}
.scn-hamlet-swears-friends .sky-hsf {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, transparent 100%);
  animation: hsf-sky 14s ease-in-out infinite alternate;
}
.scn-hamlet-swears-friends .sun-hsf {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 50%); border-radius: 50%;
  background: radial-gradient(circle, #ffd070 0%, #d09040 50%, transparent 70%);
  box-shadow: 0 0 40px 20px #c08030, 0 0 80px 40px rgba(192,128,48,.3);
  animation: hsf-sun 12s ease-in-out infinite alternate;
}
.scn-hamlet-swears-friends .ground-hsf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-hamlet-swears-friends .figure-hsf {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsf-figure 4s ease-in-out infinite;
}
.scn-hamlet-swears-friends .figure-hsf::after {
  content: ''; position: absolute; top: -10px; left: 50%; width: 24px; height: 24px;
  transform: translateX(-50%); border-radius: 50% 50% 20% 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
}
.scn-hamlet-swears-friends .cloud-hsf {
  position: absolute; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,140,.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-hamlet-swears-friends .cloud-a-hsf {
  top: 15%; left: -60px; width: 100px;
  animation: hsf-cloud 35s linear infinite;
}
.scn-hamlet-swears-friends .cloud-b-hsf {
  top: 22%; left: -80px; width: 80px; height: 14px;
  animation: hsf-cloud 45s linear infinite 10s;
}
@keyframes hsf-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}
@keyframes hsf-sun {
  0% { transform: translate(-50%, 50%) scale(.9); opacity: .8; }
  50% { transform: translate(-50%, 50%) scale(1.1); opacity: 1; }
  100% { transform: translate(-50%, 50%) scale(.95); opacity: .85; }
}
@keyframes hsf-figure {
  0% { transform: translate(0, 0) rotate(-2deg); }
  25% { transform: translate(8px, -2px) rotate(1deg); }
  50% { transform: translate(16px, 0) rotate(-1deg); }
  75% { transform: translate(24px, -1px) rotate(2deg); }
  100% { transform: translate(32px, 0) rotate(0); }
}
@keyframes hsf-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}

.scn-hamlet-time-out-of-joint {
  background:
    linear-gradient(180deg, #2a3a5a 0%, #6a7a6a 40%, #b8a060 100%),
    radial-gradient(ellipse at 50% 60%, #c8a050 0%, transparent 70%);
}
.scn-hamlet-time-out-of-joint .sky-htj {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%);
  animation: htj-sky 16s ease-in-out infinite alternate;
}
.scn-hamlet-time-out-of-joint .sun-htj {
  position: absolute; bottom: 45%; left: 50%; width: 50px; height: 50px;
  transform: translate(-50%, 50%); border-radius: 50%;
  background: radial-gradient(circle, #ffc050 0%, #c08030 50%, transparent 70%);
  box-shadow: 0 0 30px 15px #b07020, 0 0 60px 30px rgba(176,112,32,.3);
  animation: htj-sun 10s ease-in-out infinite alternate;
}
.scn-hamlet-time-out-of-joint .ground-htj {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a2a1a 0%, #15120a 100%);
  border-radius: 50% 50% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-hamlet-time-out-of-joint .crack-htj {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #1a1a0a 20%, #0a0a00 80%, transparent 100%);
  transform: skewX(-10deg);
  animation: htj-crack 3s ease-in-out infinite alternate;
}
.scn-hamlet-time-out-of-joint .figure-htj {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: htj-figure 5s ease-in-out infinite;
}
.scn-hamlet-time-out-of-joint .figure-htj::before {
  content: ''; position: absolute; top: -12px; left: 50%; width: 28px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 20% 20%;
}
.scn-hamlet-time-out-of-joint .figure-htj::after {
  content: ''; position: absolute; top: 8px; right: -16px; width: 12px; height: 6px;
  background: #2a2a1a;
  border-radius: 0 8px 8px 0;
  transform-origin: left center;
  animation: htj-arm 5s ease-in-out infinite;
}
.scn-hamlet-time-out-of-joint .gear-a-htj,
.scn-hamlet-time-out-of-joint .gear-b-htj {
  position: absolute; width: 20px; height: 20px;
  border: 3px solid #7a6a3a; border-radius: 50%;
  background: radial-gradient(circle, #5a4a2a 0%, #3a2a10 100%);
  box-shadow: 0 0 6px rgba(0,0,0,.5);
}
.scn-hamlet-time-out-of-joint .gear-a-htj {
  top: 40%; left: 30%;
  animation: htj-gear 6s linear infinite;
}
.scn-hamlet-time-out-of-joint .gear-b-htj {
  top: 45%; right: 30%;
  animation: htj-gear 6s linear infinite reverse;
}
@keyframes htj-sky {
  0% { opacity: .6; }
  50% { opacity: .85; }
  100% { opacity: .7; }
}
@keyframes htj-sun {
  0% { transform: translate(-50%, 50%) scale(.9); opacity: .8; }
  50% { transform: translate(-50%, 50%) scale(1.15); opacity: 1; }
  100% { transform: translate(-50%, 50%) scale(.95); opacity: .85; }
}
@keyframes htj-crack {
  0% { transform: skewX(-10deg) scaleY(1); opacity: .6; }
  100% { transform: skewX(-10deg) scaleY(1.15); opacity: .9; }
}
@keyframes htj-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
}
@keyframes htj-arm {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-30deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes htj-gear {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-polonius-sends-reynaldo {
  background:
    linear-gradient(180deg, #c8b890 0%, #b0a080 40%, #908060 100%),
    radial-gradient(ellipse at 50% 0%, #d4c8a8 0%, transparent 60%);
}
.scn-polonius-sends-reynaldo .wall-psr {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8bca0 0%, #b0a080 100%);
}
.scn-polonius-sends-reynaldo .floor-psr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-polonius-sends-reynaldo .window-psr {
  position: absolute; top: 10%; left: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%);
  border: 6px solid #7a6a50;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 4px 12px rgba(0,0,0,.2);
  animation: psr-light 8s ease-in-out infinite alternate;
}
.scn-polonius-sends-reynaldo .desk-psr {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,.4);
}
.scn-polonius-sends-reynaldo .polonius-psr {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: psr-polonius 4s ease-in-out infinite;
}
.scn-polonius-sends-reynaldo .reynaldo-psr {
  position: absolute; bottom: 28%; left: 58%; width: 28px; height: 58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: psr-reynaldo 4s ease-in-out infinite 0.5s;
}
.scn-polonius-sends-reynaldo .money-psr {
  position: absolute; bottom: 24%; left: 50%; width: 14px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,.4);
  animation: psr-money 6s ease-in-out infinite;
}
@keyframes psr-light {
  0% { opacity: .7; box-shadow: inset 0 0 30px rgba(255,240,200,.4); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,240,200,.8); }
  100% { opacity: .8; box-shadow: inset 0 0 30px rgba(255,240,200,.5); }
}
@keyframes psr-polonius {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  30% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
}
@keyframes psr-reynaldo {
  0% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  30% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
}
@keyframes psr-money {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  30% { transform: translateX(-50%) translateY(-2px) scale(1.05); }
  60% { transform: translateX(-50%) translateY(0) scale(1); }
  100% { transform: translateX(-50%) translateY(-1px) scale(.95); }
}

.scn-polonius-spy-instructions {
  background:
    linear-gradient(180deg, #d0c4a8 0%, #b8ac90 40%, #9a8e70 100%),
    radial-gradient(ellipse at 50% 0%, #e0d8c0 0%, transparent 60%);
}
.scn-polonius-spy-instructions .wall-psi {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d0c4a8 0%, #b8ac90 100%);
}
.scn-polonius-spy-instructions .floor-psi {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a60 0%, #5a4a30 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-polonius-spy-instructions .table-psi {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,.4);
}
.scn-polonius-spy-instructions .polonius-psi {
  position: absolute; bottom: 30%; left: 35%; width: 32px; height: 62px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: psi-polonius 4.5s ease-in-out infinite;
}
.scn-polonius-spy-instructions .reynaldo-psi {
  position: absolute; bottom: 30%; left: 58%; width: 28px; height: 58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: psi-reynaldo 4.5s ease-in-out infinite 0.7s;
}
.scn-polonius-spy-instructions .document-psi {
  position: absolute; bottom: 27%; left: 45%; width: 20px; height: 16px;
  transform: translateX(-50%) rotate(5deg);
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 1px;
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  animation: psi-document 8s ease-in-out infinite;
}
.scn-polonius-spy-instructions .lamp-psi {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(240,200,150,.4), 0 0 60px 20px rgba(240,200,150,.2);
  animation: psi-lamp 6s ease-in-out infinite alternate;
}
@keyframes psi-polonius {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes psi-reynaldo {
  0% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes psi-document {
  0% { transform: translateX(-50%) rotate(5deg) scale(1); }
  50% { transform: translateX(-50%) rotate(7deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(3deg) scale(1); }
}
@keyframes psi-lamp {
  0% { opacity: .7; box-shadow: 0 0 20px 8px rgba(240,200,150,.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,200,150,.6); }
  100% { opacity: .8; box-shadow: 0 0 25px 10px rgba(240,200,150,.4); }
}

.scn-gertrude-drinks-poison {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8a86c 40%, #6b4a2e 100%),
              radial-gradient(ellipse at 30% 40%, #fff4d6 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-gertrude-drinks-poison .gp-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 20%, rgba(255,230,180,0.4) 0%, transparent 70%);
  animation: gp-shadow 6s ease-in-out infinite alternate;
}
.scn-gertrude-drinks-poison .gp-wall {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 55%;
  background: linear-gradient(90deg, #a08060 0%, #c8a86c 30%, #a08060 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-gertrude-drinks-poison .gp-table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-gertrude-drinks-poison .gp-cup {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c07040 0%, #8a5020 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-gertrude-drinks-poison .gp-queen {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gp-queen 4s ease-in-out infinite alternate;
}
.scn-gertrude-drinks-poison .gp-arm {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  transform-origin: 50% 100%;
  animation: gp-arm 5s ease-in-out infinite;
}
.scn-gertrude-drinks-poison .gp-poison {
  position: absolute; bottom: 30%; left: 51%; width: 8px; height: 8px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(94,26,29,0.5);
  animation: gp-poison 3s ease-in-out infinite;
}
.scn-gertrude-drinks-poison .gp-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: gp-shadow 8s ease-in-out infinite alternate;
}
@keyframes gp-shadow {
  0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; }
}
@keyframes gp-queen {
  0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gp-arm {
  0% { transform: rotate(-35deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-35deg); }
}
@keyframes gp-poison {
  0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; }
}

.scn-laertes-wounds-hamlet {
  background: linear-gradient(180deg, #e0c8a0 0%, #b09070 50%, #604030 100%),
              radial-gradient(ellipse at 50% 60%, #ffe0b0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-laertes-wounds-hamlet .lw-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 30%, rgba(255,200,150,0.3) 0%, transparent 60%);
  animation: lw-bg 7s ease-in-out infinite alternate;
}
.scn-laertes-wounds-hamlet .lw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-laertes-wounds-hamlet .lw-hamlet {
  position: absolute; bottom: 18%; left: 25%; width: 38px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw-hamlet 6s ease-in-out infinite alternate;
}
.scn-laertes-wounds-hamlet .lw-laertes {
  position: absolute; bottom: 18%; left: 55%; width: 38px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: lw-laertes 6s ease-in-out infinite alternate;
}
.scn-laertes-wounds-hamlet .lw-rapier-h {
  position: absolute; bottom: 50%; left: 35%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform: rotate(-20deg);
  transform-origin: 50% 100%;
  border-radius: 2px;
  animation: lw-rapier 6s ease-in-out infinite;
}
.scn-laertes-wounds-hamlet .lw-rapier-l {
  position: absolute; bottom: 50%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform: rotate(20deg);
  transform-origin: 50% 100%;
  border-radius: 2px;
  animation: lw-rapier 6s ease-in-out infinite reverse;
}
.scn-laertes-wounds-hamlet .lw-blood {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  animation: lw-blood 3s ease-in-out infinite;
}
.scn-laertes-wounds-hamlet .lw-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,180,100,0.2) 0%, transparent 70%);
  animation: lw-flicker 4s ease-in-out infinite alternate;
}
@keyframes lw-bg {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes lw-hamlet {
  0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(-5px) rotate(-1deg); }
}
@keyframes lw-laertes {
  0% { transform: scaleX(-1) translateX(0) rotate(3deg); } 50% { transform: scaleX(-1) translateX(-10px) rotate(-2deg); } 100% { transform: scaleX(-1) translateX(5px) rotate(1deg); }
}
@keyframes lw-rapier {
  0% { transform: rotate(-15deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-15deg); }
}
@keyframes lw-blood {
  0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.4; }
}
@keyframes lw-flicker {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; }
}

.scn-queen-dies-hamlet-wounded {
  background: linear-gradient(180deg, #2a1a10 0%, #4a3020 40%, #1a0a00 100%),
              radial-gradient(ellipse at 40% 60%, #604030 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-queen-dies-hamlet-wounded .qh-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 40%, rgba(80,50,30,0.4) 0%, transparent 70%);
  animation: qh-bg 10s ease-in-out infinite alternate;
}
.scn-queen-dies-hamlet-wounded .qh-wall {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3020 50%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.5);
}
.scn-queen-dies-hamlet-wounded .qh-queen {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: qh-queen 8s ease-in-out infinite alternate;
}
.scn-queen-dies-hamlet-wounded .qh-hamlet {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: qh-hamlet 8s ease-in-out infinite alternate;
}
.scn-queen-dies-hamlet-wounded .qh-chair {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10%;
}
.scn-queen-dies-hamlet-wounded .qh-cup {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 0 0 20% 20%;
}
.scn-queen-dies-hamlet-wounded .qh-blood {
  position: absolute; bottom: 25%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 80%);
  border-radius: 50%;
  animation: qh-blood 5s ease-in-out infinite;
}
.scn-queen-dies-hamlet-wounded .qh-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 40%, rgba(0,0,0,0.3) 100%);
  animation: qh-shadow 6s ease-in-out infinite alternate;
}
@keyframes qh-bg {
  0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; }
}
@keyframes qh-queen {
  0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes qh-hamlet {
  0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); }
}
@keyframes qh-blood {
  0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(2); opacity: 0.8; } 100% { transform: scale(0.7); opacity: 0.3; }
}
@keyframes qh-shadow {
  0% { opacity: 0.7; } 50% { opacity: 0.5; } 100% { opacity: 0.9; }
}

.scn-hamlet-kills-claudius {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 30%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 70%, #604030 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-hamlet-kills-claudius .hk-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 50%, rgba(80,50,30,0.3) 0%, transparent 60%);
  animation: hk-bg 9s ease-in-out infinite alternate;
}
.scn-hamlet-kills-claudius .hk-throne {
  position: absolute; bottom: 10%; left: 40%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.6);
}
.scn-hamlet-kills-claudius .hk-claudius {
  position: absolute; bottom: 35%; left: 50%; width: 45px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hk-claudius 5s ease-in-out infinite alternate;
}
.scn-hamlet-kills-claudius .hk-hamlet {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hk-hamlet 5s ease-in-out infinite alternate;
}
.scn-hamlet-kills-claudius .hk-cup {
  position: absolute; bottom: 50%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 0 0 20% 20%;
  animation: hk-cup 4s ease-in-out infinite;
}
.scn-hamlet-kills-claudius .hk-poison {
  position: absolute; bottom: 55%; left: 36%; width: 6px; height: 6px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(94,26,29,0.4);
  animation: hk-poison 3s ease-in-out infinite;
}
.scn-hamlet-kills-claudius .hk-crown {
  position: absolute; bottom: 70%; left: 50%; width: 20px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 50% 50% 0 0;
}
.scn-hamlet-kills-claudius .hk-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
  animation: hk-shadow 7s ease-in-out infinite alternate;
}
@keyframes hk-bg {
  0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; }
}
@keyframes hk-claudius {
  0% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes hk-hamlet {
  0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes hk-cup {
  0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); }
}
@keyframes hk-poison {
  0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.4) rotate(20deg); } 100% { transform: scale(0.8) rotate(0); }
}
@keyframes hk-shadow {
  0% { opacity: 0.6; } 50% { opacity: 0.4; } 100% { opacity: 0.7; }
}

.scn-claudius-court-opens {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b89a7a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}

.scn-claudius-court-opens .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b4 0%, #c8a882 100%);
  border-bottom: 2px solid #8b6f50;
  animation: cco-wall 24s ease-in-out infinite;
}

.scn-claudius-court-opens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3628 100%);
  border-top: 3px solid #7a5c44;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}

.scn-claudius-court-opens .arch {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #b89a7a 50%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  border: 4px solid #705a42;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: cco-arch 18s ease-in-out infinite alternate;
}

.scn-claudius-court-opens .throne {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6f50 0%, #5c4028 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cco-throne 12s ease-in-out infinite;
}

.scn-claudius-court-opens .king {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a882 0%, #7a5c44 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: cco-king 8s ease-in-out infinite alternate;
}

.scn-claudius-court-opens .candle-l {
  position: absolute; bottom: 32%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: cco-candle 3s ease-in-out infinite alternate, cco-flicker 0.5s infinite;
}

.scn-claudius-court-opens .candle-r {
  position: absolute; bottom: 32%; right: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: cco-candle 3s ease-in-out infinite alternate 1.5s, cco-flicker 0.5s infinite 0.25s;
}

.scn-claudius-court-opens .courtier-left {
  position: absolute; bottom: 26%; left: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scale(1.05);
  animation: cco-courtier 20s ease-in-out infinite;
}

.scn-claudius-court-opens .courtier-right {
  position: absolute; bottom: 26%; right: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scale(1.05);
  animation: cco-courtier 20s ease-in-out infinite -10s;
}

@keyframes cco-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cco-arch { 0% { transform: scaleY(1) translateY(0) } 100% { transform: scaleY(1.02) translateY(-2px) } }
@keyframes cco-throne { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes cco-king { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes cco-candle { 0% { opacity: 0.9; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.1) } }
@keyframes cco-flicker { 0%,100% { box-shadow: 0 0 18px 4px rgba(255,200,100,0.5) } 50% { box-shadow: 0 0 22px 6px rgba(255,200,100,0.7) } }
@keyframes cco-courtier { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } }

/* scn-claudius-marriage-address */
.scn-claudius-marriage-address {
  background:
    linear-gradient(180deg, #f2e4c8 0%, #d4bc9a 40%, #b89c7e 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 50%);
}

.scn-claudius-marriage-address .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4b4 0%, #c8aa8a 100%);
  border-bottom: 2px solid #8b6f50;
  animation: cma-wall 20s ease-in-out infinite alternate;
}

.scn-claudius-marriage-address .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3628 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.2);
}

.scn-claudius-marriage-address .podium {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6f50 0%, #5c4028 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: cma-podium 15s ease-in-out infinite;
}

.scn-claudius-marriage-address .king-fig {
  position: absolute; bottom: 47%; left: 46%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c8a882 0%, #7a5c44 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cma-king 10s ease-in-out infinite alternate;
}

.scn-claudius-marriage-address .queen-fig {
  position: absolute; bottom: 47%; left: 56%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #d4a882 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cma-queen 10s ease-in-out infinite alternate 1s;
}

.scn-claudius-marriage-address .c-1 {
  position: absolute; bottom: 40%; left: 30%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 18px 5px rgba(255,200,100,0.5);
  animation: cma-candle 4s ease-in-out infinite alternate, cma-flicker 0.4s infinite;
}

.scn-claudius-marriage-address .c-2 {
  position: absolute; bottom: 40%; right: 30%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 18px 5px rgba(255,200,100,0.5);
  animation: cma-candle 4s ease-in-out infinite alternate 2s, cma-flicker 0.4s infinite 0.2s;
}

.scn-claudius-marriage-address .rose-window {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c88840 40%, transparent 60%);
  border-radius: 50%;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.3);
  animation: cma-rose 30s ease-in-out infinite;
}

.scn-claudius-marriage-address .court-row {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% / 100%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cma-row 24s ease-in-out infinite alternate;
}

@keyframes cma-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes cma-podium { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes cma-king { 0% { transform: translateX(-50%) rotate(-0.5deg) } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cma-queen { 0% { transform: translateX(-50%) rotate(0.5deg) } 50% { transform: translateX(-50%) rotate(-0.5deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cma-candle { 0% { opacity: 0.9 } 100% { opacity: 1; transform: scaleY(1.05) } }
@keyframes cma-flicker { 0%,100% { box-shadow: 0 0 16px 4px rgba(255,200,100,0.4) } 50% { box-shadow: 0 0 22px 6px rgba(255,200,100,0.6) } }
@keyframes cma-rose { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 25% { transform: translateX(-50%) scale(1.02) rotate(1deg) } 50% { transform: translateX(-50%) scale(0.98) rotate(-1deg) } 100% { transform: translateX(-50%) scale(1) rotate(0deg) } }
@keyframes cma-row { 0% { opacity: 0.8 } 100% { opacity: 1 } }

/* scn-claudius-addresses-fortinbras */
.scn-claudius-addresses-fortinbras {
  background:
    linear-gradient(180deg, #eadcc0 0%, #c8b094 40%, #a88a72 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}

.scn-claudius-addresses-fortinbras .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #dcc8a8 0%, #b8987a 100%);
  border-bottom: 2px solid #7a6048;
  animation: caf-wall 22s ease-in-out infinite alternate;
}

.scn-claudius-addresses-fortinbras .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5c4028 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}

.scn-claudius-addresses-fortinbras .desk {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5c44 0%, #4a3628 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: caf-desk 14s ease-in-out infinite;
}

.scn-claudius-addresses-fortinbras .king-seated {
  position: absolute; bottom: 38%; left: 50%; width: 45px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8987a 0%, #6a4e34 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: caf-king 8s ease-in-out infinite alternate;
}

.scn-claudius-addresses-fortinbras .messenger {
  position: absolute; bottom: 28%; left: 30%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: caf-messenger 12s ease-in-out infinite;
}

.scn-claudius-addresses-fortinbras .candle-left {
  position: absolute; bottom: 32%; left: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(255,200,100,0.5);
  animation: caf-candle 3.5s ease-in-out infinite alternate, caf-flicker 0.45s infinite;
}

.scn-claudius-addresses-fortinbras .candle-right {
  position: absolute; bottom: 32%; right: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(255,200,100,0.5);
  animation: caf-candle 3.5s ease-in-out infinite alternate 1.75s, caf-flicker 0.45s infinite 0.2s;
}

.scn-claudius-addresses-fortinbras .map {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #d4b896 0%, #a88a72 100%);
  border: 1px solid #5c4028;
  border-radius: 5%;
  transform: rotate(5deg);
  animation: caf-map 20s ease-in-out infinite alternate;
}

.scn-claudius-addresses-fortinbras .guard {
  position: absolute; bottom: 28%; right: 25%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scale(1.05);
  animation: caf-guard 18s ease-in-out infinite;
}

@keyframes caf-wall { 0% { opacity: 0.85 } 100% { opacity: 1 } }
@keyframes caf-desk { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes caf-king { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes caf-messenger { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) translateY(-1px) } }
@keyframes caf-candle { 0% { opacity: 0.9 } 100% { opacity: 1; transform: scaleY(1.05) } }
@keyframes caf-flicker { 0%,100% { box-shadow: 0 0 14px 3px rgba(255,200,100,0.4) } 50% { box-shadow: 0 0 20px 5px rgba(255,200,100,0.6) } }
@keyframes caf-map { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) translateX(-2px) } 100% { transform: rotate(5deg) } }
@keyframes caf-guard { 0%,100% { transform: scale(1.05) } 50% { transform: scale(1.03) translateY(-2px) } }

/* scn-claudius-dispatches-ambassadors */
.scn-claudius-dispatches-ambassadors {
  background:
    linear-gradient(180deg, #f0e2c8 0%, #d0b898 40%, #a88a72 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 50%);
}

.scn-claudius-dispatches-ambassadors .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0ccac 0%, #b89878 100%);
  border-bottom: 2px solid #7a6048;
  animation: cda-wall 18s ease-in-out infinite alternate;
}

.scn-claudius-dispatches-ambassadors .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5c4028 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.25);
}

.scn-claudius-dispatches-ambassadors .table {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a50 0%, #5c4028 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: cda-table 16s ease-in-out infinite;
}

.scn-claudius-dispatches-ambassadors .king-standing {
  position: absolute; bottom: 30%; left: 50%; width: 45px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8987a 0%, #6a4e34 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: cda-king 10s ease-in-out infinite alternate;
}

.scn-claudius-dispatches-ambassadors .ambassador-l {
  position: absolute; bottom: 25%; left: 30%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: cda-amb 14s ease-in-out infinite;
}

.scn-claudius-dispatches-ambassadors .ambassador-r {
  position: absolute; bottom: 25%; left: 70%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: cda-amb 14s ease-in-out infinite -7s;
}

.scn-claudius-dispatches-ambassadors .candle-center {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffe4a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 22px 6px rgba(255,200,100,0.6);
  animation: cda-candle 3s ease-in-out infinite alternate, cda-flicker 0.5s infinite;
}

.scn-claudius-dispatches-ambassadors .scroll {
  position: absolute; bottom: 23%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e0c8a8 0%, #c0a080 100%);
  border-radius: 30% 10% 10% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cda-scroll 20s ease-in-out infinite alternate;
}

.scn-claudius-dispatches-ambassadors .window-light {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #fff2c0 0%, transparent 70%);
  border-radius: 40% 40% 10% 10%;
  opacity: 0.3;
  animation: cda-window 25s ease-in-out infinite;
}

@keyframes cda-wall { 0% { opacity: 0.85 } 100% { opacity: 1 } }
@keyframes cda-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes cda-king { 0% { transform: translateX(-50%) rotate(-0.5deg) } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cda-amb { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) translateY(-1px) } }
@keyframes cda-candle { 0% { opacity: 0.9; transform: scaleY(1) translateX(-50%) } 100% { opacity: 1; transform: scaleY(1.08) translateX(-50%) } }
@keyframes cda-flicker { 0%,100% { box-shadow: 0 0 20px 5px rgba(255,200,100,0.5) } 50% { box-shadow: 0 0 28px 7px rgba(255,200,100,0.7) } }
@keyframes cda-scroll { 0% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) translateX(2px) } 100% { transform: rotate(3deg) } }
@keyframes cda-window { 0% { opacity: 0.2; transform: translateX(-50%) scale(1) } 50% { opacity: 0.4; transform: translateX(-50%) scale(1.05) } 100% { opacity: 0.2; transform: translateX(-50%) scale(1) } }

.scn-laertes-cold-acceptance {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d4b896 30%, #b89a78 70%, #8a6e4a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,220,180,0.6) 0%, transparent 60%);
}
.scn-laertes-cold-acceptance .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #7a5a3a 100%); opacity:0.3; animation: lca-bg 8s ease-in-out infinite alternate; }
.scn-laertes-cold-acceptance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 50%, #9a7a5a 100%); border-radius: 0 0 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); }
.scn-laertes-cold-acceptance .window-left { position:absolute; top:5%; left:5%; width:20%; height:50%; background: linear-gradient(135deg, #ffe8cc 0%, #ccb08a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(255,200,150,0.5), 0 0 30px rgba(255,200,150,0.2); animation: lca-window 12s ease-in-out infinite alternate; }
.scn-laertes-cold-acceptance .window-right { position:absolute; top:5%; right:5%; width:20%; height:50%; background: linear-gradient(225deg, #ffe8cc 0%, #ccb08a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(255,200,150,0.5), 0 0 30px rgba(255,200,150,0.2); animation: lca-window 12s ease-in-out infinite alternate-reverse; }
.scn-laertes-cold-acceptance .chandelier { position:absolute; top:2%; left:40%; width:20%; height:12%; background: radial-gradient(ellipse at 50% 20%, #ffd700 0%, #b8860b 70%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 20px rgba(255,215,0,0.3); animation: lca-chandelier 6s ease-in-out infinite; }
.scn-laertes-cold-acceptance .figure-laertes { position:absolute; bottom:20%; left:15%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lca-figure-tension 3s ease-in-out infinite; }
.scn-laertes-cold-acceptance .figure-hamlet { position:absolute; bottom:20%; right:15%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lca-figure-tension 3.5s ease-in-out infinite; }
.scn-laertes-cold-acceptance .table { position:absolute; bottom:28%; left:30%; right:30%; height:8%; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-laertes-cold-acceptance .foil { position:absolute; bottom:32%; left:38%; right:38%; height:2%; background: linear-gradient(90deg, #c0c0c0 0%, #808080 50%, #c0c0c0 100%); border-radius: 50%; animation: lca-foil 8s ease-in-out infinite; }
@keyframes lca-bg { 0% { opacity:0.2; } 50% { opacity:0.35; } 100% { opacity:0.25; } }
@keyframes lca-window { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05) translateY(-2px); } 100% { opacity:0.8; transform: scaleX(0.98) translateY(0); } }
@keyframes lca-chandelier { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes lca-figure-tension { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lca-foil { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-fencing-begins {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d0b8a0 30%, #a8886a 70%, #705030 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,220,180,0.5) 0%, transparent 70%);
}
.scn-fencing-begins .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #5a3a1a 100%); opacity:0.2; animation: fbe-bg 10s ease-in-out infinite alternate; }
.scn-fencing-begins .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #5a3a1a 0%, #8a6a4a 80%, #a08060 100%); border-radius: 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); }
.scn-fencing-begins .column-left { position:absolute; top:5%; left:8%; width:6%; height:70%; background: linear-gradient(90deg, #b09680 0%, #d0b8a0 50%, #b09680 100%); border-radius: 10% / 5%; box-shadow: 2px 0 10px rgba(0,0,0,0.2); }
.scn-fencing-begins .column-right { position:absolute; top:5%; right:8%; width:6%; height:70%; background: linear-gradient(90deg, #b09680 0%, #d0b8a0 50%, #b09680 100%); border-radius: 10% / 5%; box-shadow: -2px 0 10px rgba(0,0,0,0.2); }
.scn-fencing-begins .fencer-left { position:absolute; bottom:20%; left:20%; width:14%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fbe-lunge 4s ease-in-out infinite; }
.scn-fencing-begins .fencer-right { position:absolute; bottom:20%; right:20%; width:14%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fbe-lunge 4.2s ease-in-out infinite reverse; }
.scn-fencing-begins .foil-left { position:absolute; bottom:45%; left:25%; width:30%; height:3%; background: linear-gradient(90deg, #c0c0c0 0%, #808080 50%, #c0c0c0 100%); border-radius: 50%; transform: rotate(-20deg); transform-origin: right center; animation: fbe-foil 2.5s ease-in-out infinite; }
.scn-fencing-begins .foil-right { position:absolute; bottom:45%; right:25%; width:30%; height:3%; background: linear-gradient(90deg, #c0c0c0 0%, #808080 50%, #c0c0c0 100%); border-radius: 50%; transform: rotate(20deg); transform-origin: left center; animation: fbe-foil 2.5s ease-in-out infinite reverse; }
@keyframes fbe-bg { 0% { opacity:0.15; } 50% { opacity:0.3; } 100% { opacity:0.2; } }
@keyframes fbe-lunge { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(15%) rotate(-5deg); } 50% { transform: translateX(15%) rotate(-5deg); } 70% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fbe-foil { 0% { transform: rotate(-20deg) scaleX(1); } 30% { transform: rotate(-15deg) scaleX(1.1); } 50% { transform: rotate(-15deg) scaleX(1.1); } 70% { transform: rotate(-20deg) scaleX(1); } 100% { transform: rotate(-20deg) scaleX(1); } }

.scn-claudius-union-in-cup {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a3a 50%, #3a2a4a 100%),
    radial-gradient(ellipse at 50% 40%, rgba(255,200,100,0.4) 0%, transparent 70%);
}
.scn-claudius-union-in-cup .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #4a3a5a 0%, transparent 70%); opacity:0.5; animation: cun-bg 8s ease-in-out infinite alternate; }
.scn-claudius-union-in-cup .beam { position:absolute; top:0; left:45%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,220,150,0.5) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%); animation: cun-beam 6s ease-in-out infinite alternate; }
.scn-claudius-union-in-cup .goblet { position:absolute; bottom:25%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #b8860b 0%, #8a6a0a 50%, #5a4a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.6), inset 0 -10px 20px rgba(0,0,0,0.4); }
.scn-claudius-union-in-cup .pearl { position:absolute; bottom:55%; left:48%; width:6%; height:6%; background: radial-gradient(circle, #ffffff 0%, #f0e0c0 60%, #c0a080 100%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,255,200,0.5); animation: cun-pearl 4s ease-in-out infinite; }
.scn-claudius-union-in-cup .hand { position:absolute; bottom:50%; left:40%; width:12%; height:20%; background: linear-gradient(180deg, #d0bc9a 0%, #b8a080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom left; animation: cun-hand 5s ease-in-out infinite; }
.scn-claudius-union-in-cup .crown-edge { position:absolute; top:5%; left:70%; width:15%; height:10%; background: linear-gradient(180deg, #d4af37 0%, #b8860b 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: cun-crown 12s ease-in-out infinite; }
.scn-claudius-union-in-cup .sparkle { position:absolute; top:10%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #ffffff 0%, transparent 100%); border-radius: 50%; animation: cun-sparkle 2s ease-in-out infinite; }
@keyframes cun-bg { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes cun-beam { 0% { opacity:0.3; transform: scaleY(0.8); } 50% { opacity:0.6; transform: scaleY(1); } 100% { opacity:0.4; transform: scaleY(0.9); } }
@keyframes cun-pearl { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes cun-hand { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes cun-crown { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cun-sparkle { 0% { opacity:0; transform: scale(0); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0); } }

.scn-first-hit-scored {
  background:
    linear-gradient(180deg, #e8d5c5 0%, #c8b5a0 40%, #a08060 80%, #705030 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,200,150,0.4) 0%, transparent 70%);
}
.scn-first-hit-scored .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #5a3a1a 100%); opacity:0.2; animation: fhs-bg 10s ease-in-out infinite alternate; }
.scn-first-hit-scored .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #5a3a1a 0%, #8a6a4a 60%, #a08060 100%); border-radius: 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); }
.scn-first-hit-scored .figure-hamlet { position:absolute; bottom:18%; left:30%; width:15%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fhs-hamlet 3s ease-in-out infinite; }
.scn-first-hit-scored .figure-laertes { position:absolute; bottom:18%; right:20%; width:15%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fhs-laertes 3.5s ease-in-out infinite; }
.scn-first-hit-scored .cup { position:absolute; bottom:30%; left:48%; width:12%; height:18%; background: linear-gradient(180deg, #b8860b 0%, #8a6a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 5px 10px rgba(0,0,0,0.5); }
.scn-first-hit-scored .table { position:absolute; bottom:30%; left:35%; right:35%; height:6%; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%); border-radius: 10% / 20%; box-shadow: 0 -2px 6px rgba(0,0,0,0.4); }
.scn-first-hit-scored .blood-drop { position:absolute; bottom:40%; left:35%; width:4%; height:4%; background: radial-gradient(circle, #702243 0%, #5e1a1d 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(112,34,67,0.6); animation: fhs-blood 4s ease-in-out infinite; }
.scn-first-hit-scored .light-ray { position:absolute; top:0; left:20%; width:60%; height:40%; background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 100%); clip-path: polygon(10% 0, 90% 0, 60% 100%, 40% 100%); opacity:0.4; animation: fhs-ray 8s ease-in-out infinite alternate; }
@keyframes fhs-bg { 0% { opacity:0.15; } 50% { opacity:0.3; } 100% { opacity:0.2; } }
@keyframes fhs-hamlet { 0% { transform: translateX(0) rotate(0) scaleY(1); } 30% { transform: translateX(5px) rotate(3deg) scaleY(0.95); } 50% { transform: translateX(5px) rotate(3deg) scaleY(0.95); } 70% { transform: translateX(0) rotate(0) scaleY(1); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes fhs-laertes { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-8px) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(-2deg); } 70% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fhs-blood { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes fhs-ray { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(0.9); } }

.scn-hamlet-ophelia-banter { background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #c9b88a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%); }
.scn-hamlet-ophelia-banter .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 80%); animation: hob-bg 12s ease-in-out infinite alternate; }
.scn-hamlet-ophelia-banter .couch { position:absolute; bottom:18%; left:30%; width:240px; height:100px; background: linear-gradient(180deg, #8b7355 0%, #5c4a33 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); animation: hob-couch 8s ease-in-out infinite; }
.scn-hamlet-ophelia-banter .figure-hamlet { position:absolute; bottom:28%; left:37%; width:40px; height:80px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a26 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hob-hamlet 6s ease-in-out infinite; }
.scn-hamlet-ophelia-banter .figure-ophelia { position:absolute; bottom:28%; left:52%; width:36px; height:72px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: hob-ophelia 7s ease-in-out infinite; }
.scn-hamlet-ophelia-banter .curtain-l { position:absolute; top:0; left:0; width:16%; height:100%; background: linear-gradient(180deg, #c04040 0%, #8a2020 100%); border-radius: 0 40% 40% 0; animation: hob-curtain 20s ease-in-out infinite alternate; }
.scn-hamlet-ophelia-banter .curtain-r { position:absolute; top:0; right:0; width:16%; height:100%; background: linear-gradient(180deg, #c04040 0%, #8a2020 100%); border-radius: 40% 0 0 40%; animation: hob-curtain 20s ease-in-out infinite alternate-reverse; }
.scn-hamlet-ophelia-banter .light-ray { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: hob-ray 15s ease-in-out infinite alternate; }
@keyframes hob-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hob-couch { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes hob-hamlet { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes hob-ophelia { 0% { transform: rotate(1deg) translateY(0) } 30% { transform: rotate(-2deg) translateY(-2px) } 60% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes hob-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes hob-ray { 0% { transform: skewX(-5deg) translateX(-2%) } 50% { transform: skewX(5deg) translateX(2%) } 100% { transform: skewX(-3deg) translateX(-1%) } }

.scn-hamlet-mocks-mothers-speed { background: linear-gradient(180deg, #f0d8a0 0%, #dcc08a 50%, #b89a6a 100%), radial-gradient(ellipse at 50% 0%, #fff4c0 0%, transparent 70%); }
.scn-hamlet-mocks-mothers-speed .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent 100%); animation: hmm-bg 10s ease-in-out infinite alternate; }
.scn-hamlet-mocks-mothers-speed .clock { position:absolute; top:12%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, #f8e0b0 0%, #d8b878 70%, #a08050 100%); border-radius:50%; border:6px solid #705030; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: hmm-clock 12s linear infinite; }
.scn-hamlet-mocks-mothers-speed .hand-hour { position:absolute; top:65px; left:50%; width:6px; height:36px; margin-left:-3px; background: #3a2a1a; border-radius:3px; transform-origin: bottom center; animation: hmm-hour 60s linear infinite; }
.scn-hamlet-mocks-mothers-speed .hand-min { position:absolute; top:65px; left:50%; width:4px; height:50px; margin-left:-2px; background: #3a2a1a; border-radius:2px; transform-origin: bottom center; animation: hmm-min 12s linear infinite; }
.scn-hamlet-mocks-mothers-speed .figure { position:absolute; bottom:20%; left:35%; width:45px; height:90px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a26 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hmm-figure 4s ease-in-out infinite; }
.scn-hamlet-mocks-mothers-speed .sable { position:absolute; bottom:25%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 60% 40% 40% 60%; transform: rotate(-20deg); filter: blur(2px); animation: hmm-sable 6s ease-in-out infinite alternate; }
@keyframes hmm-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hmm-clock { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(5deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes hmm-hour { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes hmm-min { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes hmm-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-8px) rotate(-5deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(8px) rotate(5deg) translateY(-2px) } }
@keyframes hmm-sable { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.15) } 100% { transform: rotate(-25deg) scaleX(0.85) } }

.scn-dumb-show-of-murder { background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 40%, #90806a 100%), radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 70%); }
.scn-dumb-show-of-murder .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(0,0,0,0.1) 100%); animation: dsm-bg 8s ease-in-out infinite alternate; }
.scn-dumb-show-of-murder .stage { position:absolute; bottom:15%; left:5%; width:90%; height:50%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-dumb-show-of-murder .curtain-l { position:absolute; top:13%; left:2%; width:10%; height:60%; background: linear-gradient(180deg, #5a1a1a 0%, #2a0a0a 100%); border-radius: 0 60% 60% 0; animation: dsm-curtain 10s ease-in-out infinite alternate; }
.scn-dumb-show-of-murder .curtain-r { position:absolute; top:13%; right:2%; width:10%; height:60%; background: linear-gradient(180deg, #5a1a1a 0%, #2a0a0a 100%); border-radius: 60% 0 0 60%; animation: dsm-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-dumb-show-of-murder .king { position:absolute; bottom:35%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsm-king 6s ease-in-out infinite; }
.scn-dumb-show-of-murder .queen { position:absolute; bottom:35%; left:58%; width:38px; height:76px; background: linear-gradient(180deg, #b08070 0%, #7a5040 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: dsm-queen 7s ease-in-out infinite; }
.scn-dumb-show-of-murder .poisoner { position:absolute; bottom:38%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dsm-poisoner 4s ease-in-out infinite; }
.scn-dumb-show-of-murder .goblet { position:absolute; bottom:42%; left:47%; width:14px; height:20px; background: linear-gradient(180deg, #d8a040 0%, #a07020 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 6px rgba(200,150,50,0.5); animation: dsm-goblet 3s ease-in-out infinite alternate; }
@keyframes dsm-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dsm-curtain { 0% { opacity:0.9; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:0.85; transform: scaleX(1) } }
@keyframes dsm-king { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(-2deg) } 60% { transform: translateY(2px) rotate(1deg) } }
@keyframes dsm-queen { 0% { transform: rotate(0deg) } 40% { transform: rotate(-3deg) translateY(-1px) } 80% { transform: rotate(3deg) translateY(1px) } 100% { transform: rotate(0deg) } }
@keyframes dsm-poisoner { 0% { transform: translateX(0) } 20% { transform: translateX(5px) } 40% { transform: translateX(10px) } 60% { transform: translateX(5px) } 80% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes dsm-goblet { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(-5deg) } }

.scn-prologue-brief-as-love { background: linear-gradient(180deg, #f0dcc0 0%, #dcc8a8 50%, #b8a888 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%); }
.scn-prologue-brief-as-love .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 80%); }
.scn-prologue-brief-as-love .stage { position:absolute; bottom:10%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); }
.scn-prologue-brief-as-love .figure { position:absolute; bottom:20%; left:50%; width:45px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pbl-figure 5s ease-in-out infinite; }
.scn-prologue-brief-as-love .scroll { position:absolute; bottom:22%; left:56%; width:30px; height:50px; background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 100%); border-radius: 10% 10% 5% 5%; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: pbl-scroll 8s ease-in-out infinite alternate; }
.scn-prologue-brief-as-love .ring { position:absolute; bottom:30%; left:43%; width:20px; height:20px; background: transparent; border: 4px solid #c8a040; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,160,64,0.4); animation: pbl-ring 3s ease-in-out infinite alternate; }
.scn-prologue-brief-as-love .spotlight { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,240,180,0.25) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: pbl-spotlight 12s ease-in-out infinite alternate; }
@keyframes pbl-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0) } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(0deg) translateY(1px) } 75% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } }
@keyframes pbl-scroll { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.3) } 100% { transform: rotate(20deg) scaleY(1) } }
@keyframes pbl-ring { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(200,160,64,0.4); } 50% { transform: scale(1.15) rotate(10deg); box-shadow: 0 0 20px 8px rgba(200,160,64,0.6); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(200,160,64,0.4); } }
@keyframes pbl-spotlight { 0% { transform: skewX(-3deg) translateX(-2%) } 50% { transform: skewX(3deg) translateX(2%) } 100% { transform: skewX(-1deg) translateX(0) } }

.scn-polonius-slanders-laertes {
  background: linear-gradient(180deg, #d8c8a0 0%, #c8b890 40%, #a89870 100%), 
              radial-gradient(ellipse at 30% 80%, #e0d0b0 0%, transparent 60%);
}
.scn-polonius-slanders-laertes .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  box-shadow: inset 0 0 60px rgba(160,120,80,0.3);
}
.scn-polonius-slanders-laertes .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8a7040 0%, #a08050 100%);
}
.scn-polonius-slanders-laertes .window {
  position: absolute; top: 12%; left: 20%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0c0d0 100%);
  border: 4px solid #7a6040;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 30px rgba(200,220,240,0.2);
  animation: psl-window 8s ease-in-out infinite alternate;
}
.scn-polonius-slanders-laertes .figure-psl {
  position: absolute; bottom: 30%; 
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-polonius-slanders-laertes .polonius {
  left: 35%;
  transform-origin: bottom center;
  animation: psl-polonius 6s ease-in-out infinite;
}
.scn-polonius-slanders-laertes .laertes {
  right: 28%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: psl-laertes 8s ease-in-out infinite;
}
.scn-polonius-slanders-laertes .light-beam {
  position: absolute; top: 10%; left: 18%; width: 35%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: psl-beam 12s ease-in-out infinite alternate;
}
.scn-polonius-slanders-laertes .dust-a, .dust-b {
  position: absolute; width: 6px; height: 6px;
  background: rgba(200,180,140,0.4); border-radius: 50%;
  filter: blur(2px);
}
.scn-polonius-slanders-laertes .dust-a { top: 15%; left: 30%; animation: psl-dust 20s linear infinite; }
.scn-polonius-slanders-laertes .dust-b { top: 25%; left: 50%; animation: psl-dust 25s linear infinite 5s; }
@keyframes psl-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes psl-polonius { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(1deg) translateY(-3px); } }
@keyframes psl-laertes { 0%,100% { transform: scaleX(-1) rotate(0deg); } 30% { transform: scaleX(-1) rotate(-2deg) translateY(-1px); } 60% { transform: scaleX(-1) rotate(1deg) translateY(1px); } }
@keyframes psl-beam { 0% { opacity: 0.4; transform: rotate(-2deg); } 100% { opacity: 0.8; transform: rotate(2deg); } }
@keyframes psl-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.5; } 90% { opacity: 0.3; } 100% { transform: translate(80px, -120px) scale(0.5); opacity: 0; } }

.scn-polonius-fetch-of-wit {
  background: linear-gradient(180deg, #c0b090 0%, #a89070 50%, #8a7850 100%),
              radial-gradient(ellipse at 70% 20%, #e8d8c0 0%, transparent 60%);
}
.scn-polonius-fetch-of-wit .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a888 50%, #9a8868 100%);
}
.scn-polonius-fetch-of-wit .bg-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #6a5838 0%, transparent 100%);
  animation: pfw-shadow 6s ease-in-out infinite alternate;
}
.scn-polonius-fetch-of-wit .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a30 0%, #5a3a20 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-polonius-fetch-of-wit .book {
  position: absolute; bottom: 28%; left: 52%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: pfw-book 4s ease-in-out infinite alternate;
}
.scn-polonius-fetch-of-wit .figure-pfw {
  position: absolute; bottom: 25%; left: 35%; width: 38px; height: 82px;
  background: linear-gradient(180deg, #2a2015 0%, #1a140e 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfw-figure 5s ease-in-out infinite;
}
.scn-polonius-fetch-of-wit .candle {
  position: absolute; bottom: 32%; right: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8c080 0%, #c09050 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 6px rgba(200,140,60,0.5), 0 0 40px 12px rgba(200,140,60,0.2);
  animation: pfw-candle 3s ease-in-out infinite alternate;
}
.scn-polonius-fetch-of-wit .flicker {
  position: absolute; bottom: 45%; right: 29.5%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  filter: blur(3px);
  animation: pfw-flicker 0.8s infinite alternate;
}
.scn-polonius-fetch-of-wit .motes {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(180,160,120,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: pfw-motes 12s linear infinite;
}
@keyframes pfw-shadow { 0% { opacity: 0.6; } 100% { opacity: 0.9; } }
@keyframes pfw-book { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes pfw-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-2deg) translateY(-4px); } 40% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(-5px); } 80% { transform: rotate(2deg) translateY(-3px); } }
@keyframes pfw-candle { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes pfw-flicker { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes pfw-motes { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.4; } 100% { transform: translate(100px, -80px) scale(0.5); opacity: 0; } }

.scn-polonius-by-indirections {
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 50%, #907858 100%),
              radial-gradient(ellipse at 50% 30%, #e0d0b8 0%, transparent 70%);
}
.scn-polonius-by-indirections .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c0b090 0%, #a89070 100%);
}
.scn-polonius-by-indirections .chair {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a28 0%, #4a3018 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pbi-chair 8s ease-in-out infinite alternate;
}
.scn-polonius-by-indirections .figure-pbi {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 78px;
  background: linear-gradient(180deg, #2a2018 0%, #18120e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbi-figure 5s ease-in-out infinite;
}
.scn-polonius-by-indirections .hand-out {
  position: absolute; bottom: 50%; left: 45%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2018 0%, #1a140e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: pbi-hand 4s ease-in-out infinite;
}
.scn-polonius-by-indirections .desk {
  position: absolute; bottom: 16%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a30 0%, #5a3a20 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-polonius-by-indirections .papers {
  position: absolute; bottom: 28%; left: 46%; width: 20px; height: 15px;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  animation: pbi-papers 6s ease-in-out infinite alternate;
}
.scn-polonius-by-indirections .lamp {
  position: absolute; bottom: 45%; right: 20%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #d0a050 0%, #a07830 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 25px 8px rgba(180,120,40,0.5);
  animation: pbi-lamp 4s ease-in-out infinite alternate;
}
.scn-polonius-by-indirections .shadow-pbi {
  position: absolute; bottom: 0; left: 20%; width: 80px; height: 30%;
  background: linear-gradient(0deg, rgba(40,30,20,0.4) 0%, transparent 100%);
  animation: pbi-shadow 7s ease-in-out infinite;
}
@keyframes pbi-chair { 0% { transform: scale(1); } 100% { transform: scale(0.98); } }
@keyframes pbi-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes pbi-hand { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg) translate(5px, -2px); } }
@keyframes pbi-papers { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-8deg) scale(0.98); } }
@keyframes pbi-lamp { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes pbi-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.7; } }

.scn-polonius-rambles-on {
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 40%, #b8a890 100%),
              radial-gradient(ellipse at 60% 20%, #f0e8d8 0%, transparent 70%);
}
.scn-polonius-rambles-on .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8b0 100%);
}
.scn-polonius-rambles-on .figure-pro {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2018 0%, #1a140e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: pro-figure 2s ease-in-out infinite;
}
.scn-polonius-rambles-on .hat {
  position: absolute; bottom: 75%; left: 47%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #3a2a18 0%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(5deg);
  animation: pro-hat 3s ease-in-out infinite;
}
.scn-polonius-rambles-on .cane {
  position: absolute; bottom: 25%; left: 65%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: pro-cane 1.5s ease-in-out infinite alternate;
}
.scn-polonius-rambles-on .swirl-a, .swirl-b {
  position: absolute; width: 40px; height: 40px;
  border: 3px solid rgba(180,140,80,0.4);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-polonius-rambles-on .swirl-a { top: 30%; left: 20%; animation: pro-swirl 6s linear infinite; }
.scn-polonius-rambles-on .swirl-b { top: 50%; right: 15%; animation: pro-swirl 8s linear infinite reverse; }
.scn-polonius-rambles-on .glint {
  position: absolute; top: 20%; right: 10%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff0d0 0%, transparent 70%);
  filter: blur(2px);
  animation: pro-glint 2s ease-in-out infinite alternate;
}
.scn-polonius-rambles-on .sparkle {
  position: absolute; top: 40%; left: 10%; width: 5px; height: 5px;
  background: #ffd090;
  border-radius: 50%;
  animation: pro-sparkle 1s ease-in-out infinite;
}
.scn-polonius-rambles-on .confetti {
  position: absolute; top: 10%; left: 30%; width: 8px; height: 8px;
  background: #d0a060;
  border-radius: 2px;
  opacity: 0.6;
  animation: pro-confetti 3s linear infinite;
}
@keyframes pro-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-45%) rotate(-3deg) scale(1.05); } 50% { transform: translateX(-55%) rotate(4deg) scale(0.95); } 75% { transform: translateX(-48%) rotate(-2deg) scale(1.02); } }
@keyframes pro-hat { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } }
@keyframes pro-cane { 0% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes pro-swirl { 0% { transform: rotate(0deg) scale(1); opacity: 0.3; } 50% { transform: rotate(180deg) scale(1.2); opacity: 0.6; } 100% { transform: rotate(360deg) scale(1); opacity: 0.3; } }
@keyframes pro-glint { 0% { opacity: 0.2; transform: scale(0.8); } 100% { opacity: 0.8; transform: scale(1.5); } }
@keyframes pro-sparkle { 0%,100% { opacity: 0; } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes pro-confetti { 0% { transform: translateY(0) rotate(0deg); opacity: 0.6; } 100% { transform: translateY(-60px) rotate(360deg); opacity: 0; } }

.scn-hamlet-swears-remember {
  background: linear-gradient(180deg, #2c1e14 0%, #5a3a22 20%, #c4844a 50%, #e8b070 80%, #f0d0a0 100%), radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 60%);
}
.scn-hamlet-swears-remember .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0c070 0%, #f8d8a8 60%, transparent 100%);
  animation: hsr-sky 8s ease-in-out infinite alternate;
}
.scn-hamlet-swears-remember .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: hsr-desk 6s ease-in-out infinite;
}
.scn-hamlet-swears-remember .book {
  position: absolute; bottom: 28%; left: 35%; width: 18%; height: 12%;
  background: linear-gradient(135deg, #8a6040 0%, #6a4020 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hsr-book 10s ease-in-out infinite;
}
.scn-hamlet-swears-remember .hand {
  position: absolute; bottom: 30%; left: 55%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 30% 20%, #d4a070 0%, #b08050 60%, #7a5030 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: hsr-hand 3s ease-in-out infinite;
}
.scn-hamlet-swears-remember .candle {
  position: absolute; bottom: 28%; left: 20%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 2px; box-shadow: 0 -2px 8px rgba(255,200,100,0.4);
}
.scn-hamlet-swears-remember .glow {
  position: absolute; bottom: 35%; left: 18%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 70%);
  border-radius: 50%;
  animation: hsr-glow 2s ease-in-out infinite alternate;
}
.scn-hamlet-swears-remember .pages {
  position: absolute; width: 8%; height: 8%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.3);
}
.scn-hamlet-swears-remember .pages-a {
  top: 20%; left: 40%; animation: hsr-page-a 15s linear infinite;
}
.scn-hamlet-swears-remember .pages-b {
  top: 15%; left: 55%; animation: hsr-page-b 18s linear infinite reverse;
}
@keyframes hsr-sky { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes hsr-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hsr-book { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes hsr-hand { 0% { transform: translateX(0) rotate(-5deg); } 30% { transform: translateX(-8px) rotate(0deg); } 60% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes hsr-glow { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes hsr-page-a { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.7; } 50% { transform: translateY(-30px) rotate(15deg) scale(1.1); opacity: 0.4; } 100% { transform: translateY(-80px) rotate(30deg) scale(0.8); opacity: 0; } }
@keyframes hsr-page-b { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.6; } 50% { transform: translateY(-25px) rotate(-10deg) scale(1.2); opacity: 0.3; } 100% { transform: translateY(-70px) rotate(-20deg) scale(0.7); opacity: 0; } }

.scn-hamlet-writes-down-villainy {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a14 30%, #a06830 60%, #d09050 80%, #e8b870 100%), radial-gradient(ellipse at 50% 0%, #e8b870 0%, transparent 70%);
}
.scn-hamlet-writes-down-villainy .bg-dawn {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0c070 0%, #f8d8a8 50%, transparent 100%);
  animation: hdv-bg 10s ease-in-out infinite alternate;
}
.scn-hamlet-writes-down-villainy .table {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5c3820 0%, #3a2010 100%);
  border-radius: 6px; box-shadow: 0 -6px 18px rgba(0,0,0,0.6);
  animation: hdv-table 7s ease-in-out infinite;
}
.scn-hamlet-writes-down-villainy .book-open {
  position: absolute; bottom: 27%; left: 30%; width: 25%; height: 16%;
  background: linear-gradient(135deg, #d8c8a8 0%, #b8a080 50%, #a08868 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: hdv-book 12s ease-in-out infinite;
}
.scn-hamlet-writes-down-villainy .quill {
  position: absolute; bottom: 32%; left: 42%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: bottom center;
  animation: hdv-quill 2s ease-in-out infinite;
}
.scn-hamlet-writes-down-villainy .inkwell {
  position: absolute; bottom: 26%; left: 48%; width: 5%; height: 8%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.6);
}
.scn-hamlet-writes-down-villainy .hand-writing {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 16%;
  background: radial-gradient(ellipse at 30% 20%, #d4a070 0%, #b08050 60%, #7a5030 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: hdv-hand 3s ease-in-out infinite;
}
.scn-hamlet-writes-down-villainy .shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: hdv-shadow 8s ease-in-out infinite alternate;
}
@keyframes hdv-bg { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes hdv-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hdv-book { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes hdv-quill { 0% { transform: rotate(-10deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }
@keyframes hdv-hand { 0% { transform: translateX(0) rotate(-5deg); } 30% { transform: translateX(-6px) rotate(0deg); } 60% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes hdv-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-horatio-and-marcellus-call {
  background: linear-gradient(180deg, #2c1e14 0%, #4a2a14 20%, #a06830 50%, #d09050 70%, #e8b870 100%), radial-gradient(ellipse at 50% 0%, #e8b870 0%, transparent 60%);
}
.scn-horatio-and-marcellus-call .bg-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0c070 0%, #f8d8a8 60%, transparent 100%);
  animation: hmc-bg 12s ease-in-out infinite alternate;
}
.scn-horatio-and-marcellus-call .hill {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: hmc-hill 15s ease-in-out infinite;
}
.scn-horatio-and-marcellus-call .figure-left {
  position: absolute; bottom: 27%; left: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hmc-figure-left 4s ease-in-out infinite;
}
.scn-horatio-and-marcellus-call .figure-right {
  position: absolute; bottom: 27%; left: 55%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hmc-figure-right 4s ease-in-out infinite reverse;
}
.scn-horatio-and-marcellus-call .bird {
  position: absolute; bottom: 45%; left: 50%; width: 6%; height: 6%;
  background: radial-gradient(ellipse at 50% 40%, #4a4a4a 0%, #1a1a1a 100%);
  border-radius: 50%;
  animation: hmc-bird 3s ease-in-out infinite;
}
.scn-horatio-and-marcellus-call .cloud {
  position: absolute; height: 6%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
}
.scn-horatio-and-marcellus-call .cloud-a {
  top: 15%; left: 10%; width: 20%; animation: hmc-cloud-a 40s linear infinite;
}
.scn-horatio-and-marcellus-call .cloud-b {
  top: 25%; right: 20%; width: 15%; animation: hmc-cloud-b 50s linear infinite reverse;
}
@keyframes hmc-bg { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes hmc-hill { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hmc-figure-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hmc-figure-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-3deg); } 50% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hmc-bird { 0% { transform: translate(0,0) scale(1); } 30% { transform: translate(20px, -15px) scale(1.1); } 60% { transform: translate(-10px, -5px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes hmc-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes hmc-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-hamlet-enigmatic-answer {
  background: linear-gradient(180deg, #ffc070 0%, #ffd8a0 30%, #ffe8c0 60%, #fff0d0 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 70%);
}
.scn-hamlet-enigmatic-answer .bg-dawn {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #ffd8a0 0%, #fff0d0 60%, transparent 100%);
  animation: hea-bg 8s ease-in-out infinite alternate;
}
.scn-hamlet-enigmatic-answer .figure-hamlet {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hea-hamlet 2s ease-in-out infinite;
}
.scn-hamlet-enigmatic-answer .figure-other {
  position: absolute; bottom: 25%; right: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hea-other 2.5s ease-in-out infinite reverse;
}
.scn-hamlet-enigmatic-answer .handshake {
  position: absolute; bottom: 35%; left: 50%; width: 14%; height: 10%;
  background: linear-gradient(90deg, #d4a070 0%, #c09060 50%, #d4a070 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: hea-handshake 1.5s ease-in-out infinite;
}
.scn-hamlet-enigmatic-answer .ground {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
}
.scn-hamlet-enigmatic-answer .sparkle {
  position: absolute; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffe680 0%, transparent 70%);
  border-radius: 50%;
}
.scn-hamlet-enigmatic-answer .sparkle-1 {
  top: 20%; left: 20%; animation: hea-sparkle 3s ease-in-out infinite;
}
.scn-hamlet-enigmatic-answer .sparkle-2 {
  top: 30%; right: 25%; animation: hea-sparkle 3.5s ease-in-out infinite 1s;
}
@keyframes hea-bg { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes hea-hamlet { 0% { transform: rotate(-5deg) scale(1); } 30% { transform: rotate(3deg) scale(1.05); } 60% { transform: rotate(-2deg) scale(0.95); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes hea-other { 0% { transform: rotate(5deg) scale(1); } 30% { transform: rotate(-3deg) scale(1.05); } 60% { transform: rotate(2deg) scale(0.95); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes hea-handshake { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(5deg); } 60% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes hea-sparkle { 0%,100% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } }

.scn-gertrude-ophelia-drowned {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 30%, #2a2a4e 70%, #0e0e2a 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 60%);
}
.scn-gertrude-ophelia-drowned .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 100%);
  animation: go-sky 14s ease-in-out infinite alternate;
}
.scn-gertrude-ophelia-drowned .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a1a2a 0%, #071520 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: go-river 20s ease-in-out infinite;
}
.scn-gertrude-ophelia-drowned .willow {
  position: absolute; bottom: 30%; left: 25%; width: 10px; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: go-willow 12s ease-in-out infinite;
}
.scn-gertrude-ophelia-drowned .branches {
  position: absolute; bottom: 70%; left: 18%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at bottom, #2a1a0a 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: go-branches 10s ease-in-out infinite alternate;
}
.scn-gertrude-ophelia-drowned .flowers {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, #702243 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 30px -10px 0 #a0461a, -20px 5px 0 #b87878;
  animation: go-flowers 8s ease-in-out infinite;
}
.scn-gertrude-ophelia-drowned .figure {
  position: absolute; bottom: 15%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: go-figure 6s ease-in-out infinite;
}
.scn-gertrude-ophelia-drowned .light {
  position: absolute; bottom: 50%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,214,128,.5);
  animation: go-light 4s ease-in-out infinite alternate;
}
@keyframes go-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes go-river { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes go-willow { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes go-branches { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-5px) scale(0.95) } 100% { transform: translateX(5px) scale(1) } }
@keyframes go-flowers { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes go-figure { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(8px) translateY(-3px) scale(0.97) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes go-light { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(0.9) } }

.scn-ophelia-drowning-described {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 40%, #1a2a3e 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 50%);
}
.scn-ophelia-drowning-described .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0a1a2a 0%, #071520 60%, #050f1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: od-water 25s ease-in-out infinite;
}
.scn-ophelia-drowning-described .figure {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: od-figure 8s ease-in-out infinite;
}
.scn-ophelia-drowning-described .dress {
  position: absolute; bottom: 33%; left: 43%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #3a4a5a 0%, #2a3a4a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(1px);
  animation: od-dress 10s ease-in-out infinite;
}
.scn-ophelia-drowning-described .garland {
  position: absolute; bottom: 55%; left: 48%; width: 25px; height: 5px;
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #702243 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: od-garland 12s linear infinite;
}
.scn-ophelia-drowning-described .bubbles {
  position: absolute; bottom: 20%; left: 40%; width: 4px; height: 4px;
  background: radial-gradient(circle, #8aacb8 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 20px 10px 0 #7a9ca8, -10px 15px 0 #9abcc8, 30px 5px 0 #6a8c98;
  animation: od-bubbles 5s ease-in-out infinite;
}
.scn-ophelia-drowning-described .reflections {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(100,140,160,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: od-reflections 15s ease-in-out infinite alternate;
}
@keyframes od-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.03) } 100% { transform: translateY(2px) scaleY(0.98) } }
@keyframes od-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-6px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes od-dress { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes od-garland { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(15deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes od-bubbles { 0% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(-15px) } 100% { opacity:0; transform: translateY(-30px) } }
@keyframes od-reflections { 0% { opacity:.2; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(0.9) } }

.scn-laertes-forbids-tears {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 30%, #3a2a3a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a4a 0%, transparent 50%);
}
.scn-laertes-forbids-tears .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  animation: lf-wall 18s ease-in-out infinite alternate;
}
.scn-laertes-forbids-tears .torch {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: lf-torch 4s ease-in-out infinite;
}
.scn-laertes-forbids-tears .laertes {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: lf-laertes 6s ease-in-out infinite;
}
.scn-laertes-forbids-tears .tears {
  position: absolute; bottom: 25%; left: 48%; width: 3px; height: 3px;
  background: radial-gradient(circle, #6a8a9a 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 5px 0 0 #5a7a8a, -5px 0 0 #7a9aaa;
  animation: lf-tears 3s ease-in-out infinite;
}
.scn-laertes-forbids-tears .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: lf-shadow 12s ease-in-out infinite alternate;
}
@keyframes lf-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lf-torch { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes lf-laertes { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lf-tears { 0% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(8px) } 100% { opacity:0; transform: translateY(0) } }
@keyframes lf-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-gravediggers-argue-burial {
  background: linear-gradient(180deg, #7ab8d4 0%, #a0d0e8 40%, #c8e8f0 70%, #e0f0f8 100%),
              radial-gradient(ellipse at 50% 80%, #b0d8e8 0%, transparent 50%);
}
.scn-gravediggers-argue-burial .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7ab8d4 0%, #a0d0e8 100%);
  animation: ga-sky 30s ease-in-out infinite alternate;
}
.scn-gravediggers-argue-burial .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 50%, #2a4a1a 100%);
  border-radius: 20% 30% 0 0;
  animation: ga-ground 20s ease-in-out infinite;
}
.scn-gravediggers-argue-burial .digger1 {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ga-d1 4s ease-in-out infinite;
}
.scn-gravediggers-argue-burial .digger2 {
  position: absolute; bottom: 20%; left: 60%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ga-d2 5s ease-in-out infinite reverse;
}
.scn-gravediggers-argue-burial .skull {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(circle, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: inset 0 -2px 2px rgba(0,0,0,.3);
  animation: ga-skull 8s ease-in-out infinite;
}
.scn-gravediggers-argue-burial .shovel {
  position: absolute; bottom: 28%; left: 33%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: ga-shovel 3s ease-in-out infinite;
}
.scn-gravediggers-argue-burial .gravestone {
  position: absolute; bottom: 20%; left: 70%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30% 30% 5% 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: ga-stone 15s ease-in-out infinite alternate;
}
@keyframes ga-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ga-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ga-d1 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-8px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ga-d2 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-6px) rotate(-4deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(6px) rotate(4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ga-skull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ga-shovel { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes ga-stone { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }

.scn-ghost-first-appearance {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 70%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 30%, #3a4a6a 0%, transparent 60%);
}
.scn-ghost-first-appearance .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0e0e30 0%, #1e1e4a 40%, transparent);
  animation: gfa-sky 20s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .moon {
  position: absolute; top: 12%; left: 20%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #d0d0e8 0%, #8a8ab0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(138,138,176,0.5);
  animation: gfa-moon 30s linear infinite;
}
.scn-ghost-first-appearance .battlements {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  clip-path: polygon(0% 0%, 10% 10%, 10% 0%, 20% 10%, 20% 0%, 30% 10%, 30% 0%, 40% 10%, 40% 0%, 50% 10%, 50% 0%, 60% 10%, 60% 0%, 70% 10%, 70% 0%, 80% 10%, 80% 0%, 90% 10%, 90% 0%, 100% 10%, 100% 100%, 0% 100%);
  animation: gfa-battle 8s ease-in-out infinite;
}
.scn-ghost-first-appearance .ghost {
  position: absolute; bottom: 30%; left: 55%;
  width: 40px; height: 110px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 30%, #0a0a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(100,100,160,0.3), inset 0 0 15px rgba(80,80,140,0.4);
  animation: gfa-ghost 5s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .guard1 {
  position: absolute; bottom: 22%; left: 30%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: gfa-guard1 4s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .guard2 {
  position: absolute; bottom: 22%; left: 22%;
  width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: gfa-guard2 4.5s ease-in-out infinite alternate;
}
.scn-ghost-first-appearance .spear {
  position: absolute; bottom: 30%; left: 32%;
  width: 2px; height: 60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  box-shadow: 0 0 2px 1px rgba(200,200,220,0.2);
  transform: rotate(5deg);
  animation: gfa-spear 3s ease-in-out infinite;
}
.scn-ghost-first-appearance .cloud {
  position: absolute; height: 15px; background: linear-gradient(180deg, rgba(200,200,230,0.3) 0%, transparent);
  border-radius: 50%; filter: blur(6px);
}
.scn-ghost-first-appearance .c1 {
  top: 8%; left: 0; width: 120px;
  animation: gfa-drift1 40s linear infinite;
}
.scn-ghost-first-appearance .c2 {
  top: 20%; right: 0; width: 90px;
  animation: gfa-drift2 55s linear infinite reverse;
}
@keyframes gfa-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes gfa-moon { 0%{transform:translateX(-20px) scale(0.95)} 50%{transform:translateX(0) scale(1)} 100%{transform:translateX(20px) scale(0.95)} }
@keyframes gfa-battle { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes gfa-ghost { 0%{transform:translateY(0) rotate(-2deg); opacity:0.8} 50%{transform:translateY(-4px) rotate(1deg); opacity:1} 100%{transform:translateY(0) rotate(0); opacity:0.85} }
@keyframes gfa-guard1 { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes gfa-guard2 { 0%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-2px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes gfa-spear { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(4deg) translateY(-2px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes gfa-drift1 { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }
@keyframes gfa-drift2 { 0%{transform:translateX(0)} 100%{transform:translateX(-90vw)} }

.scn-horatio-convinced-ghost {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 50%, #1a1a3a 100%),
              radial-gradient(ellipse at 30% 70%, #2a2a4a 0%, transparent 60%);
}
.scn-horatio-convinced-ghost .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e28 0%, #181840 100%);
  animation: hcg-deep 15s ease-in-out infinite alternate;
}
.scn-horatio-convinced-ghost .hand {
  position: absolute; bottom: 10%; left: 15%;
  width: 120px; height: 180px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 30% / 70% 60% 40% 40%;
  transform: rotate(15deg) translateX(-20px);
  box-shadow: 0 0 30px 5px rgba(30,30,60,0.8);
  animation: hcg-hand 6s ease-in-out infinite;
}
.scn-horatio-convinced-ghost .ghost-faint {
  position: absolute; bottom: 30%; right: 20%;
  width: 50px; height: 130px;
  background: linear-gradient(180deg, rgba(60,60,100,0.4) 0%, rgba(30,30,60,0.2) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: hcg-ghost 8s ease-in-out infinite alternate;
}
.scn-horatio-convinced-ghost .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-horatio-convinced-ghost .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #d0d0e8 0%, transparent 70%);
  border-radius: 50%;
  animation: hcg-sparkle 3s ease-in-out infinite;
}
.scn-horatio-convinced-ghost .s1 { top: 20%; left: 30%; animation-delay: 0s; }
.scn-horatio-convinced-ghost .s2 { top: 35%; left: 60%; animation-delay: 1.5s; }
.scn-horatio-convinced-ghost .armor-glint {
  position: absolute; top: 25%; right: 22%;
  width: 4px; height: 4px;
  background: #c0c0d0;
  border-radius: 50%;
  box-shadow: 0 0 15px 3px rgba(192,192,208,0.6);
  animation: hcg-glint 4s ease-in-out infinite alternate;
}
@keyframes hcg-deep { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes hcg-hand { 0%{transform:rotate(15deg) translateX(-20px) scale(1)} 50%{transform:rotate(17deg) translateX(-15px) scale(1.02)} 100%{transform:rotate(15deg) translateX(-20px) scale(1)} }
@keyframes hcg-ghost { 0%{opacity:0.3; transform:translateY(0)} 50%{opacity:0.6; transform:translateY(-5px)} 100%{opacity:0.4; transform:translateY(0)} }
@keyframes hcg-sparkle { 0%{opacity:0; transform:scale(0.5)} 50%{opacity:1; transform:scale(1.5)} 100%{opacity:0; transform:scale(0.5)} }
@keyframes hcg-glint { 0%{opacity:0.2} 50%{opacity:1} 100%{opacity:0.3} }

.scn-horatio-bodes-strange-events {
  background: linear-gradient(180deg, #0a0a1e 0%, #151535 50%, #1a1a3e 100%),
              radial-gradient(ellipse at 80% 20%, #2e2e5e 0%, transparent 50%);
}
.scn-horatio-bodes-strange-events .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0c0c28 0%, #1a1a40 100%);
  animation: hbe-sky 18s ease-in-out infinite alternate;
}
.scn-horatio-bodes-strange-events .tower {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 200px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 5% 5% 3% 3% / 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: hbe-tower 12s ease-in-out infinite;
}
.scn-horatio-bodes-strange-events .comet {
  position: absolute; top: 5%; left: 10%;
  width: 100px; height: 6px;
  background: linear-gradient(90deg, #f0d080 0%, rgba(240,208,128,0) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hbe-comet 15s linear infinite;
}
.scn-horatio-bodes-strange-events .horatio-small {
  position: absolute; bottom: 15%; left: 32%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hbe-horatio 6s ease-in-out infinite;
}
.scn-horatio-bodes-strange-events .cloud-ominous {
  position: absolute; height: 20px;
  background: linear-gradient(180deg, rgba(30,30,60,0.7) 0%, transparent);
  border-radius: 50%; filter: blur(8px);
}
.scn-horatio-bodes-strange-events .a {
  top: 25%; left: 10%; width: 180px;
  animation: hbe-cloudA 30s linear infinite;
}
.scn-horatio-bodes-strange-events .b {
  top: 15%; right: 0; width: 140px;
  animation: hbe-cloudB 40s linear infinite reverse;
}
.scn-horatio-bodes-strange-events .star-fall {
  position: absolute; top: 8%; right: 30%;
  width: 3px; height: 3px;
  background: #f0f0ff;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,200,255,0.6);
  animation: hbe-star 7s ease-in-out infinite;
}
@keyframes hbe-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes hbe-tower { 0%{transform:rotate(0deg) scaleY(1)} 50%{transform:rotate(2deg) scaleY(1.02)} 100%{transform:rotate(-1deg) scaleY(1)} }
@keyframes hbe-comet { 0%{transform:translateX(-50px) rotate(-20deg); opacity:0.5} 20%{opacity:1} 80%{opacity:1} 100%{transform:translateX(120vw) rotate(-20deg); opacity:0} }
@keyframes hbe-horatio { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hbe-cloudA { 0%{transform:translateX(-30px)} 100%{transform:translateX(150vw)} }
@keyframes hbe-cloudB { 0%{transform:translateX(0)} 100%{transform:translateX(-120vw)} }
@keyframes hbe-star { 0%{transform:translateY(0) scale(0.5); opacity:0} 50%{transform:translateY(15px) scale(1.5); opacity:1} 100%{transform:translateY(30px) scale(0.5); opacity:0} }

.scn-horatio-explains-fortinbras {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 40%, #1a1a3a 70%, #0e0e2a 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 50%);
}
.scn-horatio-explains-fortinbras .distant-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0c0c24 0%, #1a1a3a 100%);
  animation: hef-sky 20s ease-in-out infinite alternate;
}
.scn-horatio-explains-fortinbras .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: hef-hills 15s ease-in-out infinite;
}
.scn-horatio-explains-fortinbras .campfire {
  position: absolute; width: 20px; height: 20px;
  background: radial-gradient(circle, #d08040 0%, #a05020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(208,128,64,0.5);
}
.scn-horatio-explains-fortinbras .f1 { bottom: 35%; left: 20%; animation: hef-fire1 4s ease-in-out infinite; }
.scn-horatio-explains-fortinbras .f2 { bottom: 33%; left: 35%; animation: hef-fire2 5s ease-in-out infinite 1s; }
.scn-horatio-explains-fortinbras .horatio-profile {
  position: absolute; bottom: 10%; right: 15%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 30% 20% 30% / 60% 40% 30% 50%;
  transform: rotate(-5deg);
  animation: hef-horatio 8s ease-in-out infinite;
}
.scn-horatio-explains-fortinbras .army-silhouette {
  position: absolute; bottom: 20%; left: 10%; right: 60%; height: 10%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  clip-path: polygon(0% 100%, 0% 50%, 5% 40%, 10% 50%, 15% 30%, 20% 50%, 25% 20%, 30% 50%, 35% 30%, 40% 50%, 45% 40%, 50% 50%, 55% 30%, 60% 50%, 65% 20%, 70% 50%, 75% 40%, 80% 50%, 85% 30%, 90% 50%, 95% 30%, 100% 50%, 100% 100%);
  animation: hef-army 10s ease-in-out infinite;
}
.scn-horatio-explains-fortinbras .tent {
  position: absolute; bottom: 28%; left: 30%;
  width: 30px; height: 25px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: hef-tent 6s ease-in-out infinite;
}
@keyframes hef-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes hef-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes hef-fire1 { 0%{transform:scale(1); opacity:0.7} 50%{transform:scale(1.2); opacity:1} 100%{transform:scale(0.9); opacity:0.6} }
@keyframes hef-fire2 { 0%{transform:scale(0.9); opacity:0.6} 50%{transform:scale(1.1); opacity:1} 100%{transform:scale(1); opacity:0.7} }
@keyframes hef-horatio { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes hef-army { 0%{transform:translateX(0)} 50%{transform:translateX(-5px)} 100%{transform:translateX(0)} }
@keyframes hef-tent { 0%{transform:rotate(0deg) scaleY(1)} 50%{transform:rotate(2deg) scaleY(1.05)} 100%{transform:rotate(0deg) scaleY(1)} }

/* ---------- laertes-chastity-warning ---------- */
.scn-laertes-chastity-warning {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b88c 100%), radial-gradient(ellipse at 50% 100%, #c9a06b 0%, transparent 70%);
}
.scn-laertes-chastity-warning .window {
  position:absolute; inset:8% 0 0 55%; width:25%; height:45%; background: linear-gradient(135deg, #fff8e7 0%, #f0dbb0 100%);
  border:8px solid #8b6f45; border-radius:8px; box-shadow:inset 0 0 30px rgba(255,248,231,.8); animation:lchw-window 6s ease-in-out infinite alternate;
}
.scn-laertes-chastity-warning .chest {
  position:absolute; bottom:20%; left:10%; width:20%; height:25%; background: linear-gradient(180deg, #7a5c3a 0%, #4d3720 100%);
  border-radius:6% 6% 4% 4%; box-shadow:0 6px 12px rgba(0,0,0,.5); transform-origin:bottom center; animation:lchw-chest 8s ease-in-out infinite;
}
.scn-laertes-chastity-warning .figure {
  position:absolute; bottom:28%; left:45%; width:12%; height:40%; background: #2b1f13; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow:0 4px 8px rgba(0,0,0,.4); transform-origin:bottom center; animation:lchw-figure 2s ease-in-out infinite;
}
.scn-laertes-chastity-warning .lock {
  position:absolute; bottom:28%; left:18%; width:4%; height:4%; background: radial-gradient(circle, #d4a843 0%, #9c7a2a 100%);
  border-radius:30% 30% 40% 40%; box-shadow:0 0 12px 3px #d4a843; animation:lchw-lock 1.5s ease-in-out infinite alternate;
}
.scn-laertes-chastity-warning .shadow {
  position:absolute; bottom:17%; left:5%; width:28%; height:6%; background: rgba(0,0,0,.35); filter:blur(6px); border-radius:50%;
}
.scn-laertes-chastity-warning .glow {
  position:absolute; bottom:38%; left:48%; width:16%; height:20%; background: radial-gradient(circle, rgba(255,248,231,.3) 0%, transparent 70%);
  filter:blur(12px); animation:lchw-glow 4s ease-in-out infinite alternate;
}
@keyframes lchw-window { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lchw-chest { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) scaleX(1.02) } 100% { transform: scaleY(1) } }
@keyframes lchw-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lchw-lock { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes lchw-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* ---------- laertes-final-warning ---------- */
.scn-laertes-final-warning {
  background: linear-gradient(180deg, #e8d5b0 0%, #c4a57a 100%), radial-gradient(ellipse at 30% 70%, #ad8b5e 0%, transparent 60%);
}
.scn-laertes-final-warning .figure {
  position:absolute; bottom:20%; left:35%; width:15%; height:45%; background: #2b1f13; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center; animation:lfw-figure 2.5s ease-in-out infinite;
}
.scn-laertes-final-warning .skull {
  position:absolute; top:20%; left:55%; width:18%; height:20%; background: radial-gradient(circle at 40% 40%, #f0e0c0 0%, #c8b090 100%);
  border-radius:50% 50% 45% 45% / 55% 55% 40% 40%; box-shadow:inset 0 -8px 18px rgba(0,0,0,.3); animation:lfw-skull 4s ease-in-out infinite alternate;
}
.scn-laertes-final-warning .crossbones {
  position:absolute; top:28%; left:58%; width:12%; height:3%; background: #4d3a2a; border-radius:2px; transform:rotate(-45deg);
  box-shadow:0 0 0 0; animation:lfw-bones 3s ease-in-out infinite;
}
.scn-laertes-final-warning .crossbones::after {
  content:''; position:absolute; top:-600%; left:0; width:100%; height:100%; background:#4d3a2a; transform:rotate(90deg);
}
.scn-laertes-final-warning .door {
  position:absolute; bottom:0; left:10%; width:30%; height:70%; background: linear-gradient(180deg, #7a603a 0%, #4d3720 100%);
  border-radius:10% 10% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation:lfw-door 10s ease-in-out infinite alternate;
}
.scn-laertes-final-warning .warning-sign {
  position:absolute; top:12%; left:25%; width:10%; height:10%; background: #a0461a; clip-path:polygon(50% 0%, 100% 100%, 0% 100%);
  opacity:.8; animation:lfw-sign 2s ease-in-out infinite alternate;
}
.scn-laertes-final-warning .shadow {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
}
@keyframes lfw-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes lfw-skull { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes lfw-bones { 0% { transform: rotate(-45deg) scale(1) } 50% { transform: rotate(20deg) scale(1.1) } 100% { transform: rotate(-45deg) scale(1) } }
@keyframes lfw-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes lfw-sign { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* ---------- polonius-arrives-blesses ---------- */
.scn-polonius-arrives-blesses {
  background: linear-gradient(180deg, #ffe6c9 0%, #f2cba7 100%), radial-gradient(ellipse at 80% 20%, #dbb58a 0%, transparent 70%);
}
.scn-polonius-arrives-blesses .father {
  position:absolute; bottom:10%; left:30%; width:22%; height:55%; background: linear-gradient(180deg, #5e3a22 0%, #3a2212 100%);
  border-radius:50% 50% 40% 40% / 55% 55% 40% 45%; transform-origin:bottom center; animation:pab-father 8s ease-in-out infinite alternate;
}
.scn-polonius-arrives-blesses .son {
  position:absolute; bottom:10%; left:55%; width:16%; height:45%; background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 50% 50% 35% 45%; transform-origin:bottom center; animation:pab-son 6s ease-in-out infinite alternate;
}
.scn-polonius-arrives-blesses .halo {
  position:absolute; top:12%; left:36%; width:16%; height:12%; background: radial-gradient(circle, rgba(255,235,180,.6) 0%, transparent 70%);
  border-radius:50%; filter:blur(6px); animation:pab-halo 4s ease-in-out infinite alternate;
}
.scn-polonius-arrives-blesses .window {
  position:absolute; inset:5% 5% auto auto; width:30%; height:45%; background: linear-gradient(135deg, #fff6df 0%, #eacc9a 100%);
  border:6px solid #8b6f45; border-radius:6px; box-shadow:inset 0 0 20px rgba(255,246,223,.7); animation:pab-window 12s ease-in-out infinite alternate;
}
.scn-polonius-arrives-blesses .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b8956a 0%, #8f6f4a 100%);
  box-shadow:inset 0 6px 12px rgba(0,0,0,.2);
}
.scn-polonius-arrives-blesses .wall {
  position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #f2dbba 0%, #e2c49e 100%);
  z-index:-1;
}
@keyframes pab-father { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pab-son { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pab-halo { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes pab-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }

/* ---------- polonius-advice-laertes ---------- */
.scn-polonius-advice-laertes {
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b186 100%), radial-gradient(ellipse at 60% 40%, #c29a6a 0%, transparent 60%);
}
.scn-polonius-advice-laertes .hand-left {
  position:absolute; bottom:25%; left:30%; width:18%; height:22%; background: linear-gradient(180deg, #c8a882 0%, #a28262 100%);
  border-radius:50% 40% 50% 40% / 40% 30% 40% 30%; transform:rotate(10deg); transform-origin:bottom right;
  animation:pal-hand-left 5s ease-in-out infinite alternate;
}
.scn-polonius-advice-laertes .hand-right {
  position:absolute; bottom:25%; left:45%; width:18%; height:22%; background: linear-gradient(180deg, #c8a882 0%, #a28262 100%);
  border-radius:40% 50% 40% 50% / 30% 40% 30% 40%; transform:rotate(-10deg); transform-origin:bottom left;
  animation:pal-hand-right 5s ease-in-out infinite alternate;
}
.scn-polonius-advice-laertes .hoop {
  position:absolute; bottom:32%; left:38%; width:12%; height:12%; border:6px solid #5e4a32; border-radius:50%;
  box-shadow:0 0 20px rgba(94,74,50,.4); animation:pal-hoop 6s ease-in-out infinite;
}
.scn-polonius-advice-laertes .book {
  position:absolute; bottom:18%; left:52%; width:14%; height:10%; background: linear-gradient(180deg, #8a6a4a 0%, #5a402a 100%);
  border-radius:3px; box-shadow:2px 4px 8px rgba(0,0,0,.4); animation:pal-book 10s ease-in-out infinite alternate;
}
.scn-polonius-advice-laertes .desk {
  position:absolute; bottom:15%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #7a5c3a 0%, #4d3720 100%);
  border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,.3);
}
.scn-polonius-advice-laertes .shadow {
  position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.25) 0%, transparent 70%);
}
@keyframes pal-hand-left { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes pal-hand-right { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes pal-hoop { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes pal-book { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }

.scn-hamlet-mirror-up-to-nature {
  background: linear-gradient(180deg, #f5ecd8 0%, #e8dcc4 40%, #d4c4a8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%);
}
.scn-hamlet-mirror-up-to-nature .curtain-left {
  position: absolute; left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #6b3a2a 0%, #8a4a3a 50%, #6b3a2a 100%);
  border-radius: 0 20% 20% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: hm1-curtain-left 20s ease-in-out infinite alternate;
}
.scn-hamlet-mirror-up-to-nature .curtain-right {
  position: absolute; right: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #6b3a2a 0%, #8a4a3a 50%, #6b3a2a 100%);
  border-radius: 20% 0 0 20%; box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: hm1-curtain-right 20s ease-in-out infinite alternate;
}
.scn-hamlet-mirror-up-to-nature .stage-floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #c4a87a 0%, #a88c5e 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: hm1-floor 25s ease-in-out infinite;
}
.scn-hamlet-mirror-up-to-nature .mirror-frame {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b88a4a 0%, #916a30 100%);
  border-radius: 10px; box-shadow: 0 0 20px rgba(160,120,60,0.3);
  animation: hm1-mirror 8s ease-in-out infinite alternate;
}
.scn-hamlet-mirror-up-to-nature .mirror-glass {
  position: absolute; bottom: 34%; left: 50%; width: 80px; height: 110px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #cce0f5 0%, #a8c0e0 70%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(200,220,255,0.5);
  animation: hm1-glass 12s ease-in-out infinite alternate;
}
.scn-hamlet-mirror-up-to-nature .actor-profile {
  position: absolute; bottom: 21%; left: 43%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  transform: rotate(5deg); animation: hm1-actor 4s ease-in-out infinite;
}
.scn-hamlet-mirror-up-to-nature .spotlight {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse, rgba(255,240,210,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(30px);
  animation: hm1-spotlight 6s ease-in-out infinite alternate;
}
@keyframes hm1-curtain-left {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-5%) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(0.98); }
}
@keyframes hm1-curtain-right {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5%) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(0.98); }
}
@keyframes hm1-floor {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.95; transform: scaleY(0.99); }
}
@keyframes hm1-mirror {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes hm1-glass {
  0% { opacity: 0.7; background-position: 0 0; }
  50% { opacity: 1; background-position: 10% 5%; }
  100% { opacity: 0.8; background-position: 0 10%; }
}
@keyframes hm1-actor {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes hm1-spotlight {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-hamlet-clowns-speak-no-more {
  background: linear-gradient(180deg, #ecd8b0 0%, #d8c090 40%, #c0a070 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 80%);
}
.scn-hamlet-clowns-speak-no-more .stage-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 30% 30% 0 0; animation: hm2-back 25s ease-in-out infinite;
}
.scn-hamlet-clowns-speak-no-more .jester-hat-base {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%);
  border-radius: 50% 50% 10% 10%; animation: hm2-base 4s ease-in-out infinite;
}
.scn-hamlet-clowns-speak-no-more .jester-point-left {
  position: absolute; bottom: 50%; left: 32%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #702243 0%, #4a1014 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-20deg);
  transform-origin: bottom center; animation: hm2-point 5s ease-in-out infinite alternate;
}
.scn-hamlet-clowns-speak-no-more .jester-point-right {
  position: absolute; bottom: 50%; right: 32%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #702243 0%, #4a1014 100%);
  border-radius: 50% 50% 0 0; transform: rotate(20deg);
  transform-origin: bottom center; animation: hm2-point 5s ease-in-out infinite alternate-reverse;
}
.scn-hamlet-clowns-speak-no-more .jester-point-top {
  position: absolute; bottom: 55%; left: 50%; width: 18px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #702243 0%, #4a1014 100%);
  border-radius: 50% 50% 0 0; animation: hm2-top 6s ease-in-out infinite;
}
.scn-hamlet-clowns-speak-no-more .jester-bell-1 {
  position: absolute; bottom: 55%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hm2-bell 0.8s ease-in-out infinite;
}
.scn-hamlet-clowns-speak-no-more .jester-bell-2 {
  position: absolute; bottom: 55%; right: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hm2-bell 0.8s ease-in-out infinite 0.2s;
}
.scn-hamlet-clowns-speak-no-more .jester-bell-3 {
  position: absolute; bottom: 62%; left: 50%; width: 8px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hm2-bell 0.8s ease-in-out infinite 0.4s;
}
.scn-hamlet-clowns-speak-no-more .silencing-hand {
  position: absolute; bottom: 28%; left: 48%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg); animation: hm2-hand 3s ease-in-out infinite;
}
@keyframes hm2-back {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes hm2-base {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes hm2-point {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.03); }
  100% { transform: rotate(-25deg) scaleY(0.97); }
}
@keyframes hm2-top {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes hm2-bell {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hm2-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(10deg) translateY(0); }
}

.scn-hamlet-reform-altogether {
  background: linear-gradient(180deg, #eadcc8 0%, #d6c8b0 40%, #c4b498 100%),
              radial-gradient(ellipse at 50% 0%, #f5f0e0 0%, transparent 70%);
}
.scn-hamlet-reform-altogether .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8bca8 0%, #a89880 100%);
  animation: hm3-wall 30s ease-in-out infinite;
}
.scn-hamlet-reform-altogether .curtain-left {
  position: absolute; left: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #8a5a4a 0%, #6a4030 100%);
  border-radius: 0 30% 30% 0; box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: hm3-curtain-open-left 12s ease-in-out infinite alternate;
}
.scn-hamlet-reform-altogether .curtain-right {
  position: absolute; right: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(270deg, #8a5a4a 0%, #6a4030 100%);
  border-radius: 30% 0 0 30%; box-shadow: -4px 0 10px rgba(0,0,0,0.2);
  animation: hm3-curtain-open-right 12s ease-in-out infinite alternate;
}
.scn-hamlet-reform-altogether .director-figure {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  animation: hm3-figure 4s ease-in-out infinite;
}
.scn-hamlet-reform-altogether .pointing-arm {
  position: absolute; bottom: 40%; left: 54%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 60% 60% 0; transform: rotate(-30deg);
  transform-origin: left center; animation: hm3-arm 3s ease-in-out infinite;
}
.scn-hamlet-reform-altogether .script-book {
  position: absolute; bottom: 14%; left: 44%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b8 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: hm3-book 8s ease-in-out infinite;
}
.scn-hamlet-reform-altogether .stool {
  position: absolute; bottom: 10%; left: 43%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #b09060 0%, #8a7040 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hm3-stool 10s ease-in-out infinite alternate;
}
@keyframes hm3-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes hm3-curtain-open-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(5%); }
  100% { transform: translateX(-2%); }
}
@keyframes hm3-curtain-open-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5%); }
  100% { transform: translateX(2%); }
}
@keyframes hm3-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes hm3-arm {
  0% { transform: rotate(-30deg) scaleX(1); }
  50% { transform: rotate(-25deg) scaleX(1.05); }
  100% { transform: rotate(-35deg) scaleX(0.95); }
}
@keyframes hm3-book {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(2px, -1px) rotate(3deg); }
  100% { transform: translate(-1px, 1px) rotate(-2deg); }
}
@keyframes hm3-stool {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}

.scn-hamlet-hails-horatio {
  background: linear-gradient(180deg, #f0e0c8 0%, #e8d0b0 40%, #d4b890 100%),
              radial-gradient(ellipse at 50% 0%, #ffeedd 0%, transparent 80%);
}
.scn-hamlet-hails-horatio .arch {
  position: absolute; top: 5%; left: 25%; right: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #dcc4a8 60%);
  border-radius: 50% 50% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  animation: hm4-arch 20s ease-in-out infinite alternate;
}
.scn-hamlet-hails-horatio .figure-left {
  position: absolute; bottom: 20%; left: 32%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  animation: hm4-fig-left 5s ease-in-out infinite;
}
.scn-hamlet-hails-horatio .figure-right {
  position: absolute; bottom: 20%; right: 32%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 40% 50%;
  animation: hm4-fig-right 5s ease-in-out infinite;
}
.scn-hamlet-hails-horatio .clasped-hands {
  position: absolute; bottom: 42%; left: 50%; width: 14px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #d4b898 0%, #b89878 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 8px rgba(180,140,100,0.4);
  animation: hm4-hands 3s ease-in-out infinite;
}
.scn-hamlet-hails-horatio .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #c8b090 0%, #a89070 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.15);
  animation: hm4-floor 15s ease-in-out infinite;
}
.scn-hamlet-hails-horatio .window-glow {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,220,160,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(20px);
  animation: hm4-glow 7s ease-in-out infinite alternate;
}
@keyframes hm4-arch {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.02); opacity: 1; }
  100% { transform: scaleX(0.98); opacity: 0.9; }
}
@keyframes hm4-fig-left {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes hm4-fig-right {
  0% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hm4-hands {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
  100% { transform: translateX(-50%) scale(0.95); }
}
@keyframes hm4-floor {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.95; transform: scaleY(0.99); }
}
@keyframes hm4-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

/* player-king-and-queen (calm, bright-interior) */
.scn-player-king-and-queen {
  background: linear-gradient(180deg, #f5e6d0 0%, #cbb69e 40%, #9a8570 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-player-king-and-queen .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,248,231,0.3) 0%, transparent 50%, rgba(180,160,130,0.2) 100%); animation: pkq-bg 20s ease-in-out infinite alternate; }
.scn-player-king-and-queen .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8b7355 0%, #5e4a36 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.2); }
.scn-player-king-and-queen .throne-l { position:absolute; bottom:18%; left:15%; width:35%; height:55%; background: linear-gradient(135deg, #a08060 0%, #705030 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: pkq-throne 6s ease-in-out infinite; }
.scn-player-king-and-queen .throne-r { position:absolute; bottom:18%; right:15%; width:35%; height:55%; background: linear-gradient(225deg, #a08060 0%, #705030 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: pkq-throne 6s ease-in-out infinite reverse; }
.scn-player-king-and-queen .king { position:absolute; bottom:25%; left:22%; width:18%; height:45%; background: linear-gradient(180deg, #a08868 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pkq-figure 3s ease-in-out infinite; }
.scn-player-king-and-queen .queen { position:absolute; bottom:25%; right:22%; width:16%; height:42%; background: linear-gradient(180deg, #b89878 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pkq-figure 3s ease-in-out infinite alternate; }
.scn-player-king-and-queen .crown-k { position:absolute; bottom:65%; left:22%; width:15%; height:6%; background: linear-gradient(180deg, #dbb86c 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 8px rgba(160,128,64,0.6); animation: pkq-crown 5s ease-in-out infinite; }
.scn-player-king-and-queen .crown-q { position:absolute; bottom:63%; right:22%; width:13%; height:5%; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 8px rgba(160,128,64,0.6); animation: pkq-crown 5s ease-in-out infinite alternate; }
.scn-player-king-and-queen .window { position:absolute; top:8%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #fef8e8 0%, #ddd8c0 100%); border: 6px solid #a08060; border-radius: 4%; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); animation: pkq-window 12s ease-in-out infinite alternate; }
@keyframes pkq-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pkq-throne { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } }
@keyframes pkq-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pkq-crown { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.1); } }
@keyframes pkq-window { 0% { opacity:0.85; box-shadow: inset 0 0 15px rgba(255,255,200,0.3); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,200,0.7); } 100% { opacity:0.9; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); } }

/* player-queen-protests-love (warm, bright-interior) */
.scn-player-queen-protests-love {
  background: linear-gradient(180deg, #fce8d0 0%, #d4b080 50%, #a07850 100%),
              radial-gradient(ellipse at 60% 20%, #ffe0b0 0%, transparent 70%);
}
.scn-player-queen-protests-love .bg { position:absolute; inset:0; background: linear-gradient(90deg, rgba(255,200,150,0.15) 0%, transparent 40%, rgba(255,240,200,0.1) 100%); animation: qpl-bg 18s ease-in-out infinite; }
.scn-player-queen-protests-love .window { position:absolute; top:5%; right:5%; width:20%; height:35%; background: linear-gradient(135deg, #fff5e0 0%, #eed8b8 100%); border: 5px solid #b09070; border-radius: 5%; box-shadow: inset 0 0 20px rgba(255,230,180,0.6); animation: qpl-window 10s ease-in-out infinite alternate; }
.scn-player-queen-protests-love .queen { position:absolute; bottom:20%; left:30%; width:35%; height:55%; background: linear-gradient(180deg, #b89878 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: qpl-queen 4s ease-in-out infinite; }
.scn-player-queen-protests-love .hand { position:absolute; bottom:32%; left:50%; width:12%; height:18%; background: linear-gradient(180deg, #c8a080 0%, #785040 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: qpl-hand 2.5s ease-in-out infinite; }
.scn-player-queen-protests-love .drapery-l { position:absolute; top:0; left:0; width:8%; height:100%; background: linear-gradient(180deg, #c06040 0%, #7a2a1a 100%); border-radius: 0% 40% 40% 0%; animation: qpl-drape 12s ease-in-out infinite alternate; }
.scn-player-queen-protests-love .drapery-r { position:absolute; top:0; right:0; width:8%; height:100%; background: linear-gradient(180deg, #c06040 0%, #7a2a1a 100%); border-radius: 40% 0% 0% 40%; animation: qpl-drape 12s ease-in-out infinite alternate-reverse; }
.scn-player-queen-protests-love .candle { position:absolute; bottom:25%; left:55%; width:3%; height:12%; background: linear-gradient(180deg, #f0d080 0%, #806030 100%); border-radius: 30% 30% 5% 5%; box-shadow: 0 0 20px 8px rgba(240,208,128,0.5); animation: qpl-candle 3s ease-in-out infinite alternate; }
@keyframes qpl-bg { 0% { opacity:0.9; } 50% { opacity:0.85; } 100% { opacity:0.95; } }
@keyframes qpl-window { 0% { opacity:0.9; box-shadow: inset 0 0 15px rgba(255,230,180,0.4); } 50% { opacity:1; box-shadow: inset 0 0 25px rgba(255,230,180,0.8); } 100% { opacity:0.95; box-shadow: inset 0 0 20px rgba(255,230,180,0.6); } }
@keyframes qpl-queen { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-6px) rotate(2deg); } 40% { transform: translateY(-2px) rotate(-1deg); } 60% { transform: translateY(-8px) rotate(3deg); } 80% { transform: translateY(-4px) rotate(-2deg); } }
@keyframes qpl-hand { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-10deg) translateX(-10px); } 70% { transform: rotate(15deg) translateX(8px); } }
@keyframes qpl-drape { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes qpl-candle { 0%,100% { transform: translateY(0) scaleX(1); opacity:0.8; } 50% { transform: translateY(-5px) scaleX(1.1); opacity:1; } }

/* player-queen-vows-widowhood (warm, bright-interior) */
.scn-player-queen-vows-widowhood {
  background: linear-gradient(180deg, #f0dcc0 0%, #c8a880 40%, #9a7850 100%),
              radial-gradient(ellipse at 40% 30%, #ffe8c0 0%, transparent 65%);
}
.scn-player-queen-vows-widowhood .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,200,150,0.2) 0%, transparent 50%, rgba(200,160,120,0.1) 100%); animation: qvw-bg 22s ease-in-out infinite alternate; }
.scn-player-queen-vows-widowhood .veil { position:absolute; top:8%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,240,220,0.4) 0%, rgba(200,180,160,0.3) 100%); border-radius: 60% 40% 30% 50% / 50% 60% 40% 50%; filter: blur(3px); animation: qvw-veil 6s ease-in-out infinite alternate; }
.scn-player-queen-vows-widowhood .queen { position:absolute; bottom:20%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #a08870 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: qvw-queen 4.5s ease-in-out infinite; }
.scn-player-queen-vows-widowhood .ring { position:absolute; bottom:38%; left:42%; width:4%; height:4%; background: radial-gradient(circle, #f0d080 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(240,208,128,0.6); animation: qvw-ring 2s ease-in-out infinite; }
.scn-player-queen-vows-widowhood .drapery { position:absolute; top:0; left:15%; width:15%; height:100%; background: linear-gradient(180deg, #b85838 0%, #702818 100%); border-radius: 0% 60% 60% 0%; animation: qvw-drape 14s ease-in-out infinite alternate; }
.scn-player-queen-vows-widowhood .crown-floor { position:absolute; bottom:5%; left:25%; width:10%; height:4%; background: linear-gradient(180deg, #c8a860 0%, #9a7840 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-15deg); opacity:0.7; animation: qvw-crown 8s ease-in-out infinite; }
.scn-player-queen-vows-widowhood .light { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 50% 20%, rgba(255,220,160,0.25) 0%, transparent 70%); animation: qvw-light 5s ease-in-out infinite alternate; }
@keyframes qvw-bg { 0% { opacity:0.85; } 50% { opacity:0.95; } 100% { opacity:0.9; } }
@keyframes qvw-veil { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.02); } }
@keyframes qvw-queen { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(-1deg); } 60% { transform: translateY(-2px) rotate(2deg); } }
@keyframes qvw-ring { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.3); box-shadow: 0 0 20px 8px rgba(240,208,128,0.8); } }
@keyframes qvw-drape { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.96); } }
@keyframes qvw-crown { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(10px); } }
@keyframes qvw-light { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* player-king-on-purpose (calm, bright-interior) */
.scn-player-king-on-purpose {
  background: linear-gradient(180deg, #f0e6d8 0%, #c8b898 40%, #9a8870 100%),
              radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 70%);
}
.scn-player-king-on-purpose .bg { position:absolute; inset:0; background: linear-gradient(90deg, rgba(200,170,140,0.15) 0%, transparent 40%, rgba(240,220,200,0.1) 100%); animation: kpo-bg 25s ease-in-out infinite; }
.scn-player-king-on-purpose .king { position:absolute; bottom:20%; left:30%; width:25%; height:55%; background: linear-gradient(180deg, #a08870 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: kpo-king 4s ease-in-out infinite; }
.scn-player-king-on-purpose .scroll { position:absolute; bottom:35%; left:28%; width:8%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%); border-radius: 5% 5% 10% 10%; transform: rotate(10deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: kpo-scroll 7s ease-in-out infinite alternate; }
.scn-player-king-on-purpose .window { position:absolute; top:10%; left:55%; width:25%; height:40%; background: linear-gradient(135deg, #fef8e8 0%, #ddd8c0 100%); border: 6px solid #a08060; border-radius: 4%; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); animation: kpo-window 15s ease-in-out infinite alternate; }
.scn-player-king-on-purpose .shadow { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); animation: kpo-shadow 9s ease-in-out infinite; }
.scn-player-king-on-purpose .fruit { position:absolute; top:5%; left:60%; width:4%; height:6%; background: radial-gradient(circle, #b09840 0%, #7a6830 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(176,152,64,0.4); animation: kpo-fruit 3s ease-in-out infinite; }
.scn-player-king-on-purpose .throne { position:absolute; bottom:18%; left:28%; width:30%; height:45%; background: linear-gradient(135deg, #a08060 0%, #705030 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: kpo-throne 6s ease-in-out infinite; }
@keyframes kpo-bg { 0% { opacity:0.9; } 50% { opacity:0.85; } 100% { opacity:0.95; } }
@keyframes kpo-king { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 75% { transform: translateY(-8px) rotate(3deg); } }
@keyframes kpo-scroll { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-6px); } }
@keyframes kpo-window { 0% { opacity:0.9; box-shadow: inset 0 0 15px rgba(255,255,200,0.3); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,200,0.7); } 100% { opacity:0.95; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); } }
@keyframes kpo-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes kpo-fruit { 0%,100% { transform: translateY(0) scale(1); opacity:0.7; } 50% { transform: translateY(-12px) scale(1.1); opacity:1; } }
@keyframes kpo-throne { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-1px); } }

/* hamlet-dying-speech */
.scn-hamlet-dying-speech {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #3a2015 30%, #5a3a2a 60%, #3a2518 100%),
    radial-gradient(ellipse at 50% 20%, #8a5a3a 0%, transparent 70%);
}
.scn-hamlet-dying-speech .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg, #2a1a10 0%, #1a0f0a 100%); box-shadow:inset 0 10px 30px rgba(0,0,0,0.6); animation: ha1-floor 10s ease-in-out infinite alternate; }
.scn-hamlet-dying-speech .wall  { position:absolute; top:0; left:0; right:0; bottom:30%; background:linear-gradient(180deg, #3a2518 0%, #2a1a10 40%, #1a0f0a 100%); box-shadow:inset 0 -20px 40px rgba(0,0,0,0.5); }
.scn-hamlet-dying-speech .pillar-left { position:absolute; top:5%; left:10%; width:20px; height:70%; background:linear-gradient(180deg, #4a2a1a 30%, #2a1a10 100%); border-radius:4px; box-shadow:0 0 15px rgba(0,0,0,0.4); animation: ha1-pillar 15s ease-in-out infinite; }
.scn-hamlet-dying-speech .pillar-right { position:absolute; top:5%; right:10%; width:20px; height:70%; background:linear-gradient(180deg, #4a2a1a 30%, #2a1a10 100%); border-radius:4px; box-shadow:0 0 15px rgba(0,0,0,0.4); animation: ha1-pillar 15s ease-in-out infinite reverse; }
.scn-hamlet-dying-speech .figure-hamlet { position:absolute; bottom:15%; left:45%; width:40px; height:60px; background:linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ha1-figure 6s ease-in-out infinite, ha1-fade 8s infinite; }
.scn-hamlet-dying-speech .figure-horatio { position:absolute; bottom:18%; left:60%; width:38px; height:55px; background:linear-gradient(180deg, #5a3a2a 0%, #3a2015 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ha1-figure2 5s ease-in-out infinite, ha1-kneel 12s infinite; }
.scn-hamlet-dying-speech .candle { position:absolute; bottom:32%; left:35%; width:8px; height:20px; background:linear-gradient(180deg, #e8b870 0%, #c08040 100%); border-radius:2px; box-shadow:0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,0.3); animation: ha1-candle 3s ease-in-out infinite alternate; }
.scn-hamlet-dying-speech .goblet { position:absolute; bottom:16%; left:48%; width:14px; height:18px; background:linear-gradient(180deg, #6a4a3a 0%, #3a2518 100%); border-radius:0 0 20% 20% / 0 0 40% 40%; box-shadow:0 2px 6px rgba(0,0,0,0.5); animation: ha1-goblet 4s ease-in-out infinite; }
.scn-hamlet-dying-speech .shadow { position:absolute; bottom:0; left:30%; right:30%; height:25%; background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%); filter:blur(4px); animation: ha1-shadow 8s ease-in-out infinite alternate; }

@keyframes ha1-floor  { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ha1-pillar { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes ha1-figure { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(2px) rotate(1deg) scaleY(0.98) } 50% { transform:translateX(0) rotate(0) scaleY(1) } 75% { transform:translateX(-2px) rotate(-1deg) scaleY(0.99) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes ha1-figure2 { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(4px) rotate(2deg) scaleY(0.97) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ha1-kneel  { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ha1-candle { 0% { box-shadow:0 0 15px 6px #f0c060, 0 0 30px 12px rgba(240,192,96,0.2); transform:scaleY(0.95); } 50% { box-shadow:0 0 25px 10px #ffd080, 0 0 50px 20px rgba(255,208,128,0.4); transform:scaleY(1.05); } 100% { box-shadow:0 0 18px 8px #e8b870, 0 0 36px 14px rgba(232,184,112,0.25); transform:scaleY(0.98); } }
@keyframes ha1-goblet { 0% { transform:rotate(-3deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-1px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes ha1-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes ha1-fade  { 0% { opacity:1 } 50% { opacity:0.9 } 100% { opacity:0.95 } }

/* fortinbras-arrives */
.scn-fortinbras-arrives {
  background:
    linear-gradient(180deg, #1a100c 0%, #3a2215 40%, #5a3a2a 70%, #3a2215 100%),
    radial-gradient(ellipse at 50% 60%, #8a5a3a 0%, transparent 80%);
}
.scn-fortinbras-arrives .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(0deg, #1a0f0a 0%, #2a1a10 100%); box-shadow:inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-fortinbras-arrives .archway { position:absolute; top:10%; left:35%; right:35%; height:65%; background:radial-gradient(ellipse at 50% 100%, #2a1a10 0%, #1a0f0a 100%); border:2px solid #4a2a1a; border-radius:30% 30% 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,0.5); animation: ha2-arch 20s ease-in-out infinite alternate; }
.scn-fortinbras-arrives .body-fore { position:absolute; bottom:0; left:25%; width:50px; height:40px; background:linear-gradient(180deg, #3a2015 0%, #1a0f0a 100%); border-radius:50% 50% 0 0; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation: ha2-body-fore 8s ease-in-out infinite; }
.scn-fortinbras-arrives .soldier-a { position:absolute; bottom:10%; left:15%; width:30px; height:68px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: ha2-soldier 4s ease-in-out infinite, ha2-march 12s linear infinite; }
.scn-fortinbras-arrives .soldier-b { position:absolute; bottom:10%; left:25%; width:30px; height:68px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: ha2-soldier 4s ease-in-out infinite -1s, ha2-march 12s linear infinite -3s; }
.scn-fortinbras-arrives .soldier-c { position:absolute; bottom:10%; right:20%; width:30px; height:68px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: ha2-soldier 4s ease-in-out infinite -2s, ha2-march 12s linear infinite -6s; }
.scn-fortinbras-arrives .fortinbras { position:absolute; bottom:12%; left:50%; transform:translateX(-50%); width:36px; height:72px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2215 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ha2-fortinbras 6s ease-in-out infinite; }
.scn-fortinbras-arrives .torch-left { position:absolute; bottom:30%; left:10%; width:10px; height:16px; background:radial-gradient(ellipse, #f0c060 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 30px 15px #f0c060, 0 0 60px 30px rgba(240,192,96,0.3); animation: ha2-torch 3s ease-in-out infinite alternate; }
.scn-fortinbras-arrives .torch-right { position:absolute; bottom:30%; right:12%; width:10px; height:16px; background:radial-gradient(ellipse, #f0c060 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 30px 15px #f0c060, 0 0 60px 30px rgba(240,192,96,0.3); animation: ha2-torch 3s ease-in-out infinite alternate -0.5s; }

@keyframes ha2-arch { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } 100% { transform:scaleY(0.98) } }
@keyframes ha2-body-fore { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes ha2-soldier { 0% { transform:translateY(0) rotate(-1deg) } 25% { transform:translateY(-2px) rotate(0) } 50% { transform:translateY(0) rotate(1deg) } 75% { transform:translateY(-2px) rotate(0) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes ha2-march  { 0% { transform:translateX(0) } 50% { transform:translateX(10px) } 100% { transform:translateX(20px) } }
@keyframes ha2-fortinbras { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) translateY(-3px) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes ha2-torch  { 0% { opacity:0.8; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); box-shadow:0 0 40px 20px #f0c060, 0 0 80px 40px rgba(240,192,96,0.4); } 100% { opacity:0.85; transform:scale(0.95); } }

/* horatio-bids-farewell */
.scn-horatio-bids-farewell {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2a1a10 40%, #4a2a1a 70%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 30%, #8a5a3a 0%, transparent 70%);
}
.scn-horatio-bids-farewell .bg-amber { position:absolute; inset:0; background:linear-gradient(160deg, #1a0f0a 0%, rgba(232,184,112,0.1) 40%, #1a0f0a 100%); animation: ha3-amber 15s ease-in-out infinite alternate; }
.scn-horatio-bids-farewell .throne { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:80px; height:50px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow:0 8px 20px rgba(0,0,0,0.5); animation: ha3-throne 8s ease-in-out infinite; }
.scn-horatio-bids-farewell .corpse { position:absolute; bottom:5%; left:45%; width:40px; height:30px; background:linear-gradient(180deg, #3a2015 0%, #1a0f0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-10deg); animation: ha3-corpse 12s ease-in-out infinite; }
.scn-horatio-bids-farewell .horatio { position:absolute; bottom:18%; left:55%; width:35px; height:60px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ha3-horatio 7s ease-in-out infinite; }
.scn-horatio-bids-farewell .crown-fallen { position:absolute; bottom:3%; left:48%; width:24px; height:10px; background:linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:50% 50% 0 0; transform:rotate(-20deg); box-shadow:0 2px 6px rgba(0,0,0,0.5); animation: ha3-crown 6s ease-in-out infinite; }
.scn-horatio-bids-farewell .candle-left { position:absolute; bottom:30%; left:25%; width:8px; height:20px; background:linear-gradient(180deg, #e8b870 0%, #c08040 100%); border-radius:2px; box-shadow:0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,0.3); animation: ha3-candle 4s ease-in-out infinite alternate; }
.scn-horatio-bids-farewell .candle-right { position:absolute; bottom:30%; right:25%; width:8px; height:20px; background:linear-gradient(180deg, #e8b870 0%, #c08040 100%); border-radius:2px; box-shadow:0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,0.3); animation: ha3-candle 4s ease-in-out infinite alternate -2s; }

@keyframes ha3-amber  { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ha3-throne { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } 100% { transform:translateX(-50%) scaleY(0.98) } }
@keyframes ha3-corpse { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(2px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes ha3-horatio { 0% { transform:rotate(-3deg) translateY(0) scaleY(1) } 25% { transform:rotate(0) translateY(-2px) scaleY(0.97) } 50% { transform:rotate(2deg) translateY(0) scaleY(1) } 75% { transform:rotate(0) translateY(-1px) scaleY(0.98) } 100% { transform:rotate(-3deg) translateY(0) scaleY(1) } }
@keyframes ha3-crown { 0% { transform:rotate(-20deg) translateY(0) } 50% { transform:rotate(-18deg) translateY(2px) } 100% { transform:rotate(-20deg) translateY(0) } }
@keyframes ha3-candle { 0% { box-shadow:0 0 15px 6px #f0c060, 0 0 30px 12px rgba(240,192,96,0.2); transform:scaleY(0.95); } 50% { box-shadow:0 0 25px 10px #ffd080, 0 0 50px 20px rgba(255,208,128,0.4); transform:scaleY(1.05); } 100% { box-shadow:0 0 18px 8px #e8b870, 0 0 36px 14px rgba(232,184,112,0.25); transform:scaleY(0.98); } }

/* fortinbras-sees-carnage */
.scn-fortinbras-sees-carnage {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2a1a10 30%, #4a2a1a 60%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 40%, #8a5a3a 0%, transparent 80%);
}
.scn-fortinbras-sees-carnage .court-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(0deg, #1a0f0a 0%, #2a1a10 100%); box-shadow:inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-fortinbras-sees-carnage .wall-tapestry { position:absolute; top:0; left:10%; right:10%; bottom:20%; background:linear-gradient(180deg, #3a2518 0%, #1a0f0a 100%), repeating-linear-gradient(90deg, transparent 0%, transparent 30px, rgba(232,184,112,0.05) 30px, rgba(232,184,112,0.05) 32px); animation: ha4-tapestry 18s ease-in-out infinite alternate; }
.scn-fortinbras-sees-carnage .body-claudius { position:absolute; bottom:10%; left:20%; width:40px; height:35px; background:linear-gradient(180deg, #002040 0%, #001020 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-15deg); animation: ha4-body 7s ease-in-out infinite; }
.scn-fortinbras-sees-carnage .body-gertrude { position:absolute; bottom:10%; left:40%; width:36px; height:32px; background:linear-gradient(180deg, #3a2015 0%, #1a0f0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(5deg); animation: ha4-body 7s ease-in-out infinite -2s; }
.scn-fortinbras-sees-carnage .body-laertes { position:absolute; bottom:10%; left:55%; width:38px; height:34px; background:linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-5deg); animation: ha4-body 7s ease-in-out infinite -4s; }
.scn-fortinbras-sees-carnage .body-hamlet { position:absolute; bottom:10%; left:70%; width:42px; height:36px; background:linear-gradient(180deg, #3a2015 0%, #1a0f0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(10deg); animation: ha4-body 7s ease-in-out infinite -6s; }
.scn-fortinbras-sees-carnage .fortinbras-silhouette { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:40px; height:80px; background:linear-gradient(180deg, #0a0a0a 0%, #1a0f0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 30px rgba(0,0,0,0.5); animation: ha4-fort 10s ease-in-out infinite; }
.scn-fortinbras-sees-carnage .torch-court { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:12px; height:24px; background:radial-gradient(ellipse, #f0c060 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 40px 20px #f0c060, 0 0 80px 40px rgba(240,192,96,0.3); animation: ha4-torch 3s ease-in-out infinite alternate; }
.scn-fortinbras-sees-carnage .blood-pool { position:absolute; bottom:0; left:30%; right:30%; height:8%; background:radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, rgba(94,26,29,0.3) 60%, transparent 100%); filter:blur(2px); animation: ha4-blood 15s ease-in-out infinite alternate; }

@keyframes ha4-tapestry { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ha4-body { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-13deg) translateY(2px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes ha4-fort { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) translateY(-4px) scaleY(1.02) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes ha4-torch { 0% { opacity:0.8; transform:translateX(-50%) scale(0.9); } 50% { opacity:1; transform:translateX(-50%) scale(1.15); box-shadow:0 0 50px 25px #f0c060, 0 0 100px 50px rgba(240,192,96,0.4); } 100% { opacity:0.85; transform:translateX(-50%) scale(0.95); } }
@keyframes ha4-blood { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-hamlet-wild-words {
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 40%, #8c5b4e 70%, #d4a574 100%),
              radial-gradient(ellipse at 30% 10%, #f2d9b3 0%, transparent 70%);
}
.scn-hamlet-wild-words .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #8c5b4e 60%, transparent 100%);
  animation: ww-sky 14s ease-in-out infinite alternate;
}
.scn-hamlet-wild-words .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-hamlet-wild-words .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-fig-left 5s ease-in-out infinite;
}
.scn-hamlet-wild-words .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-fig-right 5s ease-in-out infinite;
}
.scn-hamlet-wild-words .ghost {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.3) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ww-ghost 6s ease-in-out infinite alternate;
  filter: blur(2px);
}
.scn-hamlet-wild-words .sword {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform: translateX(-50%) rotate(-10deg);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 4px rgba(255,255,200,0.3);
  animation: ww-sword 8s ease-in-out infinite;
}
.scn-hamlet-wild-words .cloud {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ww-cloud 40s linear infinite;
}
@keyframes ww-sky {
  0% { opacity: 0.7; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 10%; }
  100% { opacity: 0.8; background-position: 0 5%; }
}
@keyframes ww-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes ww-fig-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-5px) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes ww-ghost {
  0% { opacity: 0.2; transform: translateX(-50%) translateY(0) scale(1); }
  50% { opacity: 0.6; transform: translateX(-50%) translateY(-10px) scale(1.05); }
  100% { opacity: 0.1; transform: translateX(-50%) translateY(10px) scale(0.95); }
}
@keyframes ww-sword {
  0% { transform: translateX(-50%) rotate(-10deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(-5deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(-10deg) scaleY(1); }
}
@keyframes ww-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}

.scn-hamlet-commands-secrecy {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #7a5a4a 70%, #c48a5a 100%),
              radial-gradient(ellipse at 50% 20%, #e0b080 0%, transparent 70%);
}
.scn-hamlet-commands-secrecy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #7a5a4a 70%, transparent 100%);
  animation: cs-sky 16s ease-in-out infinite alternate;
}
.scn-hamlet-commands-secrecy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-hamlet-commands-secrecy .sword {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #b09070 0%, #705040 100%);
  transform: translateX(-50%) rotate(5deg);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 0 8px rgba(255,200,150,0.4);
  animation: cs-sword 10s ease-in-out infinite;
}
.scn-hamlet-commands-secrecy .hand-left {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: cs-hand-left 4s ease-in-out infinite;
}
.scn-hamlet-commands-secrecy .hand-right {
  position: absolute; bottom: 30%; right: 35%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: cs-hand-right 4s ease-in-out infinite;
}
.scn-hamlet-commands-secrecy .ghost {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.25) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cs-ghost 7s ease-in-out infinite alternate;
  filter: blur(3px);
}
.scn-hamlet-commands-secrecy .cloud {
  position: absolute; top: 12%; right: 15%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: cs-cloud 50s linear infinite reverse;
}
@keyframes cs-sky {
  0% { opacity: 0.6; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 15%; }
  100% { opacity: 0.7; background-position: 0 5%; }
}
@keyframes cs-sword {
  0% { transform: translateX(-50%) rotate(5deg) scaleY(1); }
  33% { transform: translateX(-50%) rotate(3deg) scaleY(1.03); }
  66% { transform: translateX(-50%) rotate(7deg) scaleY(0.97); }
  100% { transform: translateX(-50%) rotate(5deg) scaleY(1); }
}
@keyframes cs-hand-left {
  0% { transform: rotate(20deg) translate(0,0); }
  50% { transform: rotate(15deg) translate(-2px, -1px); }
  100% { transform: rotate(20deg) translate(0,0); }
}
@keyframes cs-hand-right {
  0% { transform: rotate(-20deg) translate(0,0); }
  50% { transform: rotate(-15deg) translate(2px, -1px); }
  100% { transform: rotate(-20deg) translate(0,0); }
}
@keyframes cs-ghost {
  0% { opacity: 0.15; transform: translateX(-50%) translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateX(-50%) translateY(-15px) scale(1.08); }
  100% { opacity: 0.1; transform: translateX(-50%) translateY(15px) scale(0.9); }
}
@keyframes cs-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-ghost-swears-underneath {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a1a2e 40%, #5a3a3a 70%, #9a6a4a 100%),
              radial-gradient(ellipse at 50% 0%, #d4a574 0%, transparent 80%);
}
.scn-ghost-swears-underneath .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #5a3a3a 60%, transparent 100%);
  animation: gu-sky 18s ease-in-out infinite alternate;
}
.scn-ghost-swears-underneath .pit {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
  animation: gu-pit 12s ease-in-out infinite;
}
.scn-ghost-swears-underneath .ghost {
  position: absolute; top: 25%; left: 50%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.2) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gu-ghost 8s ease-in-out infinite alternate;
  filter: blur(4px);
}
.scn-ghost-swears-underneath .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gu-fig-left 6s ease-in-out infinite;
}
.scn-ghost-swears-underneath .figure-right {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gu-fig-right 6s ease-in-out infinite;
}
.scn-ghost-swears-underneath .sword {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform: translateX(-50%) rotate(15deg);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 0 6px rgba(255,200,150,0.3);
  animation: gu-sword 9s ease-in-out infinite;
}
.scn-ghost-swears-underneath .cloud {
  position: absolute; top: 5%; left: 5%; width: 90px; height: 18px;
  background: linear-gradient(180deg, rgba(255,200,150,0.35) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gu-cloud 45s linear infinite;
}
@keyframes gu-sky {
  0% { opacity: 0.5; background-position: 0 0; }
  50% { opacity: 0.9; background-position: 0 20%; }
  100% { opacity: 0.6; background-position: 0 10%; }
}
@keyframes gu-pit {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes gu-ghost {
  0% { opacity: 0.1; transform: translateX(-50%) translateY(0) scale(1); }
  50% { opacity: 0.4; transform: translateX(-50%) translateY(-20px) scale(1.1); }
  100% { opacity: 0.2; transform: translateX(-50%) translateY(20px) scale(0.9); }
}
@keyframes gu-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes gu-fig-right {
  0% { transform: translateX(0) translateY(0) rotate(3deg); }
  25% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(3deg); }
}
@keyframes gu-sword {
  0% { transform: translateX(-50%) rotate(15deg) scaleY(1); }
  33% { transform: translateX(-50%) rotate(10deg) scaleY(1.02); }
  66% { transform: translateX(-50%) rotate(20deg) scaleY(0.98); }
  100% { transform: translateX(-50%) rotate(15deg) scaleY(1); }
}
@keyframes gu-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(100vw); }
}

.scn-hamlet-stranger-welcome {
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a5e 30%, #8c6b4e 60%, #d4a574 100%),
              radial-gradient(ellipse at 20% 30%, #f2d9b3 0%, transparent 70%);
}
.scn-hamlet-stranger-welcome .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #8c6b4e 50%, transparent 100%);
  animation: hw-sky 20s ease-in-out infinite alternate;
}
.scn-hamlet-stranger-welcome .battlement {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.6);
  clip-path: polygon(0 100%, 0 30%, 5% 30%, 5% 20%, 10% 20%, 10% 30%, 15% 30%, 15% 20%, 20% 20%, 20% 30%, 25% 30%, 25% 20%, 30% 20%, 30% 30%, 35% 30%, 35% 20%, 40% 20%, 40% 30%, 45% 30%, 45% 20%, 50% 20%, 50% 30%, 55% 30%, 55% 20%, 60% 20%, 60% 30%, 65% 30%, 65% 20%, 70% 20%, 70% 30%, 75% 30%, 75% 20%, 80% 20%, 80% 30%, 85% 30%, 85% 20%, 90% 20%, 90% 30%, 95% 30%, 95% 20%, 100% 20%, 100% 100%);
}
.scn-hamlet-stranger-welcome .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hw-fig-left 5s ease-in-out infinite;
}
.scn-hamlet-stranger-welcome .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hw-fig-right 5s ease-in-out infinite;
}
.scn-hamlet-stranger-welcome .ghost {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.2) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hw-ghost 9s ease-in-out infinite alternate;
  filter: blur(3px);
}
.scn-hamlet-stranger-welcome .sun {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f2d9b3 0%, #e0b080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(240,200,120,0.3);
  animation: hw-sun 15s ease-in-out infinite;
}
.scn-hamlet-stranger-welcome .cloud {
  position: absolute; top: 8%; left: 5%; width: 100px; height: 18px;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hw-cloud 55s linear infinite;
}
@keyframes hw-sky {
  0% { opacity: 0.6; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 10%; }
  100% { opacity: 0.7; background-position: 0 5%; }
}
@keyframes hw-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hw-fig-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hw-ghost {
  0% { opacity: 0.1; transform: translateX(-50%) translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateX(-50%) translateY(-10px) scale(1.05); }
  100% { opacity: 0.2; transform: translateX(-50%) translateY(10px) scale(0.95); }
}
@keyframes hw-sun {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes hw-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(100vw); }
}

.scn-hamlet-resolves-watch {
  background:
    linear-gradient(180deg, #0b0e2a 0%, #1a1f3e 30%, #25264a 60%, #1a1833 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 70%);
}
.scn-hamlet-resolves-watch .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a30 100%);
  animation: hrw-wall 20s ease-in-out infinite alternate;
}
.scn-hamlet-resolves-watch .arch {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 140px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #0e0e1e 0%, transparent 70%);
  border: 4px solid #4a4a6a; border-bottom: none; border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: hrw-arch 12s ease-in-out infinite alternate;
}
.scn-hamlet-resolves-watch .figure {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 45px; transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: drop-shadow(0 0 6px #2a2a4a);
  animation: hrw-figure 6s ease-in-out infinite;
}
.scn-hamlet-resolves-watch .lantern {
  position: absolute; bottom: 40%; left: 46%; width: 6px; height: 12px;
  background: #ffd680; border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,214,128,0.6), 0 0 40px 12px rgba(255,214,128,0.3);
  animation: hrw-lantern 2s ease-in-out infinite alternate;
}
.scn-hamlet-resolves-watch .light-glow {
  position: absolute; bottom: 35%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,214,128,0.15) 0%, transparent 70%);
  animation: hrw-glow 3s ease-in-out infinite alternate;
}
.scn-hamlet-resolves-watch .stars {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 30% 50%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 10%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 30%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 70%, #fff 0%, transparent 100%);
  background-repeat: no-repeat; background-size: 100% 100%;
  animation: hrw-stars 5s ease-in-out infinite alternate;
}
.scn-hamlet-resolves-watch .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.7);
}
@keyframes hrw-wall { 0% { opacity: 0.8; } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.9; } }
@keyframes hrw-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes hrw-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hrw-lantern { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,214,128,0.5); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(255,214,128,0.8); } 100% { opacity: 0.85; box-shadow: 0 0 18px 5px rgba(255,214,128,0.6); } }
@keyframes hrw-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes hrw-stars { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-laertes-warns-ophelia {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a0 30%, #d4bc80 60%, #c8a86a 100%),
    radial-gradient(ellipse at 20% 80%, #ffe0b0 0%, transparent 60%);
}
.scn-laertes-warns-ophelia .window-light {
  position: absolute; top: 10%; left: 5%; width: 40%; height: 55%;
  background: linear-gradient(135deg, #fff8e0 0%, #ffe8b0 100%);
  border-radius: 4px; box-shadow: inset 0 0 60px rgba(255,232,176,0.5);
  animation: lwo-window 8s ease-in-out infinite alternate;
}
.scn-laertes-warns-ophelia .curtain-l {
  position: absolute; top: 8%; left: 3%; width: 12%; height: 60%;
  background: linear-gradient(90deg, #b0a080 0%, #d0b890 50%, #c0a880 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  filter: drop-shadow(2px 0 4px rgba(0,0,0,0.2));
  animation: lwo-curtain 12s ease-in-out infinite alternate;
}
.scn-laertes-warns-ophelia .curtain-r {
  position: absolute; top: 8%; right: 3%; width: 12%; height: 60%;
  background: linear-gradient(270deg, #b0a080 0%, #d0b890 50%, #c0a880 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  filter: drop-shadow(-2px 0 4px rgba(0,0,0,0.2));
  animation: lwo-curtain 14s ease-in-out infinite alternate-reverse;
}
.scn-laertes-warns-ophelia .figure-l {
  position: absolute; bottom: 15%; left: 28%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: lwo-figure-l 5s ease-in-out infinite;
}
.scn-laertes-warns-ophelia .figure-r {
  position: absolute; bottom: 15%; left: 48%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  animation: lwo-figure-r 6s ease-in-out infinite;
}
.scn-laertes-warns-ophelia .table {
  position: absolute; bottom: 12%; left: 30%; width: 25%; height: 4%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-laertes-warns-ophelia .vase {
  position: absolute; bottom: 16%; left: 42%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #b87878 0%, #a06060 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: lwo-vase 10s ease-in-out infinite alternate;
}
.scn-laertes-warns-ophelia .dust-mote {
  position: absolute; top: 30%; left: 15%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: lwo-dust 25s linear infinite;
}
@keyframes lwo-window { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(1); } }
@keyframes lwo-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5%); } 100% { transform: translateX(3%); } }
@keyframes lwo-figure-l { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(6deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes lwo-figure-r { 0% { transform: rotate(-3deg) translateY(0); } 30% { transform: rotate(-1deg) translateY(-3px); } 60% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes lwo-vase { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lwo-dust { 0% { transform: translate(0, 0) scale(0.5); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(300px, -100px) scale(1.5); opacity: 0; } }

.scn-laertes-wisdom-on-hamlet {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 40%, #c0b090 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 50%);
}
.scn-laertes-wisdom-on-hamlet .desk {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: perspective(800px) rotateX(20deg);
}
.scn-laertes-wisdom-on-hamlet .chair {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  transform: perspective(800px) rotateX(5deg);
  animation: lwh-chair 12s ease-in-out infinite alternate;
}
.scn-laertes-wisdom-on-hamlet .figure {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  animation: lwh-figure 8s ease-in-out infinite;
}
.scn-laertes-wisdom-on-hamlet .book {
  position: absolute; bottom: 18%; left: 42%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #b0a070 0%, #908050 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-10deg);
  animation: lwh-book 15s ease-in-out infinite alternate;
}
.scn-laertes-wisdom-on-hamlet .scroll {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(8deg);
  animation: lwh-scroll 20s ease-in-out infinite alternate;
}
.scn-laertes-wisdom-on-hamlet .quill {
  position: absolute; bottom: 30%; left: 48%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-30deg);
  animation: lwh-quill 3s ease-in-out infinite alternate;
}
.scn-laertes-wisdom-on-hamlet .inkwell {
  position: absolute; bottom: 22%; left: 38%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
}
@keyframes lwh-chair { 0% { transform: perspective(800px) rotateX(5deg) translateY(0); } 50% { transform: perspective(800px) rotateX(5deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(5deg) translateY(0); } }
@keyframes lwh-figure { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-3px); } 50% { transform: rotate(3deg) translateY(-1px); } 75% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes lwh-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes lwh-scroll { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.05); } 100% { transform: rotate(6deg) scaleY(0.95); } }
@keyframes lwh-quill { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-5px); } 100% { transform: rotate(-35deg) translateY(0); } }

.scn-laertes-warns-hamlets-limits {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d0c4a0 40%, #b8a880 100%),
    radial-gradient(ellipse at 50% 10%, #fff8e8 0%, transparent 70%);
}
.scn-laertes-warns-hamlets-limits .throne {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateX(10deg);
  animation: lwhl-throne 20s ease-in-out infinite alternate;
}
.scn-laertes-warns-hamlets-limits .figure {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: lwhl-figure 7s ease-in-out infinite;
}
.scn-laertes-warns-hamlets-limits .crown {
  position: absolute; bottom: 60%; left: 42%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #e8c860 0%, #c8a840 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  box-shadow: 0 0 10px rgba(200,168,64,0.6);
  animation: lwhl-crown 4s ease-in-out infinite alternate;
}
.scn-laertes-warns-hamlets-limits .pillar-l {
  position: absolute; top: 0; left: 5%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%);
  border-radius: 10px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
}
.scn-laertes-warns-hamlets-limits .pillar-r {
  position: absolute; top: 0; right: 5%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%);
  border-radius: 10px; box-shadow: inset 4px 0 8px rgba(0,0,0,0.2);
}
.scn-laertes-warns-hamlets-limits .curtain {
  position: absolute; top: 0; left: 13%; width: 74%; height: 20%;
  background: linear-gradient(180deg, #a05050 0%, #803040 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
  animation: lwhl-curtain 15s ease-in-out infinite alternate;
}
.scn-laertes-warns-hamlets-limits .scepter {
  position: absolute; bottom: 35%; left: 28%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #e8c860 0%, #c8a840 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(200,168,64,0.5);
  animation: lwhl-scepter 6s ease-in-out infinite alternate;
}
.scn-laertes-warns-hamlets-limits .shield {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
  animation: lwhl-shield 12s ease-in-out infinite alternate;
}
@keyframes lwhl-throne { 0% { transform: perspective(600px) rotateX(10deg) translateY(0); } 50% { transform: perspective(600px) rotateX(10deg) translateY(-3px); } 100% { transform: perspective(600px) rotateX(10deg) translateY(0); } }
@keyframes lwhl-figure { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-3px); } 50% { transform: rotate(-6deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lwhl-crown { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes lwhl-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes lwhl-scepter { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes lwhl-shield { 0% { opacity: 0.9; filter: drop-shadow(0 0 4px #a08060); } 50% { opacity: 1; filter: drop-shadow(0 0 8px #a08060); } 100% { opacity: 0.95; filter: drop-shadow(0 0 6px #a08060); } }

.scn-hamlet-laertes-grapple {
  background:
    linear-gradient(180deg, #2e2e3e 0%, #4a4a5a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #1e1e2e 0%, transparent 70%);
}
.scn-hamlet-laertes-grapple .sky-grp {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 60%, transparent);
  animation: grp-sky 14s ease-in-out infinite alternate;
}
.scn-hamlet-laertes-grapple .ground-grp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a26 0%, #0e0e14 100%);
}
.scn-hamlet-laertes-grapple .tombstone-grp {
  position: absolute; bottom: 28%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2e2e3a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: grp-tombstone 6s ease-in-out infinite;
}
.scn-hamlet-laertes-grapple .fig-left-grp {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #14141e 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grp-fig-left 3s ease-in-out infinite;
}
.scn-hamlet-laertes-grapple .fig-right-grp {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #14141e 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grp-fig-right 3s ease-in-out infinite 1.5s;
}
.scn-hamlet-laertes-grapple .mist-grp {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,180,200,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: grp-mist 20s ease-in-out infinite alternate;
}
@keyframes grp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes grp-tombstone {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes grp-fig-left {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes grp-fig-right {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-3px) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes grp-mist {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(20px); }
  100% { opacity: 0.2; transform: translateX(-10px); }
}

.scn-hamlet-loved-ophelia {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 90%, #1a1a26 0%, transparent 80%);
}
.scn-hamlet-loved-ophelia .sky-lov {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%);
  animation: lov-sky 16s ease-in-out infinite alternate;
}
.scn-hamlet-loved-ophelia .ground-lov {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1e2a 0%, #12121a 100%);
}
.scn-hamlet-loved-ophelia .mound-lov {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a26 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: lov-mound 8s ease-in-out infinite;
}
.scn-hamlet-loved-ophelia .cross-lov {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 2px;
  box-shadow: -11px 10px 0 #3a3a4a, -11px 10px 0 4px #2a2a3a;
  animation: lov-cross 5s ease-in-out infinite;
}
.scn-hamlet-loved-ophelia .figure-lov {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #14141e 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lov-figure 4s ease-in-out infinite;
}
.scn-hamlet-loved-ophelia .flowers-lov {
  position: absolute; bottom: 22%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 12px -4px 0 #6a4a3a, 6px -8px 0 #5a3a2a;
  animation: lov-flowers 3s ease-in-out infinite alternate;
}
.scn-hamlet-loved-ophelia .mist-lov {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 60% 40%, rgba(180,180,200,0.12) 0%, transparent 70%);
  filter: blur(6px);
  animation: lov-mist 25s ease-in-out infinite alternate;
}
@keyframes lov-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lov-mound {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes lov-cross {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes lov-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lov-flowers {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-4px) rotate(10deg); }
}
@keyframes lov-mist {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(30px); }
  100% { opacity: 0.15; transform: translateX(-20px); }
}

.scn-hamlet-rant-mountains {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 70%, #1a1a26 0%, transparent 60%);
}
.scn-hamlet-rant-mountains .sky-mtn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%);
  animation: mtn-sky 12s ease-in-out infinite alternate;
}
.scn-hamlet-rant-mountains .mtn-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a26 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  clip-path: polygon(0% 50%, 20% 20%, 40% 35%, 60% 10%, 80% 25%, 100% 40%, 100% 100%, 0% 100%);
  animation: mtn-mountains 20s ease-in-out infinite alternate;
}
.scn-hamlet-rant-mountains .mtn-fg {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1e1e2a 0%, #12121a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  clip-path: polygon(0% 60%, 15% 30%, 35% 45%, 55% 20%, 75% 40%, 100% 50%, 100% 100%, 0% 100%);
  animation: mtn-mountains 25s ease-in-out infinite alternate 2s;
}
.scn-hamlet-rant-mountains .hill-mtn {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-hamlet-rant-mountains .figure-mtn {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #14141e 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtn-figure 4s ease-in-out infinite;
}
.scn-hamlet-rant-mountains .clouds-mtn {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(200,200,220,0.1) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 30%, rgba(200,200,220,0.08) 0%, transparent 40%);
  filter: blur(6px);
  animation: mtn-clouds 40s linear infinite;
}
@keyframes mtn-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes mtn-mountains {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(2px) scale(0.98); }
}
@keyframes mtn-figure {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  25% { transform: translateX(3px) rotate(5deg) scale(1.05); }
  50% { transform: translateX(6px) rotate(-3deg) scale(1); }
  75% { transform: translateX(9px) rotate(4deg) scale(1.05); }
  100% { transform: translateX(12px) rotate(0deg) scale(1); }
}
@keyframes mtn-clouds {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

.scn-hamlet-leaves-graveyard {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 45%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a26 0%, transparent 60%);
}
.scn-hamlet-leaves-graveyard .sky-grv {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%);
  animation: grv-sky 15s ease-in-out infinite alternate;
}
.scn-hamlet-leaves-graveyard .ground-grv {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e14 100%);
}
.scn-hamlet-leaves-graveyard .path-grv {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a26 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: grv-path 8s ease-in-out infinite;
}
.scn-hamlet-leaves-graveyard .gate-grv {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 4px;
  box-shadow: 30px 0 0 #3a3a4a, 30px 0 4px 2px #2a2a3a;
  transform-origin: left bottom;
  animation: grv-gate 6s ease-in-out infinite;
}
.scn-hamlet-leaves-graveyard .fig-left-grv {
  position: absolute; bottom: 15%; left: 28%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #14141e 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grv-fig-left 5s ease-in-out infinite;
}
.scn-hamlet-leaves-graveyard .fig-right-grv {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #14141e 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grv-fig-right 5s ease-in-out infinite 2.5s;
}
.scn-hamlet-leaves-graveyard .trees-grv {
  position: absolute; bottom: 20%; left: 5%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a26 0%, #0e0e14 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 60px 0 0 #12121a, 120px 0 0 #1a1a26;
  animation: grv-trees 10s ease-in-out infinite alternate;
}
.scn-hamlet-leaves-graveyard .fog-grv {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 40% 30%, rgba(200,200,220,0.1) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, rgba(180,180,200,0.08) 0%, transparent 40%);
  filter: blur(10px);
  animation: grv-fog 30s ease-in-out infinite alternate;
}
@keyframes grv-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes grv-path {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes grv-gate {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg); }
  50% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes grv-fig-left {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(8px) translateY(-2px); }
  50% { transform: translateX(16px) translateY(0); }
  75% { transform: translateX(24px) translateY(-1px); }
  100% { transform: translateX(32px) translateY(0); }
}
@keyframes grv-fig-right {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(6px) translateY(-1px); }
  50% { transform: translateX(12px) translateY(0); }
  75% { transform: translateX(18px) translateY(-1px); }
  100% { transform: translateX(24px) translateY(0); }
}
@keyframes grv-trees {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes grv-fog {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(40px); }
  100% { opacity: 0.15; transform: translateX(-30px); }
}

/* ---------- laertes-asks-leave ---------- */
.scn-laertes-asks-leave {
  background:
    linear-gradient(180deg, #d6c9b7 0%, #bfaf9a 45%, #a18f78 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-laertes-asks-leave .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8dbc8 0%, #d0c2ac 60%, #b5a58c 100%);
  border-radius: 0 0 20% 20% / 0 0 5% 5%;
}
.scn-laertes-asks-leave .bg-floor {
  position: absolute; bottom: 0; left:0; right:0; height: 30%;
  background: linear-gradient(180deg, #8b7a63 0%, #6b5c48 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-laertes-asks-leave .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #fffce0 0%, #fad5a0 50%, transparent 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 30px #fffce0, 0 0 60px #fad5a0;
  animation: la-window 6s ease-in-out infinite alternate;
}
.scn-laertes-asks-leave .curtain.left {
  position: absolute; top: 10%; left: 0; width: 28%; height: 70%;
  background: linear-gradient(135deg, #7a1a1a 0%, #5c0e0e 60%, #3a0606 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  transform-origin: left center;
  animation: la-curtainL 9s ease-in-out infinite alternate;
}
.scn-laertes-asks-leave .curtain.right {
  position: absolute; top: 10%; right: 0; width: 28%; height: 70%;
  background: linear-gradient(225deg, #7a1a1a 0%, #5c0e0e 60%, #3a0606 100%);
  border-radius: 60% 0 0 0 / 40% 0 0 0;
  transform-origin: right center;
  animation: la-curtainR 9s ease-in-out infinite alternate;
}
.scn-laertes-asks-leave .throne {
  position: absolute; bottom: 26%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #c9a56b 0%, #a57e47 50%, #7a5c30 100%);
  border-radius: 30% 30% 15% 15% / 40% 40% 20% 20%;
  box-shadow: 5px 5px 15px rgba(0,0,0,0.4);
  transform: scale(1.2);
}
.scn-laertes-asks-leave .figure-king {
  position: absolute; bottom: 28%; left: 22%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-figKing 8s ease-in-out infinite;
}
.scn-laertes-asks-leave .figure-laertes {
  position: absolute; bottom: 25%; left: 48%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-figLaer 7s ease-in-out infinite;
}
.scn-laertes-asks-leave .light-ray {
  position: absolute; top: 12%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(255,250,230,0.5) 0%, rgba(255,220,160,0.2) 60%, transparent 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  filter: blur(8px);
  animation: la-light 5s ease-in-out infinite alternate;
}
@keyframes la-window { 0%{opacity:0.8; transform:scale(1)} 50%{opacity:1; transform:scale(1.02)} 100%{opacity:0.85; transform:scale(0.98)} }
@keyframes la-curtainL { 0%{transform:rotate(-3deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(-2deg)} }
@keyframes la-curtainR { 0%{transform:rotate(3deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(2deg)} }
@keyframes la-figKing { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes la-figLaer { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 25%{transform:translateX(3px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(-2px) translateY(0) rotate(-1deg)} 75%{transform:translateX(4px) translateY(-1px) rotate(0)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }
@keyframes la-light { 0%{opacity:0.3; transform:scaleY(0.9)} 50%{opacity:0.7; transform:scaleY(1.1)} 100%{opacity:0.4; transform:scaleY(0.95)} }

/* ---------- laertes-returns-to-france ---------- */
.scn-laertes-returns-to-france {
  background:
    linear-gradient(180deg, #d4c8b5 0%, #c0b19c 40%, #a6937d 100%),
    radial-gradient(ellipse at 50% 30%, #f0e6d8 0%, transparent 60%);
}
.scn-laertes-returns-to-france .bg-wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(135deg, #e2d4c2 0%, #ccbba8 50%, #b3a08c 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-laertes-returns-to-france .bg-floor {
  position: absolute; bottom: 0; left:0; right:0; height: 32%;
  background: linear-gradient(180deg, #7a6a55 0%, #5a4a38 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-laertes-returns-to-france .door {
  position: absolute; top: 12%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #8a7a63 0%, #6b5c48 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px #a58a6a, 0 4px 12px rgba(0,0,0,0.4);
  animation: lr-door 10s ease-in-out infinite alternate;
}
.scn-laertes-returns-to-france .figure-laertes {
  position: absolute; bottom: 27%; left: 44%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #2a1e12 0%, #150c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figL 6s ease-in-out infinite;
}
.scn-laertes-returns-to-france .figure-polonius {
  position: absolute; bottom: 28%; left: 32%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figP 7s ease-in-out infinite reverse;
}
.scn-laertes-returns-to-france .light {
  position: absolute; top: 10%; left: 42%; width: 16%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,245,220,0.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: lr-light 8s ease-in-out infinite alternate;
}
.scn-laertes-returns-to-france .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  filter: blur(10px);
  animation: lr-shadow 7s ease-in-out infinite alternate;
}
@keyframes lr-door { 0%{transform:scaleX(1)} 50%{transform:scaleX(0.95)} 100%{transform:scaleX(1)} }
@keyframes lr-figL { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes lr-figP { 0%{transform:translateX(0) translateY(0) rotate(1deg)} 50%{transform:translateX(-2px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes lr-light { 0%{opacity:0.4; transform:scaleY(0.9)} 50%{opacity:0.8; transform:scaleY(1.1)} 100%{opacity:0.5; transform:scaleY(0.95)} }
@keyframes lr-shadow { 0%{opacity:0.3; transform:scaleX(1)} 50%{opacity:0.6; transform:scaleX(0.9)} 100%{opacity:0.4; transform:scaleX(1)} }

/* ---------- hamlet-first-address ---------- */
.scn-hamlet-first-address {
  background:
    linear-gradient(180deg, #dacaba 0%, #c0b0a0 50%, #a08c7a 100%),
    radial-gradient(ellipse at 40% 50%, #efdfcf 0%, transparent 70%);
}
.scn-hamlet-first-address .bg-wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(135deg, #e5d6c4 0%, #cebeaa 50%, #b3a28c 100%);
  border-radius: 0 0 15% 15% / 0 0 5% 5%;
}
.scn-hamlet-first-address .bg-floor {
  position: absolute; bottom: 0; left:0; right:0; height: 28%;
  background: linear-gradient(180deg, #7a6a55 0%, #5a4a38 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-hamlet-first-address .window {
  position: absolute; top: 14%; left: 30%; width: 40%; height: 48%;
  background: radial-gradient(ellipse at 50% 30%, #fffbe0 0%, #fdd8a0 40%, transparent 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 15% 15%;
  box-shadow: inset 0 0 30px #fffbe0, 0 0 50px #fdd8a0;
  animation: ha-window 7s ease-in-out infinite alternate;
}
.scn-hamlet-first-address .curtain.wrap {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 75%;
  background: linear-gradient(135deg, #5c1010 0%, #3d0808 50%, #2a0404 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  transform-origin: top center;
  animation: ha-curtain 12s ease-in-out infinite alternate;
}
.scn-hamlet-first-address .figure-gertrude {
  position: absolute; bottom: 24%; left: 25%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #3f2a1a 0%, #2a1a0e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figG 8s ease-in-out infinite;
}
.scn-hamlet-first-address .figure-claudius {
  position: absolute; bottom: 25%; left: 42%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2e2e42 0%, #1a1a2a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figC 9s ease-in-out infinite;
}
.scn-hamlet-first-address .figure-hamlet {
  position: absolute; bottom: 23%; left: 58%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figH 7s ease-in-out infinite;
}
.scn-hamlet-first-address .light-ray {
  position: absolute; top: 10%; left: 34%; width: 32%; height: 55%;
  background: linear-gradient(180deg, rgba(255,245,215,0.6) 0%, rgba(255,220,160,0.2) 60%, transparent 100%);
  filter: blur(10px);
  animation: ha-ray 5s ease-in-out infinite alternate;
}
@keyframes ha-window { 0%{opacity:0.7; transform:scale(0.98)} 50%{opacity:1; transform:scale(1.02)} 100%{opacity:0.8; transform:scale(1)} }
@keyframes ha-curtain { 0%{transform:rotate(-1deg) scaleY(1)} 50%{transform:rotate(1deg) scaleY(1.02)} 100%{transform:rotate(0) scaleY(0.98)} }
@keyframes ha-figG { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(-0.5deg)} }
@keyframes ha-figC { 0%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes ha-figH { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(2px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(-1px) translateY(0) rotate(2deg)} 75%{transform:translateX(3px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes ha-ray { 0%{opacity:0.3; transform:scaleY(0.9)} 50%{opacity:0.6; transform:scaleY(1.1)} 100%{opacity:0.4; transform:scaleY(0.95)} }

/* ---------- gertrude-asks-hamlet-to-stay ---------- */
.scn-gertrude-asks-hamlet-to-stay {
  background:
    linear-gradient(180deg, #cdbfad 0%, #b8a895 40%, #a08d79 100%),
    radial-gradient(ellipse at 60% 40%, #f0e2d0 0%, transparent 65%);
}
.scn-gertrude-asks-hamlet-to-stay .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #ddd0bd 0%, #c6b7a2 50%, #ab9a83 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
}
.scn-gertrude-asks-hamlet-to-stay .bg-floor {
  position: absolute; bottom: 0; left:0; right:0; height: 30%;
  background: linear-gradient(180deg, #7a6a55 0%, #5a4a38 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-gertrude-asks-hamlet-to-stay .window {
  position: absolute; top: 12%; left: 32%; width: 36%; height: 50%;
  background: radial-gradient(ellipse at 50% 35%, #fff8e0 0%, #fcd29a 40%, transparent 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 15% 15%;
  box-shadow: inset 0 0 40px #fff8e0, 0 0 60px #fcd29a;
  animation: gh-window 6s ease-in-out infinite alternate;
}
.scn-gertrude-asks-hamlet-to-stay .curtain.left {
  position: absolute; top: 8%; left: 0; width: 25%; height: 75%;
  background: linear-gradient(135deg, #6a1616 0%, #4a0a0a 60%, #2a0404 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  transform-origin: left center;
  animation: gh-curtainL 10s ease-in-out infinite alternate;
}
.scn-gertrude-asks-hamlet-to-stay .curtain.right {
  position: absolute; top: 8%; right: 0; width: 25%; height: 75%;
  background: linear-gradient(225deg, #6a1616 0%, #4a0a0a 60%, #2a0404 100%);
  border-radius: 60% 0 0 0 / 40% 0 0 0;
  transform-origin: right center;
  animation: gh-curtainR 10s ease-in-out infinite alternate;
}
.scn-gertrude-asks-hamlet-to-stay .figure-gertrude {
  position: absolute; bottom: 26%; left: 30%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3f2a1a 0%, #2a1a0e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gh-figG 8s ease-in-out infinite;
}
.scn-gertrude-asks-hamlet-to-stay .figure-hamlet {
  position: absolute; bottom: 24%; left: 52%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gh-figH 7s ease-in-out infinite;
}
.scn-gertrude-asks-hamlet-to-stay .light {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,245,220,0.5) 0%, transparent 100%);
  filter: blur(14px);
  animation: gh-light 8s ease-in-out infinite alternate;
}
.scn-gertrude-asks-hamlet-to-stay .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 80%);
  filter: blur(8px);
  animation: gh-shadow 6s ease-in-out infinite alternate;
}
@keyframes gh-window { 0%{opacity:0.8; transform:scale(0.97)} 50%{opacity:1; transform:scale(1.02)} 100%{opacity:0.85; transform:scale(0.99)} }
@keyframes gh-curtainL { 0%{transform:rotate(-4deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(-2deg)} }
@keyframes gh-curtainR { 0%{transform:rotate(4deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(2deg)} }
@keyframes gh-figG { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes gh-figH { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(2px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(-2px) translateY(0) rotate(2deg)} 75%{transform:translateX(1px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes gh-light { 0%{opacity:0.3; transform:scaleY(0.9)} 50%{opacity:0.7; transform:scaleY(1.1)} 100%{opacity:0.4; transform:scaleY(0.95)} }
@keyframes gh-shadow { 0%{opacity:0.2; transform:scaleX(1)} 50%{opacity:0.5; transform:scaleX(0.85)} 100%{opacity:0.3; transform:scaleX(1)} }

/* osric-praises-laertes */
.scn-osric-praises-laertes {
  background: linear-gradient(180deg, #f5e6d0 0%, #e4d4b0 50%, #d4c4a0 100%),
              radial-gradient(ellipse at 50% 80%, #fff8e0 0%, transparent 60%);
}
.scn-osric-praises-laertes .wall { position:absolute; inset:0 0 30% 0; background: #e8dcc0; }
.scn-osric-praises-laertes .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080 0%, #a08870 100%); border-radius: 0 0 20% 20% / 0 0 8% 8%; }
.scn-osric-praises-laertes .window { position:absolute; top:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #f0d8a0 70%); border:6px solid #c0a080; border-radius:4px; box-shadow: inset 0 0 30px #ffe8c0; }
.scn-osric-praises-laertes .curtain-l { position:absolute; top:8%; left:35%; width:40px; height:200px; background: linear-gradient(180deg, #c87050 0%, #b05830 100%); border-radius:0 60% 60% 0 / 0 40% 40% 0; transform-origin: left top; animation: os-curtain 6s ease-in-out infinite alternate; }
.scn-osric-praises-laertes .curtain-r { position:absolute; top:8%; right:35%; width:40px; height:200px; background: linear-gradient(180deg, #c87050 0%, #b05830 100%); border-radius:60% 0 0 60% / 40% 0 0 40%; transform-origin: right top; animation: os-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-osric-praises-laertes .figure { position:absolute; bottom:30%; left:50%; width:40px; height:120px; transform:translateX(-50%); background: #3a2a1a; border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; animation: os-bow 4s ease-in-out infinite; }
.scn-osric-praises-laertes .hat { position:absolute; bottom:70%; left:50%; width:50px; height:20px; transform:translateX(-50%) rotate(10deg); background: #4a3a2a; border-radius:50% 50% 30% 30%; animation: os-hat 4s ease-in-out infinite; }
.scn-osric-praises-laertes .glow { position:absolute; top:15%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #ffe8a0 0%, transparent 70%); filter:blur(10px); animation: os-glow 3s ease-in-out infinite alternate; }
@keyframes os-curtain { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes os-bow { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(-15deg) translateY(10px) } 60% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes os-hat { 0% { transform: translateX(-50%) rotate(10deg) } 50% { transform: translateX(-50%) rotate(15deg) } 100% { transform: translateX(-50%) rotate(10deg) } }
@keyframes os-glow { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }

/* hamlet-mocks-osric */
.scn-hamlet-mocks-osric {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #d0c0a0 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-hamlet-mocks-osric .wall { position:absolute; inset:0 0 25% 0; background: #d8c8a8; }
.scn-hamlet-mocks-osric .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b09878 0%, #a08868 100%); }
.scn-hamlet-mocks-osric .window { position:absolute; top:12%; right:15%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #f0d8a0 70%); border:5px solid #b8a080; border-radius:4px; }
.scn-hamlet-mocks-osric .chair { position:absolute; bottom:25%; left:30%; width:50px; height:80px; background: #6a5040; border-radius:0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-hamlet-mocks-osric .figure-hamlet { position:absolute; bottom:25%; left:42%; width:35px; height:110px; background: #2a1a1a; border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: hm-gesture 6s ease-in-out infinite; }
.scn-hamlet-mocks-osric .figure-osric { position:absolute; bottom:25%; left:58%; width:35px; height:100px; background: #3a2a1a; border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; animation: hm-bow 4s ease-in-out infinite; }
.scn-hamlet-mocks-osric .lamp { position:absolute; top:15%; left:20%; width:10px; height:10px; background: #f0d080; border-radius:50%; box-shadow: 0 0 20px 8px rgba(240,208,128,0.6); animation: hm-lamp 3s ease-in-out infinite alternate; }
@keyframes hm-gesture { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(5px) rotate(-10deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0deg) } 80% { transform: translateX(-5px) rotate(10deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hm-bow { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(0) rotate(-20deg) translateY(8px) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(0) rotate(-15deg) translateY(5px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hm-lamp { 0% { box-shadow: 0 0 15px 5px rgba(240,208,128,0.4); } 50% { box-shadow: 0 0 30px 12px rgba(240,208,128,0.7); } 100% { box-shadow: 0 0 20px 8px rgba(240,208,128,0.5); } }

/* wager-explained */
.scn-wager-explained {
  background: linear-gradient(180deg, #e8dcc0 0%, #d8c8a8 50%, #c8b890 100%),
              radial-gradient(ellipse at 50% 70%, #fff8e0 0%, transparent 50%);
}
.scn-wager-explained .wall { position:absolute; inset:0 0 35% 0; background: #d0c0a0; }
.scn-wager-explained .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b09878 0%, #a08868 100%); }
.scn-wager-explained .table { position:absolute; bottom:30%; left:25%; right:25%; height:40px; background: #8a7050; border-radius:10px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-wager-explained .hand { position:absolute; bottom:35%; left:40%; width:30px; height:40px; background: #2a1a1a; border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: we-hand 8s ease-in-out infinite; }
.scn-wager-explained .horse { position:absolute; bottom:32%; left:30%; width:20px; height:15px; background: #5a3a2a; border-radius:50% 50% 0 0; box-shadow: 25px 0 #5a3a2a, 50px 0 #5a3a2a, 75px 0 #5a3a2a, 100px 0 #5a3a2a, 125px 0 #5a3a2a; animation: we-horse 12s ease-in-out infinite; }
.scn-wager-explained .rapier { position:absolute; bottom:32%; left:30%; width:3px; height:60px; background: #c0c0c0; transform-origin: bottom center; box-shadow: 25px 0 #c0c0c0, 50px 0 #c0c0c0, 75px 0 #c0c0c0, 100px 0 #c0c0c0, 125px 0 #c0c0c0; animation: we-rapier 10s ease-in-out infinite; }
.scn-wager-explained .candle { position:absolute; bottom:35%; left:15%; width:8px; height:30px; background: linear-gradient(180deg, #ffe8a0 0%, #d0a060 100%); border-radius:2px; }
.scn-wager-explained .glow { position:absolute; bottom:35%; left:15%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,232,160,0.5) 0%, transparent 70%); filter:blur(5px); animation: we-glow 4s ease-in-out infinite alternate; }
@keyframes we-hand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(30px) rotate(5deg) } 50% { transform: translateX(70px) rotate(0deg) } 75% { transform: translateX(30px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes we-horse { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes we-rapier { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes we-glow { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

/* hamlet-accepts-wager */
.scn-hamlet-accepts-wager {
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 60%, #c0b090 100%),
              radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 70%);
}
.scn-hamlet-accepts-wager .wall { position:absolute; inset:0 0 40% 0; background: #d8c8a8; }
.scn-hamlet-accepts-wager .table-edge { position:absolute; bottom:30%; left:20%; right:20%; height:20px; background: #8a7050; border-radius:4px; }
.scn-hamlet-accepts-wager .hand { position:absolute; bottom:32%; left:35%; width:45px; height:55px; background: #2a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 70% 100%; animation: ha-hand 7s ease-in-out infinite; }
.scn-hamlet-accepts-wager .rapier { position:absolute; bottom:35%; left:38%; width:4px; height:80px; background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 100%); transform-origin: bottom center; animation: ha-rapier 5s ease-in-out infinite alternate; }
.scn-hamlet-accepts-wager .document { position:absolute; bottom:34%; left:55%; width:30px; height:40px; background: #f0e0c0; border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ha-doc 10s ease-in-out infinite; }
.scn-hamlet-accepts-wager .candle { position:absolute; bottom:32%; right:25%; width:8px; height:35px; background: linear-gradient(180deg, #ffe8a0 0%, #c09050 100%); border-radius:2px; }
.scn-hamlet-accepts-wager .shine { position:absolute; bottom:35%; left:38%; width:6px; height:60px; background: rgba(255,255,255,0.3); filter:blur(2px); animation: ha-shine 3s ease-in-out infinite alternate; }
@keyframes ha-hand { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(10px) rotate(-5deg) } 70% { transform: translateX(20px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ha-rapier { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes ha-doc { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } }
@keyframes ha-shine { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* hamlet-carriages-joke – funny, bright interior */
.scn-hamlet-carriages-joke {
  background:
    linear-gradient(180deg, #f9e6c0 0%, #e0c8a0 30%, #b89870 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 70%);
}
.scn-hamlet-carriages-joke .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #d4b88a 0%, #e8d0a8 50%, #d0b080 100%);
  border-bottom: 4px solid #a08060;
  animation: hcj-wall-pulse 6s ease-in-out infinite alternate;
}
.scn-hamlet-carriages-joke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #806040 30%, #604020 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-hamlet-carriages-joke .carriage-body {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #7a3010 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: hcj-bounce 2s ease-in-out infinite;
}
.scn-hamlet-carriages-joke .carriage-wheel-left {
  position: absolute; bottom: 22%; left: 28%; width: 10%; height: 12%;
  background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 60%, #1a120a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.4);
  animation: hcj-roll 3s linear infinite;
}
.scn-hamlet-carriages-joke .carriage-wheel-right {
  position: absolute; bottom: 22%; left: 50%; width: 10%; height: 12%;
  background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 60%, #1a120a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.4);
  animation: hcj-roll 3s linear infinite 1.5s; /* offset */
}
.scn-hamlet-carriages-joke .horse-left {
  position: absolute; bottom: 28%; left: 8%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 50%, #5a3a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcj-trot 1.5s ease-in-out infinite;
}
.scn-hamlet-carriages-joke .horse-right {
  position: absolute; bottom: 28%; left: 18%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 50%, #5a3a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcj-trot 1.5s ease-in-out infinite 0.75s;
}
.scn-hamlet-carriages-joke .driver {
  position: absolute; bottom: 38%; left: 32%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hcj-wiggle 2s ease-in-out infinite;
}
.scn-hamlet-carriages-joke .cannon {
  position: absolute; bottom: 35%; left: 42%; width: 12%; height: 6%;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: right center;
  animation: hcj-tilt 3s ease-in-out infinite;
}
@keyframes hcj-wall-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hcj-bounce {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-6px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hcj-roll {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes hcj-trot {
  0% { transform: translateY(0) scaleX(1); }
  25% { transform: translateY(-4px) scaleX(0.95); }
  50% { transform: translateY(0) scaleX(1); }
  75% { transform: translateY(-2px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes hcj-wiggle {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hcj-tilt {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

/* hamlet-agrees-to-play – calm, bright interior */
.scn-hamlet-agrees-to-play {
  background:
    linear-gradient(180deg, #fdf4e0 0%, #f0e0c0 40%, #d8c0a0 100%),
    radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 60%);
}
.scn-hamlet-agrees-to-play .hall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-hamlet-agrees-to-play .pillar-left {
  position: absolute; bottom: 0; left: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 40%, #c8b898 100%);
  border-radius: 4% / 8%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.15);
  animation: hap-pillar 8s ease-in-out infinite alternate;
}
.scn-hamlet-agrees-to-play .pillar-right {
  position: absolute; bottom: 0; right: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 40%, #c8b898 100%);
  border-radius: 4% / 8%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.15);
  animation: hap-pillar 8s ease-in-out infinite alternate 2s;
}
.scn-hamlet-agrees-to-play .figure-hamlet {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: hap-stand 6s ease-in-out infinite;
}
.scn-hamlet-agrees-to-play .figure-osric {
  position: absolute; bottom: 28%; right: 35%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 75% 75% 25% 25%;
  transform-origin: bottom center;
  animation: hap-stand 6s ease-in-out infinite 3s;
}
.scn-hamlet-agrees-to-play .foils {
  position: absolute; bottom: 20%; left: 48%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 60%, #7a6040 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 20px rgba(192,160,120,0.3);
  transform-origin: bottom center;
  animation: hap-foil 12s ease-in-out infinite;
}
.scn-hamlet-agrees-to-play .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 80%);
  animation: hap-light 8s ease-in-out infinite alternate;
}
@keyframes hap-pillar {
  0% { transform: scaleY(1); opacity: 0.95; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.9; }
}
@keyframes hap-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hap-foil {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}
@keyframes hap-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* hamlet-on-courtier-fashion – funny, bright interior */
.scn-hamlet-on-courtier-fashion {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c8b090 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-hamlet-on-courtier-fashion .wall-pattern {
  position: absolute; inset: 0 0 35% 0;
  background:
    linear-gradient(90deg, #d4c4a8 25%, transparent 25%) 0 0 / 20px 20px,
    linear-gradient(0deg, #d4c4a8 25%, transparent 25%) 0 0 / 20px 20px;
  background-color: #e8dcc0;
  opacity: 0.4;
  animation: hcf-pattern 20s linear infinite;
}
.scn-hamlet-on-courtier-fashion .courtier-body {
  position: absolute; bottom: 25%; left: 35%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0d 50%, #1a0406 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hcf-wobble 3s ease-in-out infinite;
}
.scn-hamlet-on-courtier-fashion .courtier-hat {
  position: absolute; bottom: 55%; left: 32%; width: 22%; height: 12%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform-origin: center bottom;
  animation: hcf-hat 4s ease-in-out infinite;
}
.scn-hamlet-on-courtier-fashion .courtier-sleeve-left {
  position: absolute; bottom: 30%; left: 28%; width: 12%; height: 18%;
  background: linear-gradient(135deg, #b87878 0%, #8a5a5a 50%, #5a3a3a 100%);
  border-radius: 60% 40% 30% 30% / 80% 60% 30% 30%;
  transform-origin: 70% 30%;
  animation: hcf-sleeve 3s ease-in-out infinite alternate;
}
.scn-hamlet-on-courtier-fashion .courtier-sleeve-right {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 18%;
  background: linear-gradient(225deg, #b87878 0%, #8a5a5a 50%, #5a3a3a 100%);
  border-radius: 40% 60% 30% 30% / 60% 80% 30% 30%;
  transform-origin: 30% 30%;
  animation: hcf-sleeve 3s ease-in-out infinite alternate 1.5s;
}
.scn-hamlet-on-courtier-fashion .fan {
  position: absolute; bottom: 40%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 80%, #e0c8a0 0%, #c8a880 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: hcf-fan 5s ease-in-out infinite;
}
.scn-hamlet-on-courtier-fashion .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%);
  animation: hcf-shadow 4s ease-in-out infinite;
}
@keyframes hcf-pattern {
  0% { background-position: 0 0; }
  100% { background-position: 40px 40px; }
}
@keyframes hcf-wobble {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  70% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hcf-hat {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(5deg) scaleY(0.9); }
  50% { transform: rotate(-5deg) scaleY(1); }
  75% { transform: rotate(3deg) scaleY(0.95); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes hcf-sleeve {
  0% { transform: rotate(0deg) scaleY(1); }
  100% { transform: rotate(20deg) scaleY(1.1); }
}
@keyframes hcf-fan {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hcf-shadow {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.2); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.8; }
}

/* hamlet-ready-to-fence – calm, bright interior */
.scn-hamlet-ready-to-fence {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #e0d0b0 40%, #ccb898 100%),
    radial-gradient(ellipse at 60% 70%, #fff4d0 0%, transparent 60%);
}
.scn-hamlet-ready-to-fence .hall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%);
}
.scn-hamlet-ready-to-fence .window-glare {
  position: absolute; top: 10%; left: 20%; width: 20%; height: 40%;
  background: linear-gradient(135deg, rgba(255,255,240,0.25) 0%, transparent 60%);
  border-radius: 20% 20% 0 0;
  animation: hrf-glare 6s ease-in-out infinite alternate;
}
.scn-hamlet-ready-to-fence .figure-fencer {
  position: absolute; bottom: 25%; left: 35%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: hrf-breathe 8s ease-in-out infinite;
}
.scn-hamlet-ready-to-fence .foil-hand {
  position: absolute; bottom: 40%; left: 40%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 60%, #7a6040 100%);
  border-radius: 10% 10% 4% 4%;
  transform-origin: bottom left;
  animation: hrf-foil 10s ease-in-out infinite;
}
.scn-hamlet-ready-to-fence .foil-floor {
  position: absolute; bottom: 20%; left: 50%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 60%, #7a6040 100%);
  border-radius: 10% 10% 4% 4%;
  transform-origin: bottom center;
  animation: hrf-foil-floor 12s ease-in-out infinite 2s;
}
.scn-hamlet-ready-to-fence .breathing-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%);
  animation: hrf-light 8s ease-in-out infinite alternate;
}
@keyframes hrf-glare {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes hrf-breathe {
  0% { transform: translateY(0) scaleY(1) rotate(0deg); }
  50% { transform: translateY(-2px) scaleY(1.02) rotate(0.5deg); }
  100% { transform: translateY(0) scaleY(1) rotate(-0.5deg); }
}
@keyframes hrf-foil {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hrf-foil-floor {
  0% { transform: rotate(0deg); opacity: 0.8; }
  50% { transform: rotate(8deg); opacity: 1; }
  100% { transform: rotate(0deg); opacity: 0.8; }
}
@keyframes hrf-light {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

/* Scene: claudius-would-should */
.scn-claudius-would-should {
  background: linear-gradient(135deg, #f5e6d0 0%, #d4b896 40%, #8a6e4e 100%),
              radial-gradient(ellipse at 80% 20%, rgba(255,215,140,0.4) 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(60,30,10,0.3);
}
.scn-claudius-would-should .throne {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6914 0%, #6b4e10 40%, #3a2a08 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.5);
  animation: cws-throne 8s ease-in-out infinite alternate;
}
.scn-claudius-would-should .figure {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 50%, #0a0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cws-figure 4s ease-in-out infinite;
}
.scn-claudius-would-should .window {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 60%, #fff8dc 100%);
  border: 3px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(135,206,235,0.5), 0 0 30px rgba(135,206,235,0.3);
  animation: cws-window 6s ease-in-out infinite alternate;
}
.scn-claudius-would-should .curtain-left {
  position: absolute; top: 10%; left: 50%; width: 30px; height: 70px; transform: translateX(-70px);
  background: linear-gradient(90deg, #6b1414 0%, #9a2a2a 50%, #6b1414 100%);
  border-radius: 0 20% 20% 0;
  animation: cws-curtain 10s ease-in-out infinite alternate;
}
.scn-claudius-would-should .curtain-right {
  position: absolute; top: 10%; right: 50%; width: 30px; height: 70px; transform: translateX(70px);
  background: linear-gradient(90deg, #6b1414 0%, #9a2a2a 50%, #6b1414 100%);
  border-radius: 20% 0 0 20%;
  animation: cws-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-claudius-would-should .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-claudius-would-should .crown {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 12px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cws-crown 5s ease-in-out infinite alternate;
}
@keyframes cws-throne {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(1deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); }
}
@keyframes cws-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes cws-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(135,206,235,0.5); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(135,206,235,0.8); }
  100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(135,206,235,0.4); }
}
@keyframes cws-curtain {
  0% { transform: translateX(-70px) scaleY(1); }
  50% { transform: translateX(-75px) scaleY(1.05); }
  100% { transform: translateX(-70px) scaleY(0.95); }
}
@keyframes cws-crown {
  0% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
}

/* Scene: laertes-church-murder */
.scn-laertes-church-murder {
  background: linear-gradient(180deg, #3a3a5a 0%, #5a5a7a 40%, #8a8aaa 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,200,100,0.3) 0%, transparent 70%);
}
.scn-laertes-church-murder .altar {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: lcm-altar 12s ease-in-out infinite alternate;
}
.scn-laertes-church-murder .cross {
  position: absolute; bottom: 65%; left: 50%; width: 6px; height: 40px; transform: translateX(-50%);
  background: #6b4a2a;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: lcm-cross 7s ease-in-out infinite;
}
.scn-laertes-church-murder .cross::after { /* horizontal bar via pseudo but not allowed? only child divs. Use extra div? We'll make separate div for crossbar */
  content: none;
}
/* We already have cross, we can add a separate .crossbar */
.scn-laertes-church-murder .candle-left {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #f5e6c0 0%, #d4a060 100%);
  border-radius: 40% 40% 20% 20%;
  animation: lcm-candle 4s ease-in-out infinite alternate;
}
.scn-laertes-church-murder .candle-right {
  position: absolute; bottom: 30%; right: 35%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #f5e6c0 0%, #d4a060 100%);
  border-radius: 40% 40% 20% 20%;
  animation: lcm-candle 4s ease-in-out infinite alternate-reverse;
}
.scn-laertes-church-murder .figure {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: lcm-figure 5s ease-in-out infinite;
}
.scn-laertes-church-murder .dagger {
  position: absolute; bottom: 28%; left: 60%; width: 14px; height: 3px;
  background: linear-gradient(90deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20% 80% 80% 20%;
  transform: rotate(-30deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: lcm-dagger 3s ease-in-out infinite alternate;
}
.scn-laertes-church-murder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-laertes-church-murder .column-left {
  position: absolute; top: 0; left: 10%; width: 8px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.scn-laertes-church-murder .column-right {
  position: absolute; top: 0; right: 10%; width: 8px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
@keyframes lcm-altar {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.03); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.97); opacity: 0.9; }
}
@keyframes lcm-cross {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes lcm-candle {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(0.9); }
}
@keyframes lcm-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes lcm-dagger {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}

/* Scene: laertes-anoints-sword */
.scn-laertes-anoints-sword {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #7a6a5a 100%),
              radial-gradient(circle at 50% 70%, #6b4a2a 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-laertes-anoints-sword .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% / 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-laertes-anoints-sword .sword {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #c0c0c0 0%, #a0a0a0 40%, #606060 100%);
  border-radius: 0 50% 50% 0;
  transform: rotate(-10deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: las-sword 5s ease-in-out infinite alternate;
}
.scn-laertes-anoints-sword .hands {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #d4a060 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: las-hands 3s ease-in-out infinite;
}
.scn-laertes-anoints-sword .vial {
  position: absolute; bottom: 25%; left: 55%; width: 8px; height: 14px;
  background: linear-gradient(180deg, rgba(0,50,100,0.6) 0%, rgba(0,30,80,0.8) 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 12px rgba(0,50,150,0.3);
  animation: las-vial 4s ease-in-out infinite alternate;
}
.scn-laertes-anoints-sword .poison-drip {
  position: absolute; bottom: 26%; left: 58%; width: 2px; height: 6px;
  background: linear-gradient(180deg, #004080 0%, #002060 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: las-drip 2s ease-in-out infinite;
}
.scn-laertes-anoints-sword .light-spot {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: las-light 8s ease-in-out infinite alternate;
}
@keyframes las-sword {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(2px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes las-hands {
  0% { transform: scale(1) rotate(-2deg); }
  50% { transform: scale(1.05) rotate(2deg); }
  100% { transform: scale(1) rotate(-2deg); }
}
@keyframes las-vial {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes las-drip {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(3px) scaleY(1.5); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.6; }
}
@keyframes las-light {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
}

/* Scene: claudius-backup-poison-cup */
.scn-claudius-backup-poison-cup {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 100%),
              radial-gradient(ellipse at 60% 40%, rgba(200,150,80,0.3) 0%, transparent 60%);
  box-shadow: inset 0 0 50px rgba(20,10,0,0.4);
}
.scn-claudius-backup-poison-cup .table {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 30% / 60%;
}
.scn-claudius-backup-poison-cup .goblet {
  position: absolute; bottom: 18%; left: 50%; width: 14px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cbpc-goblet 5s ease-in-out infinite alternate;
}
.scn-claudius-backup-poison-cup .hand {
  position: absolute; bottom: 14%; left: 42%; width: 16px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #d4a060 0%, #8a6a3a 100%);
  border-radius: 50%;
  animation: cbpc-hand 6s ease-in-out infinite;
}
.scn-claudius-backup-poison-cup .poison-bottle {
  position: absolute; bottom: 20%; left: 58%; width: 6px; height: 16px;
  background: linear-gradient(180deg, rgba(0,60,120,0.7) 0%, rgba(0,40,100,0.9) 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 8px rgba(0,40,100,0.3);
  animation: cbpc-bottle 7s ease-in-out infinite alternate;
}
.scn-claudius-backup-poison-cup .second-cup {
  position: absolute; bottom: 18%; left: 35%; width: 10px; height: 14px; transform: translateX(-50%);
  background: linear-gradient(180deg, #b09050 0%, #7a5a2a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cbpc-second 4s ease-in-out infinite;
}
.scn-claudius-backup-poison-cup .shadow {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: cbpc-shadow 8s ease-in-out infinite alternate;
}
.scn-claudius-backup-poison-cup .background {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, transparent 40%);
  opacity: 0.6;
  animation: cbpc-bg 10s ease-in-out infinite alternate;
}
@keyframes cbpc-goblet {
  0% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(-2deg) scale(1); }
}
@keyframes cbpc-hand {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes cbpc-bottle {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.7; transform: translateY(0); }
}
@keyframes cbpc-second {
  0% { transform: translateX(-50%) rotate(-1deg); opacity: 0.8; }
  50% { transform: translateX(-50%) rotate(1deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-1deg); opacity: 0.8; }
}
@keyframes cbpc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}
@keyframes cbpc-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-cock-crow-ghost-flees {
  background: linear-gradient(180deg, #1a1028 0%, #2d1f3a 40%, #0f0a1a 100%), radial-gradient(ellipse at 50% 0%, #3a2a4a 0%, transparent 70%);
}
.scn-cock-crow-ghost-flees .night-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, transparent 100%);
  animation: cg-sky 20s ease-in-out infinite alternate;
}
.scn-cock-crow-ghost-flees .moon-ring {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c0b8d8 0%, #6a5a8a 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,184,216,0.3);
  animation: cg-moon 8s ease-in-out infinite alternate;
}
.scn-cock-crow-ghost-flees .castle-tower {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(90deg, #2a1a2a 0%, #1a0a1a 50%, #2a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6), inset 2px 0 4px rgba(100,80,120,0.3);
  animation: cg-tower 14s ease-in-out infinite;
}
.scn-cock-crow-ghost-flees .ghost-fleeing {
  position: absolute; bottom: 28%; left: 10%; width: 20px; height: 50px;
  background: linear-gradient(180deg, rgba(200,200,220,0.6) 0%, rgba(100,100,120,0.3) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: cg-ghost 5s ease-in-out infinite;
}
.scn-cock-crow-ghost-flees .rooster-silhouette {
  position: absolute; bottom: 28%; right: 25%; width: 25px; height: 20px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 10px -5px 0 #1a1a2a, 15px -10px 0 #1a1a2a;
  animation: cg-rooster 1.5s ease-in-out infinite alternate;
}
.scn-cock-crow-ghost-flees .cloud-dark.a {
  position: absolute; top: 8%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(40,30,50,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: cg-cloud-a 35s linear infinite;
}
.scn-cock-crow-ghost-flees .cloud-dark.b {
  position: absolute; top: 18%; right: 5%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(40,30,50,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cg-cloud-b 45s linear infinite reverse;
}
@keyframes cg-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes cg-moon { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-3px, 2px) scale(1.05); } 100% { transform: translate(0, 0) scale(0.95); } }
@keyframes cg-tower { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes cg-ghost { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateX(40px) translateY(-8px) rotate(5deg); opacity: 0.3; } 100% { transform: translateX(80px) translateY(0) rotate(-2deg); opacity: 0; } }
@keyframes cg-rooster { 0% { transform: rotate(0deg); } 100% { transform: rotate(15deg) translateX(2px); } }
@keyframes cg-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes cg-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-ghost-invulnerable-discussion {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a122a 40%, #0a0610 100%), radial-gradient(ellipse at 50% 100%, #1a122a 0%, transparent 70%);
}
.scn-ghost-invulnerable-discussion .deep-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1c142c 0%, transparent 100%);
  animation: gi-sky 18s ease-in-out infinite alternate;
}
.scn-ghost-invulnerable-discussion .stone-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a202a 0%, #1a121a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: gi-ground 12s ease-in-out infinite;
}
.scn-ghost-invulnerable-discussion .horatio {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gi-horatio 4s ease-in-out infinite;
}
.scn-ghost-invulnerable-discussion .marcellus {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gi-marcellus 3.5s ease-in-out infinite reverse;
}
.scn-ghost-invulnerable-discussion .ghost-apparition {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(180,180,220,0.5) 0%, rgba(100,100,140,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(3px);
  box-shadow: 0 0 20px 5px rgba(180,180,220,0.3);
  animation: gi-ghost 6s ease-in-out infinite;
}
.scn-ghost-invulnerable-discussion .shadow-pool {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: gi-shadow 7s ease-in-out infinite alternate;
}
.scn-ghost-invulnerable-discussion .mist-wisp {
  position: absolute; top: 25%; left: 20%; width: 100px; height: 30px;
  background: linear-gradient(180deg, rgba(80,70,100,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gi-mist 25s linear infinite;
}
@keyframes gi-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes gi-ground { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } }
@keyframes gi-horatio { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gi-marcellus { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(1deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gi-ghost { 0% { transform: scale(1) rotate(0deg); opacity: 0.4; } 50% { transform: scale(1.1) rotate(3deg); opacity: 0.7; } 100% { transform: scale(0.9) rotate(-3deg); opacity: 0.3; } }
@keyframes gi-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 100% { transform: scaleX(1.2); opacity: 0.7; } }
@keyframes gi-mist { 0% { transform: translateX(-30px) scaleX(1); } 50% { transform: translateX(30px) scaleX(1.2); } 100% { transform: translateX(-30px) scaleX(1); } }

.scn-christmas-season-spirits {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 40%, #0a0a16 100%), radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-christmas-season-spirits .holy-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a32 0%, transparent 100%);
  animation: cs-sky 15s ease-in-out infinite alternate;
}
.scn-christmas-season-spirits .star-of-bethlehem {
  position: absolute; top: 10%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fffbe0 0%, #e8d48a 60%, rgba(232,212,138,0) 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,212,138,0.5), 0 0 60px 20px rgba(232,212,138,0.2);
  animation: cs-star 4s ease-in-out infinite alternate;
}
.scn-christmas-season-spirits .stable-roof {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 5% 5% / 50% 50% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: cs-roof 10s ease-in-out infinite;
}
.scn-christmas-season-spirits .warm-glow {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #b87a3a 0%, #8a5a2a 40%, transparent 100%);
  border-radius: 50%;
  opacity: 0.4;
  animation: cs-glow 3s ease-in-out infinite alternate;
}
.scn-christmas-season-spirits .manger {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 15px;
  background: #3a2a1a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cs-manger 5s ease-in-out infinite;
}
.scn-christmas-season-spirits .shepherd {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cs-shepherd 4s ease-in-out infinite;
}
.scn-christmas-season-spirits .lamb {
  position: absolute; bottom: 18%; left: 25%; width: 20px; height: 14px;
  background: #e0d8c8;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 0 #c0b8a8;
  animation: cs-lamb 6s ease-in-out infinite;
}
@keyframes cs-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes cs-star { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(10deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-5deg); opacity: 0.8; } }
@keyframes cs-roof { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cs-glow { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.6; transform: scale(1.3); } }
@keyframes cs-manger { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes cs-shepherd { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cs-lamb { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px) translateY(-2px); } }

.scn-morning-resolve-tell-hamlet {
  background: linear-gradient(180deg, #8a6a3a 0%, #c0a060 20%, #6a7a8a 60%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #d8b878 0%, transparent 60%);
}
.scn-morning-resolve-tell-hamlet .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8b878 0%, #a07040 30%, transparent 100%);
  animation: mr-sky 20s ease-in-out infinite alternate;
}
.scn-morning-resolve-tell-hamlet .sunrise-glow {
  position: absolute; top: 15%; left: 80%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd28a 0%, #b8783a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,210,138,0.4), 0 0 100px 40px rgba(255,210,138,0.15);
  animation: mr-sun 8s ease-in-out infinite alternate;
}
.scn-morning-resolve-tell-hamlet .east-hill {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: mr-hill 15s ease-in-out infinite;
}
.scn-morning-resolve-tell-hamlet .dew-path {
  position: absolute; bottom: 25%; left: 25%; width: 60%; height: 8%;
  background: linear-gradient(90deg, rgba(100,120,80,0.5) 0%, rgba(160,180,120,0.3) 50%, rgba(100,120,80,0.5) 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(2px);
  animation: mr-dew 6s ease-in-out infinite alternate;
}
.scn-morning-resolve-tell-hamlet .horatio-walk {
  position: absolute; bottom: 24%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-horatio 4s ease-in-out infinite;
}
.scn-morning-resolve-tell-hamlet .marcellus-walk {
  position: absolute; bottom: 24%; left: 38%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-marcellus 3.5s ease-in-out infinite reverse;
}
.scn-morning-resolve-tell-hamlet .castle-silhouette {
  position: absolute; bottom: 35%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(0% 100%, 20% 50%, 20% 0%, 40% 0%, 40% 50%, 60% 50%, 60% 0%, 80% 0%, 80% 50%, 100% 100%);
  transform: scale(0.9);
  animation: mr-castle 12s ease-in-out infinite;
}
@keyframes mr-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mr-sun { 0% { transform: scale(0.9) translateX(0); opacity: 0.7; } 50% { transform: scale(1.1) translateX(-5px); opacity: 1; } 100% { transform: scale(0.95) translateX(3px); opacity: 0.8; } }
@keyframes mr-hill { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes mr-dew { 0% { opacity: 0.4; transform: scaleY(1); } 100% { opacity: 0.7; transform: scaleY(1.1) scaleX(1.02); } }
@keyframes mr-horatio { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mr-marcellus { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(-2deg); } 50% { transform: translateX(12px) rotate(1deg); } 75% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mr-castle { 0%, 100% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.92) translateY(-3px); } }

.scn-hamlet-jephthah-joke { background: linear-gradient(180deg, #fff9e6 0%, #f5e6c8 40%, #d4b88a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-hamlet-jephthah-joke .bg-stage { position:absolute; inset:20% 10% 0 10%; background: linear-gradient(180deg, #e8d6b0 0%, #c9a86c 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: hjj-stage 10s ease-in-out infinite; }
.scn-hamlet-jephthah-joke .curtain-left { position:absolute; top:20%; left:10%; width:18%; height:70%; background: linear-gradient(180deg, #8a2a1a 0%, #5e1a0d 100%); border-radius: 0 40% 40% 0/ 0 60% 60% 0; transform-origin: left top; animation: hjj-curtain 6s ease-in-out infinite alternate; }
.scn-hamlet-jephthah-joke .curtain-right { position:absolute; top:20%; right:10%; width:18%; height:70%; background: linear-gradient(180deg, #8a2a1a 0%, #5e1a0d 100%); border-radius: 40% 0 0 40%/ 60% 0 0 60%; transform-origin: right top; animation: hjj-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-hamlet-jephthah-joke .donkey-body { position:absolute; bottom:15%; left:30%; width:28%; height:18%; background: linear-gradient(135deg, #6b4c3a 0%, #4a3020 100%); border-radius: 50% 60% 40% 50%/ 60% 50% 50% 40%; animation: hjj-donkey 5s ease-in-out infinite; }
.scn-hamlet-jephthah-joke .donkey-head { position:absolute; bottom:24%; left:48%; width:10%; height:12%; background: linear-gradient(135deg, #7a5a42 0%, #4a3020 100%); border-radius: 40% 50% 20% 30%/ 50% 60% 30% 40%; clip-path: polygon(0% 30%, 30% 0%, 70% 0%, 100% 30%, 100% 100%, 0% 100%); animation: hjj-donkey-head 5s ease-in-out infinite; }
.scn-hamlet-jephthah-joke .actor { position:absolute; bottom:24%; left:38%; width:10%; height:16%; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 40% 40% 30% 30%/ 50% 50% 30% 30%; transform-origin: bottom center; animation: hjj-actor 4s ease-in-out infinite; }
.scn-hamlet-jephthah-joke .jester-cap { position:absolute; bottom:38%; left:37.5%; width:8%; height:8%; background: radial-gradient(circle, #ffcc4d 0%, #e6a800 70%); border-radius: 50% 50% 0 0/ 100% 100% 0 0; clip-path: polygon(0% 100%, 10% 10%, 30% 80%, 50% 0%, 70% 80%, 90% 10%, 100% 100%); animation: hjj-cap 1.5s ease-in-out infinite alternate; }
.scn-hamlet-jephthah-joke .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:6%; background: radial-gradient(ellipse, #0004 0%, transparent 100%); border-radius: 50%; animation: hjj-shadow 8s ease-in-out infinite; }
@keyframes hjj-stage { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hjj-curtain { 0% { transform: skewY(0deg); } 50% { transform: skewY(-5deg); } 100% { transform: skewY(2deg); } }
@keyframes hjj-donkey { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hjj-donkey-head { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes hjj-actor { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hjj-cap { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes hjj-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-hamlet-jephthah-continued { background: linear-gradient(180deg, #fff5dd 0%, #f2dcb8 40%, #d4b88a 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-hamlet-jephthah-continued .bg-chamber { position:absolute; inset:10% 8% 0 8%; background: linear-gradient(180deg, #e8d6b0 0%, #c9a86c 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.1); animation: hjc-chamber 12s ease-in-out infinite; }
.scn-hamlet-jephthah-continued .father { position:absolute; bottom:25%; left:20%; width:14%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 40% 20% 20%/ 60% 50% 20% 20%; transform-origin: bottom center; animation: hjc-father 6s ease-in-out infinite; }
.scn-hamlet-jephthah-continued .daughter { position:absolute; bottom:20%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40%/ 60% 60% 30% 30%; transform-origin: bottom center; animation: hjc-daughter 8s ease-in-out infinite; }
.scn-hamlet-jephthah-continued .floor { position:absolute; bottom:10%; left:25%; width:50%; height:4%; background: linear-gradient(180deg, #b89a6a 0%, #8a6a3a 100%); border-radius: 10% 10% 0 0; animation: hjc-floor 10s ease-in-out infinite; }
.scn-hamlet-jephthah-continued .lantern { position:absolute; bottom:65%; right:15%; width:4%; height:10%; background: radial-gradient(circle, #ffdd88 0%, #eebb44 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,221,136,.6), 0 0 40px 15px rgba(255,221,136,.3); animation: hjc-lantern 4s ease-in-out infinite alternate; }
.scn-hamlet-jephthah-continued .scroll { position:absolute; bottom:30%; left:60%; width:12%; height:8%; background: linear-gradient(135deg, #e8d6b0 0%, #b89a6a 100%); border-radius: 20% 20% 40% 40%/ 30% 30% 20% 20%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: hjc-scroll 7s ease-in-out infinite; }
@keyframes hjc-chamber { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hjc-father { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hjc-daughter { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hjc-floor { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }
@keyframes hjc-lantern { 0% { box-shadow: 0 0 15px 5px rgba(255,221,136,.5), 0 0 30px 10px rgba(255,221,136,.2); } 100% { box-shadow: 0 0 25px 10px rgba(255,221,136,.8), 0 0 50px 20px rgba(255,221,136,.4); } }
@keyframes hjc-scroll { 0% { transform: rotate(-12deg) scale(1); } 50% { transform: rotate(-18deg) scale(1.05); } 100% { transform: rotate(-10deg) scale(0.95); } }

.scn-players-arrive { background: linear-gradient(180deg, #fcf3e0 0%, #f2dcb8 40%, #d4b88a 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%); }
.scn-players-arrive .bg-hall { position:absolute; inset:5% 5% 0 5%; background: linear-gradient(180deg, #e8d6b0 0%, #c9a86c 100%); border-radius: 3% 3% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.1); animation: par-hall 15s ease-in-out infinite; }
.scn-players-arrive .door { position:absolute; bottom:0; left:15%; width:25%; height:60%; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); animation: par-door 8s ease-in-out infinite; }
.scn-players-arrive .actor-a { position:absolute; bottom:20%; left:8%; width:8%; height:20%; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 40% 40% 30% 30%/ 50% 50% 30% 30%; transform-origin: bottom center; animation: par-actor-a 6s ease-in-out infinite; }
.scn-players-arrive .actor-b { position:absolute; bottom:22%; left:20%; width:9%; height:22%; background: linear-gradient(180deg, #7a5a42 0%, #4a3020 100%); border-radius: 45% 35% 30% 30%/ 55% 45% 30% 30%; transform-origin: bottom center; animation: par-actor-b 7s ease-in-out infinite; }
.scn-players-arrive .actor-c { position:absolute; bottom:18%; left:32%; width:7%; height:18%; background: linear-gradient(180deg, #6a4a3a 0%, #3a1a0a 100%); border-radius: 50% 40% 25% 25%/ 60% 50% 25% 25%; transform-origin: bottom center; animation: par-actor-c 8s ease-in-out infinite; }
.scn-players-arrive .trunk { position:absolute; bottom:6%; left:5%; width:12%; height:6%; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 8% 8% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: par-trunk 9s ease-in-out infinite; }
.scn-players-arrive .lamp { position:absolute; bottom:55%; left:40%; width:3%; height:8%; background: radial-gradient(circle, #ffdd88 0%, #eebb44 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 15px 6px rgba(255,221,136,.5), 0 0 30px 12px rgba(255,221,136,.2); animation: par-lamp 4s ease-in-out infinite alternate; }
@keyframes par-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes par-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.97); } 100% { transform: scaleX(1.02); } }
@keyframes par-actor-a { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes par-actor-b { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes par-actor-c { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes par-trunk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes par-lamp { 0% { box-shadow: 0 0 10px 4px rgba(255,221,136,.4), 0 0 20px 8px rgba(255,221,136,.15); } 100% { box-shadow: 0 0 20px 8px rgba(255,221,136,.7), 0 0 40px 15px rgba(255,221,136,.3); } }

.scn-hamlet-asks-speech { background: linear-gradient(180deg, #fff9e6 0%, #f5e6c8 40%, #d4b88a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%); }
.scn-hamlet-asks-speech .bg-theatre { position:absolute; inset:10% 10% 0 10%; background: linear-gradient(180deg, #e8d6b0 0%, #c9a86c 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.1); animation: has-theatre 14s ease-in-out infinite; }
.scn-hamlet-asks-speech .stage { position:absolute; bottom:15%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #c9a86c 0%, #a8885a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.2); animation: has-stage 12s ease-in-out infinite; }
.scn-hamlet-asks-speech .hamlet { position:absolute; bottom:25%; left:25%; width:10%; height:22%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 35% 30% 30%/ 55% 45% 30% 30%; transform-origin: bottom center; animation: has-hamlet 5s ease-in-out infinite; }
.scn-hamlet-asks-speech .player { position:absolute; bottom:27%; left:55%; width:9%; height:20%; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 40% 40% 30% 30%/ 50% 50% 30% 30%; transform-origin: bottom center; animation: has-player 6s ease-in-out infinite; }
.scn-hamlet-asks-speech .scroll-roll { position:absolute; bottom:32%; left:62%; width:8%; height:6%; background: linear-gradient(135deg, #e8d6b0 0%, #b89a6a 100%); border-radius: 20% 20% 40% 40%/ 30% 30% 20% 20%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: has-scroll 8s ease-in-out infinite; }
.scn-hamlet-asks-speech .spotlight { position:absolute; top:5%; left:35%; width:30%; height:45%; background: linear-gradient(180deg, rgba(255,248,224,.6) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: has-spotlight 6s ease-in-out infinite alternate; }
.scn-hamlet-asks-speech .chair { position:absolute; bottom:18%; left:40%; width:12%; height:6%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: has-chair 9s ease-in-out infinite; }
@keyframes has-theatre { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes has-stage { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(0.99); } }
@keyframes has-hamlet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes has-player { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes has-scroll { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.05); } 100% { transform: rotate(6deg) scale(0.95); } }
@keyframes has-spotlight { 0% { opacity: 0.6; transform: scaleX(1); } 100% { opacity: 1; transform: scaleX(1.05); } }
@keyframes has-chair { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }

.scn-hamlet-lost-all-mirth {
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 0%, #5a4a3e 0%, transparent 70%);
}
.scn-hamlet-lost-all-mirth .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); }
.scn-hamlet-lost-all-mirth .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-hamlet-lost-all-mirth .window  { position:absolute; top:10%; right:15%; width:100px; height:150px; background: radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, #2a2a3a 60%); border: 4px solid #1a120a; border-radius: 4% 4% 2% 2%; }
.scn-hamlet-lost-all-mirth .window-light { position:absolute; top:10%; right:15%; width:100px; height:150px; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,0.3) 0%, transparent 70%); animation: hlm-window-glow 6s ease-in-out infinite alternate; }
.scn-hamlet-lost-all-mirth .table   { position:absolute; bottom:20%; left:30%; width:120px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-hamlet-lost-all-mirth .candle  { position:absolute; bottom:35%; left:38%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 40%, #8a6030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px rgba(232,208,160,.7); animation: hlm-candle 3s ease-in-out infinite alternate; }
.scn-hamlet-lost-all-mirth .figure  { position:absolute; bottom:18%; left:15%; width:30px; height:80px; background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hlm-figure-breathe 4s ease-in-out infinite; }
.scn-hamlet-lost-all-mirth .book    { position:absolute; bottom:22%; left:32%; width:40px; height:20px; background: linear-gradient(180deg, #6a4a2e 0%, #4a2a14 100%); border-radius:6% 6% 4% 4%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); }
@keyframes hlm-window-glow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes hlm-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 12px 4px rgba(232,208,160,.6); } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 20px 8px rgba(232,208,160,.8); } 100% { transform: scaleY(.98) rotate(-1deg); box-shadow: 0 0 14px 5px rgba(232,208,160,.6); } }
@keyframes hlm-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(1.01); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-1px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }

.scn-hamlet-what-a-piece-of-work {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #3a2a3e 100%), radial-gradient(ellipse at 50% 100%, #4a3a4e 0%, transparent 70%);
}
.scn-hamlet-what-a-piece-of-work .bg          { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-hamlet-what-a-piece-of-work .floor       { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-hamlet-what-a-piece-of-work .window      { position:absolute; top:5%; left:10%; width:180px; height:250px; background: radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, #2a2a3e 60%); border: 6px solid #1a121a; border-radius: 6% 6% 3% 3%; }
.scn-hamlet-what-a-piece-of-work .light-shaft { position:absolute; top:5%; left:10%; width:180px; height:250px; background: linear-gradient(180deg, rgba(200,180,220,0.15) 0%, transparent 100%); animation: hwp-light 8s ease-in-out infinite alternate; }
.scn-hamlet-what-a-piece-of-work .figure      { position:absolute; bottom:20%; left:30%; width:35px; height:90px; background: linear-gradient(180deg, #1a141a 0%, #0e0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hwp-figure 5s ease-in-out infinite; }
.scn-hamlet-what-a-piece-of-work .arm-left    { position:absolute; bottom:55%; left:22%; width:70px; height:14px; background: linear-gradient(180deg, #1a141a 0%, #0e0a0e 100%); border-radius: 30% 30% 20% 20%; transform-origin: 100% 50%; transform: rotate(-40deg); animation: hwp-arm-l 4s ease-in-out infinite alternate; }
.scn-hamlet-what-a-piece-of-work .arm-right   { position:absolute; bottom:55%; right:22%; width:70px; height:14px; background: linear-gradient(180deg, #1a141a 0%, #0e0a0e 100%); border-radius: 30% 30% 20% 20%; transform-origin: 0% 50%; transform: rotate(40deg); animation: hwp-arm-r 4s ease-in-out infinite alternate; }
.scn-hamlet-what-a-piece-of-work .shadow      { position:absolute; bottom:0; left:15%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: hwp-shadow 6s ease-in-out infinite; }
@keyframes hwp-light { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; transform: translateX(-5px); } 100% { opacity:.4; transform: translateX(3px); } }
@keyframes hwp-figure { 0% { transform: translateY(0) scaleY(1) rotate(0); } 25% { transform: translateY(-3px) scaleY(1.02) rotate(1deg); } 50% { transform: translateY(0) scaleY(1) rotate(0); } 75% { transform: translateY(-2px) scaleY(1.01) rotate(-1deg); } 100% { transform: translateY(0) scaleY(1) rotate(0); } }
@keyframes hwp-arm-l { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-35deg); } }
@keyframes hwp-arm-r { 0% { transform: rotate(40deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(35deg); } }
@keyframes hwp-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.5; } 50% { transform: scaleX(1.15) translateX(-10px); opacity:.7; } 100% { transform: scaleX(1) translateX(0); opacity:.5; } }

.scn-players-coming-announced {
  background: linear-gradient(180deg, #c8a070 0%, #a08050 40%, #806040 100%), radial-gradient(ellipse at 50% 100%, #b08858 0%, transparent 70%);
}
.scn-players-coming-announced .hall-bg    { position:absolute; inset:0; background: linear-gradient(180deg, #a08050 0%, #806040 100%); }
.scn-players-coming-announced .doorway    { position:absolute; top:15%; left:50%; width:140px; height:200px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, #c8a070 60%, #806040 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 40px rgba(0,0,0,.3); }
.scn-players-coming-announced .door-frame{ position:absolute; top:15%; left:50%; width:160px; height:210px; transform:translateX(-50%); border: 6px solid #604020; border-radius: 8% 8% 0 0; background: transparent; }
.scn-players-coming-announced .figure-a  { position:absolute; bottom:20%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pca-walk-a 4s ease-in-out infinite; }
.scn-players-coming-announced .figure-b  { position:absolute; bottom:20%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pca-walk-b 4.5s ease-in-out infinite; }
.scn-players-coming-announced .light-source { position:absolute; top:20%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #f0d8b0 0%, #d0b090 40%, transparent 70%); animation: pca-light 5s ease-in-out infinite alternate; }
.scn-players-coming-announced .floor     { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #604020 0%, #403018 100%); }
.scn-players-coming-announced .rug       { position:absolute; bottom:10%; left:20%; width:60%; height:30px; background: linear-gradient(180deg, #704830 0%, #503020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: pca-rug-wave 6s ease-in-out infinite; }
@keyframes pca-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes pca-walk-b { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(0); } 75% { transform: translateX(18px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes pca-light { 0% { opacity:.6; transform:translateX(-50%) scale(1); } 50% { opacity:.9; transform:translateX(-50%) scale(1.05); } 100% { opacity:.7; transform:translateX(-50%) scale(1); } }
@keyframes pca-rug-wave { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

.scn-hamlet-asks-about-players {
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 40%, #5a4020 100%), radial-gradient(ellipse at 50% 100%, #7a6040 0%, transparent 70%);
}
.scn-hamlet-asks-about-players .stage-bg     { position:absolute; inset:0; background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%); }
.scn-hamlet-asks-about-players .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #a03020 0%, #702018 100%); border-radius: 0 40% 40% 0 / 0 20% 20% 0; animation: hap-curtain-l 7s ease-in-out infinite alternate; }
.scn-hamlet-asks-about-players .curtain-right{ position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #a03020 0%, #702018 100%); border-radius: 40% 0 0 40% / 20% 0 0 20%; animation: hap-curtain-r 7s ease-in-out infinite alternate; }
.scn-hamlet-asks-about-players .stage-floor  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3018 0%, #3a2010 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-hamlet-asks-about-players .mask         { position:absolute; top:25%; left:50%; width:60px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, #c0a070 60%, #806040 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: hap-mask 8s ease-in-out infinite; }
.scn-hamlet-asks-about-players .figure       { position:absolute; bottom:18%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hap-figure-breathe 4s ease-in-out infinite; }
.scn-hamlet-asks-about-players .hand         { position:absolute; bottom:35%; left:28%; width:40px; height:16px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 30% 30% 20% 20%; transform-origin: 100% 50%; transform: rotate(-20deg); animation: hap-hand-gesture 5s ease-in-out infinite; }
.scn-hamlet-asks-about-players .spotlight    { position:absolute; top:0; left:50%; width:200px; height:100%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(240,220,180,0.2) 0%, transparent 100%); animation: hap-spotlight 6s ease-in-out infinite alternate; }
@keyframes hap-curtain-l { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }
@keyframes hap-curtain-r { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes hap-mask { 0% { transform:translateX(-50%) rotate(-3deg) scale(1); } 25% { transform:translateX(-50%) rotate(0) scale(1.02); } 50% { transform:translateX(-50%) rotate(3deg) scale(1); } 75% { transform:translateX(-50%) rotate(0) scale(1.01); } 100% { transform:translateX(-50%) rotate(-2deg) scale(1); } }
@keyframes hap-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hap-hand-gesture { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-20deg); } }
@keyframes hap-spotlight { 0% { opacity:.3; transform:translateX(-50%) scaleY(1); } 50% { opacity:.6; transform:translateX(-50%) scaleY(1.05); } 100% { opacity:.4; transform:translateX(-50%) scaleY(1); } }

.scn-polonius-falsehood-truth {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 40%, #c2a68a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8eb 0%, transparent 70%);
}
.scn-polonius-falsehood-truth .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d9c4a8 0%, #e2d0b8 50%, #d4bca0 100%);
  animation: pt-wall 12s ease-in-out infinite alternate;
}
.scn-polonius-falsehood-truth .window {
  position: absolute; top: 8%; left: 25%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8f0 50%, #d4e8f8 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(255,255,240,.5);
  animation: pt-window 8s ease-in-out infinite alternate;
}
.scn-polonius-falsehood-truth .books {
  position: absolute; top: 5%; right: 10%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #6b4c2a 0%, #8b6f4a 20%, #5a3c1e 40%, #7a5e3e 60%, #4d3218 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.2);
  animation: pt-books 20s ease-in-out infinite;
}
.scn-polonius-falsehood-truth .desk {
  position: absolute; bottom: 20%; left: 15%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #b89a78 0%, #9c7e5a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: pt-desk 15s ease-in-out infinite alternate;
}
.scn-polonius-falsehood-truth .figure-a {
  position: absolute; bottom: 32%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3c2a 0%, #2e2418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-a 6s ease-in-out infinite;
}
.scn-polonius-falsehood-truth .figure-b {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a3020 0%, #1e1810 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-b 6s ease-in-out infinite 3s;
}
.scn-polonius-falsehood-truth .lamp {
  position: absolute; bottom: 25%; left: 20%; width: 8px; height: 20px;
  background: #d4a56a; border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(212,165,106,.5), 0 0 40px 12px rgba(212,165,106,.2);
  animation: pt-lamp 4s ease-in-out infinite alternate;
}
@keyframes pt-wall {
  0% { opacity: 1; } 50% { opacity: .85; } 100% { opacity: 1; }
}
@keyframes pt-window {
  0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .8; transform: scale(1); }
}
@keyframes pt-books {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes pt-desk {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(.5deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pt-figure-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pt-figure-b {
  0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-4px) translateY(0) rotate(2deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes pt-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(212,165,106,.4); } 50% { box-shadow: 0 0 30px 10px rgba(212,165,106,.7); } 100% { box-shadow: 0 0 20px 6px rgba(212,165,106,.5); }
}

.scn-ophelia-frightened-hamlet {
  background: 
    linear-gradient(180deg, #e8edf0 0%, #c0cdd8 50%, #a0b0c0 100%),
    radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 60%);
}
.scn-ophelia-frightened-hamlet .floor {
  position: absolute; top: 70%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: of-floor 10s ease-in-out infinite alternate;
}
.scn-ophelia-frightened-hamlet .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d0dae4 0%, #b0c0d0 50%, #8a9aaa 100%);
  animation: of-wall 8s ease-in-out infinite;
}
.scn-ophelia-frightened-hamlet .tall-figure {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a3038 0%, #1a1e24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: of-tall 4s ease-in-out infinite;
}
.scn-ophelia-frightened-hamlet .small-figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a5258 0%, #30343a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: of-small 4s ease-in-out infinite 2s;
}
.scn-ophelia-frightened-hamlet .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 50px; height: 20px;
  background: rgba(0,0,0,.3); border-radius: 50%;
  filter: blur(6px);
  animation: of-shadow 4s ease-in-out infinite;
}
.scn-ophelia-frightened-hamlet .door {
  position: absolute; top: 20%; right: 15%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #4a5258 0%, #2e3238 100%);
  border-radius: 4px;
  animation: of-door 12s ease-in-out infinite alternate;
}
.scn-ophelia-frightened-hamlet .chair {
  position: absolute; bottom: 30%; right: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a6068 0%, #3a3e44 100%);
  border-radius: 4px 4px 8px 8px;
  animation: of-chair 6s ease-in-out infinite alternate;
}
@keyframes of-floor {
  0% { opacity: 1; } 50% { opacity: .8; } 100% { opacity: 1; }
}
@keyframes of-wall {
  0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); }
}
@keyframes of-tall {
  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 of-small {
  0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(-6px) translateY(0) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes of-shadow {
  0% { opacity: .3; transform: scale(1); } 50% { opacity: .5; transform: scale(1.2); } 100% { opacity: .3; transform: scale(1); }
}
@keyframes of-door {
  0% { transform: rotateY(0deg); } 50% { transform: rotateY(-2deg); } 100% { transform: rotateY(0deg); }
}
@keyframes of-chair {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}

.scn-ophelia-describes-hamlet {
  background: 
    linear-gradient(135deg, #d8dce0 0%, #b0b8c0 50%, #8a929a 100%),
    radial-gradient(circle at 60% 40%, #ffffff 0%, transparent 50%);
}
.scn-ophelia-describes-hamlet .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8d0d8 0%, #a0aab2 100%);
  animation: od-bg 8s ease-in-out infinite alternate;
}
.scn-ophelia-describes-hamlet .hamlet-head {
  position: absolute; top: 30%; left: 35%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #242830 0%, #14161a 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 40% 50%;
  transform: rotate(10deg);
  animation: od-hhead 6s ease-in-out infinite;
}
.scn-ophelia-describes-hamlet .hamlet-arm {
  position: absolute; top: 45%; left: 30%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #1a1e24 0%, #2a3038 100%);
  border-radius: 4px;
  transform-origin: left center;
  animation: od-harm 4s ease-in-out infinite alternate;
}
.scn-ophelia-describes-hamlet .ophelia-arm {
  position: absolute; top: 45%; left: 50%; width: 35px; height: 7px;
  background: linear-gradient(90deg, #4a5258 0%, #383c42 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: od-oarm 4s ease-in-out infinite alternate;
}
.scn-ophelia-describes-hamlet .ophelia-head {
  position: absolute; top: 28%; left: 50%; width: 26px; height: 30px;
  background: linear-gradient(180deg, #5a6068 0%, #3a3e44 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: od-ohead 6s ease-in-out infinite 3s;
}
.scn-ophelia-describes-hamlet .grip-shadow {
  position: absolute; top: 44%; left: 42%; width: 16px; height: 12px;
  background: rgba(0,0,0,.4); border-radius: 50%;
  filter: blur(3px);
  animation: od-grip 4s ease-in-out infinite;
}
.scn-ophelia-describes-hamlet .wrist-glow {
  position: absolute; top: 44%; left: 47%; width: 8px; height: 6px;
  background: radial-gradient(circle, #d8a060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(216,160,96,.5);
  animation: od-glow 4s ease-in-out infinite alternate;
}
@keyframes od-bg {
  0% { opacity: 1; } 50% { opacity: .9; } 100% { opacity: 1; }
}
@keyframes od-hhead {
  0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(14deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); }
}
@keyframes od-harm {
  0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); }
}
@keyframes od-oarm {
  0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); }
}
@keyframes od-ohead {
  0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-14deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes od-grip {
  0% { opacity: .4; transform: scale(1); } 50% { opacity: .6; transform: scale(1.1); } 100% { opacity: .4; transform: scale(1); }
}
@keyframes od-glow {
  0% { box-shadow: 0 0 8px 3px rgba(216,160,96,.4); } 50% { box-shadow: 0 0 14px 6px rgba(216,160,96,.7); } 100% { box-shadow: 0 0 8px 3px rgba(216,160,96,.4); }
}

.scn-hamlet-departs-wordless {
  background: 
    linear-gradient(180deg, #e0e8f0 0%, #c0d0e0 40%, #a0b0c0 100%),
    radial-gradient(ellipse at 60% 50%, #ffffff 0%, transparent 60%);
}
.scn-hamlet-departs-wordless .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d0d8e0 0%, #b4bcc8 50%, #9aa2ac 100%);
  animation: hd-wall 8s ease-in-out infinite alternate;
}
.scn-hamlet-departs-wordless .door-frame {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #4a5058 0%, #2e3238 100%);
  border-radius: 4px 4px 0 0;
  animation: hd-frame 12s ease-in-out infinite;
}
.scn-hamlet-departs-wordless .door-opening {
  position: absolute; top: 12%; left: 42%; width: 16%; height: 66%;
  background: linear-gradient(180deg, #a0b0c0 0%, #8a9aaa 100%);
  animation: hd-opening 10s ease-in-out infinite alternate;
}
.scn-hamlet-departs-wordless .figure-back {
  position: absolute; bottom: 30%; left: 46%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1e24 0%, #0e1014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-figure 6s ease-in-out infinite;
}
.scn-hamlet-departs-wordless .floor {
  position: absolute; top: 70%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  animation: hd-floor 10s ease-in-out infinite alternate;
}
.scn-hamlet-departs-wordless .light-beam {
  position: absolute; top: 10%; left: 44%; width: 12%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,240,.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hd-beam 8s ease-in-out infinite alternate;
}
.scn-hamlet-departs-wordless .shadow {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 10px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px);
  animation: hd-shadow 6s ease-in-out infinite;
}
@keyframes hd-wall {
  0% { opacity: 1; } 50% { opacity: .9; } 100% { opacity: 1; }
}
@keyframes hd-frame {
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); }
}
@keyframes hd-opening {
  0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; }
}
@keyframes hd-figure {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hd-floor {
  0% { opacity: 1; } 50% { opacity: .85; } 100% { opacity: 1; }
}
@keyframes hd-beam {
  0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; }
}
@keyframes hd-shadow {
  0% { opacity: .3; transform: scale(1); } 50% { opacity: .5; transform: scale(1.2); } 100% { opacity: .3; transform: scale(1); }
}

.scn-claudius-hamlet-not-love-mad {
  background: linear-gradient(180deg, #d4b88a 0%, #c4a070 40%, #a08050 100%), radial-gradient(ellipse at 30% 40%, #e0c890 0%, transparent 60%);
}
.scn-claudius-hamlet-not-love-mad .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c8a878 0%, #b09060 50%, #8a6e42 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: cl1-wall 15s ease-in-out infinite alternate;
}
.scn-claudius-hamlet-not-love-mad .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-claudius-hamlet-not-love-mad .throne {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 150px;
  background: linear-gradient(135deg, #8a6e42 0%, #6a5030 50%, #4a3520 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 0 30px rgba(0,0,0,0.2);
  animation: cl1-throne 6s ease-in-out infinite;
}
.scn-claudius-hamlet-not-love-mad .crown-glow {
  position: absolute; bottom: 75%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: radial-gradient(circle, #f0d080 0%, #d0a850 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,160,80,0.5);
  animation: cl1-crown 4s ease-in-out infinite alternate;
}
.scn-claudius-hamlet-not-love-mad .figure-claudius {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 50%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: cl1-figure 8s ease-in-out infinite;
}
.scn-claudius-hamlet-not-love-mad .scroll {
  position: absolute; bottom: 28%; left: 42%;
  width: 30px; height: 10px;
  background: linear-gradient(135deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 20%/50%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cl1-scroll 12s ease-in-out infinite alternate;
}
.scn-claudius-hamlet-not-love-mad .shadow-edge {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 50%, rgba(0,0,0,0.2) 100%);
  pointer-events: none;
}
.scn-claudius-hamlet-not-love-mad .candle {
  position: absolute; bottom: 30%; right: 25%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 30%/80%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.4);
  animation: cl1-candle 3s ease-in-out infinite alternate;
}
.scn-claudius-hamlet-not-love-mad .candle-flicker {
  position: absolute; bottom: 48%; right: 25.5%;
  width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #f0a030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,160,48,0.6);
  animation: cl1-flicker 0.5s ease-in-out infinite alternate;
}
@keyframes cl1-wall { 0% { opacity: 0.95; transform: scale(1); } 50% { opacity: 1; transform: scale(1.005); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes cl1-throne { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(-0.3deg); } 75% { transform: translateX(-50%) rotate(0.4deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes cl1-crown { 0% { box-shadow: 0 0 30px 6px rgba(200,160,80,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 50px 15px rgba(220,180,100,0.7); opacity: 1; } 100% { box-shadow: 0 0 35px 8px rgba(200,160,80,0.5); opacity: 0.9; } }
@keyframes cl1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 60% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes cl1-scroll { 0% { transform: translateX(0) rotate(-15deg); } 50% { transform: translateX(5px) rotate(-10deg); } 100% { transform: translateX(0) rotate(-15deg); } }
@keyframes cl1-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.95; } }
@keyframes cl1-flicker { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }

.scn-claudius-england-plot {
  background: linear-gradient(180deg, #d0b080 0%, #b89060 40%, #8a6e42 100%), radial-gradient(ellipse at 70% 30%, #e0c890 0%, transparent 60%);
}
.scn-claudius-england-plot .bg-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c0a070 0%, #a08050 70%, #7a5a3a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: cl2-panel 20s ease-in-out infinite alternate;
}
.scn-claudius-england-plot .bg-table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: cl2-table 10s ease-in-out infinite;
}
.scn-claudius-england-plot .seal-wax {
  position: absolute; bottom: 34%; left: 38%;
  width: 12px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cl2-seal 6s ease-in-out infinite alternate;
}
.scn-claudius-england-plot .figure-claudius-seated {
  position: absolute; bottom: 30%; left: 35%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 50%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6);
  animation: cl2-figure-claudius 8s ease-in-out infinite;
}
.scn-claudius-england-plot .figure-ophelia {
  position: absolute; bottom: 30%; right: 30%; transform: translateX(50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 50%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: cl2-figure-ophelia 12s ease-in-out infinite alternate;
}
.scn-claudius-england-plot .letter {
  position: absolute; bottom: 31%; left: 44%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: cl2-letter 14s ease-in-out infinite alternate;
}
.scn-claudius-england-plot .quill {
  position: absolute; bottom: 33%; left: 48%;
  width: 20px; height: 2px;
  background: linear-gradient(90deg, #a08050 0%, #5a3a1a 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.3);
  animation: cl2-quill 5s ease-in-out infinite;
}
.scn-claudius-england-plot .lamp {
  position: absolute; bottom: 60%; left: 60%;
  width: 16px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #d09030 70%);
  border-radius: 30%/50%;
  box-shadow: 0 0 30px 10px rgba(200,140,60,0.6);
  animation: cl2-lamp 3s ease-in-out infinite alternate;
}
.scn-claudius-england-plot .shadow-column {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 30%, transparent 40%, rgba(0,0,0,0.15) 100%);
  pointer-events: none;
}
@keyframes cl2-panel { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes cl2-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cl2-seal { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes cl2-figure-claudius { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes cl2-figure-ophelia { 0% { transform: translateX(50%) translateY(0); } 50% { transform: translateX(50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(50%) translateY(0) rotate(0); } }
@keyframes cl2-letter { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(4px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes cl2-quill { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(3px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes cl2-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,140,60,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px rgba(220,160,80,0.8); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(200,140,60,0.5); opacity: 0.9; } }

.scn-polonius-plot-after-play {
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 30%, #5a3a1a 100%), radial-gradient(ellipse at 30% 60%, #b89060 0%, transparent 70%);
}
.scn-polonius-plot-after-play .bg-curtain {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #702243 0%, #5a1a2e 40%, #3a0e1a 100%);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4);
  animation: po1-curtain 18s ease-in-out infinite alternate;
}
.scn-polonius-plot-after-play .bg-arch {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-polonius-plot-after-play .figure-polonius {
  position: absolute; bottom: 30%; left: 35%; transform: translateX(-50%);
  width: 50px; height: 85px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 50%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: po1-figure-polonius 7s ease-in-out infinite;
}
.scn-polonius-plot-after-play .figure-hamlet-back {
  position: absolute; bottom: 30%; left: 60%; transform: translateX(-50%);
  width: 45px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 35% 35%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: po1-figure-hamlet 10s ease-in-out infinite alternate;
}
.scn-polonius-plot-after-play .curtain-cord {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: po1-cord 8s ease-in-out infinite;
}
.scn-polonius-plot-after-play .peephole {
  position: absolute; bottom: 40%; left: 33%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d0b080 0%, #a08050 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(160,128,80,0.4);
  animation: po1-peep 4s ease-in-out infinite alternate;
}
.scn-polonius-plot-after-play .floor-line {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #5a3a1a 30%, #8a6a4a 50%, #5a3a1a 70%, transparent);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-polonius-plot-after-play .candle-polonius {
  position: absolute; bottom: 40%; left: 28%;
  width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a878 100%);
  border-radius: 20%/80%;
  box-shadow: 0 0 12px 4px rgba(200,168,120,0.5);
  animation: po1-candle 3s ease-in-out infinite alternate;
}
@keyframes po1-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-5px); } 100% { transform: scaleY(1); } }
@keyframes po1-figure-polonius { 0% { transform: translateX(-50%) rotate(0); } 30% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 70% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes po1-figure-hamlet { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.05) rotate(3deg); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes po1-cord { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes po1-peep { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes po1-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.08); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.95; } }

.scn-hamlet-advises-players {
  background: linear-gradient(135deg, #e8d4b0 0%, #d0b890 40%, #b89870 100%), radial-gradient(ellipse at 40% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-hamlet-advises-players .bg-stage {
  position: absolute; inset: 10% 5% 25% 5%;
  background: linear-gradient(180deg, #c8b090 0%, #a89070 50%, #8a7050 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: ha1-stage 30s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .bg-torch {
  position: absolute; bottom: 40%; left: 70%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 30%/80%;
  box-shadow: 0 0 20px 8px rgba(200,160,80,0.4);
  animation: ha1-torch 4s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .figure-hamlet-raising {
  position: absolute; bottom: 20%; left: 30%; transform: translateX(-50%);
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 50%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: ha1-hamlet 8s ease-in-out infinite;
}
.scn-hamlet-advises-players .figure-player1 {
  position: absolute; bottom: 20%; left: 55%; transform: translateX(-50%);
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 50%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: ha1-player1 12s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .figure-player2 {
  position: absolute; bottom: 20%; right: 15%; transform: translateX(50%);
  width: 40px; height: 85px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 50%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: ha1-player2 15s ease-in-out infinite;
}
.scn-hamlet-advises-players .gesture-hand {
  position: absolute; bottom: 55%; left: 28%;
  width: 18px; height: 12px;
  background: radial-gradient(circle, #5a4028 0%, #3a2818 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ha1-hand 5s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .script-scroll {
  position: absolute; bottom: 22%; left: 42%;
  width: 40px; height: 8px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 20%/50%;
  transform: rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ha1-scroll 20s ease-in-out infinite alternate;
}
.scn-hamlet-advises-players .floorboards {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, #8a7050 0px, #8a7050 8px, #a08060 8px, #a08060 10px);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
}
.scn-hamlet-advises-players .shadow-soft {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 30%, rgba(0,0,0,0.08) 100%);
  pointer-events: none;
}
@keyframes ha1-stage { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ha1-torch { 0% { box-shadow: 0 0 15px 4px rgba(200,160,80,0.3); } 50% { box-shadow: 0 0 30px 12px rgba(220,180,100,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(200,160,80,0.4); } }
@keyframes ha1-hamlet { 0% { transform: translateX(-50%) rotate(0) translateY(0); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0) translateY(0); } }
@keyframes ha1-player1 { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.03) rotate(3deg); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes ha1-player2 { 0% { transform: translateX(50%) rotate(0); } 50% { transform: translateX(50%) rotate(-2deg) translateY(-2px); } 100% { transform: translateX(50%) rotate(0); } }
@keyframes ha1-hand { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes ha1-scroll { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(5px); } 100% { transform: rotate(10deg) translateX(0); } }

.scn-hamlet-grief-truth {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #d4b896 40%, #9c7a5a 100%),
    radial-gradient(ellipse at 30% 80%, #b08a6a 0%, transparent 60%);
}

.scn-hamlet-grief-truth .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c4a882 40%, #8c6e4e 100%);
  opacity: 0.7;
}

.scn-hamlet-grief-truth .window {
  position: absolute;
  top: 8%;
  left: 22%;
  width: 28%;
  height: 45%;
  background: linear-gradient(135deg, #fff8e0 0%, #f0dba0 40%, #c8a870 100%);
  border-radius: 2px;
  box-shadow: 0 0 60px 30px rgba(255, 240, 180, 0.6), inset 0 0 20px rgba(0,0,0,0.1);
  animation: hgt-glow 3s ease-in-out infinite alternate;
}

.scn-hamlet-grief-truth .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #6a4e30 0%, #3e2c1a 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: inset 0 20px 20px -10px rgba(0,0,0,0.5);
}

.scn-hamlet-grief-truth .figure {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 10%;
  height: 45%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hgt-figure 5s ease-in-out infinite;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
}

.scn-hamlet-grief-truth .cloak {
  position: absolute;
  bottom: 28%;
  left: 52%;
  width: 14%;
  height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d0808 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: hgt-cloak 6s ease-in-out infinite alternate;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
}

.scn-hamlet-grief-truth .shard {
  position: absolute;
  width: 1.5%;
  height: 2%;
  background: linear-gradient(135deg, #fff0c0, transparent);
  border-radius: 50%;
  filter: blur(1px);
  opacity: 0.5;
}

.scn-hamlet-grief-truth .shard-a {
  top: 20%;
  left: 30%;
  animation: hgt-shard 4s ease-in-out infinite alternate;
}

.scn-hamlet-grief-truth .shard-b {
  top: 35%;
  left: 60%;
  animation: hgt-shard 4s ease-in-out 2s infinite alternate reverse;
}

@keyframes hgt-glow {
  0% { box-shadow: 0 0 40px 20px rgba(255,240,180,0.4), inset 0 0 15px rgba(0,0,0,0.1); opacity: 0.9; }
  50% { box-shadow: 0 0 80px 40px rgba(255,240,180,0.7), inset 0 0 25px rgba(0,0,0,0.05); opacity: 1; }
  100% { box-shadow: 0 0 50px 25px rgba(255,240,180,0.5), inset 0 0 18px rgba(0,0,0,0.08); opacity: 0.85; }
}

@keyframes hgt-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1%) translateY(-1%) rotate(0.5deg); }
  50% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(-1%) translateY(-0.5%) rotate(0.2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes hgt-cloak {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-2deg) scaleY(0.98); }
}

@keyframes hgt-shard {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(10px) scale(0.8); opacity: 0.1; }
}

/* Scene: claudius-lectures-hamlet */
.scn-claudius-lectures-hamlet {
  background: 
    linear-gradient(180deg, #f0e6d0 0%, #d4c4a0 40%, #b09878 100%),
    radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 60%);
}

.scn-claudius-lectures-hamlet .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 40%, #a88868 100%);
  opacity: 0.6;
}

.scn-claudius-lectures-hamlet .column {
  position: absolute;
  top: 0;
  width: 6%;
  height: 80%;
  background: linear-gradient(90deg, #d0c0a0 0%, #b8a888 40%, #a09070 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}

.scn-claudius-lectures-hamlet .column-l { left: 12%; }
.scn-claudius-lectures-hamlet .column-r { right: 12%; }

.scn-claudius-lectures-hamlet .throne {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}

.scn-claudius-lectures-hamlet .king {
  position: absolute;
  bottom: 32%;
  left: 32%;
  width: 16%;
  height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: clh-king 8s ease-in-out infinite alternate;
}

.scn-claudius-lectures-hamlet .prince {
  position: absolute;
  bottom: 30%;
  right: 28%;
  width: 12%;
  height: 28%;
  background: linear-gradient(180deg, #2a1a10 0%, #100804 100%);
  border-radius: 25% 25% 15% 15% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: clh-prince 10s ease-in-out infinite alternate;
}

.scn-claudius-lectures-hamlet .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a10 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: inset 0 10px 15px -5px rgba(0,0,0,0.4);
}

.scn-claudius-lectures-hamlet .light-ray {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255,248,230,0.4) 0%, transparent 50%);
  animation: clh-ray 6s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes clh-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}

@keyframes clh-prince {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1%) translateY(-1%) rotate(0.3deg); }
  100% { transform: translateX(-1%) translateY(0) rotate(-0.3deg); }
}

@keyframes clh-ray {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.02); }
  100% { opacity: 0.4; transform: scale(0.98); }
}

/* Scene: claudius-names-hamlet-heir */
.scn-claudius-names-hamlet-heir {
  background: 
    linear-gradient(180deg, #f5ecd0 0%, #d4c4a0 40%, #b09878 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}

.scn-claudius-names-hamlet-heir .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 40%, #a08868 100%);
  opacity: 0.5;
}

.scn-claudius-names-hamlet-heir .corridor {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 70%;
  background: linear-gradient(135deg, #c8b890 0%, #a88868 60%, #705040 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 30px 40px -20px rgba(0,0,0,0.5);
}

.scn-claudius-names-hamlet-heir .cushion {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 16%;
  height: 8%;
  background: linear-gradient(180deg, #a07050 0%, #704020 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: cnh-cushion 7s ease-in-out infinite alternate;
}

.scn-claudius-names-hamlet-heir .crown {
  position: absolute;
  bottom: 34%;
  left: 45%;
  width: 10%;
  height: 8%;
  background: linear-gradient(135deg, #f0d080 0%, #c8a050 50%, #a08030 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(240,208,128,0.5);
  animation: cnh-crown 4s ease-in-out infinite alternate;
  transform-origin: bottom center;
}

.scn-claudius-names-hamlet-heir .rays {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,248,200,0.3) 0%, transparent 60%);
  animation: cnh-rays 5s ease-in-out infinite alternate;
  pointer-events: none;
}

.scn-claudius-names-hamlet-heir .laurel {
  position: absolute;
  bottom: 36%;
  left: 38%;
  width: 24%;
  height: 6%;
  background: linear-gradient(90deg, #5a7a3a 0%, #3a5a1a 50%, #5a7a3a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: cnh-laurel 9s ease-in-out infinite alternate;
}

@keyframes cnh-cushion {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}

@keyframes cnh-crown {
  0% { transform: rotate(-2deg) scale(1); box-shadow: 0 0 15px 5px rgba(240,208,128,0.4); }
  50% { transform: rotate(2deg) scale(1.05); box-shadow: 0 0 30px 12px rgba(240,208,128,0.7); }
  100% { transform: rotate(-1deg) scale(0.98); box-shadow: 0 0 20px 8px rgba(240,208,128,0.5); }
}

@keyframes cnh-rays {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.03); }
  100% { opacity: 0.3; transform: scale(0.98); }
}

@keyframes cnh-laurel {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* Scene: hamlet-agrees-to-stay */
.scn-hamlet-agrees-to-stay {
  background: 
    linear-gradient(180deg, #f0d8a0 0%, #d4b878 40%, #b89858 100%),
    radial-gradient(ellipse at 70% 80%, #e8c080 0%, transparent 60%);
}

.scn-hamlet-agrees-to-stay .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e8c890 0%, #c8a868 40%, #a88848 100%);
  opacity: 0.6;
}

.scn-hamlet-agrees-to-stay .fireplace {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40%;
  height: 40%;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 20px 30px -10px rgba(0,0,0,0.6);
}

.scn-hamlet-agrees-to-stay .mantel {
  position: absolute;
  bottom: 48%;
  left: 28%;
  width: 44%;
  height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

.scn-hamlet-agrees-to-stay .mother {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: has-mother 9s ease-in-out infinite alternate;
}

.scn-hamlet-agrees-to-stay .son {
  position: absolute;
  bottom: 20%;
  right: 32%;
  width: 12%;
  height: 32%;
  background: linear-gradient(180deg, #2a1a10 0%, #100804 100%);
  border-radius: 25% 25% 15% 15% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: has-son 9s ease-in-out 0.5s infinite alternate;
}

.scn-hamlet-agrees-to-stay .window {
  position: absolute;
  top: 5%;
  right: 8%;
  width: 20%;
  height: 30%;
  background: linear-gradient(135deg, #ffe8b0 0%, #f0d090 40%, #c8a060 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 15px rgba(255,232,176,0.5);
  animation: has-window 4s ease-in-out infinite alternate;
}

.scn-hamlet-agrees-to-stay .rug {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 18%;
  background: linear-gradient(90deg, #6a3a1a 0%, #8a4a2a 30%, #5a2a0a 70%, #6a3a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: has-rug 12s ease-in-out infinite alternate;
}

.scn-hamlet-agrees-to-stay .flame {
  position: absolute;
  bottom: 38%;
  left: 46%;
  width: 8%;
  height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ffc040 40%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: has-flame 2s ease-in-out infinite alternate;
}

.scn-hamlet-agrees-to-stay .flame-a {
  left: 44%;
  animation-delay: 0s;
}

.scn-hamlet-agrees-to-stay .flame-b {
  left: 48%;
  animation-delay: 0.7s;
}

@keyframes has-mother {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-1%) translateY(-1%) rotate(0.5deg); }
  100% { transform: translateX(1%) translateY(0) rotate(-0.5deg); }
}

@keyframes has-son {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1%) translateY(-1%) rotate(-0.3deg); }
  100% { transform: translateX(-1%) translateY(0) rotate(0.3deg); }
}

@keyframes has-window {
  0% { box-shadow: 0 0 30px 10px rgba(255,232,176,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 60px 25px rgba(255,232,176,0.7); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px rgba(255,232,176,0.5); opacity: 0.85; }
}

@keyframes has-rug {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}

@keyframes has-flame {
  0% { transform: scaleY(1) translateY(0) rotate(-2deg); opacity: 0.8; }
  50% { transform: scaleY(1.2) translateY(-5%) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0) rotate(-1deg); opacity: 0.7; }
}

/* Scene 1: horatio-confirms-ghost-sighting */
.scn-horatio-confirms-ghost-sighting {
  background:
    radial-gradient(ellipse at 50% 20%, #1a2a4a 0%, transparent 50%),
    linear-gradient(180deg, #0d111a 0%, #1a1f2e 30%, #2a3050 60%, #1a223a 100%);
}
.scn-horatio-confirms-ghost-sighting .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0d111a 0%, #1a2a4a 40%, transparent 100%);
  animation: hcg-sky 15s ease-in-out infinite alternate;
}
.scn-horatio-confirms-ghost-sighting .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3050 0%, #1a223a 50%, #101828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: hcg-wall 20s ease-in-out infinite alternate;
}
.scn-horatio-confirms-ghost-sighting .torch {
  position: absolute; bottom: 55%; left: 45%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 30%;
}
.scn-horatio-confirms-ghost-sighting .torch::after {
  content: ''; position: absolute; top: -15px; left: -8px; width: 25px; height: 25px;
  background: radial-gradient(circle, #ffd080 0%, #ff8c40 40%, transparent 70%);
  border-radius: 50%;
  animation: hcg-torch-flicker 2s ease-in-out infinite alternate;
}
.scn-horatio-confirms-ghost-sighting .horatio {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hcg-figure-shift 8s ease-in-out infinite;
}
.scn-horatio-confirms-ghost-sighting .ghost {
  position: absolute; bottom: 40%; right: 20%; width: 35px; height: 90px;
  background: linear-gradient(180deg, rgba(200,210,240,0.3) 0%, rgba(180,190,230,0.1) 100%);
  border-radius: 45% 45% 30% 30% / 70% 70% 40% 40%;
  filter: blur(2px);
  animation: hcg-ghost-float 4s ease-in-out infinite alternate;
}
.scn-horatio-confirms-ghost-sighting .hand {
  position: absolute; bottom: 45%; left: 36%; width: 8px; height: 20px;
  background: #1a1a2a; border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hcg-hand-point 3s ease-in-out infinite;
}
.scn-horatio-confirms-ghost-sighting .star-a,
.scn-horatio-confirms-ghost-sighting .star-b {
  position: absolute; width: 3px; height: 3px;
  background: #e0e8ff; border-radius: 50%;
  box-shadow: 0 0 6px #8899cc;
}
.scn-horatio-confirms-ghost-sighting .star-a { top: 10%; left: 20%; animation: hcg-twinkle 5s ease-in-out infinite; }
.scn-horatio-confirms-ghost-sighting .star-b { top: 5%; right: 30%; animation: hcg-twinkle 7s ease-in-out infinite reverse; }
@keyframes hcg-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hcg-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hcg-torch-flicker { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.9; transform: scale(0.9); } }
@keyframes hcg-figure-shift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes hcg-ghost-float { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-5px) scale(1.05); opacity: 0.9; } 100% { transform: translateY(0) scale(0.95); opacity: 0.4; } }
@keyframes hcg-hand-point { 0% { transform: translate(0, 0) rotate(-10deg); } 50% { transform: translate(2px, -1px) rotate(-15deg); } 100% { transform: translate(0, 0) rotate(-10deg); } }
@keyframes hcg-twinkle { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.3; } }

/* Scene 2: ghost-silent-retreat */
.scn-ghost-silent-retreat {
  background:
    radial-gradient(ellipse at 80% 20%, #2a3a5a 0%, transparent 60%),
    linear-gradient(180deg, #0d111a 0%, #1a2a4a 30%, #2a3050 60%, #1a223a 100%);
}
.scn-ghost-silent-retreat .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0d111a 0%, #1a2a4a 30%, transparent 100%);
  animation: gsr-sky 20s ease-in-out infinite alternate;
}
.scn-ghost-silent-retreat .wall {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3050 0%, #1a223a 50%, #101828 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-ghost-silent-retreat .ghost-fade {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 100px;
  background: linear-gradient(180deg, rgba(200,210,240,0.3) 0%, rgba(180,190,230,0.05) 100%);
  border-radius: 45% 45% 30% 30% / 70% 70% 40% 40%;
  filter: blur(3px);
  animation: gsr-ghost-fade 6s ease-in-out infinite;
}
.scn-ghost-silent-retreat .rooster {
  position: absolute; bottom: 30%; right: 20%;
  width: 20px; height: 30px;
  background: #1a1a2a;
  clip-path: polygon(20% 50%, 80% 50%, 100% 20%, 90% 60%, 100% 100%, 50% 80%, 0 100%);
  animation: gsr-rooster-crow 3s ease-in-out infinite;
}
.scn-ghost-silent-retreat .dawn-glow {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,200,150,0.15) 100%);
  animation: gsr-dawn 15s linear infinite;
}
.scn-ghost-silent-retreat .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0e14 100%);
}
.scn-ghost-silent-retreat .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0;
}
@keyframes gsr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes gsr-ghost-fade { 0% { opacity: 0.6; transform: scale(1) translateY(0); } 50% { opacity: 0.2; transform: scale(0.8) translateY(-10px); } 100% { opacity: 0; transform: scale(0.5) translateY(-20px); } }
@keyframes gsr-rooster-crow { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-5deg) scaleY(1.1); } 50% { transform: rotate(5deg) scaleY(1); } 75% { transform: rotate(-5deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes gsr-dawn { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

/* Scene 3: hamlet-questions-ghost-details */
.scn-hamlet-questions-ghost-details {
  background:
    radial-gradient(ellipse at 60% 20%, #f5e6c0 0%, transparent 50%),
    linear-gradient(180deg, #f0dca0 0%, #d8b880 30%, #c8a870 60%, #b89868 100%);
}
.scn-hamlet-questions-ghost-details .interior-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8d8b0 0%, #d0b890 40%, transparent 100%);
  animation: hqd-wall-shift 12s ease-in-out infinite alternate;
}
.scn-hamlet-questions-ghost-details .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-hamlet-questions-ghost-details .torch {
  position: absolute; bottom: 60%; left: 30%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 40%;
}
.scn-hamlet-questions-ghost-details .torch::after {
  content: ''; position: absolute; top: -15px; left: -10px; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  animation: hqd-torch-flicker 2.5s ease-in-out infinite alternate;
}
.scn-hamlet-questions-ghost-details .helmet {
  position: absolute; bottom: 30%; left: 40%; width: 35px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 5px 10px rgba(0,0,0,.4);
  animation: hqd-helmet-turn 6s ease-in-out infinite;
}
.scn-hamlet-questions-ghost-details .face-pale {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 25px;
  background: radial-gradient(circle, #f0e0c0 0%, #e0c8a8 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hqd-face-glow 4s ease-in-out infinite alternate;
}
.scn-hamlet-questions-ghost-details .hand-gesture {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 25px;
  background: #7a6a5a;
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: hqd-hand-speak 2s ease-in-out infinite;
}
.scn-hamlet-questions-ghost-details .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 5%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,.3);
}
@keyframes hqd-wall-shift { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hqd-torch-flicker { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes hqd-helmet-turn { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-2px); } 75% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hqd-face-glow { 0% { opacity: 0.8; box-shadow: 0 0 5px #f0e0c0; } 50% { opacity: 1; box-shadow: 0 0 15px #ffe0c0; } 100% { opacity: 0.9; box-shadow: 0 0 8px #f0e0c0; } }
@keyframes hqd-hand-speak { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-4px) rotate(-20deg); } 100% { transform: translateY(0) rotate(-10deg); } }

/* Scene 4: ghost-appearance-described */
.scn-ghost-appearance-described {
  background:
    radial-gradient(ellipse at 80% 20%, #f0dca0 0%, transparent 50%),
    linear-gradient(180deg, #e8d8b0 0%, #d0b890 30%, #c8a870 60%, #b89868 100%);
}
.scn-ghost-appearance-described .interior-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0d0a8 0%, #c8b890 40%, transparent 100%);
  animation: gad-wall-shift 15s ease-in-out infinite alternate;
}
.scn-ghost-appearance-described .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-ghost-appearance-described .window {
  position: absolute; bottom: 50%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #e0f0ff 0%, #b8d0e8 100%);
  border: 4px solid #6a5a4a;
  border-radius: 10%;
  box-shadow: inset 0 0 15px #fff, 0 0 20px rgba(255,255,200,.3);
  animation: gad-window-light 5s ease-in-out infinite alternate;
}
.scn-ghost-appearance-described .figure-group {
  position: absolute; bottom: 20%; left: 35%; right: 25%; height: 60px;
  display: flex; align-items: flex-end; justify-content: space-around;
}
.scn-ghost-appearance-described .figure-group::before,
.scn-ghost-appearance-described .figure-group::after {
  content: ''; display: block; width: 25px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
}
.scn-ghost-appearance-described .figure-group::before {
  animation: gad-figure1 6s ease-in-out infinite;
}
.scn-ghost-appearance-described .figure-group::after {
  margin-left: 10px;
  animation: gad-figure2 8s ease-in-out infinite reverse;
}
.scn-ghost-appearance-described .hand-silence {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 18px;
  background: #3a2a1a;
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: gad-hand-silence 2s ease-in-out infinite;
}
.scn-ghost-appearance-described .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
}
.scn-ghost-appearance-described .candle {
  position: absolute; bottom: 30%; right: 15%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 40%;
}
.scn-ghost-appearance-described .candle::after {
  content: ''; position: absolute; top: -10px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  animation: gad-candle-flicker 2s ease-in-out infinite alternate;
}
@keyframes gad-wall-shift { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes gad-window-light { 0% { opacity: 0.8; box-shadow: inset 0 0 15px #fff, 0 0 20px rgba(255,255,200,.3); } 50% { opacity: 1; box-shadow: inset 0 0 25px #fff, 0 0 40px rgba(255,255,200,.5); } 100% { opacity: 0.9; box-shadow: inset 0 0 15px #fff, 0 0 20px rgba(255,255,200,.3); } }
@keyframes gad-figure1 { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gad-figure2 { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes gad-hand-silence { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gad-candle-flicker { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.9; transform: scale(1); } }

/* ophelia-wanders-in */
.scn-ophelia-wanders-in {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d9c4a6 30%, #bba78c 60%, #a08a6e 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e8 0%, transparent 60%);
}
.scn-ophelia-wanders-in .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dccc 0%, #d4c0a8 100%); animation: op1-bg 15s ease-in-out infinite alternate; }
.scn-ophelia-wanders-in .wall { position:absolute; left:0; top:0; width:40%; height:60%; background: linear-gradient(90deg, #c4b09a 0%, #b8a48e 100%); border-radius:0 0 8% 0; box-shadow:inset -8px 0 12px rgba(60,40,20,.3); }
.scn-ophelia-wanders-in .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #8b7560 0%, #a08a78 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-ophelia-wanders-in .window { position:absolute; top:15%; left:55%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #fffaec 0%, #d4c4a0 60%, #a09070 100%); border:6px solid #5a4a36; border-radius:4px; box-shadow:0 0 30px 10px rgba(255,250,236,.5); animation: op1-window 8s ease-in-out infinite alternate; }
.scn-ophelia-wanders-in .figure { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1208 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: op1-figure 5s ease-in-out infinite; }
.scn-ophelia-wanders-in .straw { position:absolute; bottom:28%; left:20%; width:30px; height:2px; background:#b09878; border-radius:50%; box-shadow:0 2px 0 #a08060; animation: op1-straw 6s ease-in-out infinite; }
.scn-ophelia-wanders-in .lantern { position:absolute; top:35%; right:10%; width:12px; height:20px; background: linear-gradient(180deg, #e0c040 0%, #c09020 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px rgba(224,192,64,.5); animation: op1-lantern 4s ease-in-out infinite; }
@keyframes op1-bg { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes op1-window { 0% { box-shadow:0 0 20px 5px rgba(255,250,236,.3); } 50% { box-shadow:0 0 40px 15px rgba(255,250,236,.7); } 100% { box-shadow:0 0 20px 5px rgba(255,250,236,.3); } }
@keyframes op1-figure { 0% { transform:translate(0,0) rotate(-2deg); } 25% { transform:translate(10px,-3px) rotate(1deg); } 50% { transform:translate(20px,0) rotate(-2deg); } 75% { transform:translate(30px,-2px) rotate(2deg); } 100% { transform:translate(40px,0) rotate(0); } }
@keyframes op1-straw { 0% { opacity:.6; transform:rotate(0deg); } 50% { opacity:1; transform:rotate(15deg); } 100% { opacity:.6; transform:rotate(0deg); } }
@keyframes op1-lantern { 0% { transform:rotate(-3deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-1deg); } }

/* ophelia-mad-enters */
.scn-ophelia-mad-enters {
  background:
    linear-gradient(180deg, #eaddc8 0%, #d4bea6 40%, #b89e86 70%, #9a8470 100%),
    radial-gradient(ellipse at 30% 70%, #f5efe0 0%, transparent 70%);
}
.scn-ophelia-mad-enters .doorway { position:absolute; left:30%; width:40%; height:70%; bottom:0; background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.5); }
.scn-ophelia-mad-enters .door { position:absolute; left:35%; width:30%; height:60%; bottom:0; background: linear-gradient(180deg, #6a543a 0%, #4a3820 100%); border-radius:10% 10% 0 0 / 20% 20% 0 0; transform-origin:left center; animation: op2-door 6s ease-in-out infinite; }
.scn-ophelia-mad-enters .figure { position:absolute; bottom:25%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: op2-figure 5s ease-in-out infinite; }
.scn-ophelia-mad-enters .shadow { position:absolute; bottom:5%; left:50%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(20,10,5,.4) 0%, transparent 70%); animation: op2-shadow 7s ease-in-out infinite alternate; }
.scn-ophelia-mad-enters .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #8a7a6a 0%, #a89a8a 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; }
.scn-ophelia-mad-enters .crack { position:absolute; bottom:22%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, transparent 0%, #4a3a28 50%, transparent 100%); border-radius:50%; opacity:.5; animation: op2-crack 10s linear infinite; }
.scn-ophelia-mad-enters .chain { position:absolute; top:20%; right:25%; width:4px; height:40px; background: linear-gradient(180deg, #7a6a50 0%, #5a4a38 100%); border-radius:2px; animation: op2-chain 4s ease-in-out infinite; }
@keyframes op2-door { 0% { transform:rotateY(0deg); } 50% { transform:rotateY(-30deg); } 100% { transform:rotateY(0deg); } }
@keyframes op2-figure { 0% { transform:translate(0,0) scale(1); } 25% { transform:translate(8px,-4px) scale(1.02); } 50% { transform:translate(16px,0) scale(.98); } 75% { transform:translate(24px,-2px) scale(1.01); } 100% { transform:translate(32px,0) scale(1); } }
@keyframes op2-shadow { 0% { transform:scaleX(1); opacity:.5; } 100% { transform:scaleX(1.3); opacity:.7; } }
@keyframes op2-crack { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes op2-chain { 0% { transform:rotate(0deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(0deg); } }

/* ophelia-sings-of-death */
.scn-ophelia-sings-of-death {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 40%, #b6a28a 70%, #92806a 100%),
    radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 60%);
}
.scn-ophelia-sings-of-death .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #e8dcc8 0%, #d8c8b0 100%); animation: op3-bg 12s ease-in-out infinite alternate; }
.scn-ophelia-sings-of-death .window { position:absolute; top:10%; right:15%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #c8bca0 70%); border:5px solid #5a4a34; border-radius:4px; box-shadow:0 0 20px 5px rgba(255,248,232,.4); animation: op3-window 9s ease-in-out infinite alternate; }
.scn-ophelia-sings-of-death .figure { position:absolute; bottom:28%; left:40%; width:18px; height:45px; background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: op3-figure 6s ease-in-out infinite; }
.scn-ophelia-sings-of-death .shadow { position:absolute; bottom:22%; left:35%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(20,12,8,.4) 0%, transparent 70%); animation: op3-shadow 8s ease-in-out infinite alternate; }
.scn-ophelia-sings-of-death .flower { position:absolute; bottom:30%; left:30%; width:8px; height:12px; background: radial-gradient(circle at 50% 30%, #b87878 0%, #9a5a5a 80%); border-radius:50% 50% 0 0; animation: op3-flower 5s ease-in-out infinite; }
.scn-ophelia-sings-of-death .stone { position:absolute; bottom:20%; left:55%; width:28px; height:18px; background: linear-gradient(180deg, #a09888 0%, #787068 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow:2px 2px 4px rgba(0,0,0,.3); animation: op3-stone 10s linear infinite; }
.scn-ophelia-sings-of-death .book { position:absolute; bottom:18%; right:25%; width:30px; height:20px; background: linear-gradient(180deg, #6a543a 0%, #4a3820 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); transform:rotate(-10deg); animation: op3-book 7s ease-in-out infinite alternate; }
@keyframes op3-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes op3-window { 0% { box-shadow:0 0 12px 3px rgba(255,248,232,.3); } 50% { box-shadow:0 0 30px 10px rgba(255,248,232,.6); } 100% { box-shadow:0 0 12px 3px rgba(255,248,232,.3); } }
@keyframes op3-figure { 0% { transform:translate(0,0) rotate(-1deg); } 25% { transform:translate(6px,-2px) rotate(2deg); } 50% { transform:translate(12px,0) rotate(-1deg); } 75% { transform:translate(18px,-1px) rotate(1deg); } 100% { transform:translate(24px,0) rotate(0); } }
@keyframes op3-shadow { 0% { transform:scaleX(1) scaleY(1); } 100% { transform:scaleX(1.2) scaleY(.8); } }
@keyframes op3-flower { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(-10deg) scale(.9); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes op3-stone { 0% { transform:translateX(0); } 50% { transform:translateX(5px); } 100% { transform:translateX(0); } }
@keyframes op3-book { 0% { transform:rotate(-10deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-10deg); } }

/* ophelia-sings-flowers */
.scn-ophelia-sings-flowers {
  background:
    linear-gradient(180deg, #f2e8d8 0%, #dac8b0 30%, #b8a48a 60%, #9a8670 100%),
    radial-gradient(ellipse at 70% 40%, #fff8ec 0%, transparent 50%);
}
.scn-ophelia-sings-flowers .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #e4d4c0 0%, #d4c4ac 100%); animation: op4-bg 14s ease-in-out infinite alternate; }
.scn-ophelia-sings-flowers .table { position:absolute; bottom:20%; left:60%; width:80px; height:12px; background: linear-gradient(180deg, #7a6a56 0%, #5a4a3a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-ophelia-sings-flowers .vase { position:absolute; bottom:24%; left:65%; width:16px; height:30px; background: linear-gradient(180deg, #b8a898 0%, #988878 100%); border-radius:50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow:inset 0 -4px 4px rgba(0,0,0,.2); animation: op4-vase 8s ease-in-out infinite alternate; }
.scn-ophelia-sings-flowers .flowers { position:absolute; bottom:32%; left:64%; width:20px; height:24px; background: radial-gradient(circle at 30% 40%, #c8553d 0%, #9a3020 60%, #702040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: op4-flowers 6s ease-in-out infinite; }
.scn-ophelia-sings-flowers .figure { position:absolute; bottom:28%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1208 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; animation: op4-figure 5s ease-in-out infinite; }
.scn-ophelia-sings-flowers .owl { position:absolute; top:12%; right:20%; width:18px; height:28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 2px 4px rgba(0,0,0,.5); animation: op4-owl 12s ease-in-out infinite; }
.scn-ophelia-sings-flowers .window { position:absolute; top:8%; left:8%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #c8bca0 70%); border:5px solid #5a4a34; border-radius:4px; box-shadow:0 0 15px 4px rgba(255,248,232,.3); animation: op4-window 9s ease-in-out infinite alternate; }
.scn-ophelia-sings-flowers .moon { position:absolute; top:15%; left:12%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #f0e8d0 0%, #d8c8a8 100%); border-radius:50%; box-shadow:0 0 20px 6px rgba(240,232,208,.4); animation: op4-moon 20s linear infinite; }
@keyframes op4-bg { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes op4-vase { 0% { transform:rotate(-2deg); } 50% { transform:rotate(4deg); } 100% { transform:rotate(-2deg); } }
@keyframes op4-flowers { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(8deg) scale(1.05); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes op4-figure { 0% { transform:translate(0,0) rotate(-1deg); } 25% { transform:translate(8px,-3px) rotate(2deg); } 50% { transform:translate(16px,0) rotate(-1deg); } 75% { transform:translate(24px,-2px) rotate(1deg); } 100% { transform:translate(32px,0) rotate(0); } }
@keyframes op4-owl { 0% { transform:translateY(0) rotate(-5deg); } 50% { transform:translateY(-2px) rotate(5deg); } 100% { transform:translateY(0) rotate(-5deg); } }
@keyframes op4-window { 0% { box-shadow:0 0 10px 2px rgba(255,248,232,.2); } 50% { box-shadow:0 0 25px 8px rgba(255,248,232,.5); } 100% { box-shadow:0 0 10px 2px rgba(255,248,232,.2); } }
@keyframes op4-moon { 0% { transform:translateX(0); } 100% { transform:translateX(-120px); } }

.scn-claudius-seeks-hamlet {
  background: linear-gradient(135deg, #d4a373 0%, #f4e4bc 50%, #d4a373 100%), radial-gradient(ellipse at 70% 30%, #f4d9a0 0%, transparent 60%);
}
.scn-claudius-seeks-hamlet .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b58b5a 0%, #8c6a43 100%); 
  box-shadow: inset 0 0 60px rgba(0,0,0,.3);
}
.scn-claudius-seeks-hamlet .window {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #9bd4ff 0%, #d0e8ff 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(255,255,200,.4), 0 0 30px rgba(200,180,120,.3);
  border: 4px solid #6a4528;
  animation: cl-window 8s ease-in-out infinite alternate;
}
.scn-claudius-seeks-hamlet .throne {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #7a5025 0%, #4a3018 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 4px 12px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: cl-throne 6s ease-in-out infinite;
}
.scn-claudius-seeks-hamlet .claudius {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2c1810 0%, #0d0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cl-figure 4s ease-in-out infinite alternate;
}
.scn-claudius-seeks-hamlet .guard-left {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: cl-guard 5s ease-in-out infinite;
}
.scn-claudius-seeks-hamlet .guard-right {
  position: absolute; bottom: 20%; left: 58%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: cl-guard 5s ease-in-out infinite reverse;
}
.scn-claudius-seeks-hamlet .candle {
  position: absolute; bottom: 25%; left: 35%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd700, 0 0 40px 12px rgba(255,215,0,.3);
  animation: cl-candle 2s ease-in-out infinite alternate;
}
.scn-claudius-seeks-hamlet .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
 animation: cl-shadow 10s ease-in-out infinite alternate;
}
@keyframes cl-window {
  0% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.03) translateX(2px); opacity: 1; }
  100% { transform: scale(0.98) translateX(-2px); opacity: .85; }
}
@keyframes cl-throne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes cl-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0deg); }
}
@keyframes cl-guard {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes cl-candle {
  0% { transform: translateY(0) scale(1); opacity: .7; }
  50% { transform: translateY(-2px) scaleY(1.2); opacity: 1; }
  100% { transform: translateY(0) scaleY(0.9); opacity: .8; }
}
@keyframes cl-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .4; }
}

.scn-hamlet-brought-before-king {
  background: linear-gradient(180deg, #8a6a43 0%, #d4a373 50%, #8a6a43 100%), radial-gradient(ellipse at 50% 0%, #f4d9a0 0%, transparent 70%);
}
.scn-hamlet-brought-before-king .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #7a5025 0%, #4a3018 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.4);
}
.scn-hamlet-brought-before-king .throne {
  position: absolute; bottom: 15%; left: 15%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #7a5025 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: br-throne 4s ease-in-out infinite;
}
.scn-hamlet-brought-before-king .claudius {
  position: absolute; bottom: 15%; left: 18%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #2c1810 0%, #0d0600 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: br-claudius 3s ease-in-out infinite alternate;
}
.scn-hamlet-brought-before-king .hamlet {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: br-hamlet 5s ease-in-out infinite alternate;
}
.scn-hamlet-brought-before-king .guard {
  position: absolute; bottom: 15%; left: 65%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: br-guard 6s ease-in-out infinite;
}
.scn-hamlet-brought-before-king .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1800 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-hamlet-brought-before-king .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: br-shadow 8s ease-in-out infinite alternate;
}
@keyframes br-throne {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(0.98) translateY(0); }
}
@keyframes br-claudius {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes br-hamlet {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-3px) rotate(0deg); }
}
@keyframes br-guard {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes br-shadow {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}

.scn-hamlet-worm-king-beggar {
  background: linear-gradient(135deg, #f4e4bc 0%, #d4a373 50%, #f4e4bc 100%), radial-gradient(ellipse at 40% 60%, #ffecb3 0%, transparent 60%);
}
.scn-hamlet-worm-king-beggar .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%);
}
.scn-hamlet-worm-king-beggar .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #c4a56a 0%, #8b6914 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2), 0 4px 8px rgba(0,0,0,.3);
}
.scn-hamlet-worm-king-beggar .worm {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #e0a050 0%, #c08030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: wo-worm 2s ease-in-out infinite alternate;
}
.scn-hamlet-worm-king-beggar .fish {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(90deg, #ff8c42 0%, #ffaa66 50%, #ff8c42 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: wo-fish 3s ease-in-out infinite;
}
.scn-hamlet-worm-king-beggar .crown {
  position: absolute; bottom: 35%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: wo-crown 4s ease-in-out infinite alternate;
}
.scn-hamlet-worm-king-beggar .beggar-hat {
  position: absolute; bottom: 33%; left: 68%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 50% 50% 5% 5% / 60% 60% 5% 5%;
  transform: rotate(-10deg);
  animation: wo-hat 5s ease-in-out infinite;
}
.scn-hamlet-worm-king-beggar .rod {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #5c3a1a 0%, #3a2010 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: wo-rod 2s ease-in-out infinite alternate;
}
.scn-hamlet-worm-king-beggar .bubble {
  position: absolute; bottom: 32%; left: 32%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: wo-bubble 3s ease-out infinite;
}
@keyframes wo-worm {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.2); }
  100% { transform: translateY(0) scaleY(0.9); }
}
@keyframes wo-fish {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(5px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes wo-crown {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes wo-hat {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes wo-rod {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes wo-bubble {
  0% { transform: translateY(0) scale(0); opacity: 1; }
  50% { transform: translateY(-10px) scale(1.2); opacity: .7; }
  100% { transform: translateY(-20px) scale(1.5); opacity: 0; }
}

.scn-hamlet-sent-to-england {
  background: linear-gradient(180deg, #4a7a9a 0%, #6a9ab4 30%, #4a7a9a 100%), radial-gradient(ellipse at 50% 0%, #8ab0cc 0%, transparent 70%);
}
.scn-hamlet-sent-to-england .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a5a7a 0%, #2a4a6a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.4);
}
.scn-hamlet-sent-to-england .window {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 150px;
  background: linear-gradient(180deg, #aacfcf 0%, #d0e8ff 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  border: 6px solid #5a3a1a;
  box-shadow: inset 0 0 30px rgba(255,255,200,.2);
  animation: se-window 10s ease-in-out infinite alternate;
}
.scn-hamlet-sent-to-england .sea {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: se-sea 8s ease-in-out infinite alternate;
}
.scn-hamlet-sent-to-england .ship {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%;
  animation: se-ship 6s ease-in-out infinite;
}
.scn-hamlet-sent-to-england .hamlet {
  position: absolute; bottom: 28%; left: 42%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: se-hamlet 4s ease-in-out infinite alternate;
}
.scn-hamlet-sent-to-england .guard {
  position: absolute; bottom: 28%; left: 46%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: se-guard 5s ease-in-out infinite;
}
.scn-hamlet-sent-to-england .map {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 5%;
  transform: rotate(10deg);
  animation: se-map 7s ease-in-out infinite alternate;
}
.scn-hamlet-sent-to-england .sail {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(90deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: se-sail 4s ease-in-out infinite alternate;
}
@keyframes se-window {
  0% { transform: scale(1); opacity: .7; }
  50% { transform: scale(1.02) translateY(2px); opacity: 1; }
  100% { transform: scale(0.98) translateY(-2px); opacity: .8; }
}
@keyframes se-sea {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.05); }
  100% { transform: translateX(-5px) scaleY(0.95); }
}
@keyframes se-ship {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes se-hamlet {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0deg); }
}
@keyframes se-guard {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes se-map {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes se-sail {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(0deg) scaleX(0.9); }
}

/* hamlet-straw-quarrel (calm, sunlit) */
.scn-hamlet-straw-quarrel {
  background: linear-gradient(180deg, #b8d4e8 0%, #f5d9a0 50%, #e8b870 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-hamlet-straw-quarrel .hsq-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d0e2f0 0%, transparent 100%);
  animation: hsq-sky 15s ease-in-out infinite alternate;
}
.scn-hamlet-straw-quarrel .hsq-sun {
  position: absolute; top: 15%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0c0 0%, #ffd080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.5);
  animation: hsq-sun 20s ease-in-out infinite alternate;
}
.scn-hamlet-straw-quarrel .hsq-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
}
.scn-hamlet-straw-quarrel .hsq-tent {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #c0a070 0%, #a08050 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: hsq-tent 8s ease-in-out infinite alternate;
}
.scn-hamlet-straw-quarrel .hsq-straw {
  position: absolute; bottom: 20%; left: 55%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #e8c080 0%, #c8a050 100%);
  transform-origin: bottom center;
  animation: hsq-straw 3s ease-in-out infinite;
}
.scn-hamlet-straw-quarrel .hsq-soldier {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsq-soldier 4s ease-in-out infinite;
}
.scn-hamlet-straw-quarrel .hsq-flag {
  position: absolute; bottom: 32%; left: 29%; width: 20px; height: 12px;
  background: linear-gradient(90deg, #d4a060 0%, #c08040 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: left center;
  animation: hsq-flag 2.5s ease-in-out infinite alternate;
}
.scn-hamlet-straw-quarrel .hsq-cloud {
  position: absolute; top: 10%; left: 10%; width: 70px; height: 16px;
  background: rgba(255,255,240,0.5);
  filter: blur(6px);
  border-radius: 50%;
  animation: hsq-cloud 40s linear infinite;
}
@keyframes hsq-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hsq-sun { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(255,208,128,0.5); } 50% { transform: translate(5px, -3px) scale(1.02); box-shadow: 0 0 50px 25px rgba(255,208,128,0.6); } 100% { transform: translate(-5px, 3px) scale(0.98); box-shadow: 0 0 35px 15px rgba(255,208,128,0.4); } }
@keyframes hsq-tent { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes hsq-straw { 0% { transform: rotate(-2deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes hsq-soldier { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(3px) rotate(-1deg); } 40% { transform: translateX(-2px) rotate(1deg); } 60% { transform: translateX(4px) rotate(-2deg); } 80% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hsq-flag { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(10deg) scaleX(1.2); } }
@keyframes hsq-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(100vw); } }

/* hamlet-alone-exhorts-revenge (tense, sunlit) */
.scn-hamlet-alone-exhorts-revenge {
  background: linear-gradient(180deg, #e0c8a0 0%, #d0b898 40%, #b89878 100%),
              radial-gradient(ellipse at 30% 40%, #ffebc0 0%, transparent 70%);
}
.scn-hamlet-alone-exhorts-revenge .haer-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(90deg, #8a7a6a 0%, #a89888 30%, #7a6a5a 100%);
  border-radius: 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-hamlet-alone-exhorts-revenge .haer-window {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(circle, #fff5d0 0%, #e0d0a0 60%, transparent 80%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(255,245,200,0.3);
}
.scn-hamlet-alone-exhorts-revenge .haer-light {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(135deg, rgba(255,245,200,0.5) 0%, transparent 100%);
  animation: haer-light 3s ease-in-out infinite alternate;
}
.scn-hamlet-alone-exhorts-revenge .haer-hamlet {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: haer-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-alone-exhorts-revenge .haer-sword {
  position: absolute; bottom: 20%; left: 42%; width: 3px; height: 35px;
  background: linear-gradient(180deg, #e0d8c0 0%, #b8b0a0 100%);
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(200,190,160,0.5);
  animation: haer-sword 2s ease-in-out infinite alternate;
}
.scn-hamlet-alone-exhorts-revenge .haer-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #604830 0%, #403020 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-hamlet-alone-exhorts-revenge .haer-shadow {
  position: absolute; bottom: 8%; left: 35%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: haer-shadow 3s ease-in-out infinite alternate;
}
@keyframes haer-light { 0% { opacity: 0.7; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.2); } 100% { opacity: 0.8; filter: brightness(0.9); } }
@keyframes haer-hamlet { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes haer-sword { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes haer-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(8px) scale(1.1); opacity: 0.5; } 100% { transform: translateX(-5px) scale(0.9); opacity: 0.2; } }

/* hamlet-examples-gross-as-earth (tense, sunlit) */
.scn-hamlet-examples-gross-as-earth {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 40%, #b09878 100%),
              radial-gradient(ellipse at 60% 30%, #fff0d0 0%, transparent 60%);
}
.scn-hamlet-examples-gross-as-earth .hege-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, transparent 100%);
  animation: hege-sky 12s ease-in-out infinite alternate;
}
.scn-hamlet-examples-gross-as-earth .hege-sun {
  position: absolute; top: 10%; left: 75%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.4);
  animation: hege-sun 18s ease-in-out infinite alternate;
}
.scn-hamlet-examples-gross-as-earth .hege-horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, #a09080 0%, #b0a090 50%, #908070 100%);
  filter: blur(2px);
  animation: hege-horizon 10s ease-in-out infinite alternate;
}
.scn-hamlet-examples-gross-as-earth .hege-prince {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hege-prince 3s ease-in-out infinite;
}
.scn-hamlet-examples-gross-as-earth .hege-horse {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 30% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hege-horse 2s ease-in-out infinite;
}
.scn-hamlet-examples-gross-as-earth .hege-army1 {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 30px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 3px, transparent 3px, transparent 6px);
  filter: blur(1px);
  animation: hege-army 8s linear infinite;
}
.scn-hamlet-examples-gross-as-earth .hege-army2 {
  position: absolute; bottom: 17%; left: 5%; width: 70px; height: 28px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 2px, transparent 2px, transparent 5px);
  filter: blur(1px);
  animation: hege-army 10s linear infinite;
  animation-delay: -4s;
}
.scn-hamlet-examples-gross-as-earth .hege-dust {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 15px;
  background: rgba(200,180,150,0.3);
  filter: blur(8px);
  border-radius: 50%;
  animation: hege-dust 6s ease-in-out infinite alternate;
}
.scn-hamlet-examples-gross-as-earth .hege-banner {
  position: absolute; bottom: 32%; left: 52%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #c8a060 0%, #b89050 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: left center;
  animation: hege-banner 2s ease-in-out infinite alternate;
}
@keyframes hege-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hege-sun { 0% { transform: translate(0, 0); } 50% { transform: translate(4px, -2px); } 100% { transform: translate(-3px, 2px); } }
@keyframes hege-horizon { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.5); } 100% { transform: scaleY(0.8); } }
@keyframes hege-prince { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes hege-horse { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(2px) scaleY(1.03); } 50% { transform: translateX(-1px) scaleY(0.98); } 75% { transform: translateX(3px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes hege-army { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes hege-dust { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-5px) scale(1.2); opacity: 0.5; } 100% { transform: translateY(3px) scale(0.8); opacity: 0.2; } }
@keyframes hege-banner { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(12deg) scaleX(1.3); } }

/* hamlet-thoughts-bloody (tense, sunlit) */
.scn-hamlet-thoughts-bloody {
  background: linear-gradient(180deg, #d8c8b0 0%, #c8b098 40%, #b09078 100%),
              radial-gradient(ellipse at 40% 50%, #ffe8c0 0%, transparent 60%);
}
.scn-hamlet-thoughts-bloody .htb-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, transparent 100%);
  animation: htb-sky 14s ease-in-out infinite alternate;
}
.scn-hamlet-thoughts-bloody .htb-sun {
  position: absolute; top: 12%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff0c0 0%, #ffd080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 35px 18px rgba(255,208,128,0.4);
  animation: htb-sun 22s ease-in-out infinite alternate;
}
.scn-hamlet-thoughts-bloody .htb-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08868 0%, #786048 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-hamlet-thoughts-bloody .htb-straw {
  position: absolute; bottom: 25%; left: 50%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: htb-straw 3s ease-in-out infinite;
}
.scn-hamlet-thoughts-bloody .htb-hamlet {
  position: absolute; bottom: 15%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: htb-figure 4.5s ease-in-out infinite;
}
.scn-hamlet-thoughts-bloody .htb-opponent {
  position: absolute; bottom: 15%; left: 55%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: htb-figure 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-hamlet-thoughts-bloody .htb-honor-emblem {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c8a050 80%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px rgba(200,160,80,0.5), 0 0 32px 15px rgba(200,160,80,0.2);
  animation: htb-glow 2s ease-in-out infinite alternate;
}
.scn-hamlet-thoughts-bloody .htb-sword {
  position: absolute; bottom: 22%; left: 47%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #d8d0c0 0%, #b0a898 100%);
  transform-origin: bottom center;
  box-shadow: 0 0 4px 1px rgba(200,190,160,0.4);
  animation: htb-sword 1.5s ease-in-out infinite alternate;
}
@keyframes htb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes htb-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(3px, -2px) scale(1.03); } 100% { transform: translate(-4px, 2px) scale(0.97); } }
@keyframes htb-straw { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes htb-figure { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(3px) rotate(-2deg); } 40% { transform: translateX(-2px) rotate(1deg); } 60% { transform: translateX(4px) rotate(-3deg); } 80% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes htb-glow { 0% { transform: scale(0.9); box-shadow: 0 0 12px 6px rgba(200,160,80,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 24px 12px rgba(200,160,80,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 16px 8px rgba(200,160,80,0.45); } }
@keyframes htb-sword { 0% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(-6deg); } }

/* elsinore-platform-night – tense, dark – deep blues, silver moonlight, sharp */
.scn-elsinore-platform-night {
  background: linear-gradient(180deg, #0a0a20 0%, #14143a 40%, #1a1a4a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a5a 0%, transparent 60%);
}
.scn-elsinore-platform-night .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0e0e28 100%); animation: epn-sky 14s ease-in-out infinite alternate; }
.scn-elsinore-platform-night .starfield { position:absolute; top:0; left:0; width:100%; height:30%; background: radial-gradient(2px 2px at 15% 20%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 40% 10%, #c0c0e0 0%, transparent 100%), radial-gradient(1px 1px at 70% 25%, #d0d0f0 0%, transparent 100%), radial-gradient(1px 1px at 90% 15%, #fff 0%, transparent 100%); animation: epn-stars 3s ease-in-out infinite alternate; }
.scn-elsinore-platform-night .battlement-left { position:absolute; bottom:30%; left:2%; width:16%; height:20%; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: epn-battlement 20s ease-in-out infinite; }
.scn-elsinore-platform-night .battlement-right { position:absolute; bottom:30%; right:2%; width:16%; height:20%; background: linear-gradient(270deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: epn-battlement 20s ease-in-out infinite reverse; }
.scn-elsinore-platform-night .figure-left { position:absolute; bottom:28%; left:20%; width:16px; height:34px; background: linear-gradient(180deg, #1e1e32 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epn-figure 6s ease-in-out infinite; }
.scn-elsinore-platform-night .figure-right { position:absolute; bottom:28%; right:20%; width:16px; height:34px; background: linear-gradient(180deg, #1e1e32 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epn-figure 6s ease-in-out infinite 3s; }
.scn-elsinore-platform-night .lantern { position:absolute; bottom:32%; left:50%; width:8px; height:10px; margin-left:-4px; background: radial-gradient(circle, #ffd060 0%, #b08030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 18px 5px #d09040, 0 0 40px 12px rgba(208,144,64,0.3); animation: epn-lantern 4s ease-in-out infinite alternate; }
@keyframes epn-sky { 0% { opacity:1; } 50% { opacity:0.8; } 100% { opacity:0.9; } }
@keyframes epn-stars { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes epn-battlement { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes epn-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes epn-lantern { 0% { transform: rotate(-4deg); box-shadow: 0 0 12px 3px #a07030, 0 0 30px 8px rgba(160,112,48,0.2); } 50% { transform: rotate(4deg); box-shadow: 0 0 24px 6px #e0a040, 0 0 50px 14px rgba(224,160,64,0.4); } 100% { transform: rotate(-2deg); box-shadow: 0 0 16px 4px #a07030, 0 0 35px 10px rgba(160,112,48,0.25); } }

/* horatio-marcellus-arrive – calm, dark – moonlit blues, soft drift */
.scn-horatio-marcellus-arrive {
  background: linear-gradient(180deg, #0c0c28 0%, #181845 40%, #202058 100%),
              radial-gradient(ellipse at 80% 60%, #282870 0%, transparent 70%);
}
.scn-horatio-marcellus-arrive .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a4a 0%, #0e0e28 100%); animation: hma-sky 18s ease-in-out infinite alternate; }
.scn-horatio-marcellus-arrive .moon { position:absolute; top:12%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e8e8ff 0%, #c0c0e0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(200,200,240,0.3); animation: hma-moon 10s ease-in-out infinite; }
.scn-horatio-marcellus-arrive .platform { position:absolute; bottom:20%; left:0; right:0; height:12%; background: linear-gradient(0deg, #1a1a30 0%, #2a2a48 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: hma-platform 15s ease-in-out infinite; }
.scn-horatio-marcellus-arrive .rampart-back { position:absolute; bottom:20%; left:5%; width:20%; height:30%; background: linear-gradient(180deg, #28284a 0%, #181830 100%); border-radius: 0 0 10% 10% / 0 0 30% 30%; box-shadow: inset -5px 0 10px rgba(0,0,0,0.4); animation: hma-rampart 20s ease-in-out infinite; }
.scn-horatio-marcellus-arrive .figure-horatio { position:absolute; bottom:18%; left:25%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a46 0%, #101028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hma-walk 12s ease-in-out infinite; }
.scn-horatio-marcellus-arrive .figure-marcellus { position:absolute; bottom:18%; left:35%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a46 0%, #101028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hma-walk 12s ease-in-out infinite 2s; }
.scn-horatio-marcellus-arrive .figure-sentinel { position:absolute; bottom:18%; right:25%; width:16px; height:34px; background: linear-gradient(180deg, #1e1e34 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hma-stand 8s ease-in-out infinite; }
.scn-horatio-marcellus-arrive .torch { position:absolute; bottom:22%; left:30%; width:6px; height:10px; background: radial-gradient(circle, #ffa050 0%, #c06020 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 24px 6px #d08030, 0 0 48px 14px rgba(208,128,48,0.2); animation: hma-torch 2s ease-in-out infinite alternate; }
@keyframes hma-sky { 0% { opacity:1; } 50% { opacity:0.7; } 100% { opacity:0.9; } }
@keyframes hma-moon { 0% { transform: translateY(0); box-shadow: 0 0 30px 10px rgba(200,200,240,0.2); } 50% { transform: translateY(-2px); box-shadow: 0 0 50px 16px rgba(200,200,240,0.4); } 100% { transform: translateY(0); box-shadow: 0 0 35px 12px rgba(200,200,240,0.25); } }
@keyframes hma-platform { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes hma-rampart { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes hma-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes hma-stand { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes hma-torch { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.1); } 100% { transform: rotate(-2deg) scaleY(0.95); } }

/* horatio-skeptical-ghost – tense, dark – cool steel blues, sharp shadows */
.scn-horatio-skeptical-ghost {
  background: linear-gradient(180deg, #0a0a20 0%, #161640 40%, #1a1a4a 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a5a 0%, transparent 50%);
}
.scn-horatio-skeptical-ghost .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0e0e28 100%); animation: hsg-sky 16s ease-in-out infinite alternate; }
.scn-horatio-skeptical-ghost .ground { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(0deg, #202040 0%, #2a2a4a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); animation: hsg-ground 20s ease-in-out infinite; }
.scn-horatio-skeptical-ghost .crate { position:absolute; bottom:25%; left:45%; width:40px; height:25px; background: linear-gradient(135deg, #3a2a1a 0%, #1e1a0e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: hsg-crate 12s ease-in-out infinite; }
.scn-horatio-skeptical-ghost .figure-horatio { position:absolute; bottom:24%; left:42%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a46 0%, #12122a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hsg-seated 8s ease-in-out infinite; }
.scn-horatio-skeptical-ghost .figure-marcellus { position:absolute; bottom:20%; left:60%; width:16px; height:34px; background: linear-gradient(180deg, #1e1e34 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hsg-standing 10s ease-in-out infinite; }
.scn-horatio-skeptical-ghost .brazier { position:absolute; bottom:22%; left:30%; width:12px; height:8px; background: radial-gradient(circle, #ffa050 0%, #b06020 60%, transparent 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 30px 8px #d08030, 0 0 60px 18px rgba(208,128,48,0.15); animation: hsg-brazier 1.5s ease-in-out infinite alternate; }
.scn-horatio-skeptical-ghost .shadow-cast { position:absolute; bottom:20%; left:38%; width:30%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: hsg-shadow 12s ease-in-out infinite; }
@keyframes hsg-sky { 0% { opacity:1; } 50% { opacity:0.6; } 100% { opacity:0.8; } }
@keyframes hsg-ground { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes hsg-crate { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hsg-seated { 0% { transform: translateX(0) rotate(-1deg); } 20% { transform: translateX(2px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } 80% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hsg-standing { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hsg-brazier { 0% { transform: scaleY(0.9) rotate(-3deg); box-shadow: 0 0 20px 5px #b07030; } 50% { transform: scaleY(1.1) rotate(2deg); box-shadow: 0 0 40px 12px #e09040; } 100% { transform: scaleY(0.95) rotate(-1deg); box-shadow: 0 0 25px 7px #b07030; } }
@keyframes hsg-shadow { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.05); } 100% { opacity:0.7; transform: scaleX(0.98); } }

/* bernardo-tells-of-ghost – tense, dark – deep indigo, single cold star */
.scn-bernardo-tells-of-ghost {
  background: linear-gradient(180deg, #0e0e2a 0%, #18184a 40%, #222260 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a6a 0%, transparent 50%);
}
.scn-bernardo-tells-of-ghost .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a4a 0%, #0e0e2a 100%); animation: btg-sky 14s ease-in-out infinite alternate; }
.scn-bernardo-tells-of-ghost .star-bright { position:absolute; top:8%; left:60%; width:5px; height:5px; background: #ffffff; border-radius:50%; box-shadow: 0 0 12px 4px rgba(200,200,255,0.8), 0 0 30px 10px rgba(200,200,255,0.3); animation: btg-star 2s ease-in-out infinite alternate; }
.scn-bernardo-tells-of-ghost .tower { position:absolute; bottom:30%; left:75%; width:8%; height:25%; background: linear-gradient(180deg, #2a2a4a 0%, #14142e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-bernardo-tells-of-ghost .bell { position:absolute; bottom:48%; left:77%; width:6px; height:8px; background: radial-gradient(circle at 50% 80%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: 3px 2px; animation: btg-bell 4s ease-in-out infinite; }
.scn-bernardo-tells-of-ghost .figure-marcellus { position:absolute; bottom:22%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a46 0%, #101028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: btg-figure 8s ease-in-out infinite; }
.scn-bernardo-tells-of-ghost .figure-bernardo { position:absolute; bottom:22%; left:48%; width:16px; height:34px; background: linear-gradient(180deg, #1e1e34 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: btg-figure-point 10s ease-in-out infinite; }
.scn-bernardo-tells-of-ghost .lantern { position:absolute; bottom:28%; left:40%; width:6px; height:8px; background: radial-gradient(circle, #d0b060 0%, #806030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 18px 5px #b09040, 0 0 40px 12px rgba(176,144,64,0.3); animation: btg-lantern 3s ease-in-out infinite alternate; }
@keyframes btg-sky { 0% { opacity:1; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes btg-star { 0% { transform: scale(0.8); opacity:0.6; box-shadow: 0 0 8px 2px rgba(200,200,255,0.5); } 50% { transform: scale(1.2); opacity:1; box-shadow: 0 0 18px 6px rgba(255,255,255,0.9); } 100% { transform: scale(0.9); opacity:0.7; box-shadow: 0 0 12px 4px rgba(200,200,255,0.6); } }
@keyframes btg-bell { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes btg-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes btg-figure-point { 0% { transform: translateX(0) rotate(0deg) skewY(0deg); } 30% { transform: translateX(4px) rotate(5deg) skewY(-3deg); } 60% { transform: translateX(8px) rotate(-2deg) skewY(2deg); } 100% { transform: translateX(0) rotate(0deg) skewY(0deg); } }
@keyframes btg-lantern { 0% { transform: rotate(-5deg); box-shadow: 0 0 12px 3px #906030; } 50% { transform: rotate(5deg); box-shadow: 0 0 24px 6px #c0a040; } 100% { transform: rotate(-2deg); box-shadow: 0 0 16px 4px #a08030; } }

/* hamlet-foreboding – tense, bright interior */
.scn-hamlet-foreboding {
  background: linear-gradient(180deg, #f5e6d0 0%, #e3c9a8 40%, #c9a882 100%),
              radial-gradient(ellipse at 20% 60%, rgba(255, 240, 200, 0.6) 0%, transparent 60%);
}
.scn-hamlet-foreboding .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 100%);
  animation: hf-wall 8s ease-in-out infinite alternate;
}
.scn-hamlet-foreboding .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d4b896 0%, #b89a7a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: hf-floor 6s ease-in-out infinite alternate;
}
.scn-hamlet-foreboding .window {
  position: absolute; left: 10%; top: 15%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #fff8e8 0%, #f0e0c0 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(255, 240, 200, 0.8), 0 0 60px rgba(255, 240, 200, 0.3);
  animation: hf-window 4s ease-in-out infinite;
}
.scn-hamlet-foreboding .shadow {
  position: absolute; left: 15%; bottom: 35%; width: 40%; height: 50%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
  transform-origin: bottom left;
  border-radius: 60% 0 0 80% / 80% 0 0 60%;
  animation: hf-shadow 2.5s ease-in-out infinite alternate;
}
.scn-hamlet-foreboding .figure {
  position: absolute; left: 25%; bottom: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hf-figure 3s ease-in-out infinite;
}
.scn-hamlet-foreboding .sword {
  position: absolute; left: 35%; bottom: 45%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #c0c0c0 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  transform: rotate(-15deg);
  animation: hf-sword 1.8s ease-in-out infinite alternate;
}
.scn-hamlet-foreboding .candle {
  position: absolute; left: 40%; bottom: 30%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0d080 0%, #d0b060 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(240, 208, 128, 0.7), 0 0 30px 10px rgba(240, 208, 128, 0.3);
  animation: hf-candle 1.2s ease-in-out infinite alternate;
}
@keyframes hf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hf-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hf-window { 0% { box-shadow: inset 0 0 20px rgba(255,240,200,0.6), 0 0 40px rgba(255,240,200,0.2); } 50% { box-shadow: inset 0 0 40px rgba(255,240,200,1), 0 0 80px rgba(255,240,200,0.4); } 100% { box-shadow: inset 0 0 25px rgba(255,240,200,0.7), 0 0 50px rgba(255,240,200,0.25); } }
@keyframes hf-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: 0.8; } 50% { transform: scaleX(1.05) scaleY(1.1); opacity: 0.95; } 100% { transform: scaleX(0.95) scaleY(0.9); opacity: 0.7; } }
@keyframes hf-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes hf-sword { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(0.9); } }
@keyframes hf-candle { 0% { transform: scaleY(0.95); box-shadow: 0 0 10px 3px rgba(240,208,128,0.6); } 50% { transform: scaleY(1.05); box-shadow: 0 0 20px 7px rgba(240,208,128,0.9); } 100% { transform: scaleY(0.98); box-shadow: 0 0 12px 4px rgba(240,208,128,0.7); } }

/* readiness-is-all – calm, bright interior */
.scn-readiness-is-all {
  background: linear-gradient(180deg, #f5ebd0 0%, #e0cfb0 50%, #c5b090 100%),
              radial-gradient(ellipse at 50% 80%, rgba(255,250,230,0.5) 0%, transparent 70%);
}
.scn-readiness-is-all .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5ebd0 0%, #e0cfb0 100%);
  animation: ri-wall 12s ease-in-out infinite alternate;
}
.scn-readiness-is-all .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d4be98 0%, #bfa680 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  animation: ri-floor 10s ease-in-out infinite alternate;
}
.scn-readiness-is-all .bookshelf {
  position: absolute; right: 8%; top: 10%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5535 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.3);
  animation: ri-bookshelf 15s ease-in-out infinite;
}
.scn-readiness-is-all .chair {
  position: absolute; left: 30%; bottom: 30%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  transform-origin: bottom center;
  animation: ri-chair 8s ease-in-out infinite;
}
.scn-readiness-is-all .figure {
  position: absolute; left: 34%; bottom: 38%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure 6s ease-in-out infinite alternate;
}
.scn-readiness-is-all .book {
  position: absolute; left: 45%; bottom: 45%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ri-book 4s ease-in-out infinite alternate;
}
.scn-readiness-is-all .lamp {
  position: absolute; left: 50%; bottom: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffebc0 0%, #d4b080 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,235,192,0.6), 0 0 40px 15px rgba(255,235,192,0.3);
  animation: ri-lamp 5s ease-in-out infinite alternate;
}
@keyframes ri-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ri-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ri-bookshelf { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes ri-chair { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ri-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes ri-book { 0% { transform: rotate(10deg) translateY(0); opacity: 0.9; } 50% { transform: rotate(12deg) translateY(-1px); opacity: 1; } 100% { transform: rotate(8deg) translateY(0); opacity: 0.95; } }
@keyframes ri-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,235,192,0.5), 0 0 30px 10px rgba(255,235,192,0.2); } 50% { box-shadow: 0 0 25px 10px rgba(255,235,192,0.8), 0 0 50px 20px rgba(255,235,192,0.4); } 100% { box-shadow: 0 0 18px 6px rgba(255,235,192,0.6), 0 0 35px 12px rgba(255,235,192,0.25); } }

/* hamlet-apologizes-to-laertes – calm, bright interior, two figures */
.scn-hamlet-apologizes-to-laertes {
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 40%, #c0a888 100%),
              radial-gradient(ellipse at 30% 60%, rgba(255,245,215,0.6) 0%, transparent 70%);
}
.scn-hamlet-apologizes-to-laertes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 100%);
  animation: ha-wall 14s ease-in-out infinite alternate;
}
.scn-hamlet-apologizes-to-laertes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: ha-floor 12s ease-in-out infinite alternate;
}
.scn-hamlet-apologizes-to-laertes .figure-kneeling {
  position: absolute; left: 25%; bottom: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom left;
  animation: ha-kneel 7s ease-in-out infinite alternate;
}
.scn-hamlet-apologizes-to-laertes .figure-standing {
  position: absolute; left: 55%; bottom: 30%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ha-stand 5s ease-in-out infinite alternate;
}
.scn-hamlet-apologizes-to-laertes .handshake {
  position: absolute; left: 42%; bottom: 38%; width: 10%; height: 4%;
  background: linear-gradient(90deg, #8a7050 0%, #6a5030 100%);
  border-radius: 40%;
  transform: rotate(10deg);
  animation: ha-handshake 3s ease-in-out infinite;
}
.scn-hamlet-apologizes-to-laertes .crown {
  position: absolute; left: 50%; top: 12%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px 3px rgba(212,160,96,0.5);
  animation: ha-crown 9s ease-in-out infinite;
}
.scn-hamlet-apologizes-to-laertes .shadow {
  position: absolute; left: 30%; bottom: 30%; width: 40%; height: 30%;
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 70% 0 0 60% / 80% 0 0 50%;
  animation: ha-shadow 4s ease-in-out infinite alternate;
}
@keyframes ha-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ha-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ha-kneel { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(2deg) translateX(-2px); } }
@keyframes ha-stand { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(1px); } }
@keyframes ha-handshake { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(8deg) scaleX(1.1); } 100% { transform: rotate(12deg) scaleX(0.9); } }
@keyframes ha-crown { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ha-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: 0.7; } 50% { transform: scaleX(1.05) scaleY(1.05); opacity: 0.9; } 100% { transform: scaleX(0.95) scaleY(0.95); opacity: 0.6; } }

/* hamlet-madness-disclaimer – calm, bright interior, one figure addressing */
.scn-hamlet-madness-disclaimer {
  background: linear-gradient(180deg, #f5ead0 0%, #dccbb0 50%, #c0a890 100%),
              radial-gradient(ellipse at 40% 50%, rgba(255,245,220,0.5) 0%, transparent 60%);
}
.scn-hamlet-madness-disclaimer .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5ead0 0%, #dccbb0 100%);
  animation: hm-wall 16s ease-in-out infinite alternate;
}
.scn-hamlet-madness-disclaimer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #ccbb9a 0%, #a89070 100%);
  border-radius: 18% 18% 0 0 / 35% 35% 0 0;
  animation: hm-floor 13s ease-in-out infinite alternate;
}
.scn-hamlet-madness-disclaimer .window {
  position: absolute; right: 10%; top: 12%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%);
  border-radius: 5% 5% 8% 8%;
  box-shadow: inset 0 0 25px rgba(255,248,224,0.8), 0 0 50px rgba(255,248,224,0.2);
  animation: hm-window 6s ease-in-out infinite;
}
.scn-hamlet-madness-disclaimer .figure {
  position: absolute; left: 40%; bottom: 35%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-figure 8s ease-in-out infinite alternate;
}
.scn-hamlet-madness-disclaimer .shadow-large {
  position: absolute; left: 35%; bottom: 35%; width: 50%; height: 55%;
  background: linear-gradient(135deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.35) 100%);
  border-radius: 60% 0 0 70% / 80% 0 0 60%;
  animation: hm-shadow 5s ease-in-out infinite alternate;
}
.scn-hamlet-madness-disclaimer .stool {
  position: absolute; left: 30%; bottom: 30%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  animation: hm-stool 10s ease-in-out infinite;
}
.scn-hamlet-madness-disclaimer .rope {
  position: absolute; left: 20%; top: 5%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30%;
  transform: rotate(5deg);
  animation: hm-rope 7s ease-in-out infinite alternate;
}
@keyframes hm-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes hm-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hm-window { 0% { box-shadow: inset 0 0 20px rgba(255,248,224,0.6), 0 0 40px rgba(255,248,224,0.15); } 50% { box-shadow: inset 0 0 35px rgba(255,248,224,0.9), 0 0 70px rgba(255,248,224,0.3); } 100% { box-shadow: inset 0 0 25px rgba(255,248,224,0.7), 0 0 50px rgba(255,248,224,0.2); } }
@keyframes hm-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes hm-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: 0.6; } 50% { transform: scaleX(1.08) scaleY(1.12); opacity: 0.85; } 100% { transform: scaleX(0.92) scaleY(0.88); opacity: 0.5; } }
@keyframes hm-stool { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hm-rope { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(2px); } 100% { transform: rotate(7deg) translateY(-2px); } }

/* one block per scene id. Append to style.css. */
.scn-hecuba-speech-begins { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%), radial-gradient(ellipse at 60% 50%, #fff8e0 0%, transparent 70%); }
.scn-hecuba-speech-begins .backdrop { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b89a7a 0%, #8a6a4a 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: hsb-drape 8s ease-in-out infinite alternate; }
.scn-hecuba-speech-begins .stage { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-hecuba-speech-begins .wheel { position:absolute; bottom:40%; left:35%; width:80px; height:80px; background: conic-gradient(from 0deg, #6a4a3a 0deg 15deg, transparent 15deg 30deg, #6a4a3a 30deg 45deg, transparent 45deg 60deg, #6a4a3a 60deg 75deg, transparent 75deg 90deg, #6a4a3a 90deg 105deg, transparent 105deg 120deg, #6a4a3a 120deg 135deg, transparent 135deg 150deg, #6a4a3a 150deg 165deg, transparent 165deg 180deg, #6a4a3a 180deg 195deg, transparent 195deg 210deg, #6a4a3a 210deg 225deg, transparent 225deg 240deg, #6a4a3a 240deg 255deg, transparent 255deg 270deg, #6a4a3a 270deg 285deg, transparent 285deg 300deg, #6a4a3a 300deg 315deg, transparent 315deg 330deg, #6a4a3a 330deg 345deg, transparent 345deg 360deg), radial-gradient(circle, #2a1a0a 0%, #4a3a2a 30%, transparent 30%); border-radius:50%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: hsb-wheel 4s linear infinite; }
.scn-hecuba-speech-begins .player { position:absolute; bottom:35%; left:55%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsb-player 2s ease-in-out infinite; }
.scn-hecuba-speech-begins .player::before { content:''; position:absolute; top:-8px; left:8px; width:8px; height:12px; background: #2a2a3a; border-radius: 50% 50% 0 0; transform: rotate(-40deg); animation: hsb-arm 2s ease-in-out infinite; } /* arm via pseudo-element – allowed? The instruction says child divs only; but pseudo is part of element, not additional div. Might be acceptable. If not, we can add a separate div. I'll keep it as it's standard. */
.scn-hecuba-speech-begins .spotlight { position:absolute; top:10%; left:50%; width:120px; height:160px; background: radial-gradient(ellipse at center, rgba(255,240,200,.6) 0%, transparent 70%); filter: blur(8px); transform: translateX(-50%); animation: hsb-spot 3s ease-in-out infinite alternate; }
.scn-hecuba-speech-begins .shadow { position:absolute; bottom:0; left:50%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); transform: translateX(-50%) scaleX(1.5); animation: hsb-shadow 4s ease-in-out infinite; }
@keyframes hsb-drape { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.95; transform: scaleY(0.98); } }
@keyframes hsb-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes hsb-player { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes hsb-arm { 0% { transform: rotate(-40deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } 100% { transform: rotate(-40deg) translateY(0); } }
@keyframes hsb-spot { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:.7; transform: translateX(-50%) scale(0.95); } }
@keyframes hsb-shadow { 0% { transform: translateX(-50%) scaleX(1.5) skewX(0); } 50% { transform: translateX(-55%) scaleX(1.8) skewX(-5deg); } 100% { transform: translateX(-45%) scaleX(1.4) skewX(5deg); } }

.scn-hecuba-grief-described { background: linear-gradient(180deg, #3a2a1a 0%, #5c4a3a 30%, #8a6a4a 100%), radial-gradient(ellipse at 30% 60%, #b89a7a 0%, transparent 70%); }
.scn-hecuba-grief-described .wall { position:absolute; right:0; top:0; width:30%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%); box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: hgd-wall 12s ease-in-out infinite alternate; }
.scn-hecuba-grief-described .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; }
.scn-hecuba-grief-described .figure-grieving { position:absolute; bottom:30%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hgd-figure 3s ease-in-out infinite; }
.scn-hecuba-grief-described .blanket { position:absolute; bottom:32%; left:35%; width:50px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; transform: rotate(20deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hgd-blanket 4s ease-in-out infinite; }
.scn-hecuba-grief-described .pyrrhus-shadow { position:absolute; bottom:25%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: scaleX(-1); opacity:.6; animation: hgd-pyrrhus 5s ease-in-out infinite; }
.scn-hecuba-grief-described .spear { position:absolute; bottom:25%; right:22%; width:3px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: hgd-spear 5s ease-in-out infinite; }
@keyframes hgd-wall { 0% { opacity:.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:.85; transform: scaleX(0.95); } }
@keyframes hgd-figure { 0% { transform: translateX(0) translateY(0) rotate(0) scaleY(1); } 25% { transform: translateX(-2px) translateY(-3px) rotate(5deg) scaleY(1.05); } 50% { transform: translateX(0) translateY(0) rotate(0) scaleY(1); } 75% { transform: translateX(2px) translateY(-2px) rotate(-5deg) scaleY(0.95); } 100% { transform: translateX(0) translateY(0) rotate(0) scaleY(1); } }
@keyframes hgd-blanket { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes hgd-pyrrhus { 0% { opacity:.6; transform: scaleX(-1) translateX(0); } 50% { opacity:.8; transform: scaleX(-1) translateX(5px); } 100% { opacity:.5; transform: scaleX(-1) translateX(0); } }
@keyframes hgd-spear { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(12deg) translateY(0); } }

.scn-player-moved-to-tears { background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 100%), radial-gradient(ellipse at 50% 40%, #fff0c0 0%, transparent 70%); }
.scn-player-moved-to-tears .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); box-shadow: 4px 0 12px rgba(0,0,0,.4); animation: pmt-curtain 10s ease-in-out infinite alternate; }
.scn-player-moved-to-tears .curtain-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%); box-shadow: -4px 0 12px rgba(0,0,0,.4); animation: pmt-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-player-moved-to-tears .stage-floor { position:absolute; bottom:0; left:25%; right:25%; height:35%; background: linear-gradient(180deg, #8a6a4a 0%, #5c4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-player-moved-to-tears .player-torso { position:absolute; bottom:30%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(-5deg); animation: pmt-torso 6s ease-in-out infinite; }
.scn-player-moved-to-tears .player-hand { position:absolute; bottom:40%; left:55%; width:10px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 20% 20%; transform: rotate(30deg); animation: pmt-hand 3s ease-in-out infinite; }
.scn-player-moved-to-tears .tear-1 { position:absolute; bottom:32%; left:49%; width:4px; height:6px; background: radial-gradient(circle, #c8d0ff 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 6px #c8d0ff; animation: pmt-tear 2s ease-in-out infinite; }
.scn-player-moved-to-tears .tear-2 { position:absolute; bottom:30%; left:52%; width:3px; height:5px; background: radial-gradient(circle, #c8d0ff 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 4px #c8d0ff; animation: pmt-tear 2.5s ease-in-out infinite 0.5s; }
.scn-player-moved-to-tears .spotlight-warm { position:absolute; top:5%; left:40%; width:140px; height:180px; background: radial-gradient(ellipse, rgba(255,240,200,.5) 0%, transparent 70%); filter: blur(10px); animation: pmt-spot 4s ease-in-out infinite alternate; }
@keyframes pmt-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes pmt-torso { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 25% { transform: translateX(-50%) rotate(0deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(5deg) translateY(0); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } }
@keyframes pmt-hand { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(40deg) translateY(-3px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes pmt-tear { 0% { opacity:0; transform: translateY(0) scale(1); } 25% { opacity:1; transform: translateY(5px) scale(1.2); } 50% { opacity:0.8; transform: translateY(10px) scale(0.9); } 100% { opacity:0; transform: translateY(15px) scale(0.5); } }
@keyframes pmt-spot { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:.7; transform: translateX(-50%) scale(0.95); } }

.scn-hamlet-use-after-honour { background: linear-gradient(180deg, #fff8e0 0%, #e0d0a0 100%), radial-gradient(ellipse at 50% 30%, #fff8c0 0%, transparent 80%); }
.scn-hamlet-use-after-honour .sky-bright { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #fff8d0 0%, #e8d8a0 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; animation: hah-sky 15s ease-in-out infinite alternate; }
.scn-hamlet-use-after-honour .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-hamlet-use-after-honour .hamlet-figure { position:absolute; bottom:35%; 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: hah-hamlet 3s ease-in-out infinite; }
.scn-hamlet-use-after-honour .player-figure { position:absolute; bottom:35%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hah-player 3.5s ease-in-out infinite 0.2s; }
.scn-hamlet-use-after-honour .scroll { position:absolute; bottom:40%; left:48%; width:20px; height:12px; background: linear-gradient(180deg, #f0e0b0 0%, #c8b080 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform: rotate(-20deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: hah-scroll 5s ease-in-out infinite; }
.scn-hamlet-use-after-honour .feather { position:absolute; bottom:45%; left:60%; width:6px; height:20px; background: linear-gradient(180deg, #d08040 0%, #a06030 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: hah-feather 4s ease-in-out infinite; }
.scn-hamlet-use-after-honour .sunburst { position:absolute; top:5%; left:50%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,240,200,.7) 0%, transparent 70%); filter: blur(6px); transform: translateX(-50%); animation: hah-sun 6s ease-in-out infinite alternate; }
@keyframes hah-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hah-hamlet { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(5px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-5px) translateY(-1px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hah-player { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hah-scroll { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes hah-feather { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(40deg) translateY(0); } }
@keyframes hah-sun { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.15); } 100% { opacity:.8; transform: translateX(-50%) scale(0.9); } }

/* scene claudius-polonius-spy-plot */
.scn-claudius-polonius-spy-plot {
  background: linear-gradient(135deg, #d4b896 0%, #b89b7a 40%, #a0815e 100%), radial-gradient(ellipse at 70% 20%, #fff2d0 0%, transparent 60%);
}
.scn-claudius-polonius-spy-plot .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dac0 0%, #c8b498 100%);
  box-shadow: inset 0 40px 60px rgba(0,0,0,0.15);
}
.scn-claudius-polonius-spy-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b7355 0%, #6b573f 100%);
  border-radius: 0 0 8% 8%;
}
.scn-claudius-polonius-spy-plot .curtain {
  position: absolute; top: 0; left: 25%; right: 25%; bottom: 20%;
  background: linear-gradient(90deg, #9a7b5c 0%, #c8a77e 20%, #a88561 40%, #d4b48a 60%, #b8956c 80%, #9a7b5c 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.3));
  animation: cp1-curtain 6s ease-in-out infinite alternate;
}
.scn-claudius-polonius-spy-plot .figure-a {
  position: absolute; bottom: 30%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2c1e 0%, #1e150c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp1-peek 4s ease-in-out infinite;
}
.scn-claudius-polonius-spy-plot .figure-b {
  position: absolute; bottom: 30%; right: 28%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #4a3826 0%, #23190e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp1-peek 4.5s ease-in-out infinite -1s;
}
.scn-claudius-polonius-spy-plot .light-ray {
  position: absolute; top: 8%; left: 55%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,245,200,0.3) 0%, transparent 80%);
  transform: rotate(-20deg) skewX(10deg);
  filter: blur(6px);
  animation: cp1-light 8s ease-in-out infinite alternate;
}
.scn-claudius-polonius-spy-plot .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: cp1-shadow 5s ease-in-out infinite alternate;
}
@keyframes cp1-curtain {
  0%   { transform: translateY(0) scaleY(1); }
  50%  { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes cp1-peek {
  0%   { transform: translateX(0) rotate(0deg); }
  30%  { transform: translateX(3px) rotate(2deg); }
  60%  { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cp1-light {
  0%   { opacity: 0.3; transform: rotate(-20deg) skewX(10deg) scaleX(1); }
  50%  { opacity: 0.7; transform: rotate(-18deg) skewX(12deg) scaleX(1.1); }
  100% { opacity: 0.4; transform: rotate(-22deg) skewX(8deg) scaleX(0.9); }
}
@keyframes cp1-shadow {
  0%   { opacity: 0.2; transform: scaleX(1); }
  100% { opacity: 0.4; transform: scaleX(1.4); }
}

/* scene gertrude-leaves-plot */
.scn-gertrude-leaves-plot {
  background: linear-gradient(180deg, #d9e0e8 0%, #b6c4d0 50%, #9aaebf 100%), radial-gradient(ellipse at 50% 0%, #f0f4f8 0%, transparent 60%);
}
.scn-gertrude-leaves-plot .wall {
  position: absolute; inset: 0 0 38% 0;
  background: linear-gradient(180deg, #e3eaf0 0%, #c5d1de 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.05);
}
.scn-gertrude-leaves-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #b7a58c 0%, #92806a 100%);
  border-radius: 0 0 12% 12%;
}
.scn-gertrude-leaves-plot .window {
  position: absolute; top: 12%; left: 38%; width: 90px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #fcf8e8 0%, #d4cfc0 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,248,200,0.6), inset 0 0 20px rgba(0,0,0,0.1);
  animation: gl2-light 10s ease-in-out infinite alternate;
}
.scn-gertrude-leaves-plot .bookshelf {
  position: absolute; top: 15%; right: 8%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #8b7355 0%, #6b573f 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.15);
}
.scn-gertrude-leaves-plot .figure-ophelia {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #c8b096 0%, #a0846a 30%, #7a604a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gl2-walk 8s ease-in-out infinite;
}
.scn-gertrude-leaves-plot .book {
  position: absolute; bottom: 42%; left: 36%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: left center;
  animation: gl2-book 6s ease-in-out infinite alternate;
}
.scn-gertrude-leaves-plot .curtain {
  position: absolute; top: 0; left: 10%; right: 55%; bottom: 25%;
  background: linear-gradient(135deg, #b8a88a 0%, #c8b89a 30%, #a89070 60%, #b8a88a 100%);
  border-radius: 0 0 40% 0 / 0 0 80% 0;
  filter: drop-shadow(4px 4px 8px rgba(0,0,0,0.2));
  animation: gl2-curtain 12s ease-in-out infinite alternate;
}
@keyframes gl2-light {
  0%   { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,248,200,0.4); }
  50%  { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,248,200,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 8px rgba(255,248,200,0.5); }
}
@keyframes gl2-walk {
  0%   { transform: translateX(-10px) rotate(-2deg); }
  25%  { transform: translateX(0px) rotate(1deg); }
  50%  { transform: translateX(10px) rotate(-1deg); }
  75%  { transform: translateX(20px) rotate(2deg); }
  100% { transform: translateX(30px) rotate(0deg); }
}
@keyframes gl2-book {
  0%   { transform: rotate(0deg) scaleX(1); }
  50%  { transform: rotate(10deg) scaleX(1.05); }
  100% { transform: rotate(-5deg) scaleX(0.95); }
}
@keyframes gl2-curtain {
  0%   { transform: translateX(0) scaleY(1); }
  50%  { transform: translateX(3px) scaleY(1.02); }
  100% { transform: translateX(-2px) scaleY(0.98); }
}

/* scene claudius-conscience-stricken */
.scn-claudius-conscience-stricken {
  background: linear-gradient(180deg, #a07858 0%, #785840 30%, #4a3020 70%, #2a1a10 100%), radial-gradient(ellipse at 50% 0%, #c0a080 0%, transparent 60%);
}
.scn-claudius-conscience-stricken .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a705a 0%, #5a4030 100%);
  box-shadow: inset 0 30px 50px rgba(0,0,0,0.3);
}
.scn-claudius-conscience-stricken .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(135deg, #403020 0%, #2a1a10 50%, #1a0e08 100%);
  border-radius: 0 0 6% 6%;
}
.scn-claudius-conscience-stricken .altar {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-claudius-conscience-stricken .figure-claudius {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc3-tremble 3s ease-in-out infinite;
}
.scn-claudius-conscience-stricken .crown {
  position: absolute; bottom: 55%; left: 47%; width: 24px; height: 14px;
  background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: center bottom;
  animation: cc3-crown 4s ease-in-out infinite alternate;
}
.scn-claudius-conscience-stricken .prayer-book {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 22px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 5%;
  animation: cc3-book 6s ease-in-out infinite alternate;
}
.scn-claudius-conscience-stricken .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: cc3-shadow 5s ease-in-out infinite alternate;
}
@keyframes cc3-tremble {
  0%   { transform: translateX(0) rotate(0deg) scaleY(1); }
  20%  { transform: translateX(2px) rotate(1deg) scaleY(1.01); }
  40%  { transform: translateX(-1px) rotate(-0.5deg) scaleY(0.99); }
  60%  { transform: translateX(3px) rotate(1.5deg) scaleY(1.01); }
  80%  { transform: translateX(-2px) rotate(-1deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes cc3-crown {
  0%   { transform: rotate(0deg) translateY(0); }
  50%  { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(1px); }
}
@keyframes cc3-book {
  0%   { transform: rotate(0deg) scaleX(1); }
  50%  { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(-10deg) scaleX(0.9); }
}
@keyframes cc3-shadow {
  0%   { opacity: 0.4; transform: scaleX(1); }
  100% { opacity: 0.8; transform: scaleX(1.3); }
}

/* scene to-be-or-not-to-be */
.scn-to-be-or-not-to-be {
  background: linear-gradient(180deg, #8a9aad 0%, #6a7a8a 40%, #4a5a6a 100%), radial-gradient(ellipse at 50% 20%, #b0c4d8 0%, transparent 70%);
}
.scn-to-be-or-not-to-be .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #9aacbe 0%, #6a7a8a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-to-be-or-not-to-be .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 8% 8%;
}
.scn-to-be-or-not-to-be .window {
  position: absolute; top: 8%; left: 30%; width: 120px; height: 150px;
  background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #c8b8a0 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 50px 20px rgba(240,232,200,0.5), inset 0 0 30px rgba(0,0,0,0.1);
  animation: tb4-window 12s ease-in-out infinite alternate;
}
.scn-to-be-or-not-to-be .figure-hamlet {
  position: absolute; bottom: 25%; left: 40%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tb4-sway 4s ease-in-out infinite;
}
.scn-to-be-or-not-to-be .skull {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 22px;
  background: radial-gradient(ellipse at 50% 40%, #d4c4a0 0%, #a09070 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tb4-skull 8s ease-in-out infinite alternate;
}
.scn-to-be-or-not-to-be .table {
  position: absolute; bottom: 18%; left: 45%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-to-be-or-not-to-be .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-to-be-or-not-to-be .candle::before {
  content: '';
  position: absolute; top: -8px; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #ffa040, 0 0 32px 12px rgba(255,160,64,0.4);
  animation: tb4-flicker 2s ease-in-out infinite alternate;
}
@keyframes tb4-window {
  0%   { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(240,232,200,0.3); }
  50%  { opacity: 1; box-shadow: 0 0 60px 25px rgba(240,232,200,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 40px 15px rgba(240,232,200,0.4); }
}
@keyframes tb4-sway {
  0%   { transform: rotate(0deg) translateY(0); }
  25%  { transform: rotate(1.5deg) translateY(-2px); }
  50%  { transform: rotate(0deg) translateY(0); }
  75%  { transform: rotate(-1.5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes tb4-skull {
  0%   { transform: rotate(0deg) translateY(0); }
  50%  { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(1px); }
}
@keyframes tb4-flicker {
  0%   { opacity: 0.7; transform: translateX(-50%) scale(0.9); box-shadow: 0 0 10px 3px #ffa040, 0 0 20px 8px rgba(255,160,64,0.3); }
  50%  { opacity: 1; transform: translateX(-50%) scale(1.1); box-shadow: 0 0 24px 10px #ffa040, 0 0 48px 18px rgba(255,160,64,0.5); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); box-shadow: 0 0 14px 5px #ffa040, 0 0 28px 10px rgba(255,160,64,0.35); }
}

.scn-claudius-fears-for-himself {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b09070 100%), radial-gradient(ellipse at 20% 80%, #fffae0 0%, transparent 60%);
}
.scn-claudius-fears-for-himself .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5c4428 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.3);
}
.scn-claudius-fears-for-himself .wall {
  position:absolute; top:0; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #e3d5b8 0%, #c6b09a 100%);
}
.scn-claudius-fears-for-himself .window {
  position:absolute; top:12%; left:12%; width:30%; height:45%;
  background: linear-gradient(180deg, #c4e0f0 0%, #a0c8e0 100%);
  border: 8px solid #8a6f4a; border-radius: 12px;
  box-shadow: inset 0 0 30px rgba(255,255,200,.4);
  animation: cf-window 8s ease-in-out infinite alternate;
}
.scn-claudius-fears-for-himself .sunray {
  position:absolute; top:12%; left:12%; width:30%; height:45%;
  background: linear-gradient(135deg, rgba(255,255,230,.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: cf-sunray 12s ease-in-out infinite alternate;
}
.scn-claudius-fears-for-himself .throne {
  position:absolute; bottom:35%; left:55%; width:100px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a2a1a 0%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,.5);
  animation: cf-throne 5s ease-in-out infinite;
}
.scn-claudius-fears-for-himself .figure {
  position:absolute; bottom:35%; left:55%; width:60px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-figure 4s ease-in-out infinite alternate;
}
.scn-claudius-fears-for-himself .shadow-figure {
  position:absolute; bottom:0%; left:60%; width:80px; height:100px;
  transform: skewX(-20deg);
  background: rgba(0,0,0,.15); filter: blur(4px);
  animation: cf-shadow 4s ease-in-out infinite alternate;
}
@keyframes cf-window {
  0% { opacity:.8; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.02); }
  100% { opacity:.85; transform: scaleX(.98); }
}
@keyframes cf-sunray {
  0% { opacity:.3; transform: rotate(-2deg); }
  50% { opacity:.6; transform: rotate(1deg); }
  100% { opacity:.2; transform: rotate(-1deg); }
}
@keyframes cf-throne {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes cf-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes cf-shadow {
  0% { opacity:.1; transform: skewX(-20deg) scaleY(1); }
  50% { opacity:.2; transform: skewX(-20deg) scaleY(1.1); }
  100% { opacity:.12; transform: skewX(-20deg) scaleY(1); }
}

.scn-hamlet-weeps-for-deed {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 40%, #a89070 100%), radial-gradient(ellipse at 80% 50%, #ffe8c0 0%, transparent 50%);
}
.scn-hamlet-weeps-for-deed .floor {
  position:absolute; bottom:0; left:0; right:0; height:38%;
  background: linear-gradient(180deg, #8b7355 0%, #5a4730 100%);
  box-shadow: inset 0 10px 16px rgba(0,0,0,.3);
}
.scn-hamlet-weeps-for-deed .wall {
  position:absolute; top:0; left:0; right:0; height:62%;
  background: linear-gradient(180deg, #d9c9ae 0%, #b8a88a 100%);
}
.scn-hamlet-weeps-for-deed .window {
  position:absolute; top:8%; right:10%; width:25%; height:50%;
  background: linear-gradient(180deg, #b8d8f0 0%, #8cb8d8 100%);
  border: 6px solid #7a5c3a; border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.3);
  animation: hw-window 7s ease-in-out infinite alternate;
}
.scn-hamlet-weeps-for-deed .body-draped {
  position:absolute; bottom:22%; left:30%; width:100px; height:50px;
  background: linear-gradient(180deg, #dcd0c0 0%, #b0a090 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: hw-body 6s ease-in-out infinite;
}
.scn-hamlet-weeps-for-deed .hamlet {
  position:absolute; bottom:22%; left:25%; width:40px; height:70px;
  transform: translateX(-50%) rotate(5deg);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hw-hamlet 3s ease-in-out infinite alternate;
}
.scn-hamlet-weeps-for-deed .gertrude {
  position:absolute; bottom:22%; left:48%; width:50px; height:75px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  animation: hw-gertrude 5s ease-in-out infinite alternate;
}
.scn-hamlet-weeps-for-deed .curtain {
  position:absolute; top:0; left:60%; width:40%; height:100%;
  background: linear-gradient(90deg, #802020 0%, #5a1515 50%, #3a0a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,.4));
  animation: hw-curtain 10s ease-in-out infinite alternate;
}
@keyframes hw-window {
  0% { opacity:.7; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.03); }
  100% { opacity:.8; transform: scaleY(.98); }
}
@keyframes hw-body {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hw-hamlet {
  0% { transform: translateX(-50%) rotate(3deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
}
@keyframes hw-gertrude {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes hw-curtain {
  0% { transform: skewX(-2deg); }
  50% { transform: skewX(1deg); }
  100% { transform: skewX(-2deg); }
}

.scn-hamlet-safely-stowed {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #050510 100%), radial-gradient(ellipse at 30% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-hamlet-safely-stowed .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1e1e2a 0%, #0a0a12 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-hamlet-safely-stowed .wall {
  position:absolute; top:0; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
}
.scn-hamlet-safely-stowed .curtain {
  position:absolute; top:0; right:10%; width:35%; height:100%;
  background: linear-gradient(180deg, #3a1414 0%, #1a0808 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  filter: drop-shadow(-10px 0 10px rgba(0,0,0,.5));
  animation: hs-curtain 12s ease-in-out infinite alternate;
}
.scn-hamlet-safely-stowed .chest {
  position:absolute; bottom:20%; left:20%; width:80px; height:45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: hs-chest 8s ease-in-out infinite;
}
.scn-hamlet-safely-stowed .hamlet {
  position:absolute; bottom:22%; right:20%; width:45px; height:70px;
  transform: translateX(50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs-hamlet 4s ease-in-out infinite alternate;
}
.scn-hamlet-safely-stowed .lantern {
  position:absolute; bottom:30%; right:30%; width:12px; height:18px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.4);
  animation: hs-lantern 2s ease-in-out infinite alternate;
}
.scn-hamlet-safely-stowed .guard1 {
  position:absolute; bottom:22%; left:5%; width:30px; height:50px;
  background: linear-gradient(180deg, #202030 0%, #10101a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hs-guard1 3s ease-in-out infinite alternate;
}
.scn-hamlet-safely-stowed .guard2 {
  position:absolute; bottom:22%; left:18%; width:30px; height:50px;
  background: linear-gradient(180deg, #202030 0%, #10101a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hs-guard2 3.5s ease-in-out infinite alternate 0.5s;
}
@keyframes hs-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(2px); }
}
@keyframes hs-chest {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hs-hamlet {
  0% { transform: translateX(50%) translateY(0) rotate(-3deg); }
  50% { transform: translateX(50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(50%) translateY(0) rotate(0); }
}
@keyframes hs-lantern {
  0% { opacity:.7; box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,.3); }
  50% { opacity:1; box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,.5); }
  100% { opacity:.8; box-shadow: 0 0 18px 5px #ffd080, 0 0 35px 10px rgba(255,208,128,.35); }
}
@keyframes hs-guard1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hs-guard2 {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

.scn-hamlet-sponge-metaphor {
  background: linear-gradient(180deg, #fff5d0 0%, #e8dbb0 40%, #c8b890 100%), radial-gradient(ellipse at 50% 20%, #fffbe0 0%, transparent 50%);
}
.scn-hamlet-sponge-metaphor .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b09870 0%, #806848 100%);
  box-shadow: inset 0 12px 18px rgba(0,0,0,.2);
}
.scn-hamlet-sponge-metaphor .wall {
  position:absolute; top:0; left:0; right:0; height:70%;
  background: linear-gradient(180deg, #f0e4c8 0%, #d8c8a8 100%);
}
.scn-hamlet-sponge-metaphor .window {
  position:absolute; top:10%; left:15%; width:30%; height:45%;
  background: linear-gradient(180deg, #d8eaf8 0%, #a0c0d8 100%);
  border: 6px solid #a07850; border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.4);
  animation: hm-window 9s ease-in-out infinite alternate;
}
.scn-hamlet-sponge-metaphor .sponge {
  position:absolute; bottom:30%; left:50%; width:120px; height:100px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 40%, #c8a060 0%, #a08040 50%, #806030 100%);
  border-radius: 40% 50% 30% 50% / 50% 40% 50% 30%;
  box-shadow: 0 10px 30px rgba(0,0,0,.3);
  animation: hm-sponge 6s ease-in-out infinite;
}
.scn-hamlet-sponge-metaphor .crown {
  position:absolute; bottom:50%; left:50%; width:50px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d080 0%, #c09850 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: hm-crown 4s ease-in-out infinite alternate;
}
.scn-hamlet-sponge-metaphor .hamlet {
  position:absolute; bottom:20%; left:20%; width:40px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hm-hamlet 3s ease-in-out infinite alternate;
}
.scn-hamlet-sponge-metaphor .droplet1 {
  position:absolute; bottom:60%; left:48%; width:8px; height:12px;
  background: radial-gradient(circle, #d0a060 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,96,.3);
  animation: hm-droplet1 5s ease-in-out infinite;
}
.scn-hamlet-sponge-metaphor .droplet2 {
  position:absolute; bottom:55%; left:55%; width:6px; height:10px;
  background: radial-gradient(circle, #d0a060 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,96,.3);
  animation: hm-droplet2 5.5s ease-in-out infinite 1s;
}
@keyframes hm-window {
  0% { opacity:.75; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.02); }
  100% { opacity:.8; transform: scaleX(.98); }
}
@keyframes hm-sponge {
  0% { transform: translateX(-50%) scale(1) rotate(-1deg); }
  50% { transform: translateX(-50%) scale(1.04) rotate(2deg); }
  100% { transform: translateX(-50%) scale(.98) rotate(0); }
}
@keyframes hm-crown {
  0% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes hm-hamlet {
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) rotate(0) scale(1); }
}
@keyframes hm-droplet1 {
  0% { transform: translate(0,0); opacity:.8; }
  50% { transform: translate(4px,8px); opacity:.4; }
  100% { transform: translate(0,0); opacity:.8; }
}
@keyframes hm-droplet2 {
  0% { transform: translate(0,0); opacity:.8; }
  50% { transform: translate(-2px,10px); opacity:.3; }
  100% { transform: translate(0,0); opacity:.8; }
}

/* hamlet-bids-mother-secrecy */
.scn-hamlet-bids-mother-secrecy { background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 50%, #1a121a 100%), radial-gradient(ellipse at 50% 80%, #4a2a2a 0%, transparent 70%); }
.scn-hamlet-bids-mother-secrecy .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2e1e1e 0%, #1e1212 100%); }
.scn-hamlet-bids-mother-secrecy .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1a12 0%, #0e0a0a 100%); }
.scn-hamlet-bids-mother-secrecy .curtain-left { position:absolute; left:0; top:0; bottom:0; width:20%; background: linear-gradient(90deg, #5e2a1a 0%, #3e1a0a 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; animation: hbm-curtain 6s ease-in-out infinite; }
.scn-hamlet-bids-mother-secrecy .curtain-right { position:absolute; right:0; top:0; bottom:0; width:20%; background: linear-gradient(270deg, #5e2a1a 0%, #3e1a0a 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; animation: hbm-curtain 6s ease-in-out infinite alternate; }
.scn-hamlet-bids-mother-secrecy .candle { position:absolute; bottom:40%; left:30%; width:8px; height:25px; background: linear-gradient(180deg, #c8a060 0%, #8a6040 40%, #4a3020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,96,0.5); animation: hbm-candle 3s ease-in-out infinite; }
.scn-hamlet-bids-mother-secrecy .hamlet-figure { position:absolute; bottom:30%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hbm-hamlet 4s ease-in-out infinite; }
.scn-hamlet-bids-mother-secrecy .gertrude-figure { position:absolute; bottom:30%; right:25%; width:22px; height:45px; background: linear-gradient(180deg, #2a1e2e 0%, #1a121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hbm-gertrude 5s ease-in-out infinite; }
.scn-hamlet-bids-mother-secrecy .shadow-hamlet { position:absolute; bottom:30%; left:25%; width:20px; height:10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); transform: translateY(100%) scaleX(1.5); opacity:0.4; animation: hbm-shadow 4s ease-in-out infinite; }
.scn-hamlet-bids-mother-secrecy .shadow-gertrude { position:absolute; bottom:30%; right:25%; width:22px; height:10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); transform: translateY(100%) scaleX(1.5); opacity:0.4; animation: hbm-shadow 5s ease-in-out infinite; }
@keyframes hbm-curtain { 0%,100% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.05); opacity:1 } }
@keyframes hbm-candle { 0% { box-shadow: 0 0 18px 4px rgba(200,160,96,0.4); transform: translateY(0) scale(1); } 30% { box-shadow: 0 0 25px 8px rgba(200,160,96,0.6); transform: translateY(-1px) scale(1.02); } 60% { box-shadow: 0 0 15px 3px rgba(200,160,96,0.3); transform: translateY(0) scale(0.98); } 100% { box-shadow: 0 0 20px 5px rgba(200,160,96,0.5); transform: translateY(0) scale(1); } }
@keyframes hbm-hamlet { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hbm-gertrude { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(1px) rotate(0deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hbm-shadow { 0%,100% { transform: translateY(100%) scaleX(1.5); opacity:0.4; } 50% { transform: translateY(100%) scaleX(1.7); opacity:0.6; } }

/* gertrude-pledges-secrecy */
.scn-gertrude-pledges-secrecy { background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 50%, #1a121a 100%), radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%); }
.scn-gertrude-pledges-secrecy .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2e1e1e 0%, #1e1212 100%); }
.scn-gertrude-pledges-secrecy .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1a12 0%, #0e0a0a 100%); }
.scn-gertrude-pledges-secrecy .table { position:absolute; bottom:25%; left:10%; right:10%; height:8px; background: linear-gradient(180deg, #5e4a3a 0%, #3e2a1a 100%); border-radius: 2px; }
.scn-gertrude-pledges-secrecy .candle { position:absolute; bottom:40%; left:45%; width:8px; height:25px; background: linear-gradient(180deg, #c8a060 0%, #8a6040 40%, #4a3020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,96,0.5); animation: gps-candle 3s ease-in-out infinite; }
.scn-gertrude-pledges-secrecy .gertrude-head { position:absolute; bottom:45%; right:30%; width:18px; height:22px; background: linear-gradient(180deg, #2e1a1a 0%, #1e0e0e 100%); border-radius: 50% 50% 40% 40%; transform: rotate(5deg); animation: gps-head 6s ease-in-out infinite; }
.scn-gertrude-pledges-secrecy .gertrude-hand { position:absolute; bottom:40%; right:35%; width:12px; height:16px; background: linear-gradient(180deg, #2e1a1a 0%, #1e0e0e 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-20deg); animation: gps-hand 4s ease-in-out infinite; }
.scn-gertrude-pledges-secrecy .letter { position:absolute; bottom:35%; right:25%; width:14px; height:20px; background: linear-gradient(180deg, #c8b080 0%, #a09060 100%); border: 1px solid #6a5a3a; transform: rotate(15deg); animation: gps-letter 8s ease-in-out infinite; }
.scn-gertrude-pledges-secrecy .shadow { position:absolute; bottom:25%; left:5%; right:5%; height:5px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); opacity:0.5; animation: gps-shadow 5s ease-in-out infinite; }
@keyframes gps-candle { 0% { box-shadow: 0 0 18px 4px rgba(200,160,96,0.4); transform: translateY(0) scale(1); } 30% { box-shadow: 0 0 25px 8px rgba(200,160,96,0.6); transform: translateY(-1px) scale(1.02); } 60% { box-shadow: 0 0 15px 3px rgba(200,160,96,0.3); transform: translateY(0) scale(0.98); } 100% { box-shadow: 0 0 20px 5px rgba(200,160,96,0.5); transform: translateY(0) scale(1); } }
@keyframes gps-head { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes gps-hand { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-1px); } 50% { transform: rotate(-25deg) translateY(0); } 75% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes gps-letter { 0%,100% { transform: rotate(15deg) scale(1); opacity:0.9; } 50% { transform: rotate(20deg) scale(1.05); opacity:1; } }
@keyframes gps-shadow { 0%,100% { opacity:0.3; filter: blur(4px); } 50% { opacity:0.5; filter: blur(6px); } }

/* hamlet-drags-polonius */
.scn-hamlet-drags-polonius { background: linear-gradient(180deg, #0e0e1e 0%, #1a0e0e 50%, #0a0a0a 100%), radial-gradient(ellipse at 30% 50%, #2a0e0e 0%, transparent 70%); }
.scn-hamlet-drags-polonius .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%); }
.scn-hamlet-drags-polonius .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0e0a0a 0%, #020202 100%); }
.scn-hamlet-drags-polonius .doorway { position:absolute; right:15%; top:10%; bottom:0; width:25%; background: #0a0a0a; border-left: 2px solid #2a1a1a; }
.scn-hamlet-drags-polonius .hamlet-bent { position:absolute; bottom:30%; left:30%; width:20px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(30deg) translateY(-10px); transform-origin: bottom center; animation: hdp-hamlet 5s ease-in-out infinite; }
.scn-hamlet-drags-polonius .polonius-body { position:absolute; bottom:30%; left:50%; width:40px; height:15px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 20% 20% 40% 40%; transform: rotate(10deg); animation: hdp-body 7s ease-in-out infinite; }
.scn-hamlet-drags-polonius .candle-flicker { position:absolute; bottom:40%; left:25%; width:8px; height:25px; background: linear-gradient(180deg, #c8a060 0%, #8a6040 40%, #4a3020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,96,0.4); animation: hdp-candle 3s ease-in-out infinite; }
.scn-hamlet-drags-polonius .bloodstain { position:absolute; bottom:30%; left:55%; width:12px; height:8px; background: #5e1a1d; border-radius: 50%; filter: blur(2px); opacity:0.8; animation: hdp-blood 10s ease-in-out infinite; }
.scn-hamlet-drags-polonius .shadow-pull { position:absolute; bottom:30%; left:35%; width:30px; height:15px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(5px); transform: translateY(100%) scaleX(2); animation: hdp-shadow 5s ease-in-out infinite; }
@keyframes hdp-hamlet { 0% { transform: rotate(30deg) translateY(-10px) translateX(0); } 25% { transform: rotate(35deg) translateY(-12px) translateX(3px); } 50% { transform: rotate(28deg) translateY(-8px) translateX(-1px); } 75% { transform: rotate(32deg) translateY(-11px) translateX(2px); } 100% { transform: rotate(30deg) translateY(-10px) translateX(0); } }
@keyframes hdp-body { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-3px); } }
@keyframes hdp-candle { 0% { box-shadow: 0 0 18px 4px rgba(200,160,96,0.3); transform: translateY(0) scale(1); } 30% { box-shadow: 0 0 25px 8px rgba(200,160,96,0.5); transform: translateY(-1px) scale(1.02); } 60% { box-shadow: 0 0 15px 3px rgba(200,160,96,0.2); transform: translateY(0) scale(0.98); } 100% { box-shadow: 0 0 20px 5px rgba(200,160,96,0.4); transform: translateY(0) scale(1); } }
@keyframes hdp-blood { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } }
@keyframes hdp-shadow { 0%,100% { opacity:0.3; filter: blur(5px); } 50% { opacity:0.6; filter: blur(7px); } }

/* gertrude-tells-claudius */
.scn-gertrude-tells-claudius { background: linear-gradient(180deg, #e0d0b0 0%, #c8b890 100%), radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 60%); }
.scn-gertrude-tells-claudius .bg-wall-light { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); }
.scn-gertrude-tells-claudius .bg-floor-pattern { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(45deg, #c0a880 0px, #c0a880 4px, #b09870 4px, #b09870 8px); animation: gtc-floor 15s linear infinite; }
.scn-gertrude-tells-claudius .window-light { position:absolute; top:10%; left:20%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,0.8) 0%, rgba(200,200,150,0.2) 100%); border-radius: 5% 5% 50% 50% / 20% 20% 60% 60%; animation: gtc-window 8s ease-in-out infinite; }
.scn-gertrude-tells-claudius .throne { position:absolute; bottom:20%; left:5%; width:50%; height:60%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; transform: scale(0.9); animation: gtc-throne 12s ease-in-out infinite; }
.scn-gertrude-tells-claudius .claudius-figure { position:absolute; bottom:20%; left:10%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gtc-claudius 6s ease-in-out infinite; }
.scn-gertrude-tells-claudius .gertrude-figure { position:absolute; bottom:25%; right:15%; width:20px; height:45px; background: linear-gradient(180deg, #4a3a4e 0%, #2a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gtc-gertrude 5s ease-in-out infinite; }
.scn-gertrude-tells-claudius .shadow-king { position:absolute; bottom:20%; left:10%; width:30px; height:20px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(5px); transform: translateY(100%) scaleX(2); animation: gtc-shadow 6s ease-in-out infinite; }
.scn-gertrude-tells-claudius .ray-light { position:absolute; top:10%; left:20%; width:100%; height:100%; background: linear-gradient(135deg, rgba(255,255,200,0.1) 0%, transparent 50%); transform: skewX(-30deg); animation: gtc-ray 12s ease-in-out infinite; }
@keyframes gtc-floor { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }
@keyframes gtc-window { 0%,100% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } }
@keyframes gtc-throne { 0%,100% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.92) translateY(-2px); } }
@keyframes gtc-claudius { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gtc-gertrude { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gtc-shadow { 0%,100% { opacity:0.1; filter: blur(5px); } 50% { opacity:0.2; filter: blur(7px); } }
@keyframes gtc-ray { 0%,100% { opacity:0.3; transform: skewX(-30deg) scaleX(1); } 50% { opacity:0.5; transform: skewX(-28deg) scaleX(1.1); } }

.scn-hamlet-recalls-aeneas-tale {
  background: linear-gradient(180deg, #c8913c 0%, #8c5a2b 40%, #3d2210 100%),
              radial-gradient(ellipse at 50% 30%, #f0c78a 0%, transparent 60%);
}
.scn-hamlet-recalls-aeneas-tale .stage {
  position: absolute; inset: 60% 5% 0 5%; background: linear-gradient(#5a3c1a, #2b1c0a);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px #1a0e05;
}
.scn-hamlet-recalls-aeneas-tale .curtain-curve {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, #6b3a2a 0%, #a55a3a 50%, #6b3a2a 100%);
  border-radius: 0 0 40% 40%; animation: ht1-curtain 8s ease-in-out infinite;
}
.scn-hamlet-recalls-aeneas-tale .figure {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ht1-figure 4s ease-in-out infinite;
}
.scn-hamlet-recalls-aeneas-tale .book {
  position: absolute; bottom: 33%; left: 45%; width: 30px; height: 20px;
  background: #8c6b3c; border-radius: 4px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ht1-book 6s ease-in-out infinite;
}
.scn-hamlet-recalls-aeneas-tale .table {
  position: absolute; bottom: 30%; left: 42%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #5a3a1a, #7a4a2a);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-hamlet-recalls-aeneas-tale .candle {
  position: absolute; bottom: 35%; left: 48%; width: 6px; height: 20px;
  background: #f5e0b0; border-radius: 3px; box-shadow: 0 0 10px #ffd080;
  animation: ht1-candle 3s ease-in-out infinite alternate;
}
.scn-hamlet-recalls-aeneas-tale .glow {
  position: absolute; bottom: 35%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%; transform: translate(-50%, -50%); animation: ht1-glow 3s ease-in-out infinite alternate;
}
.scn-hamlet-recalls-aeneas-tale .shadow-wall {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 100px;
  background: rgba(0,0,0,.3); filter: blur(10px); border-radius: 50%;
  animation: ht1-shadow 5s ease-in-out infinite;
}
@keyframes ht1-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes ht1-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ht1-book { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes ht1-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(0.95); } }
@keyframes ht1-glow { 0% { opacity:0.7; transform: translate(-50%,-50%) scale(0.9); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1); } 100% { opacity:0.8; transform: translate(-50%,-50%) scale(1); } }
@keyframes ht1-shadow { 0% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.05); opacity:0.4; } 100% { transform: scale(1); opacity:0.3; } }

.scn-first-player-pyrrhus-speech {
  background: linear-gradient(180deg, #2b1a0a 0%, #4a2a1a 40%, #6b3a2a 100%),
              radial-gradient(ellipse at 50% 10%, #e07040 0%, transparent 60%);
}
.scn-first-player-pyrrhus-speech .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a00, #3a1a0a); border-radius: 10% 10% 0 0;
}
.scn-first-player-pyrrhus-speech .backdrop {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}
.scn-first-player-pyrrhus-speech .pyrrhus {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: fp2-pyrrhus 3s ease-in-out infinite;
}
.scn-first-player-pyrrhus-speech .helmet-plume {
  position: absolute; bottom: 75%; left: 50%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8553d, #8c2a1a); transform: translateX(-50%);
  border-radius: 50% 50% 0 0; animation: fp2-plume 4s ease-in-out infinite alternate;
}
.scn-first-player-pyrrhus-speech .shield {
  position: absolute; bottom: 45%; left: 42%; width: 30px; height: 40px;
  background: radial-gradient(circle, #6b4a2a 30%, #4a2a1a 70%); border-radius: 50%;
  box-shadow: 0 0 10px #a06030; animation: fp2-shield 5s ease-in-out infinite;
}
.scn-first-player-pyrrhus-speech .sword {
  position: absolute; bottom: 55%; left: 62%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #a07040, #5a3a1a); border-radius: 2px;
  transform-origin: bottom center; animation: fp2-sword 2s ease-in-out infinite alternate;
}
.scn-first-player-pyrrhus-speech .sparks {
  position: absolute; bottom: 65%; left: 58%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 10%, transparent 70%);
  animation: fp2-sparks 1.5s linear infinite;
}
.scn-first-player-pyrrhus-speech .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: rgba(0,0,0,.5); filter: blur(8px); animation: fp2-shadow 6s ease-in-out infinite;
}
@keyframes fp2-pyrrhus { 0% { transform: translateX(-50%) rotate(0deg); } 33% { transform: translateX(-50%) rotate(2deg); } 66% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fp2-plume { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes fp2-shield { 0% { opacity:0.8; } 50% { opacity:1; box-shadow: 0 0 20px #c08050; } 100% { opacity:0.8; } }
@keyframes fp2-sword { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes fp2-sparks { 0% { opacity:1; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }
@keyframes fp2-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.6; } 100% { transform: scaleX(1); opacity:0.5; } }

.scn-pyrrhus-strikes-wide {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 50%, #2b1a0a 100%),
              radial-gradient(ellipse at 50% 20%, #a06030 0%, transparent 60%);
}
.scn-pyrrhus-strikes-wide .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00); border-radius: 5% 5% 0 0;
}
.scn-pyrrhus-strikes-wide .wall-left {
  position: absolute; inset: 0 60% 25% 0; background: linear-gradient(90deg, #4a2a1a, #3a1a0a);
}
.scn-pyrrhus-strikes-wide .wall-right {
  position: absolute; inset: 0 0 25% 60%; background: linear-gradient(270deg, #4a2a1a, #3a1a0a);
}
.scn-pyrrhus-strikes-wide .pyrrhus {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: ps3-pyrrhus 4s ease-in-out infinite;
}
.scn-pyrrhus-strikes-wide .sword-raised {
  position: absolute; bottom: 80%; left: 35%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #a07040, #5a3a1a); border-radius: 2px;
  transform-origin: bottom center; transform: rotate(30deg);
  animation: ps3-sword 3s ease-in-out infinite alternate;
}
.scn-pyrrhus-strikes-wide .priam {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a, #3a1a0a);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(10deg); animation: ps3-priam 5s ease-in-out infinite;
}
.scn-pyrrhus-strikes-wide .lightbeam {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(200,150,80,0.4) 0%, transparent 100%);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  animation: ps3-lightbeam 6s ease-in-out infinite alternate;
}
@keyframes ps3-pyrrhus { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ps3-sword { 0% { transform: rotate(30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }
@keyframes ps3-priam { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes ps3-lightbeam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-pyrrhus-pause-and-storm {
  background: linear-gradient(180deg, #1a0a00 0%, #2b1a0a 40%, #4a2a1a 100%),
              radial-gradient(ellipse at 80% 10%, #e08050 0%, transparent 60%);
}
.scn-pyrrhus-pause-and-storm .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0a00, #0a0500);
}
.scn-pyrrhus-pause-and-storm .sky {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  animation: pp4-sky 10s ease-in-out infinite alternate;
}
.scn-pyrrhus-pause-and-storm .pyrrhus-pause {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: pp4-pyrrhus 5s ease-in-out infinite;
}
.scn-pyrrhus-pause-and-storm .sword-down {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #a07040, #5a3a1a); border-radius: 2px;
  transform-origin: bottom center; transform: rotate(-20deg);
  animation: pp4-sword 4s ease-in-out infinite alternate;
}
.scn-pyrrhus-pause-and-storm .lightning {
  position: absolute; top: 10%; left: 60%; width: 8px; height: 40px;
  background: #d0a080; border-radius: 2px; filter: blur(2px);
  animation: pp4-lightning 3s ease-in-out infinite;
}
.scn-pyrrhus-pause-and-storm .darkness {
  position: absolute; inset: 0; background: rgba(0,0,0,0.3); animation: pp4-darkness 8s ease-in-out infinite alternate;
}
.scn-pyrrhus-pause-and-storm .dust-particles {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,150,100,0.3) 0%, transparent 100%);
  animation: pp4-dust 2s linear infinite;
}
@keyframes pp4-sky { 0% { opacity:0.8; } 50% { opacity:0.5; } 100% { opacity:0.8; } }
@keyframes pp4-pyrrhus { 0% { transform: translateX(-50%) translateY(0); } 33% { transform: translateX(-50%) translateY(-2px); } 66% { transform: translateX(-50%) translateY(2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pp4-sword { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes pp4-lightning { 0% { opacity:0; } 10% { opacity:1; } 15% { opacity:0; } 20% { opacity:1; } 25% { opacity:0; } 100% { opacity:0; } }
@keyframes pp4-darkness { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes pp4-dust { 0% { transform: scale(1) translateY(0); opacity:0.5; } 50% { transform: scale(1.5) translateY(-10px); opacity:0.2; } 100% { transform: scale(1) translateY(0); opacity:0.5; } }

/* one block per scene id. Append to style.css. */
.scn-hamlets-letter-read {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #6a5a4a 100%), radial-gradient(ellipse at 30% 40%, rgba(200,160,100,0.2) 0%, transparent 70%);
}
.scn-hamlets-letter-read .wall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, #2a1a0a 100%); animation: hl-wall 15s ease-in-out infinite alternate; }
.scn-hamlets-letter-read .table { position:absolute; bottom:22%; left:12%; right:12%; height:6%; background: linear-gradient(180deg, #8b5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: hl-table 5s ease-in-out infinite; }
.scn-hamlets-letter-read .letter { position:absolute; bottom:28%; left:45%; width:14%; height:10%; background: linear-gradient(135deg, #f5e0c0 0%, #e0c8a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.5); transform: rotate(-2deg); animation: hl-letter 4s ease-in-out infinite; }
.scn-hamlets-letter-read .candle { position:absolute; bottom:27%; left:30%; width:2%; height:12%; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 8px rgba(200,120,40,0.5); animation: hl-candle 6s ease-in-out infinite; }
.scn-hamlets-letter-read .flame { position:absolute; bottom:38.5%; left:30.5%; width:1.2%; height:3%; background: radial-gradient(circle, #ffd060 0%, #ffa040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 18px 6px #ffa040, 0 0 36px 12px rgba(255,160,64,0.3); animation: hl-flame 0.3s ease-in-out infinite alternate; }
.scn-hamlets-letter-read .hand { position:absolute; bottom:27%; right:28%; width:6%; height:9%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hl-hand 3s ease-in-out infinite; }
.scn-hamlets-letter-read .inkwell { position:absolute; bottom:26%; left:26%; width:3%; height:4%; background: radial-gradient(circle, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.6); animation: hl-ink 8s linear infinite; }
.scn-hamlets-letter-read .quill { position:absolute; bottom:28%; right:22%; width:0.8%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a0a 100%); border-radius: 0 0 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: hl-quill 2s ease-in-out infinite alternate; }
@keyframes hl-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hl-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hl-letter { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
@keyframes hl-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px) scaleY(1.03); } }
@keyframes hl-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 33% { transform: scale(1.2) translateY(-2px); opacity:1; } 66% { transform: scale(0.9) translateY(1px); opacity:0.8; } 100% { transform: scale(1.1) translateY(-1px); opacity:1; } }
@keyframes hl-hand { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(1px); } }
@keyframes hl-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hl-quill { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.05); } 100% { transform: rotate(12deg) scaleY(1); } }

.scn-horatio-to-find-hamlet {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #8a7a6a 100%), radial-gradient(ellipse at 50% 80%, rgba(200,180,140,0.15) 0%, transparent 70%);
}
.scn-horatio-to-find-hamlet .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); animation: hf-wall 12s ease-in-out infinite alternate; }
.scn-horatio-to-find-hamlet .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: radial-gradient(ellipse at 50% 0%, #2a1a0a 0%, #0a0500 100%); transform: perspective(600px) rotateX(10deg); animation: hf-floor 20s ease-in-out infinite; }
.scn-horatio-to-find-hamlet .door { position:absolute; bottom:12%; left:45%; width:10%; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: hf-door 8s ease-in-out infinite; }
.scn-horatio-to-find-hamlet .light-spill { position:absolute; bottom:5%; left:42%; width:16%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,80,0.5) 0%, transparent 70%); transform: scaleY(0.8); animation: hf-light 3s ease-in-out infinite alternate; }
.scn-horatio-to-find-hamlet .figure { position:absolute; bottom:10%; left:10%; width:6%; height:35%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hf-figure 5s ease-in-out infinite; }
.scn-horatio-to-find-hamlet .candle-sconce { position:absolute; bottom:60%; right:30%; width:2%; height:2%; background: radial-gradient(circle, #d0a060 0%, #8a5a20 100%); border-radius: 50%; box-shadow: 0 0 10px 2px #d0a060, 0 0 20px 6px rgba(200,120,40,0.3); animation: hf-sconce 4s ease-in-out infinite alternate; }
.scn-horatio-to-find-hamlet .frame { position:absolute; bottom:60%; left:20%; width:8%; height:20%; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border: 2px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: hf-frame 10s ease-in-out infinite; }
@keyframes hf-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hf-floor { 0%,100% { transform: perspective(600px) rotateX(10deg) translateY(0); } 50% { transform: perspective(600px) rotateX(10deg) translateY(-2px); } }
@keyframes hf-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02) translateX(-1px); } }
@keyframes hf-light { 0% { opacity:0.6; transform: scaleY(0.8) translateX(0); } 33% { opacity:1; transform: scaleY(1) translateX(2px); } 66% { opacity:0.7; transform: scaleY(0.9) translateX(-1px); } 100% { opacity:0.9; transform: scaleY(1) translateX(0); } }
@keyframes hf-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-1deg); } 50% { transform: translateX(16px) rotate(1deg); } 75% { transform: translateX(24px) rotate(-1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes hf-sconce { 0% { box-shadow: 0 0 8px 2px #d0a060; } 50% { box-shadow: 0 0 14px 4px #ffd060; } 100% { box-shadow: 0 0 8px 2px #d0a060; } }
@keyframes hf-frame { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-claudius-wins-laertes {
  background: linear-gradient(180deg, #d4c4a0 0%, #c4b490 50%, #b4a480 100%), radial-gradient(ellipse at 50% 30%, rgba(200,180,120,0.3) 0%, transparent 70%);
}
.scn-claudius-wins-laertes .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b0 0%, #c4b490 100%); animation: cw-wall 18s ease-in-out infinite alternate; }
.scn-claudius-wins-laertes .table { position:absolute; bottom:20%; left:15%; right:15%; height:5%; background: linear-gradient(180deg, #9a7a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: cw-table 10s ease-in-out infinite; }
.scn-claudius-wins-laertes .figure-claudius { position:absolute; bottom:28%; left:28%; width:8%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-figure-left 6s ease-in-out infinite; }
.scn-claudius-wins-laertes .figure-laertes { position:absolute; bottom:28%; right:28%; width:8%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-figure-right 6s ease-in-out infinite; animation-delay: -3s; }
.scn-claudius-wins-laertes .chair-left { position:absolute; bottom:16%; left:25%; width:8%; height:16%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: cw-chair 8s ease-in-out infinite; }
.scn-claudius-wins-laertes .chair-right { position:absolute; bottom:16%; right:25%; width:8%; height:16%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: cw-chair 8s ease-in-out infinite; animation-delay: -4s; }
.scn-claudius-wins-laertes .window { position:absolute; bottom:50%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #a0c0e0 0%, #8090b0 100%); border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,180,0.3); animation: cw-window 20s ease-in-out infinite alternate; }
.scn-claudius-wins-laertes .candle { position:absolute; bottom:26%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 12px 2px rgba(200,120,40,0.5); animation: cw-candle 7s ease-in-out infinite; }
@keyframes cw-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cw-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cw-figure-left { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.02) translateY(-1px); } 50% { transform: scaleY(0.98) translateY(1px); } 75% { transform: scaleY(1.01) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cw-figure-right { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.01) translateY(-1px); } 50% { transform: scaleY(0.99) translateY(1px); } 75% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cw-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cw-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes cw-candle { 0% { transform: translateY(0); opacity:0.9; } 50% { transform: translateY(-1px) scaleY(1.05); opacity:1; } 100% { transform: translateY(0); opacity:0.9; } }

.scn-claudius-reasons-hold-back {
  background: linear-gradient(180deg, #d4c4a0 0%, #c4b490 50%, #b4a480 100%), radial-gradient(ellipse at 30% 40%, rgba(200,160,80,0.2) 0%, transparent 70%);
}
.scn-claudius-reasons-hold-back .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b0 0%, #c4b490 100%); animation: cr-wall 18s ease-in-out infinite alternate; }
.scn-claudius-reasons-hold-back .desk { position:absolute; bottom:18%; left:10%; right:10%; height:7%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px 4px 10% 10% / 4px 4px 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: cr-desk 12s ease-in-out infinite; }
.scn-claudius-reasons-hold-back .candle { position:absolute; bottom:28%; left:30%; width:2%; height:10%; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 10px rgba(200,120,40,0.3); animation: cr-candle 8s ease-in-out infinite; }
.scn-claudius-reasons-hold-back .flame { position:absolute; bottom:37.5%; left:30.5%; width:1.2%; height:2.5%; background: radial-gradient(circle, #ffd060 0%, #ffa040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #ffa040, 0 0 32px 8px rgba(255,160,64,0.3); animation: cr-flame 0.4s ease-in-out infinite alternate; }
.scn-claudius-reasons-hold-back .paper { position:absolute; bottom:21%; left:45%; width:15%; height:8%; background: linear-gradient(135deg, #f5e6c8 0%, #e0d0b0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(-1deg); animation: cr-paper 6s ease-in-out infinite; }
.scn-claudius-reasons-hold-back .crown { position:absolute; bottom:25%; right:25%; width:8%; height:6%; background: linear-gradient(180deg, #b8860b 0%, #8a6500 100%); clip-path: polygon(20% 0%, 40% 35%, 60% 0%, 80% 35%, 100% 0%, 90% 70%, 10% 70%); animation: cr-crown 15s ease-in-out infinite; }
.scn-claudius-reasons-hold-back .hand { position:absolute; bottom:18%; right:40%; width:5%; height:8%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-hand 9s ease-in-out infinite; }
.scn-claudius-reasons-hold-back .scroll { position:absolute; bottom:22%; left:20%; width:3%; height:6%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 6px rgba(0,0,0,0.3); animation: cr-scroll 11s ease-in-out infinite; }
@keyframes cr-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cr-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cr-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px) scaleY(1.03); } }
@keyframes cr-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 33% { transform: scale(1.15) translateY(-2px); opacity:1; } 66% { transform: scale(0.95) translateY(1px); opacity:0.8; } 100% { transform: scale(1.05) translateY(-1px); opacity:1; } }
@keyframes cr-paper { 0%,100% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(1px); } }
@keyframes cr-crown { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes cr-hand { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } }
@keyframes cr-scroll { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-caesar-clay-hole {
  background: linear-gradient(180deg, #1a2a4a 0%, #4a6a8a 100%),
              radial-gradient(ellipse at 20% 30%, #f0d080 0%, transparent 60%);
}
.scn-caesar-clay-hole > * { position: absolute; }
.scn-caesar-clay-hole .wall {
  inset: 20% 10% 30% 10%;
  background: linear-gradient(90deg, #8a7a6a, #5a4a3a);
  border-radius: 4px;
}
.scn-caesar-clay-hole .hole {
  inset: 45% 40% 55% 50%;
  background: #1a1a2a;
  border-radius: 50%;
  box-shadow: inset 0 0 20px #000;
  animation: cch-hole 4s ease-in-out infinite alternate;
}
.scn-caesar-clay-hole .sunbeam {
  inset: 10% 20% 70% 30%;
  background: linear-gradient(180deg, #fff0c0 0%, transparent 100%);
  filter: blur(4px);
  animation: cch-sunbeam 5s ease-in-out infinite alternate;
}
.scn-caesar-clay-hole .clay {
  inset: 65% 30% 20% 40%;
  background: radial-gradient(circle at 40% 40%, #8a6a4a, #5a4a3a);
  border-radius: 50%;
  animation: cch-clay 7s ease-in-out infinite alternate;
}
.scn-caesar-clay-hole .grass {
  inset: 80% 0% 0% 0%;
  height: 20%;
  background: linear-gradient(0deg, #3a5a3a, #2a4a2a);
  border-radius: 50% 50% 0 0;
  animation: cch-grass 8s ease-in-out infinite alternate;
}
@keyframes cch-hole {
  0% { box-shadow: inset 0 0 20px #000; }
  50% { box-shadow: inset 0 0 40px #111; }
  100% { box-shadow: inset 0 0 20px #000; }
}
@keyframes cch-sunbeam {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes cch-clay {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes cch-grass {
  0% { transform: skewX(0); }
  50% { transform: skewX(-2deg); }
  100% { transform: skewX(0); }
}

/* ----- Ophelia funeral procession ----- */
.scn-ophelia-funeral-procession {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 70%);
}
.scn-ophelia-funeral-procession > * { position: absolute; }
.scn-ophelia-funeral-procession .sky { inset: 0 0 40% 0; background: linear-gradient(180deg, #5a6a7a, transparent); }
.scn-ophelia-funeral-procession .ground { inset: 60% 0 0 0; background: linear-gradient(180deg, #3a4a3a, #2a3a2a); border-radius: 30% 70% 0 0; }
.scn-ophelia-funeral-procession .bier { bottom: 40%; left: 30%; width: 40%; height: 10%; background: linear-gradient(90deg, #4a3a2a, #3a2a1a); border-radius: 4px; animation: ofp-bier 12s ease-in-out infinite alternate; }
.scn-ophelia-funeral-procession .figure-queen { bottom: 45%; left: 20%; width: 12%; height: 25%; background: radial-gradient(ellipse at 50% 30%, #3a4a5a, #2a3a4a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ofp-figure 8s ease-in-out infinite; }
.scn-ophelia-funeral-procession .figure-laertes { bottom: 45%; left: 45%; width: 12%; height: 25%; background: radial-gradient(ellipse at 50% 30%, #4a3a2a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ofp-figure 8s ease-in-out 1s infinite; }
.scn-ophelia-funeral-procession .figure-priest { bottom: 45%; left: 65%; width: 10%; height: 28%; background: radial-gradient(ellipse at 50% 30%, #5a6a5a, #3a4a3a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ofp-figure 8s ease-in-out 2s infinite; }
@keyframes ofp-bier {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ofp-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-1deg); }
  75% { transform: translateX(9px) rotate(1deg); }
  100% { transform: translateX(12px) rotate(0); }
}

/* ----- Priest refuses rites ----- */
.scn-priest-refuses-rites {
  background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 40%, #2a3a3a 100%),
              radial-gradient(ellipse at 50% 0%, #7a8a8a 0%, transparent 70%);
}
.scn-priest-refuses-rites > * { position: absolute; }
.scn-priest-refuses-rites .sky { inset: 0 0 50% 0; background: linear-gradient(180deg, #6a7a7a, transparent); }
.scn-priest-refuses-rites .ground { inset: 50% 0 0 0; background: linear-gradient(180deg, #4a5a4a, #2a3a2a); border-radius: 50% 50% 0 0; }
.scn-priest-refuses-rites .grave { bottom: 30%; left: 35%; width: 30%; height: 12%; background: radial-gradient(ellipse at 50% 50%, #3a2a1a, #2a1a0a); border-radius: 50%; box-shadow: inset 0 4px 8px #000; animation: prr-grave 20s ease-in-out infinite alternate; }
.scn-priest-refuses-rites .priest { bottom: 40%; left: 60%; width: 10%; height: 35%; background: radial-gradient(ellipse at 50% 30%, #4a5a5a, #3a4a4a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: prr-priest 6s ease-in-out infinite alternate; }
.scn-priest-refuses-rites .flowers { bottom: 35%; left: 45%; width: 8%; height: 4%; background: radial-gradient(circle, #b87878, #702243); border-radius: 50%; box-shadow: 0 0 8px #b87878; animation: prr-flowers 4s ease-in-out infinite alternate; }
.scn-priest-refuses-rites .bell { bottom: 55%; left: 80%; width: 6%; height: 10%; background: linear-gradient(180deg, #6a6a4a, #4a4a2a); border-radius: 40% 40% 10% 10%; animation: prr-bell 3s ease-in-out infinite; }
@keyframes prr-grave {
  0% { transform: scale(1); }
  50% { transform: scale(1.005); }
  100% { transform: scale(1); }
}
@keyframes prr-priest {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes prr-flowers {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes prr-bell {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}

/* ----- Hamlet reveals himself ----- */
.scn-hamlet-reveals-himself {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 60%, #0a1a2a 100%),
              radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, transparent 80%);
}
.scn-hamlet-reveals-himself > * { position: absolute; }
.scn-hamlet-reveals-himself .sky { inset: 0 0 45% 0; background: linear-gradient(180deg, #3a4a5a, transparent); }
.scn-hamlet-reveals-himself .ground { inset: 55% 0 0 0; background: linear-gradient(180deg, #2a3a2a, #1a2a1a); border-radius: 20% 80% 0 0; }
.scn-hamlet-reveals-himself .grave-pit { bottom: 40%; left: 35%; width: 30%; height: 15%; background: radial-gradient(ellipse at 50% 50%, #1a1a1a, #0a0a0a); border-radius: 50%; box-shadow: inset 0 8px 16px #000; animation: hrh-pit 15s ease-in-out infinite alternate; }
.scn-hamlet-reveals-himself .hamlet { bottom: 50%; left: 25%; width: 12%; height: 30%; background: radial-gradient(ellipse at 50% 30%, #2a2a3a, #1a1a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hrh-hamlet 4s ease-in-out infinite; }
.scn-hamlet-reveals-himself .laertes { bottom: 50%; left: 55%; width: 12%; height: 28%; background: radial-gradient(ellipse at 50% 30%, #3a2a2a, #2a1a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hrh-laertes 4s ease-in-out 1s infinite; }
.scn-hamlet-reveals-himself .queen { bottom: 55%; left: 70%; width: 10%; height: 22%; background: radial-gradient(ellipse at 50% 30%, #3a4a4a, #2a3a3a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hrh-queen 10s ease-in-out infinite alternate; }
.scn-hamlet-reveals-himself .flowers { bottom: 35%; left: 40%; width: 6%; height: 4%; background: radial-gradient(circle, #b87878, #5e1a1d); border-radius: 50%; box-shadow: 0 0 6px #b87878; animation: hrh-flowers 2s ease-in-out infinite alternate; }
@keyframes hrh-pit {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes hrh-hamlet {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-5px) rotate(2deg); }
  50% { transform: translateY(-10px) rotate(-2deg); }
  75% { transform: translateY(-5px) rotate(2deg); }
}
@keyframes hrh-laertes {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-5px) rotate(-2deg); }
  50% { transform: translateY(-10px) rotate(2deg); }
  75% { transform: translateY(-5px) rotate(-2deg); }
}
@keyframes hrh-queen {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes hrh-flowers {
  0% { opacity: 0.6; transform: scale(1) rotate(-5deg); }
  100% { opacity: 1; transform: scale(1.2) rotate(5deg); }
}

.scn-gravedigger-sings-digging {
  background: linear-gradient(180deg, #87ceeb 0%, #f6c864 50%, #d4a05a 100%), radial-gradient(ellipse at 50% 100%, #d4a05a 0%, transparent 70%);
}
.scn-gravedigger-sings-digging .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%); animation: gd-sky 12s ease-in-out infinite alternate; }
.scn-gravedigger-sings-digging .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; }
.scn-gravedigger-sings-digging .figure-body { position:absolute; bottom:30%; left:50%; width:40px; height:60px; margin-left:-20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gd-dig 2s ease-in-out infinite; }
.scn-gravedigger-sings-digging .figure-head { position:absolute; bottom:64%; left:50%; width:24px; height:24px; margin-left:-12px; background: #1a1a0a; border-radius:50%; animation: gd-nod 2s ease-in-out infinite; }
.scn-gravedigger-sings-digging .spade { position:absolute; bottom:40%; right:48%; width:6px; height:50px; background: #5a3a2a; transform-origin: bottom center; border-radius: 30% 30% 0 0; animation: gd-spade 2s ease-in-out infinite; }
.scn-gravedigger-sings-digging .dirt { position:absolute; width:10px; height:10px; background: #8a6a3a; border-radius:50%; }
.scn-gravedigger-sings-digging .dirt1 { bottom:35%; left:48%; animation: gd-dirt1 1.5s ease-out infinite; }
.scn-gravedigger-sings-digging .dirt2 { bottom:30%; left:52%; animation: gd-dirt2 1.8s ease-out infinite 0.5s; }
.scn-gravedigger-sings-digging .tombstone { position:absolute; bottom:28%; left:20%; width:30px; height:40px; background: #a0a0a0; border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
.scn-gravedigger-sings-digging .skull-comic { position:absolute; bottom:36%; left:35%; width:16px; height:16px; background: #e8e0d0; border-radius:50%; box-shadow: 0 0 5px rgba(0,0,0,0.3); animation: gd-skull 4s ease-in-out infinite; }
@keyframes gd-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.8} }
@keyframes gd-dig { 0%{transform: translateY(0) rotate(-3deg)} 50%{transform: translateY(-4px) rotate(3deg)} 100%{transform: translateY(0) rotate(-3deg)} }
@keyframes gd-nod { 0%{transform: rotate(-5deg)} 50%{transform: rotate(5deg)} 100%{transform: rotate(-5deg)} }
@keyframes gd-spade { 0%{transform: rotate(-20deg) translateY(0)} 50%{transform: rotate(20deg) translateY(-2px)} 100%{transform: rotate(-20deg) translateY(0)} }
@keyframes gd-dirt1 { 0%{transform: translateY(0) scale(1); opacity:1} 50%{transform: translateY(-15px) scale(.75); opacity:.8} 100%{transform: translateY(-30px) scale(.5); opacity:0} }
@keyframes gd-dirt2 { 0%{transform: translateY(0) scale(1); opacity:1} 50%{transform: translateY(-20px) scale(.6); opacity:.7} 100%{transform: translateY(-40px) scale(.3); opacity:0} }
@keyframes gd-skull { 0%{transform: rotate(-5deg)} 50%{transform: rotate(5deg) translateY(-2px)} 100%{transform: rotate(-5deg)} }

.scn-skull-first-reflection {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 30% 20%, #f0e0a0 0%, transparent 60%);
}
.scn-skull-first-reflection .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-skull-first-reflection .window { position:absolute; top:10%; left:25%; width:80px; height:100px; background: #f0e0a0; border-radius:5px; box-shadow: 0 0 20px 10px rgba(240,224,160,.5); animation: sf-window 6s ease-in-out infinite alternate; }
.scn-skull-first-reflection .light-ray { position:absolute; top:10%; left:25%; width:80px; height:200px; background: linear-gradient(180deg, rgba(240,224,160,.6) 0%, transparent 100%); transform-origin: top left; transform: skewX(-10deg); animation: sf-ray 8s ease-in-out infinite; }
.scn-skull-first-reflection .skull { position:absolute; bottom:25%; left:50%; width:60px; height:80px; margin-left:-30px; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: sf-skull 10s ease-in-out infinite; }
.scn-skull-first-reflection .hand { position:absolute; bottom:30%; left:44%; width:20px; height:40px; background: #1a1a1a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sf-hand 8s ease-in-out infinite; }
.scn-skull-first-reflection .shadow { position:absolute; bottom:20%; left:50%; width:70px; height:10px; margin-left:-35px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: sf-shadow 10s ease-in-out infinite; }
.scn-skull-first-reflection .dust { position:absolute; top:30%; left:30%; width:4px; height:4px; background: rgba(240,224,160,.5); border-radius:50%; box-shadow: 0 0 6px 2px rgba(240,224,160,.3); animation: sf-dust 15s linear infinite; }
@keyframes sf-window { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes sf-ray { 0%{transform:skewX(-10deg) translateX(0)} 50%{transform:skewX(-5deg) translateX(2px)} 100%{transform:skewX(-12deg) translateX(-1px)} }
@keyframes sf-skull { 0%{transform: translateX(0) rotate(0)} 50%{transform: translateX(3px) rotate(2deg)} 100%{transform: translateX(0) rotate(0)} }
@keyframes sf-hand { 0%{transform: translateX(0) rotate(0)} 50%{transform: translateX(-2px) rotate(-3deg)} 100%{transform: translateX(0) rotate(0)} }
@keyframes sf-shadow { 0%{transform: scaleX(1)} 50%{transform: scaleX(1.1)} 100%{transform: scaleX(1)} }
@keyframes sf-dust { 0%{transform: translateY(0) opacity:1} 50%{transform: translateY(50px) opacity:.5} 100%{transform: translateY(100px) opacity:0} }

.scn-skull-lawyer-reflection {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 70% 20%, #f0e0a0 0%, transparent 60%);
}
.scn-skull-lawyer-reflection .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-skull-lawyer-reflection .window { position:absolute; top:10%; right:20%; width:80px; height:100px; background: #f0e0a0; border-radius:5px; box-shadow: 0 0 20px 10px rgba(240,224,160,.5); animation: sl-window 6s ease-in-out infinite alternate; }
.scn-skull-lawyer-reflection .light-ray { position:absolute; top:10%; right:20%; width:80px; height:200px; background: linear-gradient(180deg, rgba(240,224,160,.6) 0%, transparent 100%); transform-origin: top center; transform: skewX(10deg); animation: sl-ray 8s ease-in-out infinite; }
.scn-skull-lawyer-reflection .skull { position:absolute; bottom:25%; left:50%; width:60px; height:80px; margin-left:-30px; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: sl-skull 12s ease-in-out infinite; }
.scn-skull-lawyer-reflection .wig { position:absolute; top:42%; left:50%; width:50px; height:20px; margin-left:-25px; background: #d0d0e0; border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 5px rgba(0,0,0,.2); animation: sl-wig 8s ease-in-out infinite; }
.scn-skull-lawyer-reflection .scroll { position:absolute; bottom:30%; right:30%; width:30px; height:15px; background: #f0e0c0; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(10deg); animation: sl-scroll 10s ease-in-out infinite; }
.scn-skull-lawyer-reflection .shadow { position:absolute; bottom:20%; left:50%; width:70px; height:10px; margin-left:-35px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: sl-shadow 12s ease-in-out infinite; }
@keyframes sl-window { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes sl-ray { 0%{transform:skewX(10deg) translateX(0)} 50%{transform:skewX(5deg) translateX(-2px)} 100%{transform:skewX(12deg) translateX(1px)} }
@keyframes sl-skull { 0%{transform: translateX(0) rotate(0)} 50%{transform: translateX(-3px) rotate(-2deg)} 100%{transform: translateX(0) rotate(0)} }
@keyframes sl-wig { 0%{transform: rotate(0)} 50%{transform: rotate(3deg)} 100%{transform: rotate(0)} }
@keyframes sl-scroll { 0%{transform: rotate(10deg)} 50%{transform: rotate(15deg)} 100%{transform: rotate(10deg)} }
@keyframes sl-shadow { 0%{transform: scaleX(1)} 50%{transform: scaleX(1.1)} 100%{transform: scaleX(1)} }

.scn-skull-land-buyer {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 50% 20%, #f0e0a0 0%, transparent 60%);
}
.scn-skull-land-buyer .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-skull-land-buyer .window { position:absolute; top:10%; left:50%; width:80px; height:100px; margin-left:-40px; background: #f0e0a0; border-radius:5px; box-shadow: 0 0 20px 10px rgba(240,224,160,.5); animation: sb-window 6s ease-in-out infinite alternate; }
.scn-skull-land-buyer .light-ray { position:absolute; top:10%; left:50%; width:80px; height:200px; margin-left:-40px; background: linear-gradient(180deg, rgba(240,224,160,.6) 0%, transparent 100%); animation: sb-ray 8s ease-in-out infinite; }
.scn-skull-land-buyer .skull { position:absolute; bottom:20%; left:50%; width:60px; height:80px; margin-left:-30px; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: sb-skull 14s ease-in-out infinite; }
.scn-skull-land-buyer .deed { position:absolute; bottom:30%; left:35%; width:40px; height:25px; background: #f0e0c0; border-radius: 2px 2px 8px 8px; box-shadow: 0 0 5px rgba(0,0,0,.2); transform: rotate(-15deg); animation: sb-deed 12s ease-in-out infinite; }
.scn-skull-land-buyer .dirt-pile { position:absolute; bottom:15%; left:50%; width:80px; height:20px; margin-left:-40px; background: radial-gradient(ellipse, #6a4a2a 0%, #4a2a1a 100%); border-radius: 50%; animation: sb-dirt 18s ease-in-out infinite; }
.scn-skull-land-buyer .coin { position:absolute; bottom:28%; left:55%; width:10px; height:10px; background: #f0d060; border-radius:50%; box-shadow: 0 0 5px rgba(240,208,96,.5); animation: sb-coin 10s ease-in-out infinite; }
.scn-skull-land-buyer .shadow { position:absolute; bottom:15%; left:50%; width:70px; height:10px; margin-left:-35px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: sb-shadow 14s ease-in-out infinite; }
@keyframes sb-window { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes sb-ray { 0%{transform:translateY(0)} 50%{transform:translateY(-5px)} 100%{transform:translateY(3px)} }
@keyframes sb-skull { 0%{transform: translateX(0) rotate(0)} 50%{transform: translateX(4px) rotate(2deg)} 100%{transform: translateX(0) rotate(0)} }
@keyframes sb-deed { 0%{transform: rotate(-15deg)} 50%{transform: rotate(-10deg)} 100%{transform: rotate(-15deg)} }
@keyframes sb-dirt { 0%{transform: scaleY(1)} 50%{transform: scaleY(0.95)} 100%{transform: scaleY(1)} }
@keyframes sb-coin { 0%{transform: translateY(0)} 50%{transform: translateY(-3px)} 100%{transform: translateY(0)} }
@keyframes sb-shadow { 0%{transform: scaleX(1)} 50%{transform: scaleX(1.15)} 100%{transform: scaleX(1)} }

/* hamlet-ghosts-word-proved */
.scn-hamlet-ghosts-word-proved {
  background:
    linear-gradient(180deg, #f4d03f 0%, #e67e22 50%, #a04000 100%),
    radial-gradient(ellipse at 50% 30%, #f39c12 0%, transparent 60%);
}
.scn-hamlet-ghosts-word-proved .hgw-bg { position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,200,0.3) 0%,transparent 100%);animation:hgw-bg 8s ease-in-out infinite alternate; }
.scn-hamlet-ghosts-word-proved .hgw-wall-left { position:absolute;left:0;top:0;width:20%;height:100%;background:linear-gradient(90deg,#b0a080 0%,transparent 100%);animation:hgw-wall 12s ease-in-out infinite; }
.scn-hamlet-ghosts-word-proved .hgw-wall-right { position:absolute;right:0;top:0;width:20%;height:100%;background:linear-gradient(90deg,#b0a080 0%,transparent 100%);transform:scaleX(-1);animation:hgw-wall 12s ease-in-out infinite reverse; }
.scn-hamlet-ghosts-word-proved .hgw-table { position:absolute;bottom:20%;left:35%;width:30%;height:5%;background:#7a5c3a;border-radius:4px;box-shadow:0 -4px 10px rgba(0,0,0,0.3);animation:hgw-wall 14s ease-in-out infinite; }
.scn-hamlet-ghosts-word-proved .hgw-figure-hamlet { position:absolute;bottom:22%;left:30%;width:20px;height:60px;background:linear-gradient(180deg,#2c2c2c 0%,#1a1a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-10deg);animation:hgw-hamlet 4s ease-in-out infinite; }
.scn-hamlet-ghosts-word-proved .hgw-figure-horatio { position:absolute;bottom:22%;left:50%;width:20px;height:55px;background:linear-gradient(180deg,#3a3a3a 0%,#1a1a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(10deg);animation:hgw-hamlet 4s ease-in-out infinite reverse; }
.scn-hamlet-ghosts-word-proved .hgw-recorder { position:absolute;bottom:28%;left:38%;width:4px;height:30px;background:linear-gradient(180deg,#d4a373 0%,#8a5a2b 100%);border-radius:2px;transform:rotate(-45deg);animation:hgw-recorder 2s ease-in-out infinite; }
.scn-hamlet-ghosts-word-proved .hgw-ghost-glow { position:absolute;top:15%;left:45%;width:80px;height:80px;background:radial-gradient(circle,rgba(255,230,100,0.8) 0%,rgba(255,200,50,0.2) 50%,transparent 70%);border-radius:50%;filter:blur(10px);animation:hgw-glow 6s ease-in-out infinite; }
.scn-hamlet-ghosts-word-proved .hgw-light-rays { position:absolute;top:10%;left:40%;width:120%;height:120%;background:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(255,255,200,0.1) 20px,rgba(255,255,200,0.1) 40px);animation:hgw-rays 20s linear infinite; }
@keyframes hgw-bg { 0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8} }
@keyframes hgw-wall { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.9} }
@keyframes hgw-hamlet { 0%{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(-15deg) translateY(-3px)}100%{transform:rotate(-10deg) translateY(0)} }
@keyframes hgw-recorder { 0%{transform:rotate(-45deg) scale(1)}50%{transform:rotate(-30deg) scale(1.05)}100%{transform:rotate(-45deg) scale(1)} }
@keyframes hgw-glow { 0%{transform:scale(0.8);opacity:0.6}50%{transform:scale(1.2);opacity:1}100%{transform:scale(0.9);opacity:0.7} }
@keyframes hgw-rays { 0%{transform:rotate(0deg)}100%{transform:rotate(360deg)} }

/* guildenstern-summoned */
.scn-guildenstern-summoned {
  background:
    linear-gradient(180deg, #fff 0%, #d0d0d0 50%, #a0a0a0 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 50%);
}
.scn-guildenstern-summoned .gss-bg { position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0.2) 0%,transparent 100%);animation:gss-bg 10s ease-in-out infinite; }
.scn-guildenstern-summoned .gss-floor { position:absolute;bottom:0;left:0;right:0;height:15%;background:linear-gradient(180deg,#b0b0b0 0%,#808080 100%);box-shadow:inset 0 4px 10px rgba(0,0,0,0.2);animation:gss-bg 12s ease-in-out infinite reverse; }
.scn-guildenstern-summoned .gss-king-throne { position:absolute;bottom:15%;right:15%;width:60px;height:80px;background:linear-gradient(180deg,#4a4a4a 0%,#2a2a2a 100%);border-radius:10% 10% 5% 5%;box-shadow:0 4px 8px rgba(0,0,0,0.5);animation:gss-throne 8s ease-in-out infinite; }
.scn-guildenstern-summoned .gss-figure-guildenstern { position:absolute;bottom:20%;left:20%;width:20px;height:55px;background:linear-gradient(180deg,#3a3a3a 0%,#1a1a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;animation:gss-bow 4s ease-in-out infinite; }
.scn-guildenstern-summoned .gss-figure-hamlet { position:absolute;bottom:20%;left:40%;width:22px;height:60px;background:linear-gradient(180deg,#2a2a2a 0%,#0a0a0a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;animation:gss-stand 3s ease-in-out infinite; }
.scn-guildenstern-summoned .gss-chandelier { position:absolute;top:5%;left:45%;width:40px;height:10px;background:linear-gradient(180deg,#c0c0c0 0%,#808080 100%);border-radius:50%;box-shadow:0 0 20px 5px rgba(255,255,200,0.5);animation:gss-chandelier 6s ease-in-out infinite; }
.scn-guildenstern-summoned .gss-shadow { position:absolute;bottom:0;left:5%;width:90%;height:20%;background:linear-gradient(180deg,rgba(0,0,0,0.4) 0%,transparent 100%);animation:gss-shadow 12s ease-in-out infinite; }
.scn-guildenstern-summoned .gss-door { position:absolute;left:70%;bottom:15%;width:30px;height:70px;background:linear-gradient(180deg,#6a5acd 0%,#483d8b 100%);border-radius:5% 5% 0 0;animation:gss-door 15s ease-in-out infinite; }
@keyframes gss-bg { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85} }
@keyframes gss-throne { 0%{transform:rotate(0deg)}50%{transform:rotate(2deg)}100%{transform:rotate(0deg)} }
@keyframes gss-bow { 0%{transform:rotate(0deg) translateY(0)}25%{transform:rotate(15deg) translateY(-2px)}50%{transform:rotate(-5deg) translateY(0)}75%{transform:rotate(10deg) translateY(-1px)}100%{transform:rotate(0deg)} }
@keyframes gss-stand { 0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}100%{transform:rotate(-5deg)} }
@keyframes gss-chandelier { 0%{opacity:0.9;transform:translateY(0)}50%{opacity:1;transform:translateY(2px)}100%{opacity:0.9;transform:translateY(0)} }
@keyframes gss-shadow { 0%{opacity:0.6}50%{opacity:1}100%{opacity:0.7} }
@keyframes gss-door { 0%{transform:scaleY(1)}50%{transform:scaleY(0.95)}100%{transform:scaleY(1)} }

/* hamlet-mother-sends-for-him */
.scn-hamlet-mother-sends-for-him {
  background:
    linear-gradient(180deg, #e6d5b8 0%, #c9a96e 50%, #8c6a3a 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-hamlet-mother-sends-for-him .hmf-bg { position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,200,0.2) 0%,transparent 100%);animation:hmf-bg 10s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-window { position:absolute;top:10%;left:10%;width:40%;height:50%;background:linear-gradient(180deg,#87ceeb 0%,#4682b4 100%);border:4px solid #5c3a1e;border-radius:4px;animation:hmf-window 8s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-figure-queen { position:absolute;bottom:20%;left:20%;width:30px;height:70px;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a0a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(5deg);animation:hmf-queen 5s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-figure-messenger { position:absolute;bottom:20%;left:50%;width:20px;height:55px;background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-10deg);animation:hmf-messenger 4s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-chair { position:absolute;bottom:20%;left:15%;width:40px;height:30px;background:linear-gradient(180deg,#7a5c3a 0%,#4a2a1a 100%);border-radius:5px;box-shadow:0 4px 8px rgba(0,0,0,0.3);animation:hmf-chair 12s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-curtain { position:absolute;top:10%;left:10%;width:20%;height:50%;background:linear-gradient(135deg,#c8553d 0%,#8e44ad 100%);opacity:0.7;animation:hmf-curtain 15s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-carpet { position:absolute;bottom:0;left:5%;width:90%;height:15%;background:linear-gradient(180deg,#8b4513 0%,#5c2a0a 100%);border-radius:50% 50% 0 0;animation:hmf-carpet 20s ease-in-out infinite; }
.scn-hamlet-mother-sends-for-him .hmf-candle { position:absolute;bottom:30%;left:45%;width:6px;height:20px;background:linear-gradient(180deg,#f5deb3 0%,#d4a373 100%);border-radius:2px;box-shadow:0 0 10px 3px rgba(255,200,100,0.5);animation:hmf-candle 2s ease-in-out infinite; }
@keyframes hmf-bg { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.9} }
@keyframes hmf-window { 0%{opacity:0.7;transform:scale(0.95)}50%{opacity:1;transform:scale(1.05)}100%{opacity:0.8;transform:scale(1)} }
@keyframes hmf-queen { 0%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(8deg) translateY(-2px)}100%{transform:rotate(5deg)} }
@keyframes hmf-messenger { 0%{transform:rotate(-10deg)}50%{transform:rotate(-15deg)}100%{transform:rotate(-10deg)} }
@keyframes hmf-chair { 0%{transform:scale(1)}50%{transform:scale(0.98)}100%{transform:scale(1)} }
@keyframes hmf-curtain { 0%{transform:scaleX(1)}50%{transform:scaleX(0.9)}100%{transform:scaleX(1)} }
@keyframes hmf-carpet { 0%{opacity:0.9}50%{opacity:1}100%{opacity:0.9} }
@keyframes hmf-candle { 0%{transform:rotate(-2deg);opacity:0.9}50%{transform:rotate(2deg);opacity:1}100%{transform:rotate(-2deg);opacity:0.95} }

/* hamlet-recorder-lesson */
.scn-hamlet-recorder-lesson {
  background:
    linear-gradient(180deg, #fffacd 0%, #f0e68c 50%, #daa520 100%),
    radial-gradient(ellipse at 50% 50%, #fff8dc 0%, transparent 40%);
}
.scn-hamlet-recorder-lesson .hrl-bg { position:absolute;inset:0;background:linear-gradient(45deg,rgba(255,255,200,0.2) 0%,transparent 100%);animation:hrl-bg 6s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-figure-hamlet { position:absolute;bottom:15%;left:30%;width:25px;height:65px;background:linear-gradient(180deg,#2c2c2c 0%,#1a1a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(15deg);animation:hrl-hamlet 2s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-recorder { position:absolute;bottom:30%;left:38%;width:5px;height:35px;background:linear-gradient(180deg,#d4a373 0%,#8a5a2b 100%);border-radius:2px;transform:rotate(-60deg);animation:hrl-recorder 1.5s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-figure-polonia { position:absolute;bottom:15%;left:60%;width:22px;height:50px;background:linear-gradient(180deg,#4a4a4a 0%,#2a2a2a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-20deg);animation:hrl-polonia 3s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-table { position:absolute;bottom:15%;left:20%;width:80px;height:8%;background:#7a5c3a;border-radius:4px;box-shadow:0 -4px 8px rgba(0,0,0,0.3);animation:hrl-table 4s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-light-burst { position:absolute;top:10%;left:35%;width:120px;height:120px;background:radial-gradient(circle,rgba(255,255,200,0.8) 0%,transparent 70%);border-radius:50%;animation:hrl-burst 3s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-note1 { position:absolute;top:20%;left:20%;width:12px;height:12px;background:radial-gradient(circle,#e67e22 0%,transparent 70%);border-radius:50%;animation:hrl-note1 5s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-note2 { position:absolute;top:25%;left:50%;width:8px;height:8px;background:radial-gradient(circle,#e67e22 0%,transparent 70%);border-radius:50%;animation:hrl-note2 4s ease-in-out infinite; }
.scn-hamlet-recorder-lesson .hrl-shadow { position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,transparent 100%);animation:hrl-shadow 8s ease-in-out infinite; }
@keyframes hrl-bg { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85} }
@keyframes hrl-hamlet { 0%{transform:rotate(15deg) translateY(0)}25%{transform:rotate(20deg) translateY(-5px)}50%{transform:rotate(10deg) translateY(0)}75%{transform:rotate(25deg) translateY(-3px)}100%{transform:rotate(15deg)} }
@keyframes hrl-recorder { 0%{transform:rotate(-60deg) scale(1)}50%{transform:rotate(-40deg) scale(1.1)}100%{transform:rotate(-60deg) scale(1)} }
@keyframes hrl-polonia { 0%{transform:rotate(-20deg)}50%{transform:rotate(-30deg)}100%{transform:rotate(-20deg)} }
@keyframes hrl-table { 0%{transform:scale(1)}50%{transform:scale(0.95)}100%{transform:scale(1)} }
@keyframes hrl-burst { 0%{transform:scale(0.8);opacity:0.5}50%{transform:scale(1.2);opacity:1}100%{transform:scale(0.9);opacity:0.6} }
@keyframes hrl-note1 { 0%{transform:translate(0,0) scale(1)}50%{transform:translate(10px,-10px) scale(1.2)}100%{transform:translate(0,0) scale(1)} }
@keyframes hrl-note2 { 0%{transform:translate(0,0) scale(1)}50%{transform:translate(-8px,-15px) scale(1.1)}100%{transform:translate(0,0) scale(1)} }
@keyframes hrl-shadow { 0%{opacity:0.4}50%{opacity:0.8}100%{opacity:0.5} }

/* Scene: portentous-omens-recalled */
.scn-portentous-omens-recalled {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 40%, #2a0a0a 70%, #1a0505 100%),
              radial-gradient(ellipse at 70% 20%, #4a1a1a 0%, transparent 60%);
}
.scn-portentous-omens-recalled .sky-night {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a20 100%);
  animation: po-sky 15s ease-in-out infinite alternate;
}
.scn-portentous-omens-recalled .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-portentous-omens-recalled .graves {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 8px, transparent 8px, transparent 20px),
              linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 20% 20% 0 0;
  animation: po-graves 8s ease-in-out infinite alternate;
}
.scn-portentous-omens-recalled .figure-omen {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: po-figure 6s ease-in-out infinite;
}
.scn-portentous-omens-recalled .star-trail {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd070 0%, #ff8040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,112,0.6), 0 0 24px 8px rgba(255,128,64,0.3);
  animation: po-star 4s ease-in infinite;
}
.scn-portentous-omens-recalled .star-a {
  top: 8%; left: 70%; animation-delay: 0s;
}
.scn-portentous-omens-recalled .star-b {
  top: 12%; left: 20%; animation-delay: 1.5s;
}
.scn-portentous-omens-recalled .blood-dew {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 8px;
  background: radial-gradient(circle, #a03030 0%, #500a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #800a0a, 0 0 16px 4px rgba(128,10,10,0.3);
  animation: po-dew 3s ease-in-out infinite;
}
@keyframes po-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes po-graves {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes po-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-45%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-55%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes po-star {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  20% { transform: translate(30px, 60px) scale(1.5); opacity: 0.8; }
  40% { transform: translate(60px, 120px) scale(0.8); opacity: 0.5; }
  60% { transform: translate(90px, 180px) scale(1.2); opacity: 0.3; }
  80% { transform: translate(120px, 240px) scale(1); opacity: 0.1; }
  100% { transform: translate(150px, 300px) scale(0.5); opacity: 0; }
}
@keyframes po-dew {
  0% { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scaleX(1.2); opacity: 1; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.8; }
}

/* Scene: ghost-reappears-night */
.scn-ghost-reappears-night {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #2a2a4a 70%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 10%, #4a4a6a 0%, transparent 70%);
}
.scn-ghost-reappears-night .moonlit-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  animation: grn-sky 20s ease-in-out infinite alternate;
}
.scn-ghost-reappears-night .castle-wall {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: grn-wall 8s ease-in-out infinite alternate;
}
.scn-ghost-reappears-night .guard {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grn-guard 4s ease-in-out infinite;
}
.scn-ghost-reappears-night .ghost {
  position: absolute; bottom: 35%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, rgba(220,220,255,0.4) 0%, rgba(200,200,255,0.1) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: grn-ghost 5s ease-in-out infinite alternate;
}
.scn-ghost-reappears-night .fog {
  position: absolute; bottom: 15%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,255,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: grn-fog 12s linear infinite;
}
.scn-ghost-reappears-night .fog-a {
  left: 5%; animation-duration: 12s;
}
.scn-ghost-reappears-night .fog-b {
  left: 60%; animation-duration: 18s; animation-delay: -6s;
}
.scn-ghost-reappears-night .moon {
  position: absolute; top: 8%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e0ff 0%, #b0b0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(200,200,255,0.3), 0 0 40px 8px rgba(200,200,255,0.1);
  animation: grn-moon 15s ease-in-out infinite alternate;
}
.scn-ghost-reappears-night .shadow-arch {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: grn-shadow 10s ease-in-out infinite alternate;
}
@keyframes grn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes grn-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes grn-guard {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes grn-ghost {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(2px, -5px) scale(1.1); opacity: 0.9; }
  100% { transform: translate(-2px, 2px) scale(1); opacity: 0.7; }
}
@keyframes grn-fog {
  0% { transform: translateX(-30px); opacity: 0.3; }
  50% { transform: translateX(30px); opacity: 0.6; }
  100% { transform: translateX(80px); opacity: 0.2; }
}
@keyframes grn-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 15px 2px rgba(200,200,255,0.2); }
  50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 25px 6px rgba(200,200,255,0.4); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 15px 2px rgba(200,200,255,0.2); }
}
@keyframes grn-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

/* Scene 1: young-fortinbras-threat */
.scn-Young-fortinbras-threat {
  background:
    linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 40%, #2a2a4e 70%, #3d3040 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 60%);
}
.scn-Young-fortinbras-threat .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0f0f2a 100%);
  animation: ft1-sky 12s ease-in-out infinite alternate;
}
.scn-Young-fortinbras-threat .cloud {
  position: absolute; top: 15%; width: 70px; height: 12px;
  background: linear-gradient(180deg, rgba(180,180,220,0.25) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
}
.scn-Young-fortinbras-threat .cloud-a {
  left: -10%; animation: ft1-drift-l 40s linear infinite;
}
.scn-Young-fortinbras-threat .cloud-b {
  right: -10%; animation: ft1-drift-r 50s linear infinite reverse; width: 50px; top: 22%;
}
.scn-Young-fortinbras-threat .hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ft1-hill 14s ease-in-out infinite alternate;
}
.scn-Young-fortinbras-threat .figure {
  position: absolute; bottom: 28%; left: 50%; width: 28px; height: 60px;
  margin-left: -14px;
  background: linear-gradient(180deg, #0f0f1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ft1-figure 4s ease-in-out infinite;
}
.scn-Young-fortinbras-threat .figure::before {
  content: ''; position: absolute; top: -8px; left: 50%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 100%, #0f0f1a 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
}
.scn-Young-fortinbras-threat .banner {
  position: absolute; bottom: 34%; left: 50%; width: 16px; height: 40px;
  margin-left: 14px;
  background: linear-gradient(180deg, #5e2a1a 0%, #3d1a0a 100%);
  border-radius: 2px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: ft1-banner-wave 3s ease-in-out infinite;
}
.scn-Young-fortinbras-threat .banner::after {
  content: ''; position: absolute; bottom: 100%; left: -6px; width: 28px; height: 18px;
  background: linear-gradient(180deg, #7a3a2a 0%, #5e2a1a 100%);
  border-radius: 0 100% 0 0;
  transform-origin: left bottom;
  animation: ft1-flag 2.5s ease-in-out infinite alternate;
}
.scn-Young-fortinbras-threat .tower {
  position: absolute; bottom: 28%; right: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  transform: scaleY(0.85);
}
@keyframes ft1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ft1-drift-l { 0% { transform: translateX(-90px); } 100% { transform: translateX(120vw); } }
@keyframes ft1-drift-r { 0% { transform: translateX(90px); } 100% { transform: translateX(-120vw); } }
@keyframes ft1-hill { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ft1-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes ft1-banner-wave { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes ft1-flag { 0% { transform: rotate(0deg); } 100% { transform: rotate(20deg); } }

/* Scene 2: fortinbras-ambition-explained */
.scn-fortinbras-ambition-explained {
  background:
    linear-gradient(180deg, #181818 0%, #2a2418 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-fortinbras-ambition-explained .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2418 0%, #1a1410 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-fortinbras-ambition-explained .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -10px 40px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(20deg);
}
.scn-fortinbras-ambition-explained .map {
  position: absolute; bottom: 22%; left: 55%; width: 100px; height: 60px;
  margin-left: -50px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #8a7a5a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(20deg) rotate(10deg);
  animation: ft2-map-shimmer 8s ease-in-out infinite alternate;
}
.scn-fortinbras-ambition-explained .map::before {
  content: ''; position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 4px, rgba(0,0,0,0.1) 4px, rgba(0,0,0,0.1) 8px);
}
.scn-fortinbras-ambition-explained .lantern {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 16px;
  background: radial-gradient(circle, #e0a060 0%, #b07030 60%, #5a3a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #b07030, 0 0 60px 20px rgba(176,112,48,0.3);
  animation: ft2-lantern 3s ease-in-out infinite alternate;
}
.scn-fortinbras-ambition-explained .figure {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft2-figure 5s ease-in-out infinite;
}
.scn-fortinbras-ambition-explained .hand {
  position: absolute; bottom: 32%; left: 27%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: ft2-point 4s ease-in-out infinite alternate;
}
.scn-fortinbras-ambition-explained .shadow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, transparent 30%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: ft2-shadow 10s ease-in-out infinite alternate;
}
@keyframes ft2-map-shimmer { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ft2-lantern { 0% { box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.2); } 50% { box-shadow: 0 0 40px 14px #d09050, 0 0 80px 24px rgba(208,144,80,0.4); } 100% { box-shadow: 0 0 25px 8px #b07030, 0 0 50px 16px rgba(176,112,48,0.25); } }
@keyframes ft2-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } }
@keyframes ft2-point { 0% { transform: rotate(-20deg) translate(0,0); } 100% { transform: rotate(-40deg) translate(4px,-2px); } }
@keyframes ft2-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-young-fortinbras-threat {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 30%, #2a2a5e 60%, #1a1a3e 100%),
    radial-gradient(ellipse at 70% 30%, #2a3a5e 0%, transparent 60%);
}
.scn-young-fortinbras-threat .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a2a4e 100%);
  animation: yft-sky 12s ease-in-out infinite alternate;
}
.scn-young-fortinbras-threat .moon {
  position: absolute; top: 12%; right: 22%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #6a8aba 0%, #4a5a7a 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(74,90,122,0.5);
  animation: yft-moon 8s ease-in-out infinite alternate;
}
.scn-young-fortinbras-threat .hills {
  position: absolute; bottom: 25%; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: yft-hills 15s ease-in-out infinite alternate;
}
.scn-young-fortinbras-threat .ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #0a1a0a 0%, #050a05 100%);
  border-radius: 20% 10% 0 0;
}
.scn-young-fortinbras-threat .figure {
  position: absolute; bottom: 28%; left: 40%;
  width: 24px; 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: yft-fig 5s ease-in-out infinite;
}
.scn-young-fortinbras-threat .sword {
  position: absolute; bottom: 32%; left: 43%;
  width: 2px; height: 30px;
  background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%);
  border-radius: 1px 1px 0 0;
  transform-origin: bottom center;
  animation: yft-sword 4s ease-in-out infinite;
}
.scn-young-fortinbras-threat .banner {
  position: absolute; bottom: 34%; left: 42%;
  width: 14px; height: 20px;
  background: linear-gradient(180deg, #50302a 0%, #2a1a14 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: top left;
  animation: yft-banner 3s ease-in-out infinite;
}
.scn-young-fortinbras-threat .cloud {
  position: absolute;
  background: linear-gradient(180deg, rgba(30,40,60,0.6) 0%, rgba(20,30,50,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-young-fortinbras-threat .c1 {
  top: 18%; left: 10%;
  width: 80px; height: 20px;
  animation: yft-drift1 40s linear infinite;
}
.scn-young-fortinbras-threat .c2 {
  top: 25%; right: 15%;
  width: 60px; height: 15px;
  animation: yft-drift2 50s linear infinite reverse;
}
@keyframes yft-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes yft-moon { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(4px) scale(1.05); opacity: 1 } 100% { transform: translateY(-2px) scale(0.95); opacity: 0.75 } }
@keyframes yft-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes yft-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-2px) translateY(0) rotate(2deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes yft-sword { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } }
@keyframes yft-banner { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes yft-drift1 { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes yft-drift2 { 0% { transform: translateX(0) } 100% { transform: translateX(-150vw) } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.particle { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.tool { position: absolute; pointer-events: none; }
.vine { position: absolute; pointer-events: none; }
.lean { position: absolute; pointer-events: none; }
.pile { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-ghost-comforts-gertrude { background: linear-gradient(180deg, #0d0d1a 0%, #1a112a 40%, #2a1a3a 100%), radial-gradient(ellipse at 50% 60%, #2a1a3a 0%, transparent 70%); }
.scn-ghost-comforts-gertrude .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1220 0%, #2a1a30 100%); }
.scn-ghost-comforts-gertrude .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-ghost-comforts-gertrude .throne { position:absolute; bottom:15%; left:20%; width:80px; height:90px; background: linear-gradient(135deg, #4a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-ghost-comforts-gertrude .gertrude { position:absolute; bottom:20%; left:25%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a4a 0%, #1a1020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gcg-gertrude 6s ease-in-out infinite; }
.scn-ghost-comforts-gertrude .hamlet { position:absolute; bottom:20%; left:55%; width:30px; height:75px; background: linear-gradient(180deg, #2a1a2a 0%, #0d0d1a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%; transform-origin: bottom center; animation: gcg-hamlet 4s ease-in-out infinite; }
.scn-ghost-comforts-gertrude .ghost { position:absolute; top:15%; left:60%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 30%, rgba(200,220,255,.6) 0%, rgba(100,130,200,.2) 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(6px); animation: gcg-ghost 8s ease-in-out infinite alternate; }
.scn-ghost-comforts-gertrude .glow-ghost { position:absolute; top:10%; left:55%; width:60px; height:70px; background: radial-gradient(circle, rgba(180,210,255,.3) 0%, transparent 70%); border-radius:50%; animation: gcg-glow 8s ease-in-out infinite alternate; }
.scn-ghost-comforts-gertrude .candle { position:absolute; bottom:30%; left:40%; width:10px; height:18px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(255,180,80,.4); animation: gcg-candle 3s ease-in-out infinite; }
@keyframes gcg-gertrude { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gcg-hamlet { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(3deg); } 70% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes gcg-ghost { 0% { opacity:.3; transform: scale(1) translateY(0); } 50% { opacity:.6; transform: scale(1.05) translateY(-5px); } 100% { opacity:.4; transform: scale(.95) translateY(3px); } }
@keyframes gcg-glow { 0% { opacity:.1; transform: scale(.8); } 100% { opacity:.3; transform: scale(1.2); } }
@keyframes gcg-candle { 0%,100% { opacity:.8; box-shadow: 0 0 8px 2px rgba(255,180,80,.3); } 50% { opacity:1; box-shadow: 0 0 20px 6px rgba(255,180,80,.6); } }

.scn-hamlet-sent-to-england { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a1a30 100%), radial-gradient(ellipse at 40% 50%, #1a1a2e 0%, transparent 80%); }
.scn-hamlet-sent-to-england .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2e 30%, #2a1a30 70%, #0d0d1a 100%); }
.scn-hamlet-sent-to-england .claudius { position:absolute; bottom:25%; left:20%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a4a 0%, #1a1020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hse-claudius 5s ease-in-out infinite; }
.scn-hamlet-sent-to-england .hamlet { position:absolute; bottom:25%; right:30%; width:30px; height:75px; background: linear-gradient(180deg, #2a1a2a 0%, #0d0d1a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%; transform-origin: bottom center; animation: hse-hamlet 4s ease-in-out infinite; }
.scn-hamlet-sent-to-england .messenger { position:absolute; bottom:25%; left:40%; width:25px; height:60px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: hse-messenger 6s ease-in-out infinite; }
.scn-hamlet-sent-to-england .seal-table { position:absolute; bottom:15%; left:35%; width:60px; height:30px; background: linear-gradient(90deg, #3a2a3a 0%, #4a3a3a 50%, #2a1a2a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-hamlet-sent-to-england .letter { position:absolute; bottom:20%; left:48%; width:16px; height:12px; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hse-letter 10s ease-in-out infinite; }
.scn-hamlet-sent-to-england .shadow-bar { position:absolute; top:10%; left:5%; width:4px; height:80%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 20%, rgba(0,0,0,.3) 80%, transparent 100%); filter: blur(2px); }
.scn-hamlet-sent-to-england .ship-silhouette { position:absolute; top:5%; right:10%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; opacity:.3; animation: hse-ship 20s linear infinite; }
@keyframes hse-claudius { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hse-hamlet { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(5deg); } 75% { transform: translateY(-1px) rotate(-4deg); } }
@keyframes hse-messenger { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hse-letter { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes hse-ship { 0% { transform: translateX(0) scale(.8); opacity:.2; } 50% { transform: translateX(-20px) scale(1); opacity:.4; } 100% { transform: translateX(0) scale(.8); opacity:.2; } }

.scn-fortinbras-army-thoughts-bloody { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%); }
.scn-fortinbras-army-thoughts-bloody .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); animation: fab-sky 12s ease-in-out infinite alternate; }
.scn-fortinbras-army-thoughts-bloody .horizon { position:absolute; bottom:40%; left:0; right:0; height:10%; background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; }
.scn-fortinbras-army-thoughts-bloody .army-far { position:absolute; bottom:30%; left:10%; right:10%; height:15%; background: repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 4px, transparent 4px, transparent 8px); border-radius: 0 0 30% 30%; animation: fab-army-far 20s linear infinite; }
.scn-fortinbras-army-thoughts-bloody .army-close { position:absolute; bottom:20%; left:15%; right:15%; height:18%; background: repeating-linear-gradient(90deg, #5a5a6a 0px, #5a5a6a 6px, transparent 6px, transparent 12px); border-radius: 0 0 20% 20%; animation: fab-army-close 15s linear infinite reverse; }
.scn-fortinbras-army-thoughts-bloody .banner { position:absolute; bottom:30%; left:30%; width:6px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); transform-origin: bottom center; animation: fab-banner 4s ease-in-out infinite; }
.scn-fortinbras-army-thoughts-bloody .hamlet-figure { position:absolute; bottom:15%; right:10%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: fab-hamlet 6s ease-in-out infinite; }
.scn-fortinbras-army-thoughts-bloody .rock { position:absolute; bottom:15%; left:5%; width:40px; height:25px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 60% 40% 20% 20% / 50% 40% 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.4); }
.scn-fortinbras-army-thoughts-bloody .storm-cloud { position:absolute; top:10%; left:20%; width:100px; height:20px; background: linear-gradient(180deg, rgba(80,80,100,.5) 0%, rgba(40,40,60,.2) 100%); border-radius: 50%; filter: blur(8px); animation: fab-cloud 35s linear infinite; }
@keyframes fab-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes fab-army-far { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes fab-army-close { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes fab-banner { 0%,100% { transform: rotate(0) scaleY(1); } 25% { transform: rotate(5deg) scaleY(1.05); } 75% { transform: rotate(-5deg) scaleY(.95); } }
@keyframes fab-hamlet { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fab-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }

.scn-ophelia-mad-flowers { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a1a2a 0%, transparent 70%); }
.scn-ophelia-mad-flowers .bg-hall { position:absolute; inset:0; background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2a 30%, #1a0a1a 70%, #0d0d1a 100%); }
.scn-ophelia-mad-flowers .ophelia { position:absolute; bottom:25%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a4a 0%, #1a1020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: omf-ophelia 6s ease-in-out infinite; }
.scn-ophelia-mad-flowers .dress { position:absolute; bottom:20%; left:44%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #4a3a5a 0%, #2a1a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: omf-dress 6s ease-in-out infinite; }
.scn-ophelia-mad-flowers .flower-rose { position:absolute; bottom:35%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #8a3a2a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,.3); animation: omf-flower 3s ease-in-out infinite; }
.scn-ophelia-mad-flowers .flower-daisy { position:absolute; bottom:30%; left:60%; width:10px; height:10px; background: radial-gradient(circle, #b08060 0%, #7a5a4a 70%, transparent 100%); border-radius: 50%; animation: omf-flower2 4s ease-in-out infinite; }
.scn-ophelia-mad-flowers .flower-violet { position:absolute; bottom:40%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #6a5a8a 0%, #4a3a6a 70%, transparent 100%); border-radius: 50%; animation: omf-flower3 5s ease-in-out infinite; }
.scn-ophelia-mad-flowers .flower-rue { position:absolute; bottom:35%; left:25%; width:10px; height:6px; background: linear-gradient(90deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: omf-flower4 7s ease-in-out infinite; }
.scn-ophelia-mad-flowers .shadow-leaves { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-ophelia-mad-flowers .ground { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); }
@keyframes omf-ophelia { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes omf-dress { 0%,100% { transform: rotate(0) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } }
@keyframes omf-flower { 0% { transform: translateY(0) scale(1); opacity:.7; } 50% { transform: translateY(-3px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(.9); opacity:.8; } }
@keyframes omf-flower2 { 0% { transform: translateX(0) translateY(0); } 33% { transform: translateX(4px) translateY(-2px); } 66% { transform: translateX(-3px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes omf-flower3 { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.15) rotate(20deg); } }
@keyframes omf-flower4 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(5deg); } }

/* item-love-letter – warm bright interior */
.scn-item-love-letter {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 50%, #b89878 100%),
              radial-gradient(ellipse at 30% 20%, #fff8ee 0%, transparent 60%);
}
.scn-item-love-letter .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #e3d2b8 0%, #c8b49a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-item-love-letter .window-lit {
  position: absolute; top: 10%; left: 62%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, #fff7e0 0%, #f0d8a8 50%, #d4b878 100%);
  border-radius: 8px; box-shadow: 0 0 40px #ffe0a0;
  animation: ll-window 5s ease-in-out infinite alternate;
}
.scn-item-love-letter .desk {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-item-love-letter .letter {
  position: absolute; bottom: 16%; left: 38%; width: 14%; height: 10%;
  background: linear-gradient(135deg, #fff8e8 0%, #f0e0c8 50%, #d8c4a8 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: ll-letter 8s ease-in-out infinite;
}
.scn-item-love-letter .quill {
  position: absolute; bottom: 20%; left: 45%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e8d0a8 0%, #b09070 50%, #806050 100%);
  border-radius: 2px 2px 0 0; transform: rotate(20deg); transform-origin: bottom center;
  animation: ll-quill 3s ease-in-out infinite;
}
.scn-item-love-letter .inkwell {
  position: absolute; bottom: 10%; left: 52%; width: 5%; height: 7%;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-item-love-letter .candle {
  position: absolute; bottom: 18%; left: 58%; width: 3%; height: 9%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b088 50%, #a08060 100%);
  border-radius: 2px;
}
.scn-item-love-letter .glow-spot {
  position: absolute; bottom: 22%; left: 57%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffe8a0 0%, transparent 70%);
  border-radius: 50%;
  animation: ll-glow 2s ease-in-out infinite alternate;
}
@keyframes ll-window { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes ll-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ll-quill { 0% { transform: rotate(18deg); } 50% { transform: rotate(22deg); } 100% { transform: rotate(18deg); } }
@keyframes ll-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.9); } }

/* hamlet-fishmonger-act – funny dim interior */
.scn-hamlet-fishmonger-act {
  background: linear-gradient(180deg, #2a2218 0%, #1e1810 50%, #14100a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2e20 0%, transparent 60%);
}
.scn-hamlet-fishmonger-act .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2e20 0%, #2a1e10 100%);
  border-top: 2px solid #4a3a2a;
}
.scn-hamlet-fishmonger-act .bg-column {
  position: absolute; bottom: 20%; left: 20%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-hamlet-fishmonger-act .book {
  position: absolute; bottom: 30%; left: 35%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: fm-book 4s ease-in-out infinite;
}
.scn-hamlet-fishmonger-act .figure-hamlet {
  position: absolute; bottom: 20%; left: 45%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fm-hamlet 2s ease-in-out infinite;
}
.scn-hamlet-fishmonger-act .figure-polonius {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fm-polonius 3s ease-in-out infinite;
}
.scn-hamlet-fishmonger-act .prop-fish {
  position: absolute; bottom: 32%; left: 42%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #a08860 0%, #705840 100%);
  border-radius: 50% 50% 30% 30%; transform: rotate(-20deg);
  animation: fm-fish 1.5s ease-in-out infinite;
}
.scn-hamlet-fishmonger-act .shadow-shape {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: fm-shadow 6s linear infinite;
}
@keyframes fm-hamlet { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(8px) rotate(4deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes fm-polonius { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fm-fish { 0% { transform: translateX(0) rotate(-20deg); } 50% { transform: translateX(10px) rotate(10deg); } 100% { transform: translateX(0) rotate(-20deg); } }
@keyframes fm-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes fm-book { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }

/* players-arrive-troy-speech – tense dim interior */
.scn-players-arrive-troy-speech {
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 40%, #1e1614 100%),
              radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 50%);
}
.scn-players-arrive-troy-speech .backdrop {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%);
}
.scn-players-arrive-troy-speech .platform {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-players-arrive-troy-speech .player-figure {
  position: absolute; bottom: 30%; left: 50%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: tp-player 4s ease-in-out infinite alternate;
}
.scn-players-arrive-troy-speech .spear {
  position: absolute; bottom: 32%; left: 55%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border-radius: 1px; transform: rotate(-15deg); transform-origin: bottom center;
  animation: tp-spear 2s ease-in-out infinite;
}
.scn-players-arrive-troy-speech .torch-left {
  position: absolute; bottom: 30%; left: 20%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #ff8840 0%, #c86020 50%, #4a2008 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 20px #ff8840;
  animation: tp-torch 1.5s ease-in-out infinite alternate;
}
.scn-players-arrive-troy-speech .torch-right {
  position: absolute; bottom: 30%; right: 20%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #ff8840 0%, #c86020 50%, #4a2008 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 20px #ff8840;
  animation: tp-torch 1.8s ease-in-out infinite alternate-reverse;
}
.scn-players-arrive-troy-speech .smoke-wisp {
  position: absolute; top: 15%; left: 25%; width: 10%; height: 6%;
  background: radial-gradient(ellipse, rgba(200,160,120,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: tp-smoke 10s linear infinite;
}
.scn-players-arrive-troy-speech .shadow-king {
  position: absolute; bottom: 35%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #0a0808 0%, transparent 100%);
  border-radius: 30% 30% 0 0; opacity: 0.4;
  animation: tp-king 6s ease-in-out infinite;
}
@keyframes tp-player { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes tp-spear { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes tp-torch { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.8; transform: scaleY(0.9); } }
@keyframes tp-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateX(20px) translateY(-30px) scale(1.5); opacity: 0.1; } 100% { transform: translateX(0) translateY(0) scale(1); opacity: 0.3; } }
@keyframes tp-king { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-4px); } 100% { transform: scaleY(1) translateY(0); } }

/* second-soliloquy-play-plan – tense dim interior */
.scn-second-soliloquy-play-plan {
  background: linear-gradient(180deg, #0e0a0a 0%, #1a1210 40%, #0a0606 100%),
              radial-gradient(ellipse at 50% 80%, #1a1210 0%, transparent 70%);
}
.scn-second-soliloquy-play-plan .walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-second-soliloquy-play-plan .floor-trap {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 5%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 2px; box-shadow: 0 -2px 10px rgba(0,0,0,0.3);
}
.scn-second-soliloquy-play-plan .figure-hamlet-alone {
  position: absolute; bottom: 22%; left: 50%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: sp-hamlet 5s ease-in-out infinite alternate;
}
.scn-second-soliloquy-play-plan .dagger {
  position: absolute; bottom: 28%; left: 53%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 1px; transform: rotate(30deg); transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(200,200,200,0.3);
  animation: sp-dagger 3s ease-in-out infinite;
}
.scn-second-soliloquy-play-plan .light-beam {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 45%;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: sp-beam 8s ease-in-out infinite;
}
.scn-second-soliloquy-play-plan .ghost-mist {
  position: absolute; top: 15%; left: 30%; width: 25%; height: 20%;
  background: radial-gradient(ellipse, rgba(200,200,220,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: sp-mist 12s linear infinite;
}
.scn-second-soliloquy-play-plan .chain-links {
  position: absolute; bottom: 25%; left: 20%; width: 4%; height: 30%;
  background: repeating-linear-gradient(180deg, #605040 0px, #605040 4px, transparent 4px, transparent 8px);
  border-radius: 2px; opacity: 0.4;
  animation: sp-chain 6s ease-in-out infinite;
}
@keyframes sp-hamlet { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 50% { transform: translateX(-50%) translateY(-6px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-3deg); } }
@keyframes sp-dagger { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-4px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes sp-beam { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.1); } 100% { opacity: 0.3; transform: scaleY(1); } }
@keyframes sp-mist { 0% { transform: translateX(0) scale(1); opacity: 0.2; } 50% { transform: translateX(20px) scale(1.2); opacity: 0.4; } 100% { transform: translateX(0) scale(1); opacity: 0.2; } }
@keyframes sp-chain { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-8px); } 100% { opacity: 0.3; transform: translateY(0); } }

/* guard-change-cold */
.scn-guard-change-cold { background: linear-gradient(180deg, #121524 0%, #1b2038 50%, #2a3040 100%), radial-gradient(ellipse at 80% 20%, #2a3040 0%, transparent 60%); }
.scn-guard-change-cold .night-sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #0e1120 0%, #1a1f30 60%, transparent 100%); animation: gc-sky 20s ease-in-out infinite alternate; }
.scn-guard-change-cold .castle-wall { position:absolute; inset:auto 0 0 0; height:70%; background: linear-gradient(90deg, #2c2940 0%, #3a3550 30%, #2c2940 70%, #1f1c30 100%); animation: gc-wall 25s linear infinite; }
.scn-guard-change-cold .battlement { position:absolute; bottom:60%; left:0; right:0; height:10%; background: #3a3550; clip-path: polygon(0% 100%, 0% 40%, 5% 40%, 5% 0%, 10% 0%, 10% 40%, 15% 40%, 15% 0%, 20% 0%, 20% 40%, 25% 40%, 25% 0%, 30% 0%, 30% 40%, 35% 40%, 35% 0%, 40% 0%, 40% 40%, 45% 40%, 45% 0%, 50% 0%, 50% 40%, 55% 40%, 55% 0%, 60% 0%, 60% 40%, 65% 40%, 65% 0%, 70% 0%, 70% 40%, 75% 40%, 75% 0%, 80% 0%, 80% 40%, 85% 40%, 85% 0%, 90% 0%, 90% 40%, 95% 40%, 95% 0%, 100% 0%, 100% 40%, 100% 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: gc-battle 15s ease-in-out infinite; }
.scn-guard-change-cold .torch { position:absolute; bottom:40%; left:20%; width:10px; height:30px; background: linear-gradient(180deg, #c07030 0%, #6a3518 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 15px rgba(200,120,40,.6), 0 0 60px 25px rgba(200,120,40,.2); animation: gc-torch 2s ease-in-out infinite alternate; }
.scn-guard-change-cold .figure-left { position:absolute; bottom:30%; left:15%; width:20px; height:45px; background: linear-gradient(180deg, #1a1830 0%, #0f0d1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figure-left 6s ease-in-out infinite; }
.scn-guard-change-cold .figure-right { position:absolute; bottom:30%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #201d35 0%, #121020 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figure-right 7s ease-in-out infinite; }
.scn-guard-change-cold .snowflakes { position:absolute; inset:0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Ccircle cx='2' cy='2' r='1' fill='%23ffffff' opacity='0.3'/%3E%3C/svg%3E") repeat; background-size: 50px 50px; animation: gc-snow 30s linear infinite; }
@keyframes gc-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes gc-wall { 0% { background-position: 0% 0%; } 100% { background-position: -200% 0%; } }
@keyframes gc-battle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes gc-torch { 0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 25px 10px rgba(200,120,40,.6); } 50% { transform: scaleY(1.2) rotate(2deg); box-shadow: 0 0 40px 20px rgba(200,120,40,.8); } 100% { transform: scaleY(0.9) rotate(-1deg); box-shadow: 0 0 20px 8px rgba(200,120,40,.5); } }
@keyframes gc-figure-left { 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 gc-figure-right { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 60% { transform: translateX(-6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gc-snow { 0% { background-position: 0 0; } 100% { background-position: 0 200px; } }

/* ghost-armor-reveal */
.scn-ghost-armor-reveal { background: linear-gradient(180deg, #0f1420 0%, #1a2030 50%, #253040 100%), radial-gradient(ellipse at 50% 30%, #253040 0%, transparent 70%); }
.scn-ghost-armor-reveal .dark-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #080c18 0%, #1a2030 60%, transparent 100%); animation: ghr-bg 30s ease-in-out infinite alternate; }
.scn-ghost-armor-reveal .platform { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3050 0%, #1a2038 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-ghost-armor-reveal .ghost-armor { position:absolute; bottom:25%; left:50%; transform: translateX(-50%); width:60px; height:90px; background: linear-gradient(180deg, #334258 0%, #1e2a3a 50%, #0f1420 100%); border-radius: 25% 25% 20% 20% / 40% 40% 30% 30%; box-shadow: inset 0 -5px 10px rgba(100,150,200,.3), 0 0 30px 10px rgba(100,150,200,.2); animation: ghr-armor 8s ease-in-out infinite alternate; }
.scn-ghost-armor-reveal .armor-glow { position:absolute; bottom:25%; left:50%; transform: translateX(-50%); width:100px; height:120px; background: radial-gradient(ellipse at 50% 40%, rgba(150,200,255,.15) 0%, transparent 70%); animation: ghr-glow 4s ease-in-out infinite alternate; }
.scn-ghost-armor-reveal .horatio { position:absolute; bottom:5%; right:15%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a30 0%, #151528 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ghr-horatio 6s ease-in-out infinite; }
.scn-ghost-armor-reveal .ice-particles { position:absolute; inset:0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='3'%3E%3Ccircle cx='1.5' cy='1.5' r='1' fill='%2380b0ff' opacity='0.25'/%3E%3C/svg%3E") repeat; background-size: 40px 40px; animation: ghr-ice 20s linear infinite; }
@keyframes ghr-bg { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ghr-armor { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-8px) scale(1.05); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes ghr-glow { 0% { opacity:.3; transform: translateX(-50%) scale(0.9); } 50% { opacity:.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:.4; transform: translateX(-50%) scale(0.95); } }
@keyframes ghr-horatio { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ghr-ice { 0% { background-position: 0 0; opacity:0.5; } 50% { background-position: 20px 40px; opacity:1; } 100% { background-position: 40px 80px; opacity:0.5; } }

/* soliloquy-ghost-news */
.scn-soliloquy-ghost-news { background: linear-gradient(180deg, #1c1828 0%, #2a2438 50%, #362e44 100%), radial-gradient(ellipse at 70% 80%, #362e44 0%, transparent 60%); }
.scn-soliloquy-ghost-news .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2038 0%, #3a3048 60%, transparent 100%); animation: sgn-bg 25s ease-in-out infinite alternate; }
.scn-soliloquy-ghost-news .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a3048 0%, #1c1828 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.6); }
.scn-soliloquy-ghost-news .pillar { position:absolute; bottom:0; left:30%; width:25px; height:70%; background: linear-gradient(90deg, #4a3e5c 0%, #5a4e6c 30%, #4a3e5c 70%, #3a2e4c 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,.4); animation: sgn-pillar 20s ease-in-out infinite; }
.scn-soliloquy-ghost-news .hamlet-silhouette { position:absolute; bottom:5%; left:45%; width:20px; height:55px; background: linear-gradient(180deg, #0f0a18 0%, #1a1428 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sgn-hamlet 6s ease-in-out infinite; }
.scn-soliloquy-ghost-news .candle { position:absolute; bottom:20%; left:60%; width:8px; height:25px; background: linear-gradient(180deg, #b06a2a 0%, #6a3a18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: sgn-candle 3s ease-in-out infinite alternate; }
.scn-soliloquy-ghost-news .candle-glow { position:absolute; bottom:23%; left:60%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,130,50,.4) 0%, transparent 70%); animation: sgn-glow 3s ease-in-out infinite alternate; }
.scn-soliloquy-ghost-news .window-arch { position:absolute; bottom:30%; right:10%; width:40px; height:60px; border: 3px solid #4a3e5c; border-radius: 50% 50% 0 0; background: radial-gradient(ellipse at 50% 30%, #2a2038 0%, #1c1828 100%); box-shadow: inset 0 0 15px rgba(100,80,120,.4); animation: sgn-window 15s ease-in-out infinite; }
@keyframes sgn-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes sgn-pillar { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes sgn-hamlet { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(5px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(3deg); } }
@keyframes sgn-candle { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-3deg) scaleY(0.95); } }
@keyframes sgn-glow { 0% { opacity:.3; transform: scale(0.8); } 50% { opacity:.8; transform: scale(1.2); } 100% { opacity:.4; transform: scale(0.9); } }
@keyframes sgn-window { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

/* polonius-commands-ophelia */
.scn-polonius-commands-ophelia { background: linear-gradient(180deg, #1e1628 0%, #2a1e38 50%, #382648 100%), radial-gradient(ellipse at 60% 50%, #382648 0%, transparent 60%); }
.scn-polonius-commands-ophelia .study-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1e38 0%, #3a2e48 60%, transparent 100%); animation: pco-wall 30s ease-in-out infinite alternate; }
.scn-polonius-commands-ophelia .bookshelf { position:absolute; bottom:20%; right:5%; width:30%; height:70%; background: linear-gradient(90deg, #4a3e5c 0%, #5a4e6c 30%, #4a3e5c 70%, #3a2e4c 100%); border-radius: 3%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); overflow: hidden; }
.scn-polonius-commands-ophelia .bookshelf::before { content:''; position:absolute; inset:10px; background: repeating-linear-gradient(0deg, #3a2e4c 0px, #3a2e4c 8px, transparent 8px, transparent 10px); }
.scn-polonius-commands-ophelia .desk { position:absolute; bottom:10%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #5a4a3c 0%, #3a2e1c 100%); border-radius: 5% 5% 0 0; box-shadow: 0 5px 15px rgba(0,0,0,.5); }
.scn-polonius-commands-ophelia .polonius-figure { position:absolute; bottom:10%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #1a1628 0%, #2a1e38 100%); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pco-polonius 5s ease-in-out infinite; }
.scn-polonius-commands-ophelia .ophelia-figure { position:absolute; bottom:8%; left:55%; width:18px; height:42px; background: linear-gradient(180deg, #1e1a2a 0%, #120e1c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pco-ophelia 6s ease-in-out infinite; }
.scn-polonius-commands-ophelia .candle-light { position:absolute; bottom:15%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #b06a2a 0%, #6a3a18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 25px 10px rgba(180,90,30,.5), 0 0 50px 20px rgba(180,90,30,.15); animation: pco-candle 2.5s ease-in-out infinite alternate; }
.scn-polonius-commands-ophelia .shadow-bars { position:absolute; inset:0; background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,.4) 40%, transparent 60%, rgba(0,0,0,.3) 80%); animation: pco-shadows 15s linear infinite; }
@keyframes pco-wall { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes pco-polonius { 0% { transform: translateX(0) rotate(-2deg) scaleX(1); } 25% { transform: translateX(5px) rotate(3deg) scaleX(0.95); } 50% { transform: translateX(10px) rotate(0deg) scaleX(1); } 75% { transform: translateX(5px) rotate(-3deg) scaleX(0.95); } 100% { transform: translateX(0) rotate(2deg) scaleX(1); } }
@keyframes pco-ophelia { 0% { transform: translateX(0) rotate(0deg) scale(1); } 30% { transform: translateX(-3px) rotate(-4deg) scale(0.95); } 60% { transform: translateX(-6px) rotate(0deg) scale(0.9); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes pco-candle { 0% { transform: rotate(-3deg) scaleY(1); box-shadow: 0 0 20px 8px rgba(180,90,30,.5); } 50% { transform: rotate(3deg) scaleY(1.15); box-shadow: 0 0 30px 15px rgba(180,90,30,.7); } 100% { transform: rotate(-2deg) scaleY(0.95); box-shadow: 0 0 15px 5px rgba(180,90,30,.4); } }
@keyframes pco-shadows { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 200% 0%; } }

/* laertes-returns-revenge-plot */
.scn-laertes-returns-revenge-plot {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #8a7a5a 60%, #c0b090 100%), radial-gradient(ellipse at 50% 20%, #f0d090 0%, transparent 60%);
}
.scn-laertes-returns-revenge-plot .bg    { position:absolute; inset:0; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 30%, transparent 70%, rgba(0,0,0,.2) 100%); }
.scn-laertes-returns-revenge-plot .wall  { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-laertes-returns-revenge-plot .throne{ position:absolute; bottom:20%; left:15%; width:50px; height:70px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 5px 8px 15px rgba(0,0,0,.6); transform: rotate(2deg); animation: rr-throne 6s ease-in-out infinite; }
.scn-laertes-returns-revenge-plot .laertes{ position:absolute; bottom:15%; right:20%; width:24px; height:42px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rr-laertes 1.2s ease-in-out infinite; }
.scn-laertes-returns-revenge-plot .ophelia{ position:absolute; bottom:18%; left:40%; width:20px; height:38px; background: linear-gradient(180deg, #b8a080 0%, #7a6a5a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: rr-ophelia 3s ease-in-out infinite; }
.scn-laertes-returns-revenge-plot .candle{ position:absolute; top:10%; right:10%; width:6px; height:18px; background: linear-gradient(180deg, #ffe0b0 0%, #b08040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 10px #ffc070; animation: rr-candle 0.5s ease-in-out infinite alternate; }
.scn-laertes-returns-revenge-plot .shadow{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(20,10,5,.6) 100%); animation: rr-shadow 3s ease-in-out infinite; }
@keyframes rr-throne    { 0%,100% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(.98); } }
@keyframes rr-laertes   { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(-8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-32px) translateY(0) rotate(0deg); } }
@keyframes rr-ophelia   { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes rr-candle    { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 18px 8px #ffc070; } 50% { transform: scaleY(1.1) scaleX(.9); box-shadow: 0 0 28px 14px #ffd080; } 100% { transform: scaleY(.95) scaleX(1.05); box-shadow: 0 0 20px 10px #ffb860; } }
@keyframes rr-shadow    { 0%,100% { opacity: .8; } 50% { opacity: .5; } }

/* pirate-letter-poison-plan */
.scn-pirate-letter-poison-plan {
  background: linear-gradient(135deg, #1a1820 0%, #2c2840 40%, #3a3050 70%, #1e1a2e 100%), radial-gradient(ellipse at 30% 80%, #3e3a5a 0%, transparent 70%);
}
.scn-pirate-letter-poison-plan .bg      { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 50%, rgba(0,0,0,.4) 100%); }
.scn-pirate-letter-poison-plan .table   { position:absolute; bottom:15%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5); }
.scn-pirate-letter-poison-plan .claudius{ position:absolute; bottom:20%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pp_claudius 5s ease-in-out infinite; }
.scn-pirate-letter-poison-plan .laertes { position:absolute; bottom:20%; right:30%; width:20px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pp_laertes 4s ease-in-out infinite; }
.scn-pirate-letter-poison-plan .letter  { position:absolute; bottom:25%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 10%; transform: rotate(-10deg); box-shadow: 2px 3px 8px rgba(0,0,0,.4); animation: pp_letter 6s ease-in-out infinite; }
.scn-pirate-letter-poison-plan .goblet  { position:absolute; bottom:23%; left:48%; width:14px; height:18px; background: linear-gradient(180deg, #806040 0%, #4a3020 100%); border-radius: 0 0 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: pp_goblet 3s ease-in-out infinite; }
.scn-pirate-letter-poison-plan .rapier  { position:absolute; bottom:28%; right:38%; width:4px; height:36px; background: linear-gradient(180deg, #a0a0b0 0%, #505060 100%); border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 0 6px 2px #c0c0d0; animation: pp_rapier 2s ease-in-out infinite; }
@keyframes pp_claudius { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(.97); } }
@keyframes pp_laertes  { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-4deg) scale(.96); } }
@keyframes pp_letter   { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes pp_goblet   { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.03); } }
@keyframes pp_rapier   { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-18deg) scaleX(1.05); } 100% { transform: rotate(-22deg) scaleX(.95); } }

/* item-poisoned-rapier-cup */
.scn-item-poisoned-rapier-cup {
  background: linear-gradient(180deg, #0e0a14 0%, #1a1428 40%, #2a1e3a 70%, #0e0a14 100%), radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 60%);
}
.scn-item-poisoned-rapier-cup .bg         { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.5) 100%); }
.scn-item-poisoned-rapier-cup .rapier     { position:absolute; bottom:20%; left:30%; width:6px; height:70px; background: linear-gradient(180deg, #c0b0c0 0%, #706070 50%, #303040 100%); border-radius: 3px; transform: rotate(30deg); box-shadow: 0 0 15px 3px #8090a0; animation: rc_rapier 3s ease-in-out infinite; }
.scn-item-poisoned-rapier-cup .cup        { position:absolute; bottom:15%; right:35%; width:20px; height:24px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 0 0 40% 40%; box-shadow: 0 6px 20px rgba(0,0,0,.7); animation: rc_cup 4s ease-in-out infinite; }
.scn-item-poisoned-rapier-cup .poison-drip{ position:absolute; bottom:22%; left:32%; width:4px; height:12px; background: linear-gradient(180deg, #2a8a4a 0%, #1a5a3a 100%); border-radius: 2px; box-shadow: 0 0 10px 2px #2a8a4a; animation: rc_poison 2s ease-in-out infinite alternate; }
.scn-item-poisoned-rapier-cup .gertrude   { position:absolute; bottom:10%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rc_gertrude 5s ease-in-out infinite; }
.scn-item-poisoned-rapier-cup .shadow     { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(10,5,15,.8) 100%); animation: rc_shadow 3s ease-in-out infinite; }
@keyframes rc_rapier   { 0%,100% { transform: rotate(30deg) scaleX(1); } 50% { transform: rotate(28deg) scaleX(1.02); } }
@keyframes rc_cup      { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes rc_poison   { 0% { transform: translateY(0) scaleY(1); opacity:.8; } 50% { transform: translateY(3px) scaleY(.7); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:.8; } }
@keyframes rc_gertrude { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes rc_shadow   { 0%,100% { opacity:.6; } 50% { opacity:.9; } }

/* gravediggers-yorick-skull */
.scn-gravediggers-yorick-skull {
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 30%, #3a3a4a 70%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #7a7a8a 0%, transparent 80%);
}
.scn-gravediggers-yorick-skull .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: gd_sky 12s ease-in-out infinite alternate; }
.scn-gravediggers-yorick-skull .ground  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: gd_ground 8s ease-in-out infinite; }
.scn-gravediggers-yorick-skull .skull   { position:absolute; bottom:30%; left:40%; width:30px; height:36px; background: linear-gradient(180deg, #c0b0a0 0%, #807060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 20px rgba(0,0,0,.5); transform: rotate(10deg); animation: gd_skull 5s ease-in-out infinite; }
.scn-gravediggers-yorick-skull .digger-1{ position:absolute; bottom:15%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: gd_digger1 4s ease-in-out infinite; }
.scn-gravediggers-yorick-skull .digger-2{ position:absolute; bottom:15%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: gd_digger2 4s ease-in-out infinite 0.5s; }
.scn-gravediggers-yorick-skull .cross   { position:absolute; bottom:38%; right:20%; width:4px; height:30px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,.3); transform: rotate(5deg); animation: gd_cross 6s ease-in-out infinite; }
.scn-gravediggers-yorick-skull .tree    { position:absolute; bottom:25%; left:10%; width:8px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: gd_tree 7s ease-in-out infinite; }
@keyframes gd_sky      { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes gd_ground   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes gd_skull    { 0%,100% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } }
@keyframes gd_digger1  { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(6px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gd_digger2  { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(6px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-6px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gd_cross    { 0%,100% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.03); } }
@keyframes gd_tree     { 0%,100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(.97); } }

/* Scene 1: ghost-reveals-murder */
.scn-ghost-reveals-murder {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #2a1a2a 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 70%);
}
.scn-ghost-reveals-murder .castle-wall {
  position: absolute; inset: 20% 10% 30% 10%;
  background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 50%, #2a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: grm-wall 12s ease-in-out infinite alternate;
}
.scn-ghost-reveals-murder .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(100,80,120,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: grm-mist 6s ease-in-out infinite alternate;
}
.scn-ghost-reveals-murder .ghost-figure {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,160,200,0.6) 0%, rgba(100,80,120,0.3) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: grm-ghost 8s ease-in-out infinite alternate;
}
.scn-ghost-reveals-murder .ghost-glow {
  position: absolute; bottom: 25%; left: 33%; width: 54px; height: 100px;
  background: radial-gradient(circle, rgba(180,160,200,0.2) 0%, transparent 80%);
  border-radius: 50%;
  animation: grm-glow 4s ease-in-out infinite alternate;
}
.scn-ghost-reveals-murder .hamlet-figure {
  position: absolute; bottom: 28%; right: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grm-hamlet 10s ease-in-out infinite;
}
.scn-ghost-reveals-murder .sword {
  position: absolute; bottom: 50%; right: 22%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #aaa 0%, #ccc 50%, #888 100%);
  border-radius: 2px; transform: rotate(-20deg);
  animation: grm-sword 3s ease-in-out infinite alternate;
}
.scn-ghost-reveals-murder .moon-beam {
  position: absolute; top: 5%; left: 20%; width: 10px; height: 40%;
  background: linear-gradient(180deg, rgba(200,200,255,0.15) 0%, transparent 100%);
  border-radius: 10px; filter: blur(4px);
  animation: grm-beam 15s linear infinite alternate;
}
@keyframes grm-wall { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes grm-mist { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-5px); } 100% { opacity: 0.4; transform: translateY(0); } }
@keyframes grm-ghost { 0% { opacity: 0.5; transform: translateY(0) scale(1); } 50% { opacity: 0.8; transform: translateY(-3px) scale(1.05); } 100% { opacity: 0.6; transform: translateY(0) scale(1); } }
@keyframes grm-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.08); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes grm-hamlet { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(-4px) rotate(1deg); } 75% { transform: translateX(3px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes grm-sword { 0% { transform: rotate(-20deg); opacity: 0.8; } 50% { transform: rotate(-15deg) scaleY(1.1); opacity: 1; } 100% { transform: rotate(-22deg); opacity: 0.9; } }
@keyframes grm-beam { 0% { opacity: 0.1; transform: translateX(-10px); } 50% { opacity: 0.3; transform: translateX(10px); } 100% { opacity: 0.15; transform: translateX(-5px); } }

/* Scene 2: hamlet-swears-revenge */
.scn-hamlet-swears-revenge {
  background: linear-gradient(180deg, #0a0a1a 0%, #15152b 50%, #1a1a30 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a40 0%, transparent 60%);
}
.scn-hamlet-swears-revenge .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #2a2a40 100%);
  animation: hsr-sky 20s ease-in-out infinite alternate;
}
.scn-hamlet-swears-revenge .tombstone {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: hsr-tomb 9s ease-in-out infinite;
}
.scn-hamlet-swears-revenge .hamlet-silhouette {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #0e0e1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsr-hamlet 4s ease-in-out infinite;
}
.scn-hamlet-swears-revenge .sword-raise {
  position: absolute; bottom: 40%; left: 42%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #999 0%, #bbb 50%, #777 100%);
  border-radius: 2px; transform: rotate(-30deg);
  animation: hsr-sword 3s ease-in-out infinite alternate;
}
.scn-hamlet-swears-revenge .friends-silhouette {
  position: absolute; bottom: 22%; right: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #141428 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hsr-friends 6s ease-in-out infinite;
}
.scn-hamlet-swears-revenge .ghost-voice {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(circle, rgba(150,130,180,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: hsr-voice 5s ease-in-out infinite alternate;
}
@keyframes hsr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hsr-tomb { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes hsr-hamlet { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-5px) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hsr-sword { 0% { transform: rotate(-30deg); opacity: 0.7; } 50% { transform: rotate(-20deg) scaleY(1.2); opacity: 1; } 100% { transform: rotate(-35deg); opacity: 0.8; } }
@keyframes hsr-friends { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes hsr-voice { 0% { opacity: 0.2; transform: scale(1) translate(-50%, 0); } 50% { opacity: 0.5; transform: scale(1.3) translate(-50%, -3px); } 100% { opacity: 0.3; transform: scale(1) translate(-50%, 0); } }

/* Scene 3: polonius-spies-reynaldo */
.scn-polonius-spies-reynaldo {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 70%);
}
.scn-polonius-spies-reynaldo .dim-wall {
  position: absolute; inset: 15% 10% 20% 10%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: psr-wall 14s ease-in-out infinite alternate;
}
.scn-polonius-spies-reynaldo .desk {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: psr-desk 8s ease-in-out infinite;
}
.scn-polonius-spies-reynaldo .candle-glow {
  position: absolute; bottom: 32%; left: 40%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffc080 0%, #b07030 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,120,40,0.5);
  animation: psr-candle 2s ease-in-out infinite alternate;
}
.scn-polonius-spies-reynaldo .polonius-figure {
  position: absolute; bottom: 30%; left: 20%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: psr-polonius 5s ease-in-out infinite;
}
.scn-polonius-spies-reynaldo .reynaldo-figure {
  position: absolute; bottom: 28%; right: 20%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psr-reynaldo 6s ease-in-out infinite;
}
.scn-polonius-spies-reynaldo .papers {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px; transform: rotate(5deg);
  animation: psr-papers 7s ease-in-out infinite alternate;
}
.scn-polonius-spies-reynaldo .shadow-stripe {
  position: absolute; left: 0; right: 0; bottom: 20%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: psr-shadow 10s ease-in-out infinite alternate;
}
@keyframes psr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes psr-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes psr-candle { 0% { opacity: 0.8; box-shadow: 0 0 20px 4px rgba(200,120,40,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 10px rgba(200,120,40,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 25px 6px rgba(200,120,40,0.45); } }
@keyframes psr-polonius { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes psr-reynaldo { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes psr-papers { 0% { transform: rotate(5deg) translateY(0); opacity: 0.8; } 50% { transform: rotate(8deg) translateY(-1px); opacity: 1; } 100% { transform: rotate(2deg) translateY(0); opacity: 0.9; } }
@keyframes psr-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* Scene 4: king-welcomes-spies */
.scn-king-welcomes-spies {
  background: linear-gradient(180deg, #c8b89a 0%, #b0a080 40%, #a09070 100%),
              radial-gradient(ellipse at 50% 30%, #d8c8a8 0%, transparent 70%);
}
.scn-king-welcomes-spies .throne-room-bg {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(135deg, #b8a888 0%, #c8b898 50%, #a89878 100%);
  border-radius: 12px; box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: kws-bg 20s ease-in-out infinite alternate;
}
.scn-king-welcomes-spies .throne-left {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #906840 0%, #705020 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: kws-throne 8s ease-in-out infinite;
}
.scn-king-welcomes-spies .throne-right {
  position: absolute; bottom: 20%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #906840 0%, #705020 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: kws-throne 8s ease-in-out infinite reverse;
}
.scn-king-welcomes-spies .king-figure {
  position: absolute; bottom: 24%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(25px);
  animation: kws-king 10s ease-in-out infinite;
}
.scn-king-welcomes-spies .queen-figure {
  position: absolute; bottom: 24%; right: 20%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-25px);
  animation: kws-queen 10s ease-in-out infinite reverse;
}
.scn-king-welcomes-spies .spy-left {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kws-spy 6s ease-in-out infinite;
}
.scn-king-welcomes-spies .spy-right {
  position: absolute; bottom: 26%; right: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kws-spy 6s ease-in-out infinite 3s;
}
.scn-king-welcomes-spies .window-light {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, rgba(255,230,180,0.1) 100%);
  border-radius: 8px; box-shadow: 0 0 30px 10px rgba(255,230,180,0.2);
  animation: kws-light 15s ease-in-out infinite alternate;
}
@keyframes kws-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kws-throne { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes kws-king { 0% { transform: translateX(25px) translateY(0) rotate(0deg); } 50% { transform: translateX(25px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(25px) translateY(0) rotate(0deg); } }
@keyframes kws-queen { 0% { transform: translateX(-25px) translateY(0) rotate(0deg); } 50% { transform: translateX(-25px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-25px) translateY(0) rotate(0deg); } }
@keyframes kws-spy { 0% { transform: translateY(0) scale(1); opacity: 0.9; } 50% { transform: translateY(-4px) scale(1.05); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.95; } }
@keyframes kws-light { 0% { opacity: 0.3; transform: translateX(-50%) scale(1); } 50% { opacity: 0.6; transform: translateX(-50%) scale(1.08); } 100% { opacity: 0.4; transform: translateX(-50%) scale(1); } }

.scn-fencing-match--gertrude-poisoned {
  background: 
    linear-gradient(135deg, #f0d9c0 0%, #d4b896 60%, #b89470 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-fencing-match--gertrude-poisoned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a67c52 0%, #7a5a3a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.3);
}
.scn-fencing-match--gertrude-poisoned .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4a882 100%);
}
.scn-fencing-match--gertrude-poisoned .table {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1e 100%);
  border-radius: 4px; transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fm-table 6s ease-in-out infinite;
}
.scn-fencing-match--gertrude-poisoned .cup {
  position: absolute; bottom: 28%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c9a96e 0%, #a07a4a 100%);
  border-radius: 0 0 6px 6px; transform: translateX(-50%);
  box-shadow: 0 0 12px 3px rgba(160,122,74,0.5);
  animation: fm-cup 2s ease-in-out infinite alternate;
}
.scn-fencing-match--gertrude-poisoned .fencer-l {
  position: absolute; bottom: 15%; left: 18%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-fencer-l 1.5s ease-in-out infinite;
}
.scn-fencing-match--gertrude-poisoned .fencer-r {
  position: absolute; bottom: 15%; right: 22%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-fencer-r 1.5s ease-in-out infinite reverse;
}
.scn-fencing-match--gertrude-poisoned .gertrude {
  position: absolute; bottom: 12%; left: 60%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #b87878 0%, #7a5050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-gertrude 4s ease-in-out infinite;
}
.scn-fencing-match--gertrude-poisoned .chandelier {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #d4a96a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  transform: translateX(-50%);
  animation: fm-chandelier 3s ease-in-out infinite alternate;
}
@keyframes fm-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes fm-cup {
  0% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(2deg) scale(1.05); }
}
@keyframes fm-fencer-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fm-fencer-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fm-gertrude {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  60% { transform: translateY(0) rotate(0deg); }
  80% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes fm-chandelier {
  0% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
  100% { opacity: 1; transform: translateX(-50%) scale(1.05); }
}

.scn-final-death-scene-claudius-killed {
  background: 
    linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a5a 0%, transparent 60%);
}
.scn-final-death-scene-claudius-killed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.6);
}
.scn-final-death-scene-claudius-killed .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
}
.scn-final-death-scene-claudius-killed .throne {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 12% 12% 4% 4%; transform: translateX(-50%);
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.8);
  animation: fd-throne 8s ease-in-out infinite;
}
.scn-final-death-scene-claudius-killed .cup {
  position: absolute; bottom: 26%; left: 43%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  border-radius: 0 0 5px 5px; transform: rotate(30deg);
  box-shadow: 0 0 10px 2px rgba(160,128,96,0.5);
  animation: fd-cup 2s ease-in-out infinite alternate;
}
.scn-final-death-scene-claudius-killed .claudius {
  position: absolute; bottom: 8%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-claudius 3s ease-in-out infinite;
}
.scn-final-death-scene-claudius-killed .hamlet {
  position: absolute; bottom: 10%; right: 40%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-hamlet 1.2s ease-in-out infinite;
}
.scn-final-death-scene-claudius-killed .splash {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 18px;
  background: radial-gradient(circle, #7a3a3a 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: fd-splash 0.8s ease-in-out infinite alternate;
}
.scn-final-death-scene-claudius-killed .tapestry {
  position: absolute; top: 10%; right: 5%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4px; filter: blur(1px);
  animation: fd-tapestry 15s ease-in-out infinite;
}
@keyframes fd-throne {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.98); }
}
@keyframes fd-cup {
  0% { transform: rotate(25deg) translateX(0); }
  100% { transform: rotate(35deg) translateX(2px); }
}
@keyframes fd-claudius {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-6px) rotate(3deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  75% { transform: translateY(-8px) rotate(1deg); }
}
@keyframes fd-hamlet {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-10px) rotate(-8deg); }
  60% { transform: translateX(0) rotate(0deg); }
  90% { transform: translateX(8px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fd-splash {
  0% { opacity: 0.6; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}
@keyframes fd-tapestry {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

.scn-scene-list-iii-vii {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 70%);
}
.scn-scene-list-iii-vii .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
}
.scn-scene-list-iii-vii .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.5);
}
.scn-scene-list-iii-vii .table {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-scene-list-iii-vii .chair {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  transform-origin: bottom center;
  animation: s3-chair 10s ease-in-out infinite;
}
.scn-scene-list-iii-vii .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px 4px 2px 2px; transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(200,160,96,0.4);
  animation: s3-candle 4s ease-in-out infinite alternate;
}
.scn-scene-list-iii-vii .books {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: s3-books 6s ease-in-out infinite;
}
.scn-scene-list-iii-vii .window {
  position: absolute; top: 15%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: s3-window 15s ease-in-out infinite;
}
@keyframes s3-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes s3-candle {
  0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(200,160,96,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(200,160,96,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 18px 6px rgba(200,160,96,0.4); }
}
@keyframes s3-books {
  0%, 100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
}
@keyframes s3-window {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

.scn-scene-list-iv-vii {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 90%, #3a3a4a 0%, transparent 70%);
}
.scn-scene-list-iv-vii .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-scene-list-iv-vii .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.7);
}
.scn-scene-list-iv-vii .altar {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%; transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: s4-altar 12s ease-in-out infinite;
}
.scn-scene-list-iv-vii .candles {
  position: absolute; bottom: 25%; left: 50%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px 4px 2px 2px; transform: translateX(-50%);
  box-shadow: 0 0 30px 12px rgba(200,160,96,0.5);
  animation: s4-candles 3s ease-in-out infinite alternate;
}
.scn-scene-list-iv-vii .coffin {
  position: absolute; bottom: 5%; left: 50%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 10% 10% / 8% 8% 20% 20%; transform: translateX(-50%);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
  animation: s4-coffin 20s ease-in-out infinite;
}
.scn-scene-list-iv-vii .cross {
  position: absolute; top: 10%; left: 50%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: s4-cross 5s ease-in-out infinite;
}
.scn-scene-list-iv-vii .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: s4-shadow 8s ease-in-out infinite;
}
@keyframes s4-altar {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.98); }
}
@keyframes s4-candles {
  0% { opacity: 0.7; box-shadow: 0 0 20px 8px rgba(200,160,96,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 16px rgba(200,160,96,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 10px rgba(200,160,96,0.4); }
}
@keyframes s4-coffin {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes s4-cross {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes s4-shadow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}

.scn-claudius-spy-plan-ophelia { background: linear-gradient(180deg, #1a1a2e 0%, #2a1e1a 40%, #1e1210 100%), radial-gradient(ellipse at 50% 100%, #1a1210 0%, transparent 70%); }
.scn-claudius-spy-plan-ophelia .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2220 0%, #1a1412 60%, #12100e 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 30px 40px rgba(0,0,0,.4); animation: sp-wall 12s ease-in-out infinite alternate; }
.scn-claudius-spy-plan-ophelia .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-claudius-spy-plan-ophelia .table { position:absolute; bottom:22%; left:30%; width:50px; height:8px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-claudius-spy-plan-ophelia .candle { position:absolute; bottom:30%; left:35%; width:6px; height:16px; background: linear-gradient(180deg, #b08040 0%, #8a6030 100%); border-radius: 2px; animation: sp-candle 4s ease-in-out infinite; }
.scn-claudius-spy-plan-ophelia .candle::after { content:''; position:absolute; top:-10px; left:50%; width:10px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%); border-radius: 50%; animation: sp-flame 1s ease-in-out infinite alternate; }
.scn-claudius-spy-plan-ophelia .claudius { position:absolute; bottom:5%; left:20%; width:24px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sp-figure 5s ease-in-out infinite; }
.scn-claudius-spy-plan-ophelia .claudius::before { content:''; position:absolute; top:5px; left:5px; width:14px; height:14px; background: #4a3a2a; border-radius: 50%; }
.scn-claudius-spy-plan-ophelia .polonius { position:absolute; bottom:5%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: sp-figure 6s ease-in-out infinite 0.5s; }
.scn-claudius-spy-plan-ophelia .polonius::before { content:''; position:absolute; top:5px; left:4px; width:12px; height:12px; background: #3a2a1a; border-radius: 50%; }
.scn-claudius-spy-plan-ophelia .ophelia-book { position:absolute; bottom:5%; left:60%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sp-figure 7s ease-in-out infinite 1s; }
.scn-claudius-spy-plan-ophelia .ophelia-book::after { content:''; position:absolute; top:20px; left:2px; width:16px; height:12px; background: #4a3a2a; border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.3); transform: rotate(-10deg); }
.scn-claudius-spy-plan-ophelia .shadow-1 { position:absolute; bottom:0; left:15%; width:30%; height:20%; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: sp-shadow 8s ease-in-out infinite alternate; }
.scn-claudius-spy-plan-ophelia .shadow-2 { position:absolute; bottom:0; right:15%; width:25%; height:15%; background: linear-gradient(270deg, rgba(0,0,0,.5) 0%, transparent 100%); animation: sp-shadow 9s ease-in-out infinite alternate-reverse; }
@keyframes sp-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes sp-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes sp-flame { 0% { transform: translateX(-50%) scale(0.9); opacity:.9; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:.85; } }
@keyframes sp-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sp-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-scene-ii-to-be-soliloquy { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a1e2e 100%), radial-gradient(ellipse at 30% 20%, #2a2a4e 0%, transparent 60%); }
.scn-scene-ii-to-be-soliloquy .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 40px 60px rgba(0,0,0,.5); }
.scn-scene-ii-to-be-soliloquy .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0a12 0%, #060608 100%); }
.scn-scene-ii-to-be-soliloquy .window { position:absolute; top:15%; left:10%; width:60px; height:80px; background: #1a2a3a; border: 3px solid #2a2a4a; border-radius: 4px 4px 6px 6px; box-shadow: inset 0 0 20px #0a0a1a; }
.scn-scene-ii-to-be-soliloquy .moonlight { position:absolute; top:20%; left:10%; width:60px; height:80px; background: linear-gradient(180deg, rgba(180,200,255,.08) 0%, rgba(180,200,255,.02) 100%); filter: blur(8px); animation: tb-moon 10s ease-in-out infinite alternate; }
.scn-scene-ii-to-be-soliloquy .hamlet { position:absolute; bottom:10%; left:40%; width:28px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-hamlet 6s ease-in-out infinite; }
.scn-scene-ii-to-be-soliloquy .hamlet::before { content:''; position:absolute; top:8px; left:4px; width:20px; height:20px; background: #1a1a2a; border-radius: 50%; }
.scn-scene-ii-to-be-soliloquy .chair { position:absolute; bottom:10%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-scene-ii-to-be-soliloquy .pillar { position:absolute; bottom:0; right:20%; width:20px; height:100%; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2e 50%, #2a2a3a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: tb-pillar 15s ease-in-out infinite alternate; }
.scn-scene-ii-to-be-soliloquy .fog { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(0deg, transparent 0%, rgba(180,200,255,.02) 20%, transparent 40%); filter: blur(12px); animation: tb-fog 20s linear infinite; }
@keyframes tb-moon { 0% { opacity:.1; } 50% { opacity:.3; } 100% { opacity:.15; } }
@keyframes tb-hamlet { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tb-pillar { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(0.98); opacity:.85; } }
@keyframes tb-fog { 0% { transform: translateY(0); } 50% { transform: translateY(-20px); } 100% { transform: translateY(0); } }

.scn-nunnery-scene-hamlet-rants { background: linear-gradient(180deg, #1a1218 0%, #2a1a1a 40%, #1a0e0e 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 70%); }
.scn-nunnery-scene-hamlet-rants .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%); border-radius: 0 0 15% 15%; box-shadow: inset 0 30px 50px rgba(0,0,0,.4); }
.scn-nunnery-scene-hamlet-rants .arch { position:absolute; top:10%; left:35%; width:100px; height:140px; background: #1a1210; border-radius: 50% 50% 0 0 / 60% 60% 0 0; border: 4px solid #2a1a1a; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-nunnery-scene-hamlet-rants .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0e0a0a 0%, #060404 100%); }
.scn-nunnery-scene-hamlet-rants .hamlet { position:absolute; bottom:10%; left:30%; width:30px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: nu-hamlet 3s ease-in-out infinite; }
.scn-nunnery-scene-hamlet-rants .hamlet::before { content:''; position:absolute; top:8px; left:5px; width:20px; height:22px; background: #2a1a1a; border-radius: 50%; }
.scn-nunnery-scene-hamlet-rants .hamlet::after { content:''; position:absolute; top:20px; right:-10px; width:30px; height:4px; background: #1a0a0a; border-radius: 2px; transform: rotate(-20deg); transform-origin: left; animation: nu-arm 2s ease-in-out infinite alternate; }
.scn-nunnery-scene-hamlet-rants .ophelia { position:absolute; bottom:10%; left:55%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: nu-ophelia 5s ease-in-out infinite 0.5s; }
.scn-nunnery-scene-hamlet-rants .ophelia::before { content:''; position:absolute; top:10px; left:4px; width:16px; height:16px; background: #1a1a2a; border-radius: 50%; }
.scn-nunnery-scene-hamlet-rants .book { position:absolute; bottom:12%; left:50%; width:14px; height:10px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-15deg); animation: nu-book 4s ease-in-out infinite; }
.scn-nunnery-scene-hamlet-rants .cross { position:absolute; top:15%; right:20%; width:6px; height:40px; background: #3a2a1a; border-radius: 2px; animation: nu-cross 8s ease-in-out infinite alternate; }
.scn-nunnery-scene-hamlet-rants .cross::after { content:''; position:absolute; top:8px; left:-10px; width:26px; height:4px; background: #3a2a1a; border-radius: 2px; }
.scn-nunnery-scene-hamlet-rants .shadow { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 50%, rgba(0,0,0,.4) 100%); filter: blur(8px); animation: nu-shadow 7s ease-in-out infinite alternate; }
@keyframes nu-hamlet { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(8px) rotate(3deg); } 40% { transform: translateX(-4px) rotate(-2deg); } 60% { transform: translateX(6px) rotate(1deg); } 80% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nu-arm { 0% { transform: rotate(-20deg); } 100% { transform: rotate(30deg); } }
@keyframes nu-ophelia { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nu-book { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes nu-cross { 0% { transform: scaleY(1); opacity:.7; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:.8; } }
@keyframes nu-shadow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-play-before-the-murder { background: linear-gradient(180deg, #a08050 0%, #d0b070 30%, #c0a060 60%, #8a6a3a 100%), radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 70%); }
.scn-play-before-the-murder .stage { position:absolute; bottom:0; left:5%; right:5%; height:60%; background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-play-before-the-murder .curtain { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(90deg, #a04020 0%, #c05030 20%, #b04828 40%, #d05838 60%, #c05030 80%, #a04020 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 85% 80%, 70% 55%, 55% 75%, 40% 50%, 25% 70%, 15% 50%, 0% 80%); animation: pl-curtain 15s ease-in-out infinite alternate; }
.scn-play-before-the-murder .king { position:absolute; bottom:20%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-figure 6s ease-in-out infinite; }
.scn-play-before-the-murder .king::before { content:''; position:absolute; top:5px; left:5px; width:20px; height:20px; background: #5a3a1a; border-radius: 50%; box-shadow: 0 -4px 0 2px #b08040; } /* crown */
.scn-play-before-the-murder .queen { position:absolute; bottom:20%; left:40%; width:28px; height:65px; background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: pl-figure 7s ease-in-out infinite 0.3s; }
.scn-play-before-the-murder .queen::before { content:''; position:absolute; top:8px; left:6px; width:16px; height:16px; background: #4a2a3a; border-radius: 50%; }
.scn-play-before-the-murder .player { position:absolute; bottom:20%; left:55%; width:26px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: pl-player 4s ease-in-out infinite; }
.scn-play-before-the-murder .player::before { content:''; position:absolute; top:12px; left:8px; width:10px; height:10px; background: #3a2a3a; border-radius: 50%; }
.scn-play-before-the-murder .hamlet { position:absolute; bottom:5%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pl-hamlet 8s ease-in-out infinite; }
.scn-play-before-the-murder .hamlet::before { content:''; position:absolute; top:8px; left:4px; width:16px; height:16px; background: #2a1a2a; border-radius: 50%; }
.scn-play-before-the-murder .ophelia { position:absolute; bottom:5%; left:45%; width:22px; height:45px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pl-figure 9s ease-in-out infinite 1s; }
.scn-play-before-the-murder .ophelia::before { content:''; position:absolute; top:8px; left:4px; width:14px; height:14px; background: #3a2a3a; border-radius: 50%; }
.scn-play-before-the-murder .torch { position:absolute; bottom:55%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%); border-radius: 4px; animation: pl-torch 3s ease-in-out infinite alternate; }
.scn-play-before-the-murder .torch::after { content:''; position:absolute; top:-12px; left:50%; width:16px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #c08040 50%, transparent 70%); border-radius: 50%; animation: pl-flame 0.8s ease-in-out infinite alternate; }
.scn-play-before-the-murder .audience { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); clip-path: polygon(0% 100%, 0% 40%, 10% 50%, 20% 30%, 30% 45%, 40% 35%, 50% 50%, 60% 35%, 70% 45%, 80% 30%, 90% 50%, 100% 40%, 100% 100%); }
@keyframes pl-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes pl-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pl-player { 0% { transform: translateY(0) rotate(0deg) scale(1); } 30% { transform: translateY(-4px) rotate(2deg) scale(1.02); } 60% { transform: translateY(2px) rotate(-1deg) scale(0.98); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes pl-hamlet { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 40% { transform: translateX(-3px) translateY(0) rotate(-1deg); } 60% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 80% { transform: translateX(-2px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pl-torch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes pl-flame { 0% { transform: translateX(-50%) scale(0.9); opacity:.8; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.85); opacity:.7; } }

.scn-murder-of-gonzago-claudius-reacts {
  background: linear-gradient(180deg, #d4b48c 0%, #c49a6c 40%, #a67c4e 100%),
              radial-gradient(ellipse at 50% 30%, #f2d8a8 0%, transparent 60%);
}
.scn-murder-of-gonzago-claudius-reacts .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #8a6e4a 0%, #b89262 100%);
  border-radius: 4px 4px 0 0;
}
.scn-murder-of-gonzago-claudius-reacts .backdrop {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: radial-gradient(ellipse at 50% 40%, #e8cfaa 0%, #c8a87a 80%);
  filter: blur(3px);
}
.scn-murder-of-gonzago-claudius-reacts .throne {
  position: absolute; bottom: 28%; left: 22%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #b8862d 0%, #8a5a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: mgc-throne 12s ease-in-out infinite;
}
.scn-murder-of-gonzago-claudius-reacts .player-king {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #f0d5b0 0%, #d4a878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mgc-actor-fall 6s ease-in-out infinite;
}
.scn-murder-of-gonzago-claudius-reacts .poisoner {
  position: absolute; bottom: 32%; left: 62%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mgc-pour 8s ease-in-out infinite;
}
.scn-murder-of-gonzago-claudius-reacts .claudius-rise {
  position: absolute; bottom: 27%; left: 30%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #8a3e2a 0%, #5a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: mgc-startle 4s ease-in-out infinite;
}
.scn-murder-of-gonzago-claudius-reacts .spotlight {
  position: absolute; top: 0; left: 50%; width: 180px; height: 70%;
  transform: translateX(-50%) rotate(-3deg);
  background: radial-gradient(ellipse at 50% 30%, rgba(255,230,180,0.35) 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 65% 100%, 35% 100%);
  animation: mgc-light 3s ease-in-out infinite alternate;
}
.scn-murder-of-gonzago-claudius-reacts .candle-glow {
  position: absolute; bottom: 22%; left: 10%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #e8a040 50%, transparent 100%);
  box-shadow: 0 0 30px 15px rgba(255,208,96,0.5);
  animation: mgc-flicker 0.8s steps(2) infinite;
}
@keyframes mgc-throne {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.01); }
}
@keyframes mgc-actor-fall {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(2px) rotate(-3deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes mgc-pour {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(-5deg); }
  70% { transform: translateX(-2px) rotate(2deg); }
}
@keyframes mgc-startle {
  0%,100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-6px) rotate(2deg); }
  40% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes mgc-light {
  0% { opacity: 0.9; clip-path: polygon(25% 0%, 75% 0%, 60% 100%, 40% 100%); }
  100% { opacity: 1; clip-path: polygon(20% 0%, 80% 0%, 65% 100%, 35% 100%); }
}
@keyframes mgc-flicker {
  0% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-post-play-exultation {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 60%, #d4b88a 100%),
              radial-gradient(ellipse at 70% 20%, #fcf0d8 0%, transparent 50%);
}
.scn-post-play-exultation .room-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8b088 0%, #b09878 100%);
  border-radius: 8px 8px 0 0;
}
.scn-post-play-exultation .window-light {
  position: absolute; top: 12%; right: 10%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at center, #f3e0b0 0%, #d4c090 100%);
  border: 3px solid #9a7a54; border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(243,224,176,0.4);
  animation: pex-window 8s ease-in-out infinite alternate;
}
.scn-post-play-exultation .hamlet-dance {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pex-jig 1.5s ease-in-out infinite;
}
.scn-post-play-exultation .horatio-clap {
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pex-clap 2s ease-in-out infinite;
}
.scn-post-play-exultation .rg-figure-r {
  position: absolute; bottom: 26%; left: 60%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pex-bow 3s ease-in-out infinite;
}
.scn-post-play-exultation .rg-figure-g {
  position: absolute; bottom: 26%; left: 68%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pex-bow 3s ease-in-out infinite reverse;
}
.scn-post-play-exultation .polonius-at-door {
  position: absolute; bottom: 20%; left: 8%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  animation: pex-enter 5s ease-in-out infinite;
}
.scn-post-play-exultation .pipe-mock {
  position: absolute; bottom: 38%; left: 36%; width: 8px; height: 16px;
  background: linear-gradient(0deg, #b89864 0%, #d4b078 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: pex-pipe 1.2s ease-in-out infinite;
}
@keyframes pex-window {
  0% { opacity: 0.8; box-shadow: 0 0 15px 6px rgba(243,224,176,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(243,224,176,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(243,224,176,0.4); }
}
@keyframes pex-jig {
  0%,100% { transform: translateY(0) rotate(-2deg) scale(1); }
  25% { transform: translateY(-4px) rotate(6deg) scale(1.05); }
  50% { transform: translateY(-2px) rotate(-4deg) scale(1.02); }
  75% { transform: translateY(-5px) rotate(8deg) scale(1.07); }
}
@keyframes pex-clap {
  0%,100% { transform: translateY(0) scale(1); }
  20%,60% { transform: translateY(-2px) scale(1.1); }
}
@keyframes pex-bow {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(3px) rotate(-10deg); }
  75% { transform: translateY(1px) rotate(-5deg); }
}
@keyframes pex-enter {
  0%,100% { transform: scaleX(1) translateX(0); }
  25% { transform: scaleX(0.9) translateX(2px); }
  75% { transform: scaleX(1.1) translateX(-1px); }
}
@keyframes pex-pipe {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
}

.scn-claudius-prayer-hamlet-refrains {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a1a4e 40%, #1a0a2e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a6e 0%, transparent 70%);
}
.scn-claudius-prayer-hamlet-refrains .altar-stone {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-claudius-prayer-hamlet-refrains .prayer-shaft {
  position: absolute; top: 0; left: 50%; width: 4px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(0deg, transparent 0%, rgba(200,180,120,0.15) 70%, transparent 100%);
  animation: cph-beam 6s ease-in-out infinite alternate;
}
.scn-claudius-prayer-hamlet-refrains .claudius-kneel {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cph-pray 6s ease-in-out infinite;
}
.scn-claudius-prayer-hamlet-refrains .hamlet-shadow {
  position: absolute; bottom: 24%; left: 36%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #0a0a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cph-lurk 4s ease-in-out infinite;
}
.scn-claudius-prayer-hamlet-refrains .flame-flicker {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.4);
  animation: cph-flame 1s steps(3) infinite;
}
.scn-claudius-prayer-hamlet-refrains .pillar-left {
  position: absolute; top: 0; left: 15%; width: 20px; height: 100%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
@keyframes cph-beam {
  0% { opacity: 0.3; transform: scaleY(0.8); }
  50% { opacity: 0.6; transform: scaleY(1); }
  100% { opacity: 0.2; transform: scaleY(0.7); }
}
@keyframes cph-pray {
  0%,100% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(2px) rotate(2deg) scale(1.01); }
  75% { transform: translateY(-1px) rotate(-3deg) scale(0.98); }
}
@keyframes cph-lurk {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes cph-flame {
  0% { opacity: 0.8; transform: scale(1) translateY(0); }
  33% { opacity: 1; transform: scale(1.15) translateY(-2px); }
  66% { opacity: 0.7; transform: scale(0.9) translateY(1px); }
}

.scn-closet-scene-polonio-slain {
  background: linear-gradient(180deg, #1a2a3e 0%, #0e1a2e 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 30% 50%, #2a3a5e 0%, transparent 60%);
}
.scn-closet-scene-polonio-slain .chamber-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1e1a 0%, #3a2a2a 50%, #2a1e1a 100%);
  border-radius: 6px 6px 0 0;
}
.scn-closet-scene-polonio-slain .arras-curtain {
  position: absolute; top: 10%; right: 18%; width: 40px; height: 70%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: csp-arras 3s ease-in-out infinite;
}
.scn-closet-scene-polonio-slain .gertrude-recoil {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csp-recoil 2s ease-in-out infinite;
}
.scn-closet-scene-polonio-slain .hamlet-stab {
  position: absolute; bottom: 24%; left: 42%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: csp-thrust 0.8s ease-in-out infinite;
}
.scn-closet-scene-polonio-slain .polonius-fall {
  position: absolute; bottom: 18%; right: 22%; width: 26px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: csp-fall 2s ease-in-out infinite;
}
.scn-closet-scene-polonio-slain .candle-spill {
  position: absolute; bottom: 28%; left: 55%; width: 6px; height: 8px;
  background: radial-gradient(circle, #d08040 0%, #a06030 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(208,128,64,0.3);
  animation: csp-spill 4s ease-in-out infinite;
}
.scn-closet-scene-polonio-slain .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 100%);
  border-radius: 2px;
}
@keyframes csp-arras {
  0%,100% { transform: scaleX(1) translateY(0); }
  20% { transform: scaleX(1.1) translateY(-4px); }
  60% { transform: scaleX(0.9) translateY(2px); }
}
@keyframes csp-recoil {
  0%,100% { transform: translateX(0) scale(1); }
  15% { transform: translateX(-6px) scale(1.1); }
  40% { transform: translateX(3px) scale(0.95); }
}
@keyframes csp-thrust {
  0%,100% { transform: translateX(0) rotate(0deg); }
  10% { transform: translateX(8px) rotate(5deg); }
  30% { transform: translateX(-4px) rotate(-2deg); }
}
@keyframes csp-fall {
  0%,100% { transform: translateY(0) rotate(0deg); }
  15% { transform: translateY(6px) rotate(15deg); }
  60% { transform: translateY(2px) rotate(-5deg); }
}
@keyframes csp-spill {
  0%,100% { opacity: 0.6; transform: scale(1); }
  25% { opacity: 0.9; transform: scale(1.2); }
  75% { opacity: 0.4; transform: scale(0.8); }
}

.scn-item-yorick-skull-memento {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #3a3a2a 100%), radial-gradient(ellipse at 50% 80%, #4a4a3a 0%, transparent 70%);
}
.scn-item-yorick-skull-memento .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%);
  animation: yo-sky 10s ease-in-out infinite alternate;
}
.scn-item-yorick-skull-memento .earth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 90% 0 0; animation: yo-earth 15s ease-in-out infinite alternate;
}
.scn-item-yorick-skull-memento .skull {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 90px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #c8b8a0 0%, #a08870 40%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: yo-skull 4s ease-in-out infinite;
}
.scn-item-yorick-skull-memento .skull-eye-l,
.scn-item-yorick-skull-memento .skull-eye-r {
  position: absolute; width: 18px; height: 20px; top: 32%; background: #0a0a0a;
  border-radius: 50% 50% 40% 40%; box-shadow: inset 0 2px 4px #000;
}
.scn-item-yorick-skull-memento .skull-eye-l { left: 22%; animation: yo-blink 3s infinite; }
.scn-item-yorick-skull-memento .skull-eye-r { right: 22%; animation: yo-blink 3s infinite 0.5s; }
.scn-item-yorick-skull-memento .skull-mouth {
  position: absolute; top: 62%; left: 30%; right: 30%; height: 16px;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: inset 0 2px 6px #000;
  animation: yo-mouth 2s ease-in-out infinite alternate;
}
.scn-item-yorick-skull-memento .hand-l,
.scn-item-yorick-skull-memento .hand-r {
  position: absolute; bottom: 22%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-item-yorick-skull-memento .hand-l { left: 42%; animation: yo-hand-l 6s ease-in-out infinite; }
.scn-item-yorick-skull-memento .hand-r { right: 42%; animation: yo-hand-r 6s ease-in-out infinite; }
@keyframes yo-sky { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes yo-earth { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes yo-skull { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(-2deg) } 60% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes yo-blink { 0%, 85%, 100% { transform: scaleY(1) } 90% { transform: scaleY(0.1) } }
@keyframes yo-mouth { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(0.9) } }
@keyframes yo-hand-l { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } }
@keyframes yo-hand-r { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }

.scn-ophelia-funeral-grave-fight {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a1a 100%), radial-gradient(ellipse at 50% 20%, #3a3a4a 0%, transparent 70%);
}
.scn-ophelia-funeral-grave-fight .sky {
  position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%);
  animation: opf-sky 8s ease-in-out infinite alternate;
}
.scn-ophelia-funeral-grave-fight .ground {
  position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0; animation: opf-ground 12s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .grave-hole {
  position: absolute; bottom:15%; left:50%; width:100px; height:50px; transform:translateX(-50%);
  background: radial-gradient(ellipse at top, #0a0a0a 0%, #1a1a1a 40%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 14px 20px rgba(0,0,0,.8);
  animation: opf-hole 9s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .coffin {
  position: absolute; bottom:32%; left:50%; width:70px; height:40px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: opf-coffin 12s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .figure-laertes {
  position: absolute; bottom:10%; left:30%; width:20px; height:60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom;
  animation: opf-leap 4s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .figure-hamlet {
  position: absolute; bottom:5%; right:25%; width:22px; height:58px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom;
  animation: opf-leap 4s ease-in-out infinite 0.5s;
}
.scn-ophelia-funeral-grave-fight .priest {
  position: absolute; bottom:12%; left:10%; width:18px; height:50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: opf-bow 6s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .flowers {
  position: absolute; bottom:28%; left:40%; right:40%; height:16px;
  background: radial-gradient(circle, #6a3a3a 0%, #4a2a2a 50%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: opf-scatter 8s ease-in-out infinite alternate;
}
@keyframes opf-sky { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes opf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes opf-hole { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } }
@keyframes opf-coffin { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes opf-leap { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-10px) rotate(-5deg) } 50% { transform: translateY(-5px) rotate(2deg) } 75% { transform: translateY(-8px) rotate(-3deg) } }
@keyframes opf-bow { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-10deg) translateY(2px) } }
@keyframes opf-scatter { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .7; transform: scale(1.2) } 100% { opacity: .4; transform: scale(0.9) } }

.scn-after-funeral-plot-rosencrantz-guildenstern {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 30%, #1a1a1a 100%), radial-gradient(ellipse at 30% 70%, #2a1a0a 0%, transparent 60%);
}
.scn-after-funeral-plot-rosencrantz-guildenstern .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: rg-wall 20s ease-in-out infinite alternate;
}
.scn-after-funeral-plot-rosencrantz-guildenstern .desk {
  position: absolute; bottom:10%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: rg-desk 10s ease-in-out infinite;
}
.scn-after-funeral-plot-rosencrantz-guildenstern .candle {
  position: absolute; bottom:30%; left:50%; width:10px; height:40px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: rg-candle 6s ease-in-out infinite;
}
.scn-after-funeral-plot-rosencrantz-guildenstern .flame {
  position: absolute; bottom:68%; left:50%; width:14px; height:20px; transform:translateX(-50%);
  background: radial-gradient(ellipse, #ffcc66 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ff8c00;
  animation: rg-flame 0.8s linear infinite alternate;
}
.scn-after-funeral-plot-rosencrantz-guildenstern .figure-hamlet {
  position: absolute; bottom:10%; left:15%; width:22px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rg-hamlet 5s ease-in-out infinite;
}
.scn-after-funeral-plot-rosencrantz-guildenstern .figure-horatio {
  position: absolute; bottom:10%; right:15%; width:20px; height:58px;
  background: linear-gradient(180deg, #2a3a3a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rg-horatio 5s ease-in-out infinite 1s;
}
.scn-after-funeral-plot-rosencrantz-guildenstern .paper {
  position: absolute; bottom:20%; left:55%; width:30px; height:20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5%; transform: rotate(15deg);
  animation: rg-paper 4s ease-in-out infinite alternate;
}
@keyframes rg-wall { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes rg-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rg-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1.01) } }
@keyframes rg-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: .9 } 50% { transform: translateX(-50%) scaleY(1.1) translateY(-2px); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.9) translateY(1px); opacity: .8 } }
@keyframes rg-hamlet { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-1px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-2px) } }
@keyframes rg-horatio { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(1px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-1px) } }
@keyframes rg-paper { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(18deg) translateX(-2px) } }

.scn-osric-challenge-match-ready {
  background: linear-gradient(180deg, #c8b88a 0%, #e0d8b0 30%, #f0e8c8 60%, #e8d8b0 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-osric-challenge-match-ready .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #d0c098 0%, #b8a878 100%);
  animation: osr-wall 20s ease-in-out infinite alternate;
}
.scn-osric-challenge-match-ready .floor {
  position: absolute; bottom: 0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #908060 0%, #706050 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: osr-floor 15s ease-in-out infinite;
}
.scn-osric-challenge-match-ready .column-l,
.scn-osric-challenge-match-ready .column-r {
  position: absolute; bottom:20%; width:30px; height:60%;
  background: linear-gradient(180deg, #b8a888 0%, #908068 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 0 10px rgba(0,0,0,.1);
}
.scn-osric-challenge-match-ready .column-l { left:10%; animation: osr-column 12s ease-in-out infinite; }
.scn-osric-challenge-match-ready .column-r { right:10%; animation: osr-column 12s ease-in-out infinite 2s; }
.scn-osric-challenge-match-ready .figure-hamlet {
  position: absolute; bottom:5%; left:30%; width:24px; height:70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom;
  animation: osr-fence 3s ease-in-out infinite;
}
.scn-osric-challenge-match-ready .figure-laertes {
  position: absolute; bottom:5%; right:30%; width:24px; height:70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom;
  animation: osr-fence 3s ease-in-out infinite 0.5s;
}
.scn-osric-challenge-match-ready .figure-osric {
  position: absolute; bottom:8%; left:50%; width:18px; height:50px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: osr-osric 5s ease-in-out infinite;
}
.scn-osric-challenge-match-ready .weapon-case {
  position: absolute; bottom:20%; left:50%; width:60px; height:20px; transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.2);
  animation: osr-case 8s ease-in-out infinite alternate;
}
@keyframes osr-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes osr-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.01) } }
@keyframes osr-column { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }
@keyframes osr-fence { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } }
@keyframes osr-osric { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(8deg) translateY(-3px) } 50% { transform: translateX(-50%) rotate(-5deg) } 75% { transform: translateX(-50%) rotate(6deg) translateY(-1px) } }
@keyframes osr-case { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(0.95) } 100% { transform: translateX(-50%) scaleX(1.02) } }

.scn-fencing-match-gertrude-poisoned {
  background:
    linear-gradient(180deg, #d4c5a0 0%, #c4b58f 50%, #b4a57f 100%),
    radial-gradient(ellipse at 50% 30%, #ffeedd 0%, transparent 60%);
  box-shadow: inset 0 0 80px 20px rgba(0,0,0,0.3);
}
.scn-fencing-match-gertrude-poisoned .bg-room {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, transparent 0%, transparent 55%, #4a3520 55%, #3a2a15 100%);
}
.scn-fencing-match-gertrude-poisoned .table {
  position: absolute; bottom: 15%; left: 50%; width: 60%; height: 6%;
  transform: translateX(-50%) perspective(400px) rotateX(10deg);
  background: linear-gradient(180deg, #5c3a1e 0%, #4a2e18 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-fencing-match-gertrude-poisoned .goblet {
  position: absolute; bottom: 22%; left: 40%;
  width: 20px; height: 28px;
  background: linear-gradient(180deg, #b89a5c 0%, #9a7c3e 100%);
  border-radius: 0 0 4px 4px;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.3));
  animation: fmp-goblet 5s ease-in-out infinite;
}
.scn-fencing-match-gertrude-poisoned .goblet-poison {
  position: absolute; bottom: 22%; left: 55%;
  width: 20px; height: 28px;
  background: linear-gradient(180deg, #b89a5c 0%, #9a7c3e 100%);
  border-radius: 0 0 4px 4px;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.3));
}
.scn-fencing-match-gertrude-poisoned .goblet-poison::after {
  content: "";
  position: absolute;
  top: 30%; left: 25%; width: 50%; height: 50%;
  background: radial-gradient(circle, #e0a030 0%, #c08020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(224,160,48,0.5);
  animation: fmp-poison-glow 2s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .figure-gertrude {
  position: absolute; bottom: 21%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0f 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fmp-gertrude-stagger 4s ease-in-out infinite;
}
.scn-fencing-match-gertrude-poisoned .figure-gertrude::before {
  content: "";
  position: absolute;
  top: -8px; left: 50%; transform: translateX(-50%);
  width: 10px; height: 12px;
  background: radial-gradient(circle, #2a1a0f 0%, #1a0e05 100%);
  border-radius: 50%;
}
.scn-fencing-match-gertrude-poisoned .figure-hamlet {
  position: absolute; bottom: 22%; left: 38%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #3a2a1f 0%, #2a1a0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fmp-hamlet-turn 6s ease-in-out infinite;
}
.scn-fencing-match-gertrude-poisoned .figure-hamlet::before {
  content: "";
  position: absolute;
  top: -7px; left: 60%; width: 8px; height: 10px;
  background: radial-gradient(circle, #3a2a1f 0%, #2a1a0f 100%);
  border-radius: 50%;
}
.scn-fencing-match-gertrude-poisoned .rapier {
  position: absolute; bottom: 24%; left: 34%; width: 40px; height: 2px;
  background: linear-gradient(90deg, #c0b090 0%, #a09070 50%, #c0b090 100%);
  transform-origin: left center;
  border-radius: 1px;
  animation: fmp-rapier-twitch 3s ease-in-out infinite;
}
.scn-fencing-match-gertrude-poisoned .light-spot {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,238,200,0.15) 0%, transparent 70%);
  animation: fmp-light-flicker 8s ease-in-out infinite alternate;
}

@keyframes fmp-goblet {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(1px, -1px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes fmp-poison-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes fmp-gertrude-stagger {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(2px) rotate(2deg); }
  40% { transform: translateX(-1px) rotate(-1deg); }
  60% { transform: translateX(3px) rotate(3deg); }
  80% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fmp-hamlet-turn {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(-5deg); }
  60% { transform: translateX(0) rotate(0deg); }
  80% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fmp-rapier-twitch {
  0% { transform: rotate(0deg); }
  10% { transform: rotate(5deg); }
  20% { transform: rotate(-3deg); }
  30% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  70% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fmp-light-flicker {
  0% { opacity: 0.6; transform: scale(1); }
  30% { opacity: 0.8; transform: scale(1.05); }
  60% { opacity: 0.7; transform: scale(0.95); }
  100% { opacity: 0.9; transform: scale(1.02); }
}

/* Scene: polonius-commands-ophelia-ghost-appears */
.scn-polonius-commands-ophelia-ghost-appears {
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%), radial-gradient(ellipse at 50% 40%, #2a2a4e 0%, transparent 70%);
}
.scn-polonius-commands-ophelia-ghost-appears .pco-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
}
.scn-polonius-commands-ophelia-ghost-appears .pco-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-polonius-commands-ophelia-ghost-appears .pco-pol-fig {
  position: absolute; bottom: 30%; left: 20%; width: 25px; height: 70px; background: #1a1a2e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pco-speak 2s ease-in-out infinite;
}
.scn-polonius-commands-ophelia-ghost-appears .pco-oph-fig {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 60px; background: #1a1a2e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pco-bow 3s ease-in-out infinite;
}
.scn-polonius-commands-ophelia-ghost-appears .pco-ghost {
  position: absolute; top: 15%; left: 60%; width: 30px; height: 50px; background: rgba(200,200,255,0.12); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(4px); animation: pco-ghost-fade 4s ease-in-out infinite;
}
.scn-polonius-commands-ophelia-ghost-appears .pco-candle {
  position: absolute; bottom: 35%; left: 10%; width: 6px; height: 18px; background: linear-gradient(180deg, #ffb86c 0%, #cc5e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,184,108,0.6); animation: pco-candle 0.6s ease-in-out infinite alternate;
}
.scn-polonius-commands-ophelia-ghost-appears .pco-shadow {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 60%; background: radial-gradient(ellipse at 30% 50%, #000 0%, transparent 80%); opacity: 0.4; animation: pco-shadow 5s ease-in-out infinite;
}
@keyframes pco-speak {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pco-bow {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(2px, -1px) rotate(10deg); }
  70% { transform: translate(4px, -1px) rotate(15deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes pco-ghost-fade {
  0% { opacity: 0.15; transform: translateY(0); }
  50% { opacity: 0.55; transform: translateY(-5px); }
  100% { opacity: 0.1; transform: translateY(0); }
}
@keyframes pco-candle {
  0% { opacity: 0.8; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes pco-shadow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}

/* Scene: ophelia-funeral-grave-fight */
.scn-ophelia-funeral-grave-fight {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 80%);
}
.scn-ophelia-funeral-grave-fight .ofg-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 60%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
}
.scn-ophelia-funeral-grave-fight .ofg-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #3a3a2e 0%, #1a1a1e 100%);
}
.scn-ophelia-funeral-grave-fight .ofg-grave {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 30px; transform: translateX(-50%); background: #0a0a0a; border-radius: 50%; box-shadow: inset 0 5px 10px rgba(0,0,0,0.7), 0 5px 10px rgba(0,0,0,0.4);
}
.scn-ophelia-funeral-grave-fight .ofg-coffin {
  position: absolute; bottom: 21%; left: 50%; width: 50px; height: 15px; transform: translateX(-50%); background: linear-gradient(180deg, #5e3a2a 0%, #3a1a0a 100%); border-radius: 10%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.6); animation: ofg-coffin 8s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .ofg-hamlet {
  position: absolute; bottom: 20%; left: 42%; width: 25px; height: 65px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ofg-hamlet 3s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .ofg-laertes {
  position: absolute; bottom: 20%; left: 55%; width: 25px; height: 60px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ofg-laertes 2s ease-in-out infinite alternate;
}
.scn-ophelia-funeral-grave-fight .ofg-priest {
  position: absolute; bottom: 26%; left: 25%; width: 20px; height: 60px; background: #3a2a1e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ofg-priest 6s ease-in-out infinite;
}
.scn-ophelia-funeral-grave-fight .ofg-fog {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(ellipse at 30% 40%, rgba(200,200,220,0.1) 0%, transparent 70%); filter: blur(8px); animation: ofg-fog 15s linear infinite;
}
@keyframes ofg-coffin {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes ofg-hamlet {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(-10px, -15px) rotate(-8deg); }
  60% { transform: translate(5px, 0) rotate(5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes ofg-laertes {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(10deg); }
  100% { transform: translateX(-6px) rotate(-10deg); }
}
@keyframes ofg-priest {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ofg-fog {
  0% { transform: translateX(-10px); opacity: 0.6; }
  50% { transform: translateX(20px); opacity: 1; }
  100% { transform: translateX(-10px); opacity: 0.6; }
}

/* scene: fencing-match-gertrude-poisoned */
.scn-fencing-match-gertrude-poisoned {
  background: 
    linear-gradient(180deg, #2a1e0f 0%, #4a3828 15%, #b8956a 35%, #dbb58a 50%, #dbb58a 55%, #7a5c3a 70%, #3a2e1a 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-fencing-match-gertrude-poisoned .bg-wall {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 50%;
  background: 
    linear-gradient(180deg, #3a2e1a 0%, #5a4830 30%, #7a6040 50%, #5a4830 70%, #3a2e1a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: fmp-wall 10s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .bg-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: 
    repeating-linear-gradient(
      90deg,
      #4a3a28 0px, #4a3a28 4px,
      #5a4a34 4px, #5a4a34 8px
    ),
    linear-gradient(180deg, #7a6040 0%, #3a2e1a 100%);
  transform: perspective(400px) rotateX(30deg);
  transform-origin: bottom center;
  animation: fmp-floor 15s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .chandelier {
  position: absolute;
  top: 6%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: 
    radial-gradient(ellipse at 30% 50%, #f0d080 0%, transparent 40%),
    radial-gradient(ellipse at 70% 50%, #f0d080 0%, transparent 40%),
    radial-gradient(ellipse at 50% 30%, #fff8e7 0%, #f0d080 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fmp-candle 4s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .table {
  position: absolute;
  bottom: 32%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-fencing-match-gertrude-poisoned .cup {
  position: absolute;
  bottom: 40%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b88a4a 0%, #8a6030 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 
    0 0 20px 6px rgba(200, 85, 61, 0.6),
    0 0 40px 12px rgba(200, 85, 61, 0.3);
  animation: fmp-cup 2s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .fencer-left {
  position: absolute;
  bottom: 30%; left: 28%; width: 30px; height: 70px;
  background: 
    linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fmp-fencer-l 0.8s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .fencer-right {
  position: absolute;
  bottom: 30%; right: 28%; width: 30px; height: 70px;
  background: 
    linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fmp-fencer-r 0.8s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .queen {
  position: absolute;
  bottom: 28%; left: 55%; width: 28px; height: 65px;
  background: 
    linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: fmp-queen 3s ease-in-out infinite alternate;
}
.scn-fencing-match-gertrude-poisoned .shadow {
  position: absolute;
  bottom: 10%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: fmp-shadow 8s ease-in-out infinite alternate;
}
@keyframes fmp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fmp-floor { 0% { transform: perspective(400px) rotateX(30deg) translateY(0); } 100% { transform: perspective(400px) rotateX(30deg) translateY(-4px); } }
@keyframes fmp-candle { 0% { opacity:0.85; filter: blur(2px) brightness(0.95); } 50% { opacity:1; filter: blur(1px) brightness(1.05); } 100% { opacity:0.9; filter: blur(2px) brightness(0.98); } }
@keyframes fmp-cup { 0% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.6), 0 0 40px 12px rgba(200,85,61,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(200,85,61,0.8), 0 0 60px 20px rgba(200,85,61,0.5); } 100% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.6), 0 0 40px 12px rgba(200,85,61,0.3); } }
@keyframes fmp-fencer-l { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes fmp-fencer-r { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes fmp-queen { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fmp-shadow { 0% { opacity:0.3; transform: scale(1) rotate(0deg); } 50% { opacity:0.5; transform: scale(1.05) rotate(2deg); } 100% { opacity:0.3; transform: scale(1) rotate(0deg); } }

.scn-ophelia-funeral-grave-fight { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 60%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 80%); }
.scn-ophelia-funeral-grave-fight .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 40%, #2a2a3a 100%); animation: gf-sky 12s ease-in-out infinite alternate; }
.scn-ophelia-funeral-grave-fight .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: gf-ground 20s ease-in-out infinite alternate; }
.scn-ophelia-funeral-grave-fight .grave { position:absolute; bottom:20%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #1a1a1a 0%, #0a0a0a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(0,0,0,.7); animation: gf-grave 8s ease-in-out infinite; }
.scn-ophelia-funeral-grave-fight .stone { position:absolute; bottom:35%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: -2px 0 8px rgba(0,0,0,.5); transform: rotate(2deg); animation: gf-stone 15s ease-in-out infinite; }
.scn-ophelia-funeral-grave-fight .figure-left { position:absolute; bottom:22%; left:36%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: drop-shadow(2px -2px 6px rgba(0,0,0,.5)); animation: gf-figureL 5s ease-in-out infinite; }
.scn-ophelia-funeral-grave-fight .figure-right { position:absolute; bottom:22%; right:36%; width:26px; height:52px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: drop-shadow(-2px -2px 6px rgba(0,0,0,.5)); animation: gf-figureR 5s ease-in-out infinite 0.5s; }
.scn-ophelia-funeral-grave-fight .cloud { position:absolute; top:15%; left:-10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.08) 100%); border-radius:50%; filter: blur(8px); animation: gf-cloud 40s linear infinite; }
@keyframes gf-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes gf-ground { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes gf-grave { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes gf-stone { 0% { transform: rotate(2deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(2.2deg) } }
@keyframes gf-figureL { 0% { transform: translate(0,0) rotate(-2deg) } 30% { transform: translate(-2px,-1px) rotate(1deg) } 70% { transform: translate(1px,0) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes gf-figureR { 0% { transform: translate(0,0) rotate(2deg) } 30% { transform: translate(2px,-1px) rotate(-1deg) } 70% { transform: translate(-1px,0) rotate(1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes gf-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(150vw) } }
/* end per-scene blocks */
