/* 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-malcolm-crowned {
  background: 
    linear-gradient(180deg, #4a7a9e 0%, #6a9ac8 30%, #9ac0e0 60%, #fffbe6 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,215,0,0.15) 0%, transparent 60%);
}
.scn-malcolm-crowned .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a6a9e 0%, transparent 100%);
  animation: mc-sky 15s ease-in-out infinite alternate;
}
.scn-malcolm-crowned .sun-rays {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(255,215,0,0.06) 40px, rgba(255,215,0,0.06) 80px);
  transform-origin: 50% 30%;
  animation: mc-rays 20s linear infinite;
}
.scn-malcolm-crowned .throne {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 100px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-malcolm-crowned .malcolm {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 30px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mc-malcolm 4s ease-in-out infinite alternate;
}
.scn-malcolm-crowned .crown {
  position: absolute;
  bottom: 68%;
  left: 50%;
  width: 40px;
  height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd700 0%, #cfa144 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(207,161,68,0.6), 0 0 60px 20px rgba(255,215,0,0.2);
  animation: mc-crown 3s ease-in-out infinite alternate;
}
.scn-malcolm-crowned .banner-left {
  position: absolute;
  bottom: 38%;
  left: 22%;
  width: 14px;
  height: 50px;
  background: linear-gradient(180deg, #5b8fc9 0%, #3a6a9e 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: bottom left;
  animation: mc-banner-l 6s ease-in-out infinite;
}
.scn-malcolm-crowned .banner-right {
  position: absolute;
  bottom: 38%;
  right: 22%;
  width: 14px;
  height: 50px;
  background: linear-gradient(180deg, #5b8fc9 0%, #3a6a9e 100%);
  border-radius: 30% 0 0 30%;
  transform-origin: bottom right;
  animation: mc-banner-r 6s ease-in-out infinite;
}
.scn-malcolm-crowned .particles {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, #fffbe6 1px, transparent 1px);
  background-size: 60px 60px;
  animation: mc-particles 8s linear infinite;
}
@keyframes mc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mc-rays {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(0.98); }
}
@keyframes mc-malcolm {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes mc-crown {
  0% { box-shadow: 0 0 20px 4px rgba(207,161,68,0.5), 0 0 40px 10px rgba(255,215,0,0.1); }
  50% { box-shadow: 0 0 40px 12px rgba(207,161,68,0.8), 0 0 80px 24px rgba(255,215,0,0.3); }
  100% { box-shadow: 0 0 25px 6px rgba(207,161,68,0.6), 0 0 50px 14px rgba(255,215,0,0.15); }
}
@keyframes mc-banner-l {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-8deg); }
  100% { transform: rotate(2deg); }
}
@keyframes mc-banner-r {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mc-particles {
  0% { background-position: 0 0; opacity: 0.6; }
  100% { background-position: 60px 60px; opacity: 0.3; }
}

.scn-murderers-attack {
  background: linear-gradient(180deg, #1a0f0a 0%, #2d1a10 40%, #0d0805 100%),
              radial-gradient(ellipse at 30% 60%, #3a1a0a 0%, transparent 50%);
}
.scn-murderers-attack .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #2a1f18 0%, #1a100a 100%); }
.scn-murderers-attack .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); }
.scn-murderers-attack .candle { position:absolute; bottom:42%; left:38%; width:8px; height:20px; background: linear-gradient(180deg, #d4a050 0%, #8a5a20 100%); border-radius:10% 10% 20% 20%; animation: ma-candle 4s ease-in-out infinite alternate; }
.scn-murderers-attack .table { position:absolute; bottom:35%; left:25%; width:50%; height:8%; background: linear-gradient(135deg, #3a2a1a 0%, #1e140c 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,.7); }
.scn-murderers-attack .attacker { position:absolute; bottom:35%; left:45%; width:28px; height:56px; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ma-attack 0.6s ease-in-out infinite; }
.scn-murderers-attack .victim { position:absolute; bottom:33%; left:58%; width:24px; height:50px; background: linear-gradient(180deg, #1c110a 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: ma-fall 1.2s ease-out infinite; }
.scn-murderers-attack .shadow { position:absolute; bottom:18%; left:40%; width:40px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(3px); animation: ma-shadow 1.2s ease-in-out infinite; }
@keyframes ma-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.05) } 100% { opacity:.8; transform:scaleY(0.95) } }
@keyframes ma-attack { 0% { transform: translateX(0) rotate(-5deg) } 30% { transform: translateX(8px) rotate(5deg) } 70% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ma-fall { 0% { transform: rotate(15deg) translateY(0) } 40% { transform: rotate(30deg) translateY(10px) } 100% { transform: rotate(40deg) translateY(20px); opacity:.6 } }
@keyframes ma-shadow { 0%,100% { transform:scaleX(1) translateX(0) } 50% { transform:scaleX(0.6) translateX(5px) } }

.scn-malcolm-macduff-mourn {
  background: linear-gradient(180deg, #111520 0%, #1a1f30 30%, #0a0c14 100%),
              radial-gradient(ellipse at 50% 70%, #202845 0%, transparent 60%);
}
.scn-malcolm-macduff-mourn .cell { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(255,255,255,0.02) 20px, rgba(255,255,255,0.02) 21px); }
.scn-malcolm-macduff-mourn .lightbeam { position:absolute; top:10%; left:30%; width:25%; height:80%; background: linear-gradient(180deg, rgba(230,220,200,0.05) 0%, rgba(200,180,150,0.02) 100%); transform: skewX(-15deg); filter: blur(8px); animation: mm-beam 12s ease-in-out infinite alternate; }
.scn-malcolm-macduff-mourn .figure-left { position:absolute; bottom:20%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #202530 0%, #0e1018 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; animation: mm-bow 6s ease-in-out infinite; }
.scn-malcolm-macduff-mourn .figure-right { position:absolute; bottom:18%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #1a2028 0%, #0a0c12 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; animation: mm-bow 7s ease-in-out infinite reverse; }
.scn-malcolm-macduff-mourn .stone { position:absolute; bottom:10%; left:45%; width:16px; height:12px; background: radial-gradient(circle, #3a3a4a 0%, #202030 100%); border-radius:50%; filter: blur(2px); animation: mm-stone 9s ease-in-out infinite; }
.scn-malcolm-macduff-mourn .tear { position:absolute; bottom:25%; left:35%; width:4px; height:6px; background: radial-gradient(circle, #a0b0d0 0%, transparent 100%); border-radius:50%; animation: mm-tear 3s ease-in infinite; }
@keyframes mm-beam { 0% { opacity:.3; transform: skewX(-15deg) translateX(0) } 50% { opacity:.6; transform: skewX(-12deg) translateX(10px) } 100% { opacity:.4; transform: skewX(-18deg) translateX(-5px) } }
@keyframes mm-bow { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mm-stone { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) } }
@keyframes mm-tear { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(8px) scale(0.8); opacity:.6 } 100% { transform: translateY(16px) scale(0.3); opacity:0 } }

.scn-macduff-urges-action {
  background: linear-gradient(180deg, #1a1010 0%, #2d1a1a 40%, #0d0808 100%),
              radial-gradient(ellipse at 40% 50%, #3a1a1a 0%, transparent 60%);
}
.scn-macduff-urges-action .bg-torch { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 60%, #c04020 0%, transparent 50%); animation: mu-torch 2s ease-in-out infinite alternate; }
.scn-macduff-urges-action .wall-rust { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(135deg, #3a2a22 0%, #1e1410 100%); }
.scn-macduff-urges-action .speaker { position:absolute; bottom:24%; left:28%; width:26px; height:52px; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mu-speak 1s ease-in-out infinite; }
.scn-macduff-urges-action .listener { position:absolute; bottom:22%; left:55%; width:24px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; animation: mu-listen 4s ease-in-out infinite; }
.scn-macduff-urges-action .sword { position:absolute; bottom:26%; left:32%; width:4px; height:40px; background: linear-gradient(180deg, #a09080 0%, #504030 100%); transform: rotate(20deg); transform-origin: bottom center; animation: mu-sword 1s ease-in-out infinite alternate; }
.scn-macduff-urges-action .emblem { position:absolute; bottom:30%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #a05030 0%, #602010 100%); border-radius:50%; animation: mu-emblem 5s ease-in-out infinite; }
.scn-macduff-urges-action .spark { position:absolute; top:45%; left:18%; width:4px; height:4px; background: #d08050; border-radius:50%; box-shadow: 0 0 6px 2px #d08050; animation: mu-spark 0.8s ease-out infinite; }
@keyframes mu-torch { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(0.95) } }
@keyframes mu-speak { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(3deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mu-listen { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mu-sword { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.05) } 100% { transform: rotate(20deg) scaleY(1) } }
@keyframes mu-emblem { 0%,100% { opacity:.4 } 50% { opacity:.8 } }
@keyframes mu-spark { 0% { transform: translate(0,0); opacity:1 } 100% { transform: translate(8px,-12px); opacity:0 } }

.scn-malcolm-tests-macduff {
  background: linear-gradient(180deg, #15181a 0%, #262a30 40%, #0c0e10 100%),
              radial-gradient(ellipse at 60% 30%, #303840 0%, transparent 70%);
}
.scn-malcolm-tests-macduff .chamber { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,0.05) 40px, rgba(0,0,0,0.05) 41px); }
.scn-malcolm-tests-macduff .candle { position:absolute; bottom:48%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #d0a060 0%, #805020 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 12px 4px #c08040; animation: mt-candle 3s ease-in-out infinite alternate; }
.scn-malcolm-tests-macduff .malcolm { position:absolute; bottom:24%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #222a30 0%, #101418 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mt-malcolm 5s ease-in-out infinite; }
.scn-malcolm-tests-macduff .macduff { position:absolute; bottom:24%; left:55%; width:24px; height:50px; background: linear-gradient(180deg, #1a2025 0%, #0a0e10 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mt-macduff 5s ease-in-out infinite reverse; }
.scn-malcolm-tests-macduff .table { position:absolute; bottom:20%; left:38%; width:24%; height:4%; background: linear-gradient(135deg, #3a3a40 0%, #1a1a20 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-malcolm-tests-macduff .chair { position:absolute; bottom:20%; left:32%; width:12px; height:20px; background: linear-gradient(180deg, #2a2a30 0%, #101014 100%); border-radius:10% 10% 20% 20%; }
.scn-malcolm-tests-macduff .eye { position:absolute; top:38%; left:47%; width:8px; height:5px; background: radial-gradient(circle, #404448 0%, transparent 100%); border-radius:50%; animation: mt-eye 4s ease-in-out infinite; }
@keyframes mt-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.04) } 100% { opacity:.85; transform:scaleY(0.96) } }
@keyframes mt-malcolm { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes mt-macduff { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes mt-eye { 0%,100% { opacity:.3 } 50% { opacity:1; transform:scaleX(1.2) } }

/* Sergeant Norwegian Assault */
.scn-sergeant-norwegian-assault {
  background: linear-gradient(180deg, #5b6a7a 0%, #4a5766 40%, #3d4753 100%), radial-gradient(ellipse at 50% 30%, #7b8a9a 0%, transparent 70%);
}
.scn-sergeant-norwegian-assault .clouds {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, transparent 100%);
  animation: sna-clouds 15s ease-in-out infinite alternate;
}
.scn-sergeant-norwegian-assault .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  opacity: 0.7;
  animation: sna-mountains 20s linear infinite;
}
.scn-sergeant-norwegian-assault .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-sergeant-norwegian-assault .soldier {
  position: absolute; bottom: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-sergeant-norwegian-assault .soldier-1 {
  left: 30%; animation: sna-soldier-march 4s ease-in-out infinite, sna-soldier-bob 2s ease-in-out infinite;
}
.scn-sergeant-norwegian-assault .soldier-2 {
  left: 55%; animation: sna-soldier-march 4s ease-in-out infinite 0.5s, sna-soldier-bob 2s ease-in-out infinite 0.5s;
}
.scn-sergeant-norwegian-assault .spear {
  position: absolute; bottom: 55%; left: 37%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #6a7a6a 0%, #3a4a3a 100%);
  transform: rotate(-10deg); transform-origin: bottom;
  animation: sna-spear-wave 3s ease-in-out infinite alternate;
}
.scn-sergeant-norwegian-assault .flag {
  position: absolute; bottom: 55%; left: 37%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #a0563a 0%, #7a3a2a 100%);
  border-radius: 0 50% 50% 0 / 0 60% 60% 0;
  margin-top: -25px; margin-left: 2px;
  animation: sna-flag-flap 2s ease-in-out infinite alternate;
}
.scn-sergeant-norwegian-assault .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(200,210,220,0.1) 8px, rgba(200,210,220,0.1) 9px);
  animation: sna-rain 1s linear infinite;
}
@keyframes sna-clouds { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-5px); } 100% { opacity: 0.7; transform: translateY(0); } }
@keyframes sna-mountains { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes sna-soldier-march { 0% { transform: translateX(0); } 25% { transform: translateX(15px); } 50% { transform: translateX(30px); } 75% { transform: translateX(15px); } 100% { transform: translateX(0); } }
@keyframes sna-soldier-bob { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes sna-spear-wave { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-6deg); } 100% { transform: rotate(-10deg); } }
@keyframes sna-flag-flap { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }
@keyframes sna-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }

/* Sergeant Gashes */
.scn-sergeant-gashes {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 20%, #5a6a7a 0%, transparent 80%);
}
.scn-sergeant-gashes .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  animation: sga-sky 12s ease-in-out infinite alternate;
}
.scn-sergeant-gashes .corpse {
  position: absolute; bottom: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
}
.scn-sergeant-gashes .corpse-1 { left: 20%; animation: sga-corpse-twitch 3s ease-in-out infinite; }
.scn-sergeant-gashes .corpse-2 { left: 60%; transform: rotate(-5deg); animation: sga-corpse-twitch 3s ease-in-out infinite 1s; }
.scn-sergeant-gashes .blood {
  position: absolute; width: 30px; height: 8px;
  background: radial-gradient(circle, #6a2a1a 0%, #4a1a0a 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-sergeant-gashes .blood-1 { bottom: 15%; left: 22%; width: 40px; height: 12px; animation: sga-blood-spread 4s linear infinite; }
.scn-sergeant-gashes .blood-2 { bottom: 12%; left: 62%; width: 35px; height: 10px; animation: sga-blood-spread 4s linear infinite 2s; }
.scn-sergeant-gashes .sword {
  position: absolute; bottom: 30%; left: 35%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 100%);
  transform: rotate(30deg); transform-origin: bottom;
  box-shadow: 0 0 4px rgba(200,200,200,0.3);
}
.scn-sergeant-gashes .shield {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform: translateX(-50%) rotate(-15deg);
  animation: sga-shield-hit 5s ease-in-out infinite;
}
@keyframes sga-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sga-corpse-twitch { 0%,100% { transform: translateY(0) rotate(10deg) scale(1); } 25% { transform: translateY(-2px) rotate(12deg) scale(1.05); } 75% { transform: translateY(0) rotate(8deg) scale(0.95); } }
@keyframes sga-blood-spread { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.5); } 100% { opacity:0.6; transform: scaleX(1); } }
@keyframes sga-shield-hit { 0% { transform: translateX(-50%) rotate(-15deg) translateY(0); } 20% { transform: translateX(-50%) rotate(-20deg) translateY(-5px); } 40% { transform: translateX(-50%) rotate(-10deg) translateY(0); } 100% { transform: translateX(-50%) rotate(-15deg) translateY(0); } }

/* King Dismissal */
.scn-king-dismissal {
  background: radial-gradient(ellipse at 50% 70%, #8a7a6a 0%, #5a4a3a 70%, #3a2a1a 100%);
}
.scn-king-dismissal .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-king-dismissal .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-king-dismissal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-king-dismissal .throne {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-king-dismissal .king {
  position: absolute; bottom: 25%; left: 45%; 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: kdi-king-turn 6s ease-in-out infinite;
}
.scn-king-dismissal .sergeant {
  position: absolute; bottom: 22%; left: 65%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: kdi-sergeant-leave 5s ease-in-out infinite;
}
.scn-king-dismissal .torch {
  position: absolute; top: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d08050 0%, #a06030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #a06030, 0 0 40px 12px rgba(160,96,48,0.4);
  animation: kdi-torch-flicker 2s ease-in-out infinite alternate;
}
.scn-king-dismissal .torch-1 { left: 15%; }
.scn-king-dismissal .torch-2 { right: 15%; animation-delay: -1s; }
@keyframes kdi-king-turn { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } }
@keyframes kdi-sergeant-leave { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(-2deg); } 50% { transform: translateX(-20px) rotate(0deg); } 75% { transform: translateX(-10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kdi-torch-flicker { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.8); } }

/* Ross News */
.scn-ross-news {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #8a9aaa 0%, transparent 80%);
}
.scn-ross-news .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: rne-sky 10s ease-in-out infinite alternate;
}
.scn-ross-news .hill {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: rne-hill 8s ease-in-out infinite alternate;
}
.scn-ross-news .banners {
  position: absolute; top: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rne-banner-wave 4s ease-in-out infinite;
}
.scn-ross-news .banner-1 { left: 30%; animation-delay: 0s; }
.scn-ross-news .banner-2 { right: 30%; animation-delay: -2s; transform: scaleX(-1); }
.scn-ross-news .ross {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rne-ross-rise 6s ease-in-out infinite;
}
.scn-ross-news .horse {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: rne-horse-trot 3s ease-in-out infinite;
}
.scn-ross-news .wind {
  position: absolute; width: 60px; height: 4px;
  background: radial-gradient(ellipse, rgba(200,210,220,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rne-wind-sweep 12s linear infinite;
}
.scn-ross-news .wind-1 { top: 20%; left: -10%; animation-duration: 12s; }
.scn-ross-news .wind-2 { top: 40%; right: -10%; animation-duration: 15s; animation-delay: -6s; }
@keyframes rne-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rne-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes rne-banner-wave { 0% { transform: rotate(-5deg); } 25% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 75% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes rne-ross-rise { 0% { transform: translateY(0); } 50% { transform: translateY(-8px); } 100% { transform: translateY(0); } }
@keyframes rne-horse-trot { 0% { transform: scaleX(0.8) translateY(0); } 25% { transform: scaleX(0.8) translateY(-2px); } 75% { transform: scaleX(0.8) translateY(-1px); } 100% { transform: scaleX(0.8) translateY(0); } }
@keyframes rne-wind-sweep { 0% { transform: translateX(-30px) scaleX(1); opacity:0; } 10% { opacity:0.4; } 90% { opacity:0.1; } 100% { transform: translateX(120vw) scaleX(2); opacity:0; } }

.scn-macduff-despairs {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #1a1410 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-macduff-despairs .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1f1814 0%, #2e221c 50%, #1f1814 100%); }
.scn-macduff-despairs .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); }
.scn-macduff-despairs .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-macduff-despairs .table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-macduff-despairs .candle { position:absolute; bottom:33%; left:50%; width:6px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c080 0%, #c8a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,96,.5), 0 0 40px 12px rgba(200,160,96,.2); animation: mdd-candle 2s ease-in-out infinite alternate; }
.scn-macduff-despairs .figure { position:absolute; bottom:20%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mdd-figure 4s ease-in-out infinite; }
.scn-macduff-despairs .shadow { position:absolute; bottom:18%; left:38%; width:30px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; animation: mdd-shadow 4s ease-in-out infinite; }
@keyframes mdd-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:.9; box-shadow: 0 0 16px 4px rgba(200,160,96,.4) } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1; box-shadow: 0 0 28px 8px rgba(200,160,96,.6) } 100% { transform: translateX(-50%) scaleY(0.98); opacity:.85; box-shadow: 0 0 20px 5px rgba(200,160,96,.45) } }
@keyframes mdd-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.01) } 50% { transform: translateX(0) rotate(-2deg) scaleY(1) } 75% { transform: translateX(-2px) rotate(1deg) scaleY(0.99) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes mdd-shadow { 0% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.1); opacity:.8 } 100% { transform: scaleX(0.95); opacity:.5 } }

.scn-macduff-remembers-royal-parents {
  background: linear-gradient(180deg, #1a1620 0%, #2a2230 40%, #1a1620 100%), radial-gradient(ellipse at 50% 80%, #3a2a40 0%, transparent 60%);
}
.scn-macduff-remembers-royal-parents .bg { position:absolute; inset:0; background: linear-gradient(135deg, #201c28 0%, #2e2640 50%, #201c28 100%); }
.scn-macduff-remembers-royal-parents .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%); }
.scn-macduff-remembers-royal-parents .crown { position:absolute; bottom:45%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a860 0%, #a07840 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: mdr-crown 6s ease-in-out infinite; }
.scn-macduff-remembers-royal-parents .cushion { position:absolute; bottom:38%; left:45%; width:40px; height:15px; background: linear-gradient(180deg, #5a3040 0%, #401a28 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-macduff-remembers-royal-parents .figure { position:absolute; bottom:20%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdr-figure 5s ease-in-out infinite; }
.scn-macduff-remembers-royal-parents .glow { position:absolute; bottom:48%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,168,96,.4) 0%, transparent 100%); border-radius: 50%; animation: mdr-glow 4s ease-in-out infinite alternate; }
@keyframes mdr-crown { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.05) } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98) } }
@keyframes mdr-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 30% { transform: translateX(3px) rotate(2deg) scaleY(1.02) } 60% { transform: translateX(-2px) rotate(-1deg) scaleY(1) } 100% { transform: translateX(0) rotate(1deg) scaleY(1.01) } }
@keyframes mdr-glow { 0% { opacity:.4; box-shadow: 0 0 10px 4px rgba(200,168,96,.1) } 50% { opacity:.7; box-shadow: 0 0 20px 6px rgba(200,168,96,.3) } 100% { opacity:.5; box-shadow: 0 0 14px 5px rgba(200,168,96,.2) } }

.scn-malcolm-reveals-truth {
  background: linear-gradient(180deg, #1a1418 0%, #2a2028 40%, #1a1418 100%), radial-gradient(ellipse at 50% 30%, #3a2a28 0%, transparent 60%);
}
.scn-malcolm-reveals-truth .bg { position:absolute; inset:0; background: linear-gradient(135deg, #20181c 0%, #2a2028 50%, #20181c 100%); }
.scn-malcolm-reveals-truth .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1418 0%, #0c080a 100%); border-radius: 30% 20% 0 0 / 50% 40% 0 0; }
.scn-malcolm-reveals-truth .figure-left { position:absolute; bottom:20%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mrt-left 5s ease-in-out infinite; }
.scn-malcolm-reveals-truth .figure-right { position:absolute; bottom:22%; right:25%; width:20px; height:48px; background: linear-gradient(180deg, #2a2220 0%, #1a1614 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mrt-right 5s ease-in-out infinite; }
.scn-malcolm-reveals-truth .table { position:absolute; bottom:28%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-malcolm-reveals-truth .candle { position:absolute; bottom:33%; left:50%; width:5px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c080 0%, #c8a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 18px 5px rgba(200,160,96,.5), 0 0 36px 10px rgba(200,160,96,.2); animation: mrt-candle 2s ease-in-out infinite alternate; }
.scn-malcolm-reveals-truth .shadow { position:absolute; bottom:18%; left:28%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); border-radius: 50%; animation: mrt-shadow 5s ease-in-out infinite; }
@keyframes mrt-left { 0% { transform: translateX(0) rotate(-1deg) scaleY(1) } 30% { transform: translateX(2px) rotate(2deg) scaleY(1.02) } 60% { transform: translateX(-1px) rotate(-2deg) scaleY(1) } 100% { transform: translateX(0) rotate(1deg) scaleY(1.01) } }
@keyframes mrt-right { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 30% { transform: translateX(-2px) rotate(-2deg) scaleY(1.02) } 60% { transform: translateX(1px) rotate(2deg) scaleY(1) } 100% { transform: translateX(0) rotate(-1deg) scaleY(1.01) } }
@keyframes mrt-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:.9; box-shadow: 0 0 14px 4px rgba(200,160,96,.4) } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1; box-shadow: 0 0 24px 8px rgba(200,160,96,.6) } 100% { transform: translateX(-50%) scaleY(0.98); opacity:.85; box-shadow: 0 0 18px 5px rgba(200,160,96,.45) } }
@keyframes mrt-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.15); opacity:.8 } 100% { transform: scaleX(0.9); opacity:.4 } }

.scn-malcolm-claims-virtues {
  background: linear-gradient(180deg, #1a1820 0%, #2a2840 40%, #1a1820 100%), radial-gradient(ellipse at 50% 50%, #3a3050 0%, transparent 60%);
}
.scn-malcolm-claims-virtues .bg { position:absolute; inset:0; background: linear-gradient(135deg, #201c2a 0%, #2a2840 50%, #201c2a 100%); }
.scn-malcolm-claims-virtues .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1820 0%, #0c0a10 100%); border-radius: 10% 20% 0 0 / 30% 40% 0 0; }
.scn-malcolm-claims-virtues .figure { position:absolute; bottom:15%; left:40%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcq-figure 6s ease-in-out infinite; }
.scn-malcolm-claims-virtues .burst { position:absolute; bottom:30%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,180,240,.4) 0%, rgba(160,140,200,.1) 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,140,200,.2); animation: mcq-burst 4s ease-in-out infinite alternate; }
.scn-malcolm-claims-virtues .shadow { position:absolute; bottom:12%; left:38%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; animation: mcq-shadow 6s ease-in-out infinite; }
.scn-malcolm-claims-virtues .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2840 0%, #1a1820 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; animation: mcq-wall 10s ease-in-out infinite alternate; }
@keyframes mcq-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 30% { transform: translateX(3px) rotate(2deg) scaleY(1.02) } 60% { transform: translateX(-2px) rotate(-1deg) scaleY(1) } 100% { transform: translateX(1px) rotate(1deg) scaleY(1.01) } }
@keyframes mcq-burst { 0% { opacity:.3; transform: translateX(-50%) scale(0.9) } 50% { opacity:.7; transform: translateX(-50%) scale(1.1) } 100% { opacity:.4; transform: translateX(-50%) scale(0.95) } }
@keyframes mcq-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.8 } 100% { transform: scaleX(0.85); opacity:.4 } }
@keyframes mcq-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }

.scn-doctor-on-kings-evil { background: linear-gradient(180deg, #1c1826 0%, #2a2235 40%, #3a2a3a 100%), radial-gradient(ellipse at 50% 60%, #5a3a4a 0%, transparent 70%); }
.scn-doctor-on-kings-evil .bg-shadows { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0e0c14 100%); animation: dke-shadows 12s ease-in-out infinite alternate; }
.scn-doctor-on-kings-evil .king-hand { position:absolute; bottom:30%; left:10%; width:100px; height:60px; background: linear-gradient(180deg, #c8b8a0 0%, #a08068 100%); border-radius: 50% 20% 30% 50% / 60% 30% 40% 60%; transform: rotate(-10deg); box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: dke-hand 8s ease-in-out infinite; }
.scn-doctor-on-kings-evil .patient-neck { position:absolute; bottom:20%; right:15%; width:40px; height:70px; background: linear-gradient(180deg, #b09078 0%, #806050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); }
.scn-doctor-on-kings-evil .touch-light { position:absolute; bottom:35%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #f0d090 0%, transparent 60%); opacity:0.6; animation: dke-glow 3s ease-in-out infinite alternate; }
.scn-doctor-on-kings-evil .halo-glow { position:absolute; bottom:33%; left:18%; width:80px; height:80px; background: radial-gradient(circle, rgba(240,208,144,0.3) 0%, transparent 70%); animation: dke-halo 5s ease-in-out infinite alternate; }
.scn-doctor-on-kings-evil .window-dke { position:absolute; top:10%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #2a2a3e, #1a1a2e); border:2px solid #6a5a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: dke-window 30s linear infinite; }
@keyframes dke-shadows { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes dke-hand { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes dke-glow { 0% { opacity:0.4; transform: scale(0.8); } 100% { opacity:0.8; transform: scale(1.2); } }
@keyframes dke-halo { 0% { opacity:0.2; transform: scale(0.9); } 100% { opacity:0.5; transform: scale(1.1); } }
@keyframes dke-window { 0% { background-position: 0 0; } 100% { background-position: 0 -100px; } }

.scn-malcolm-on-kings-grace { background: linear-gradient(180deg, #1a1824 0%, #2a2235 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 80%, #5a3a4a 0%, transparent 70%); }
.scn-malcolm-on-kings-grace .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #0e0c14 0%, transparent 80%); animation: mkg-bg 18s ease-in-out infinite alternate; }
.scn-malcolm-on-kings-grace .throne { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:100px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: mkg-throne 6s ease-in-out infinite; }
.scn-malcolm-on-kings-grace .malcolm-figure { position:absolute; bottom:25%; left:40%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mkg-figure 4s ease-in-out infinite; }
.scn-malcolm-on-kings-grace .courtier-left { position:absolute; bottom:23%; left:22%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a, #12121a); border-radius: 50% 40% 40% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: mkg-courtier 7s ease-in-out infinite alternate; }
.scn-malcolm-on-kings-grace .courtier-right { position:absolute; bottom:23%; right:22%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a, #12121a); border-radius: 40% 50% 40% 40% / 50% 60% 40% 50%; transform-origin: bottom center; animation: mkg-courtier 7s ease-in-out infinite alternate-reverse; animation-delay: 2s; }
.scn-malcolm-on-kings-grace .candle-mkg { position:absolute; bottom:15%; left:48%; width:6px; height:12px; background: #c0a070; border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #d0b080; animation: mkg-candle 2s ease-in-out infinite alternate; }
.scn-malcolm-on-kings-grace .light-pool { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 100%, #d0b080 0%, transparent 70%); opacity:0.3; animation: mkg-pool 8s ease-in-out infinite alternate; }
@keyframes mkg-bg { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes mkg-throne { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.01) translateY(-2px); } }
@keyframes mkg-figure { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mkg-courtier { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes mkg-candle { 0% { box-shadow: 0 0 12px 2px #d0b080; opacity:0.8; } 50% { box-shadow: 0 0 20px 6px #e0c090; opacity:1; } 100% { box-shadow: 0 0 14px 3px #d0b080; opacity:0.85; } }
@keyframes mkg-pool { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }

.scn-ross-arrives-england { background: linear-gradient(180deg, #1c1826 0%, #2a2235 40%, #3a2a3a 100%), radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 70%); }
.scn-ross-arrives-england .bg-hall { position:absolute; inset:0; background: linear-gradient(90deg, #0e0c14 0%, transparent 50%, #0e0c14 100%); animation: rae-hall 20s ease-in-out infinite alternate; }
.scn-ross-arrives-england .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); }
.scn-ross-arrives-england .door-arch { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:140px; background: #1a1220; border-radius: 50% 50% 0 0 / 40% 40% 0 0; border: 3px solid #5a4a3a; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-ross-arrives-england .ross-figure { position:absolute; bottom:18%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a, #0a0a14); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rae-figure 6s ease-in-out infinite; }
.scn-ross-arrives-england .wall-lamp { position:absolute; top:20%; left:20%; width:8px; height:12px; background: #c0a070; border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #d0b080; animation: rae-lamp 4s ease-in-out infinite alternate; }
.scn-ross-arrives-england .shadow-faller { position:absolute; bottom:0; left:40%; width:60px; height:100px; background: linear-gradient(180deg, rgba(0,0,0,0.5), transparent); transform-origin: top center; animation: rae-shadow 10s linear infinite alternate; }
@keyframes rae-hall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes rae-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(-2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes rae-lamp { 0% { box-shadow: 0 0 15px 3px #d0b080; opacity:0.7; } 50% { box-shadow: 0 0 25px 8px #e0c090; opacity:1; } 100% { box-shadow: 0 0 18px 4px #d0b080; opacity:0.8; } }
@keyframes rae-shadow { 0% { transform: scaleY(0.8) skewX(0deg); opacity:0.5; } 50% { transform: scaleY(1.2) skewX(-5deg); opacity:0.8; } 100% { transform: scaleY(0.9) skewX(3deg); opacity:0.6; } }

.scn-macduff-anxious-for-family { background: linear-gradient(180deg, #1c1826 0%, #2a2235 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 70%); }
.scn-macduff-anxious-for-family .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #0e0c14 0%, transparent 50%, #0e0c14 100%); animation: maf-room 15s ease-in-out infinite alternate; }
.scn-macduff-anxious-for-family .table { position:absolute; bottom:15%; left:30%; width:120px; height:30px; background: linear-gradient(180deg, #4a3a2a, #2a1a12); border-radius: 5px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-macduff-anxious-for-family .candle-maf { position:absolute; bottom:30%; left:38%; width:6px; height:14px; background: #c0a070; border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 6px #d0b080; animation: maf-candle 2s ease-in-out infinite alternate; }
.scn-macduff-anxious-for-family .macduff-figure { position:absolute; bottom:18%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: maf-figure 7s ease-in-out infinite; }
.scn-macduff-anxious-for-family .shadow-maf { position:absolute; bottom:0; right:10%; width:80px; height:160px; background: linear-gradient(180deg, rgba(0,0,0,0.6), transparent); transform-origin: top right; animation: maf-shadow 9s ease-in-out infinite alternate; }
.scn-macduff-anxious-for-family .ember { position:absolute; bottom:28%; left:36%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 10px 2px #ffd080; animation: maf-ember 3s ease-in-out infinite alternate; }
@keyframes maf-room { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes maf-candle { 0% { box-shadow: 0 0 12px 3px #d0b080; opacity:0.7; } 50% { box-shadow: 0 0 20px 8px #e0c090; opacity:1; } 100% { box-shadow: 0 0 14px 4px #d0b080; opacity:0.8; } }
@keyframes maf-figure { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes maf-shadow { 0% { transform: scaleY(0.8) skewX(0deg); opacity:0.4; } 50% { transform: scaleY(1.1) skewX(-5deg); opacity:0.7; } 100% { transform: scaleY(0.9) skewX(3deg); opacity:0.5; } }
@keyframes maf-ember { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 100% { transform: translate(2px,-4px) scale(1.3); opacity:1; } }

/* cauldron-cooled */
.scn-cauldron-cooled {
  background: linear-gradient(180deg, #1a0f0a 0%, #2d1a10 40%, #4a2a15 100%), radial-gradient(ellipse at 50% 100%, #4a2a15 0%, transparent 70%);
}
.scn-cauldron-cooled .bg-cave { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1f110b 0%, #0d0805 100%); }
.scn-cauldron-cooled .cauldron-body { position:absolute; bottom:15%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, #1a0f08 100%); border-radius:40% 40% 30% 30%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6), 0 10px 20px rgba(0,0,0,.5); animation: cc-cauldron 6s ease-in-out infinite; }
.scn-cauldron-cooled .cauldron-rim { position:absolute; bottom:55%; left:50%; width:160px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:30%; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-cauldron-cooled .flame { position:absolute; bottom:10%; left:50%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff7a30 0%, #b84210 50%, #4a1a05 100%); border-radius:50% 50% 30% 30%; filter: blur(2px); }
.scn-cauldron-cooled .flame-a { transform:translateX(-15px); animation: cc-flame 1.2s ease-in-out infinite alternate; }
.scn-cauldron-cooled .flame-b { transform:translateX(15px); animation: cc-flame 1.5s ease-in-out infinite alternate-reverse; }
.scn-cauldron-cooled .bubbles { position:absolute; bottom:45%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 30% 50%, rgba(100,60,20,.3) 0%, transparent 60%); border-radius:50%; animation: cc-bubbles 3s ease-in-out infinite; }
.scn-cauldron-cooled .steam { position:absolute; bottom:70%; left:50%; width:40px; height:20px; background: linear-gradient(180deg, rgba(200,150,80,.2) 0%, transparent 100%); border-radius:50%; filter: blur(6px); }
.scn-cauldron-cooled .steam-a { transform:translateX(-30px); animation: cc-steam 8s ease-in-out infinite; }
.scn-cauldron-cooled .steam-b { transform:translateX(20px); animation: cc-steam 10s ease-in-out infinite reverse; }
@keyframes cc-cauldron { 0% { transform:translateX(-50%) rotate(0deg); } 30% { transform:translateX(-48%) rotate(1deg); } 60% { transform:translateX(-52%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes cc-flame { 0% { height:30px; opacity:.8; transform:scaleX(.9); } 50% { height:45px; opacity:1; transform:scaleX(1.2); } 100% { height:35px; opacity:.9; transform:scaleX(1); } }
@keyframes cc-bubbles { 0% { width:50px; opacity:.4; transform:translateX(-50%) translateY(0); } 50% { width:70px; opacity:.7; transform:translateX(-50%) translateY(-5px); } 100% { width:50px; opacity:.4; transform:translateX(-50%) translateY(0); } }
@keyframes cc-steam { 0% { height:10px; opacity:0; transform:translate(-30px,0) scale(1); } 50% { height:30px; opacity:.5; transform:translate(-35px,-20px) scale(1.3); } 100% { height:20px; opacity:0; transform:translate(-40px,-40px) scale(1.5); } }

/* hecate-magic-song */
.scn-hecate-magic-song {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1020 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 0%, #1a1020 0%, transparent 60%);
}
.scn-hecate-magic-song .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #151530 0%, #0a0a15 100%); animation: hms-sky 15s ease-in-out infinite alternate; }
.scn-hecate-magic-song .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a0e 0%, #0f0f07 100%); border-radius:40% 60% 0 0 / 60% 70% 0 0; }
.scn-hecate-magic-song .cauldron { position:absolute; bottom:25%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 40% 50%, #3a2a20 0%, #1a120a 100%); border-radius:40% 40% 30% 30%; box-shadow: inset 0 -15px 20px rgba(0,0,0,.5); animation: hms-cauldron 8s ease-in-out infinite; }
.scn-hecate-magic-song .witch { position:absolute; bottom:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0f0707 100%); border-radius:40% 40% 30% 30%; transform-origin: bottom center; }
.scn-hecate-magic-song .witch-1 { left:20%; animation: hms-witch 5s ease-in-out infinite; }
.scn-hecate-magic-song .witch-2 { left:40%; animation: hms-witch 5.5s ease-in-out infinite 0.5s; }
.scn-hecate-magic-song .witch-3 { left:60%; animation: hms-witch 6s ease-in-out infinite 1s; }
.scn-hecate-magic-song .hecate { position:absolute; top:5%; right:10%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; animation: hms-hecate 10s ease-in-out infinite; }
.scn-hecate-magic-song .fire-pit { position:absolute; bottom:20%; left:50%; width:40px; height:25px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c85a20 0%, #8a3a10 60%, #2a0a00 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,90,30,.4); animation: hms-fire 2s ease-in-out infinite alternate; }
.scn-hecate-magic-song .sparkles { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,200,80,.3) 0%, transparent 20%), radial-gradient(circle at 70% 60%, rgba(255,180,60,.2) 0%, transparent 25%); animation: hms-sparkles 4s ease-in-out infinite; }
@keyframes hms-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes hms-cauldron { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-48%) rotate(1deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes hms-witch { 0% { transform:translateY(0) rotate(-2deg); } 30% { transform:translateY(-3px) rotate(0deg); } 60% { transform:translateY(2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes hms-hecate { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-5px) rotate(3deg); } 60% { transform:translateY(3px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hms-fire { 0% { height:20px; opacity:.8; } 50% { height:30px; opacity:1; } 100% { height:25px; opacity:.9; } }
@keyframes hms-sparkles { 0% { opacity:.3; } 50% { opacity:1; } 100% { opacity:.4; } }

/* macbeth-conjures-apparitions */
.scn-macbeth-conjures-apparitions {
  background: linear-gradient(180deg, #0a0a15 0%, #14101f 40%, #221530 100%), radial-gradient(ellipse at 50% 30%, #1f1530 0%, transparent 70%);
}
.scn-macbeth-conjures-apparitions .storm-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #2a1a2a 50%, #1a0a1a 100%); animation: mca-storm 12s ease-in-out infinite alternate; }
.scn-macbeth-conjures-apparitions .lightning { position:absolute; top:10%; left:50%; width:4px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #c8d0ff 0%, #6880d0 100%); filter: blur(2px); animation: mca-lightning 6s ease-in-out infinite; }
.scn-macbeth-conjures-apparitions .apparition { position:absolute; bottom:35%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, rgba(100,80,120,.4) 0%, transparent 70%); filter: blur(8px); border-radius:50%; animation: mca-apparition 8s ease-in-out infinite; }
.scn-macbeth-conjures-apparitions .apparition-1 { left:20%; animation-delay:0s; }
.scn-macbeth-conjures-apparitions .apparition-2 { right:20%; animation-delay:2s; }
.scn-macbeth-conjures-apparitions .macbeth-fig { position:absolute; bottom:20%; left:30%; width:24px; height:65px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mca-macbeth 5s ease-in-out infinite; }
.scn-macbeth-conjures-apparitions .ground-rubble { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a0e 0%, #0e0e07 100%); border-radius:80% 40% 0 0 / 60% 30% 0 0; }
.scn-macbeth-conjures-apparitions .wind-sweep { position:absolute; top:40%; left:0; right:0; height:1px; background: linear-gradient(90deg, transparent 0%, rgba(150,130,180,.3) 30%, transparent 70%); animation: mca-wind 4s linear infinite; }
@keyframes mca-storm { 0% { opacity:.7; } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:.8; } }
@keyframes mca-lightning { 0% { opacity:0; transform:translateX(-50%) scaleY(1); } 10% { opacity:1; transform:translateX(-50%) scaleY(1.3); } 20% { opacity:0; transform:translateX(-50%) scaleY(1); } 30% { opacity:1; transform:translateX(-50%) scaleY(.8); } 40% { opacity:0; } 100% { opacity:0; } }
@keyframes mca-apparition { 0% { transform:scale(1) rotate(0deg); opacity:.3; } 30% { transform:scale(1.2) rotate(5deg); opacity:.7; } 60% { transform:scale(1.1) rotate(-3deg); opacity:.5; } 100% { transform:scale(1) rotate(0deg); opacity:.3; } }
@keyframes mca-macbeth { 0% { transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(1px) rotate(-2deg); } 75% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes mca-wind { 0% { transform:translateX(-100%); } 100% { transform:translateX(100%); } }

/* witches-prepare-masters */
.scn-witches-prepare-masters {
  background: linear-gradient(180deg, #0d0a07 0%, #1a120a 40%, #2a1a0e 100%), radial-gradient(ellipse at 50% 60%, #2a1a0e 0%, transparent 70%);
}
.scn-witches-prepare-masters .cave-interior { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #1f150a 0%, #0d0904 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; }
.scn-witches-prepare-masters .fire-pit { position:absolute; bottom:15%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c86020 0%, #7a2a10 60%, #2a0a00 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,96,30,.5); animation: wpm-fire 2s ease-in-out infinite alternate; }
.scn-witches-prepare-masters .cauldron { position:absolute; bottom:25%; left:50%; width:90px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, #1a100a 100%); border-radius:40% 40% 30% 30%; box-shadow: inset 0 -15px 20px rgba(0,0,0,.6), 0 8px 16px rgba(0,0,0,.4); animation: wpm-cauldron 5s ease-in-out infinite; }
.scn-witches-prepare-masters .witch { position:absolute; bottom:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0f0707 100%); border-radius:40% 40% 30% 30%; transform-origin: bottom center; }
.scn-witches-prepare-masters .witch-left { left:25%; animation: wpm-witch 6s ease-in-out infinite; }
.scn-witches-prepare-masters .witch-right { right:25%; animation: wpm-witch 6.5s ease-in-out infinite 1s; }
.scn-witches-prepare-masters .shelf-ingredients { position:absolute; top:15%; left:10%; width:60%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:4px; box-shadow: 0 8px 12px rgba(0,0,0,.3); }
.scn-witches-prepare-masters .shadow-loom { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: wpm-shadow 10s ease-in-out infinite; }
@keyframes wpm-fire { 0% { height:50px; opacity:.8; filter:brightness(1); } 50% { height:65px; opacity:1; filter:brightness(1.3); } 100% { height:55px; opacity:.9; filter:brightness(1); } }
@keyframes wpm-cauldron { 0% { transform:translateX(-50%) rotate(0deg); } 30% { transform:translateX(-48%) rotate(1deg); } 60% { transform:translateX(-52%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes wpm-witch { 0% { transform:translateY(0) rotate(-3deg); } 30% { transform:translateY(-3px) rotate(0deg); } 60% { transform:translateY(2px) rotate(3deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes wpm-shadow { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.6; } }

.scn-witches-cheer-macbeth {
  background:
    radial-gradient(ellipse at 50% 80%, #3a1a0a 0%, #1a0a05 60%, #0a0502 100%),
    linear-gradient(180deg, #2a1005 0%, #1a0800 100%);
}

.scn-witches-cheer-macbeth .fire {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 180px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #ff7b3a 0%, #d44a1a 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  animation: wcm-fire 2s ease-in-out infinite alternate;
}
.scn-witches-cheer-macbeth .shadow-macbeth {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 70px;
  height: 130px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #1a0a05 0%, transparent 70%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: wcm-stand 3s ease-in-out infinite;
}
.scn-witches-cheer-macbeth .witch {
  position: absolute;
  bottom: 12%;
  width: 40px;
  height: 90px;
  background: linear-gradient(180deg, #2a1508 0%, #0d0502 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: wcm-dance 1.5s ease-in-out infinite;
}
.scn-witches-cheer-macbeth .witch-left {
  left: 20%;
  animation-delay: 0s;
}
.scn-witches-cheer-macbeth .witch-center {
  left: 45%;
  animation-delay: 0.3s;
}
.scn-witches-cheer-macbeth .witch-right {
  left: 68%;
  animation-delay: 0.6s;
}
.scn-witches-cheer-macbeth .cauldron {
  position: absolute;
  bottom: 12%;
  left: 50%;
  width: 60px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8);
  animation: wcm-boil 4s ease-in-out infinite;
}
.scn-witches-cheer-macbeth .sparkle {
  position: absolute;
  top: 40%;
  left: 30%;
  width: 6px;
  height: 6px;
  background: #ffaa55;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ff9933, 0 0 24px 8px rgba(255,153,51,0.4);
  animation: wcm-spark 1s ease-in-out infinite alternate;
}

@keyframes wcm-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.2) scaleX(0.95); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1.05); opacity: 0.9; }
}
@keyframes wcm-stand {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes wcm-dance {
  0% { transform: rotate(-8deg) scaleY(1); }
  25% { transform: rotate(4deg) scaleY(1.05); }
  50% { transform: rotate(-5deg) scaleY(0.95); }
  75% { transform: rotate(6deg) scaleY(1.05); }
  100% { transform: rotate(-8deg) scaleY(1); }
}
@keyframes wcm-boil {
  0% { transform: translateX(-50%) scale(1); border-radius: 40% 40% 20% 20%; }
  50% { transform: translateX(-50%) scale(1.05, 1.02); border-radius: 45% 35% 25% 15%; }
  100% { transform: translateX(-50%) scale(1); border-radius: 40% 40% 20% 20%; }
}
@keyframes wcm-spark {
  0% { opacity: 0.3; transform: translate(0, 0) scale(1); }
  100% { opacity: 1; transform: translate(15px, -10px) scale(1.5); }
}

/* -------------------- scene 2 -------------------- */
.scn-witches-vanish {
  background:
    radial-gradient(ellipse at 50% 90%, #2a1005 0%, #0f0602 60%, #000 100%),
    linear-gradient(180deg, #1a0800 0%, #0d0300 100%);
}
.scn-witches-vanish .stage {
  position: absolute;
  bottom: 10%;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: wva-dim 8s ease-in-out infinite;
}
.scn-witches-vanish .fade-witch {
  position: absolute;
  bottom: 15%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2a1508 0%, #1a0800 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  animation: wva-vanish 6s ease-in-out infinite;
}
.scn-witches-vanish .fade-a {
  left: 25%;
  animation-delay: 0s;
}
.scn-witches-vanish .fade-b {
  left: 45%;
  animation-delay: 1.5s;
}
.scn-witches-vanish .fade-c {
  left: 65%;
  animation-delay: 3s;
}
.scn-witches-vanish .macbeth-alone {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 60px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #1a0a05 0%, transparent 70%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: wva-stand 4s ease-in-out infinite;
}
.scn-witches-vanish .mist {
  position: absolute;
  top: 20%;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, rgba(40,20,10,0.3) 0%, transparent 100%);
  filter: blur(20px);
  animation: wva-drift 20s linear infinite;
}
.scn-witches-vanish .ember {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 4px;
  height: 4px;
  background: #ff9944;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ff7722;
  animation: wva-ember 3s ease-in-out infinite alternate;
}

@keyframes wva-dim {
  0% { opacity: 0.9; }
  50% { opacity: 0.6; }
  100% { opacity: 0.9; }
}
@keyframes wva-vanish {
  0% { opacity: 0.8; transform: scale(1) rotate(0deg); }
  25% { opacity: 0.5; transform: scale(0.9) rotate(5deg); }
  50% { opacity: 0.2; transform: scale(0.7) rotate(-3deg); }
  75% { opacity: 0.4; transform: scale(0.85) rotate(2deg); }
  100% { opacity: 0.1; transform: scale(0.6) rotate(0); }
}
@keyframes wva-stand {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-5px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes wva-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100px); }
}
@keyframes wva-ember {
  0% { opacity: 0.2; transform: translate(0, 0) scale(1); }
  100% { opacity: 0.9; transform: translate(20px, -15px) scale(1.8); }
}

/* -------------------- scene 3 -------------------- */
.scn-macbeth-learns-macduff-fled {
  background:
    radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, #1a0800 50%, #000 100%),
    linear-gradient(180deg, #1f0b02 0%, #0f0500 100%);
}
.scn-macbeth-learns-macduff-fled .wall {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a05 50%, #0f0602 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.8);
  animation: mdf-wall 6s ease-in-out infinite;
}
.scn-macbeth-learns-macduff-fled .macbeth-stand {
  position: absolute;
  bottom: 12%;
  left: 25%;
  width: 55px;
  height: 110px;
  background: radial-gradient(ellipse at 50% 80%, #1a0a05 0%, transparent 70%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mdf-tremble 2s ease-in-out infinite;
}
.scn-macbeth-learns-macduff-fled .messenger {
  position: absolute;
  bottom: 12%;
  left: 65%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #2a1508 0%, #1a0800 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  animation: mdf-bow 1.5s ease-in-out infinite alternate;
}
.scn-macbeth-learns-macduff-fled .horse {
  position: absolute;
  bottom: 15%;
  left: 70%;
  width: 60px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #1a0a05 0%, #0d0502 100%);
  border-radius: 40% 60% 30% 50%;
  animation: mdf-trot 1s ease-in-out infinite;
}
.scn-macbeth-learns-macduff-fled .torch {
  position: absolute;
  top: 20%;
  left: 45%;
  width: 8px;
  height: 20px;
  background: linear-gradient(180deg, #ff7733 0%, #993311 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px #ff6622, 0 0 60px 20px rgba(255,102,34,0.3);
  animation: mdf-flicker 0.5s ease-in-out infinite alternate;
}
.scn-macbeth-learns-macduff-fled .dust {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 30px;
  height: 10px;
  background: radial-gradient(ellipse, rgba(60,30,10,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mdf-dust 4s ease-in-out infinite;
}

@keyframes mdf-wall {
  0% { opacity: 0.9; }
  50% { opacity: 0.8; }
  100% { opacity: 0.9; }
}
@keyframes mdf-tremble {
  0% { transform: translateX(-2px) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(0); }
  75% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes mdf-bow {
  0% { transform: rotate(0deg) scaleY(1); }
  100% { transform: rotate(15deg) scaleY(0.9); }
}
@keyframes mdf-trot {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-6px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes mdf-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 20px 6px #ff6622; }
  100% { opacity: 1; box-shadow: 0 0 40px 12px #ff8844; }
}
@keyframes mdf-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  100% { transform: translate(30px, -10px) scale(2); opacity: 0; }
}

/* -------------------- scene 4 -------------------- */
.scn-macbeth-resolves-slaughter {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1005 0%, #1a0800 70%, #000 100%),
    linear-gradient(180deg, #1f0b02 0%, #0f0500 100%);
}
.scn-macbeth-resolves-slaughter .chamber {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(30,15,5,0.7) 0%, rgba(10,5,2,0.9) 100%);
  border-radius: 0 0 30% 30%;
  animation: mrs-pulse 4s ease-in-out infinite;
}
.scn-macbeth-resolves-slaughter .macbeth-hero {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 65px;
  height: 130px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #1a0a05 0%, transparent 70%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: mrs-stand 2s ease-in-out infinite;
}
.scn-macbeth-resolves-slaughter .dagger {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 50%, #1a0a05 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mrs-dagger 1s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 4px #b06030;
}
.scn-macbeth-resolves-slaughter .shadow-arm {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 50px;
  height: 70px;
  background: linear-gradient(180deg, #1a0a05 0%, transparent 100%);
  border-radius: 0 60% 20% 40% / 0 70% 20% 30%;
  transform-origin: bottom left;
  animation: mrs-reach 1.5s ease-in-out infinite;
}
.scn-macbeth-resolves-slaughter .candle {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 6px;
  height: 25px;
  background: linear-gradient(180deg, #ffbb66 0%, #cc8833 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px #ffaa44, 0 0 60px 20px rgba(255,170,68,0.4);
  animation: mrs-candle 3s ease-in-out infinite alternate;
}
.scn-macbeth-resolves-slaughter .pool {
  position: absolute;
  bottom: 8%;
  left: 40%;
  width: 80px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(60,30,10,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: mrs-pool 5s ease-in-out infinite;
}

@keyframes mrs-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 0.6; }
  100% { opacity: 0.8; }
}
@keyframes mrs-stand {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes mrs-dagger {
  0% { transform: rotate(-10deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(5deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(-5deg) scale(1); opacity: 0.9; }
}
@keyframes mrs-reach {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.1); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes mrs-candle {
  0% { opacity: 0.7; box-shadow: 0 0 20px 6px #ffaa44; }
  100% { opacity: 1; box-shadow: 0 0 40px 12px #ffcc66; }
}
@keyframes mrs-pool {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}

/* macbeth-scotched-snake */
.scn-macbeth-scotched-snake {
  background: linear-gradient(180deg, #1a0f0a 0%, #2d1a10 40%, #3a2218 100%), radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 80%);
}
.scn-macbeth-scotched-snake .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1a12 0%, #1a0f0a 100%);
  animation: mss-wall 20s ease-in-out infinite alternate;
}
.scn-macbeth-scotched-snake .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0f0a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-macbeth-scotched-snake .fire {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff6a33 0%, #b33a1a 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: mss-fire 0.8s ease-in-out infinite alternate;
}
.scn-macbeth-scotched-snake .snake-coil {
  position: absolute; bottom: 28%; left: 36%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #2d1a10 0%, #1a0f0a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 8px #0a0500;
  animation: mss-coil 6s ease-in-out infinite;
}
.scn-macbeth-scotched-snake .snake-head {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #4a2a1a 0%, #2d1a10 100%);
  border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%;
  transform: rotate(15deg);
  animation: mss-head 4s ease-in-out infinite;
}
.scn-macbeth-scotched-snake .glow {
  position: absolute; bottom: 34%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, 0) scale(1.2);
  background: radial-gradient(ellipse, rgba(255,106,51,0.4) 0%, transparent 70%);
  animation: mss-glow 3s ease-in-out infinite alternate;
}
@keyframes mss-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes mss-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.1) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(0.95) rotate(0deg) } }
@keyframes mss-coil { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes mss-head { 0% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(18deg) translate(2px,-1px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes mss-glow { 0% { opacity:0.6; transform: translate(-50%,0) scale(1); } 50% { opacity:0.9; transform: translate(-50%,-3px) scale(1.1); } 100% { opacity:0.5; transform: translate(-50%,0) scale(0.95); } }

/* lady-macbeth-bright-jovial */
.scn-lady-macbeth-bright-jovial {
  background: linear-gradient(180deg, #1c120c 0%, #2e1e12 30%, #3f2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a2e1a 0%, transparent 70%);
}
.scn-lady-macbeth-bright-jovial .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-lady-macbeth-bright-jovial .candle {
  position: absolute; bottom: 28%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-lady-macbeth-bright-jovial .candle.left { left: 25%; }
.scn-lady-macbeth-bright-jovial .candle.right { right: 25%; }
.scn-lady-macbeth-bright-jovial .flame {
  position: absolute; bottom: 48%; width: 10px; height: 14px;
  background: radial-gradient(ellipse at 50% 100%, #ffcc66 0%, #ff9944 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: lbj-flame 0.6s ease-in-out infinite alternate;
}
.scn-lady-macbeth-bright-jovial .left-flame { left: 24%; }
.scn-lady-macbeth-bright-jovial .right-flame { right: 24%; animation-delay: 0.2s; }
.scn-lady-macbeth-bright-jovial .goblet {
  position: absolute; bottom: 20%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 8px rgba(255,204,102,0.6);
  animation: lbj-goblet 12s ease-in-out infinite;
}
.scn-lady-macbeth-bright-jovial .guest {
  position: absolute; bottom: 24%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbj-guest 10s ease-in-out infinite;
}
.scn-lady-macbeth-bright-jovial .left-guest { left: 14%; animation-delay: 0.5s; }
.scn-lady-macbeth-bright-jovial .right-guest { right: 14%; animation-delay: -2s; }
@keyframes lbj-flame { 0% { transform: scaleY(1) rotate(-3deg) } 50% { transform: scaleY(1.2) rotate(3deg) } 100% { transform: scaleY(0.9) rotate(-1deg) } }
@keyframes lbj-goblet { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-48%) rotate(2deg) } 70% { transform: translateX(-52%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes lbj-guest { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

/* macbeth-deed-dreadful-note */
.scn-macbeth-deed-dreadful-note {
  background: linear-gradient(180deg, #0a0a1a 0%, #16163a 50%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-macbeth-deed-dreadful-note .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a4e 50%, #1a1a2e 100%);
  animation: mdd-wall 30s ease-in-out infinite alternate;
}
.scn-macbeth-deed-dreadful-note .night-sky {
  position: absolute; top: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a3e 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
}
.scn-macbeth-deed-dreadful-note .bat {
  position: absolute; top: 14%; left: 30%; width: 30px; height: 12px;
  background: #1a1a2e;
  border-radius: 50% / 100% 100% 0 0;
  transform: scaleX(-1);
  animation: mdd-bat 8s ease-in-out infinite;
}
.scn-macbeth-deed-dreadful-note .beetle {
  position: absolute; bottom: 38%; left: 60%; width: 10px; height: 6px;
  background: #2a1a10;
  border-radius: 40% 40% 20% 20%;
  animation: mdd-beetle 12s linear infinite;
}
.scn-macbeth-deed-dreadful-note .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 0 0 0;
}
.scn-macbeth-deed-dreadful-note .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,10,0.6) 0%, transparent 100%);
  animation: mdd-shadow 4s ease-in-out infinite;
}
@keyframes mdd-wall { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes mdd-bat { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-5px) rotate(5deg) } 50% { transform: translate(-5px,-10px) rotate(-3deg) } 75% { transform: translate(8px,-3px) rotate(4deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mdd-beetle { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-20px) translateY(2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes mdd-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1) } }

/* macbeth-night-begins */
.scn-macbeth-night-begins {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 60%);
}
.scn-macbeth-night-begins .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a3e 100%);
  animation: mnb-sky 20s ease-in-out infinite alternate;
}
.scn-macbeth-night-begins .moon {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e6c0 0%, #c8b890 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,184,144,0.5);
  animation: mnb-moon 30s linear infinite;
}
.scn-macbeth-night-begins .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 20%;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 10%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 50%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 20%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 10% 60%, #fff 0%, transparent 100%);
  animation: mnb-stars 8s ease-in-out infinite alternate;
}
.scn-macbeth-night-begins .castle {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  clip-path: polygon(0% 100%, 5% 40%, 12% 40%, 12% 0%, 18% 0%, 18% 40%, 30% 40%, 30% 10%, 36% 10%, 36% 40%, 50% 40%, 50% 0%, 56% 0%, 56% 40%, 64% 40%, 64% 10%, 70% 10%, 70% 40%, 82% 40%, 82% 0%, 88% 0%, 88% 40%, 95% 40%, 100% 100%);
  animation: mnb-castle 4s ease-in-out infinite;
}
.scn-macbeth-night-begins .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-macbeth-night-begins .cloud {
  position: absolute; top: 16%; left: 10%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(200,200,230,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mnb-cloud 50s linear infinite;
}
@keyframes mnb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mnb-moon { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes mnb-stars { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.3 } }
@keyframes mnb-castle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mnb-cloud { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }

/* lennox-rough-night */
.scn-lennox-rough-night {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2c4e 40%, #3a3a5a 100%), radial-gradient(ellipse at 80% 30%, #5a5a7a 0%, transparent 70%);
}
.scn-lennox-rough-night .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2e2e4a 0%, #404060 50%, #4a4a6a 100%);
  animation: lrn-sky 12s ease-in-out infinite alternate;
}
.scn-lennox-rough-night .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.6);
  animation: lrn-hills 18s ease-in-out infinite alternate;
}
.scn-lennox-rough-night .chimney {
  position: absolute; bottom: 34%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: lrn-chimney 6s ease-in-out infinite;
}
.scn-lennox-rough-night .smoke {
  position: absolute; bottom: 70%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,200,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: lrn-smoke 8s ease-in-out infinite alternate;
}
.scn-lennox-rough-night .bird {
  position: absolute; top: 20%; right: 20%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: lrn-bird 4s ease-in-out infinite;
}
.scn-lennox-rough-night .wind-line.wa {
  position: absolute; top: 15%; left: 0; width: 100%; height: 2px;
  background: rgba(200,200,200,0.15);
  filter: blur(1px);
  animation: lrn-wind-a 10s linear infinite;
}
.scn-lennox-rough-night .wind-line.wb {
  top: 25%;
  animation: lrn-wind-b 14s linear infinite reverse;
}
@keyframes lrn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.5; }
}
@keyframes lrn-hills {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes lrn-chimney {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(-2px); }
}
@keyframes lrn-smoke {
  0% { opacity: 0.3; transform: translateY(0) scale(1); }
  50% { opacity: 0.6; transform: translateY(-10px) scale(1.2); }
  100% { opacity: 0; transform: translateY(-20px) scale(1.5); }
}
@keyframes lrn-bird {
  0%,100% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-20deg) translateX(-10px); }
}
@keyframes lrn-wind-a {
  0% { transform: translateX(0); opacity: 0.1; }
  50% { opacity: 0.4; }
  100% { transform: translateX(100vw); opacity: 0; }
}
@keyframes lrn-wind-b {
  0% { transform: translateX(100vw); opacity: 0; }
  50% { opacity: 0.3; }
  100% { transform: translateX(0); opacity: 0.1; }
}

/* macduff-discovery-murder */
.scn-macduff-discovery-murder {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 80%);
}
.scn-macduff-discovery-murder .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a0a0a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-macduff-discovery-murder .bed {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: mdm-bed 6s ease-in-out infinite alternate;
}
.scn-macduff-discovery-murder .body {
  position: absolute; bottom: 30%; left: 38%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: mdm-body 3s ease-in-out infinite alternate;
}
.scn-macduff-discovery-murder .figure {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdm-figure 4s ease-in-out infinite;
}
.scn-macduff-discovery-murder .candle {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 8px;
  background: #ffd080;
  border-radius: 2px;
  box-shadow: 0 0 10px 4px rgba(255,200,100,0.6);
  animation: mdm-candle 2s ease-in-out infinite alternate;
}
.scn-macduff-discovery-murder .light-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,200,100,0.15) 0%, transparent 60%);
  mix-blend-mode: overlay;
  pointer-events: none;
  animation: mdm-glow 5s ease-in-out infinite alternate;
}
@keyframes mdm-bed {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
}
@keyframes mdm-body {
  0% { opacity: 0.8; transform: rotate(-5deg) translateY(0); }
  50% { opacity: 1; transform: rotate(-3deg) translateY(-2px); }
  100% { opacity: 0.6; transform: rotate(-7deg) translateY(1px); }
}
@keyframes mdm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(3deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  75% { transform: translateX(10px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mdm-candle {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(255,200,100,0.4); }
  50% { opacity: 1; box-shadow: 0 0 14px 6px rgba(255,200,100,0.8); }
  100% { opacity: 0.5; box-shadow: 0 0 6px 1px rgba(255,200,100,0.2); }
}
@keyframes mdm-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* alarm-bell-murder */
.scn-alarm-bell-murder {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-alarm-bell-murder .tower-bg {
  position: absolute; inset: 0 40% 0 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-alarm-bell-murder .bell {
  position: absolute; top: 15%; left: 45%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: abm-bell 2s ease-in-out infinite alternate;
}
.scn-alarm-bell-murder .rope {
  position: absolute; top: 35%; left: 50%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  animation: abm-rope 0.8s ease-in-out infinite alternate;
}
.scn-alarm-bell-murder .puller {
  position: absolute; top: 60%; left: 50%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: abm-puller 0.8s ease-in-out infinite alternate;
}
.scn-alarm-bell-murder .step {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.5);
}
.scn-alarm-bell-murder .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 60%);
  pointer-events: none;
  animation: abm-shadow 4s ease-in-out infinite alternate;
}
@keyframes abm-bell {
  0%,100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
}
@keyframes abm-rope {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes abm-puller {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(5px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes abm-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.1; }
}

/* banquo-murder-news */
.scn-banquo-murder-news {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 80%);
}
.scn-banquo-murder-news .room-bg {
  position: absolute; inset: 0 15% 0 15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-banquo-murder-news .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
}
.scn-banquo-murder-news .lamp {
  position: absolute; bottom: 35%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 10px rgba(255,200,100,0.4);
  animation: bmn-lamp 3s ease-in-out infinite alternate;
}
.scn-banquo-murder-news .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bmn-left 4s ease-in-out infinite;
}
.scn-banquo-murder-news .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: bmn-right 5s ease-in-out infinite;
}
.scn-banquo-murder-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
@keyframes bmn-lamp {
  0%,100% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,200,100,0.2); }
  50% { opacity: 1; box-shadow: 0 0 30px 14px rgba(255,200,100,0.6); }
}
@keyframes bmn-left {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-4px); }
  50% { transform: rotate(-8deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bmn-right {
  0% { transform: rotate(10deg) translateX(0); }
  30% { transform: rotate(8deg) translateX(-6px); }
  60% { transform: rotate(12deg) translateX(4px); }
  100% { transform: rotate(10deg) translateX(0); }
}

.scn-messenger-duncan-coming {
  background: 
    linear-gradient(180deg, #1c1a16 0%, #2c241c 30%, #3a2e22 60%, #241e18 100%),
    radial-gradient(ellipse at 50% 100%, #2a221a 0%, transparent 60%);
}
.scn-messenger-duncan-coming .wall {position:absolute; inset:0 0 45% 0; background:linear-gradient(90deg, #2a221a 0%, #3a3028 50%, #2a221a 100%);}
.scn-messenger-duncan-coming .floor {position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a2e22 0%, #1c1812 100%);}
.scn-messenger-duncan-coming .door {position:absolute; bottom:20%; left:20%; width:12%; height:55%; background:linear-gradient(180deg, #4a382a 0%, #2a1e14 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.7);}
.scn-messenger-duncan-coming .candle {position:absolute; bottom:40%; left:55%; width:6px; height:18px; background:linear-gradient(180deg, #e8d0a0 0%, #a08050 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 8px #d0a060,0 0 40px 16px rgba(208,160,96,.4); transform:rotate(-5deg); animation:mdC-candle 3s ease-in-out infinite alternate;}
.scn-messenger-duncan-coming .table {position:absolute; bottom:35%; left:50%; width:30%; height:6%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; transform:translateX(-50%);}
.scn-messenger-duncan-coming .messenger-figure {position:absolute; bottom:22%; left:35%; width:10%; height:48%; background:linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mdC-enter 6s ease-in-out infinite;}
.scn-messenger-duncan-coming .shadow {position:absolute; bottom:0; left:30%; width:40%; height:18%; background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); animation:mdC-shadow 6s ease-in-out infinite;}
@keyframes mdC-candle {0%{opacity:.8;transform:rotate(-5deg) scaleY(1)} 50%{opacity:1;transform:rotate(-3deg) scaleY(1.05)} 100%{opacity:.7;transform:rotate(-5deg) scaleY(.98)}}
@keyframes mdC-enter {0%{transform:translateX(-20px) scale(.95)} 25%{transform:translateX(-10px) scale(1)} 50%{transform:translateX(0) scale(1.02)} 75%{transform:translateX(5px) scale(1)} 100%{transform:translateX(0) scale(.98)}}
@keyframes mdC-shadow {0%{opacity:.5;transform:scale(1)} 50%{opacity:.7;transform:scale(1.1)} 100%{opacity:.6;transform:scale(.95)}}

.scn-lady-invocation {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #161420 30%, #0e0c18 60%, #060610 100%),
    radial-gradient(ellipse at 50% 30%, #2a2040 0%, transparent 70%);
}
.scn-lady-invocation .bg-dark {position:absolute; inset:0; background:linear-gradient(135deg, #0c0a16 0%, #181426 50%, #0c0a16 100%); opacity:.8;}
.scn-lady-invocation .lady-silhouette {position:absolute; bottom:15%; left:50%; width:20%; height:60%; transform:translateX(-50%); background:linear-gradient(180deg, #1a1628 0%, #0e0c1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow:0 0 30px rgba(0,0,0,.8); animation:li-breathe 10s ease-in-out infinite;}
.scn-lady-invocation .arms {position:absolute; bottom:40%; left:38%; width:24%; height:30%; background:linear-gradient(180deg, #1a1628 0%, #0e0c1a 100%); border-radius:40% 40% 30% 30%; transform:rotate(15deg); animation:li-arms 5s ease-in-out infinite alternate;}
.scn-lady-invocation .raven {position:absolute; top:8%; right:18%; width:18%; height:10%; background:linear-gradient(180deg, #0e0c1a 0%, #1a1628 100%); border-radius:50% 50% 30% 30%; transform:rotate(-10deg); animation:li-raven 15s ease-in-out infinite;}
.scn-lady-invocation .mists {position:absolute; bottom:5%; left:0; right:0; height:30%; background:linear-gradient(180deg, transparent 0%, rgba(40,30,60,.3) 50%, rgba(10,8,20,.6) 100%); filter:blur(8px); animation:li-mist 20s ease-in-out infinite;}
.scn-lady-invocation .faint-light {position:absolute; top:50%; left:50%; width:8px; height:8px; transform:translate(-50%,-50%); background:radial-gradient(circle, rgba(100,80,160,.2) 0%, transparent 70%); box-shadow:0 0 60px 20px rgba(100,80,160,.1); animation:li-light 8s ease-in-out infinite alternate;}
@keyframes li-breathe {0%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.02)} 100%{transform:translateX(-50%) scaleY(.98)}}
@keyframes li-arms {0%{transform:rotate(10deg) scale(1)} 50%{transform:rotate(20deg) scale(1.05)} 100%{transform:rotate(15deg) scale(.98)}}
@keyframes li-raven {0%{transform:translate(0,-5px) rotate(-10deg)} 50%{transform:translate(5px,0) rotate(-5deg)} 100%{transform:translate(0,-2px) rotate(-10deg)}}
@keyframes li-mist {0%{opacity:.3} 50%{opacity:.6} 100%{opacity:.4}}
@keyframes li-light {0%{opacity:.1;transform:translate(-50%,-50%) scale(.8)} 50%{opacity:.3;transform:translate(-50%,-50%) scale(1.2)} 100%{opacity:.15;transform:translate(-50%,-50%) scale(.9)}}

.scn-macbeth-returns-home {
  background: 
    linear-gradient(180deg, #2a2218 0%, #3a3226 30%, #2e261c 60%, #1a1610 100%),
    radial-gradient(ellipse at 50% 0%, #4a3e2e 0%, transparent 70%);
}
.scn-macbeth-returns-home .wall {position:absolute; inset:0 0 40% 0; background:linear-gradient(90deg, #2a2218 0%, #3a3226 50%, #2a2218 100%);}
.scn-macbeth-returns-home .floor {position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #3a3226 0%, #1a1610 100%);}
.scn-macbeth-returns-home .table {position:absolute; bottom:30%; left:50%; width:40%; height:5%; background:linear-gradient(180deg, #5a4a38 0%, #3a2a1a 100%); border-radius:4px; transform:translateX(-50%); box-shadow:0 4px 12px rgba(0,0,0,.5);}
.scn-macbeth-returns-home .candle {position:absolute; bottom:35%; left:50%; width:8px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #e8c8a0 0%, #b08050 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 30px 10px #d0a060,0 0 60px 20px rgba(208,160,96,.3); animation:mr-candle 2.5s ease-in-out infinite alternate;}
.scn-macbeth-returns-home .macbeth-figure {position:absolute; bottom:18%; left:30%; width:12%; height:55%; background:linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mr-macbeth 4s ease-in-out infinite;}
.scn-macbeth-returns-home .lady-figure {position:absolute; bottom:18%; right:30%; width:11%; height:52%; background:linear-gradient(180deg, #181420 0%, #0e0c16 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mr-lady 4s ease-in-out infinite 0.5s;}
.scn-macbeth-returns-home .letter {position:absolute; bottom:32%; left:38%; width:5%; height:4%; background:linear-gradient(135deg, #c8a878 0%, #a08050 100%); border-radius:2px; box-shadow:0 0 6px rgba(0,0,0,.3); animation:mr-letter 3s ease-in-out infinite;}
@keyframes mr-candle {0%{opacity:.8;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.08)} 100%{opacity:.75;transform:translateX(-50%) scaleY(.95)}}
@keyframes mr-macbeth {0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(8px) rotate(1deg)} 50%{transform:translateX(0) rotate(-1deg)} 75%{transform:translateX(-8px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)}}
@keyframes mr-lady {0%{transform:translateX(0) rotate(1deg)} 25%{transform:translateX(-6px) rotate(-1deg)} 50%{transform:translateX(0) rotate(1deg)} 75%{transform:translateX(6px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)}}
@keyframes mr-letter {0%{transform:rotate(0deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-3deg)}}

.scn-macbeth-consents {
  background: 
    linear-gradient(180deg, #1a1816 0%, #2c2822 40%, #3a342c 70%, #221e1a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3e32 0%, transparent 70%);
}
.scn-macbeth-consents .sky {position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #22202a 0%, #2a2830 30%, #1c1a20 100%); animation:mc-sky 12s ease-in-out infinite alternate;}
.scn-macbeth-consents .castle-wall {position:absolute; bottom:10%; left:10%; right:10%; height:65%; background:linear-gradient(90deg, #3a342c 0%, #4a4238 50%, #3a342c 100%); border-radius:2% 2% 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,.6);}
.scn-macbeth-consents .gate {position:absolute; bottom:10%; left:50%; width:20%; height:40%; transform:translateX(-50%); background:linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.8);}
.scn-macbeth-consents .torch-left {position:absolute; bottom:30%; left:28%; width:4px; height:20px; background:linear-gradient(180deg, #e8c080 0%, #a06030 100%); border-radius:40%; box-shadow:0 0 30px 10px #c08040,0 0 60px 20px rgba(192,128,64,.4); animation:mc-torch 2s ease-in-out infinite alternate;}
.scn-macbeth-consents .torch-right {position:absolute; bottom:30%; right:28%; width:4px; height:20px; background:linear-gradient(180deg, #e8c080 0%, #a06030 100%); border-radius:40%; box-shadow:0 0 30px 10px #c08040,0 0 60px 20px rgba(192,128,64,.4); animation:mc-torch 2s ease-in-out infinite alternate-reverse;}
.scn-macbeth-consents .duncan-fig {position:absolute; bottom:15%; left:35%; width:10%; height:45%; background:linear-gradient(180deg, #2a2a2e 0%, #1a1a1c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mc-duncan 8s ease-in-out infinite;}
.scn-macbeth-consents .banquo-fig {position:absolute; bottom:15%; right:35%; width:9%; height:42%; background:linear-gradient(180deg, #2a2a2e 0%, #1a1a1c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mc-banquo 8s ease-in-out infinite 2s;}
@keyframes mc-sky {0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8}}
@keyframes mc-torch {0%{opacity:.7;transform:scaleY(.9)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:.8;transform:scaleY(.95)}}
@keyframes mc-duncan {0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(5px) rotate(1deg)} 50%{transform:translateX(0) rotate(0)} 75%{transform:translateX(-5px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)}}
@keyframes mc-banquo {0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(-4px) rotate(-1deg)} 50%{transform:translateX(0) rotate(0)} 75%{transform:translateX(4px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)}}

/* ross-reveals-massacre */
.scn-ross-reveals-massacre {
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%), radial-gradient(ellipse at 30% 70%, #3a1a1a 0%, transparent 70%);
}
.scn-ross-reveals-massacre .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #0d0808 0%, #1a1212 50%, #0a0606 100%); }
.scn-ross-reveals-massacre .fire-glow { position:absolute; bottom:15%; left:10%; width:40px; height:60px; background: radial-gradient(ellipse, #b06030 0%, #6a3018 40%, transparent 100%); border-radius:50%; filter:blur(6px); animation: rrm-fire 2s ease-in-out infinite alternate; }
.scn-ross-reveals-massacre .ross-figure { position:absolute; bottom:20%; left:15%; width:30px; height:80px; background: linear-gradient(180deg, #1c1410 0%, #0a0605 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom; animation: rrm-stand 4s ease-in-out infinite; }
.scn-ross-reveals-massacre .macduff-figure { position:absolute; bottom:18%; right:20%; width:34px; height:60px; background: linear-gradient(180deg, #1a0f0a 0%, #080503 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin:bottom center; transform: rotate(5deg); animation: rrm-sit 5s ease-in-out infinite; }
.scn-ross-reveals-massacre .window-cold { position:absolute; top:12%; right:15%; width:24px; height:32px; background: radial-gradient(ellipse, #3a5a6a 0%, #1a2a3a 70%); border-radius:3px; box-shadow:inset 0 0 8px #2a4a5a; animation: rrm-window 8s ease-in-out infinite alternate; }
.scn-ross-reveals-massacre .table-shadow { position:absolute; bottom:10%; left:30%; right:20%; height:4px; background: rgba(0,0,0,0.6); border-radius:50%; filter:blur(3px); }
.scn-ross-reveals-massacre .shadow-wall { position:absolute; bottom:0; left:10%; width:60%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: rrm-shadow 3s ease-in-out infinite alternate; }
@keyframes rrm-fire { 0% { transform: scale(1) translateY(0); opacity:0.7; } 50% { transform: scale(1.05) translateY(-2px); opacity:1; } 100% { transform: scale(0.95) translateY(1px); opacity:0.8; } }
@keyframes rrm-stand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rrm-sit { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes rrm-window { 0% { opacity:0.4; box-shadow:inset 0 0 6px #1a2a3a; } 50% { opacity:0.7; box-shadow:inset 0 0 12px #2a4a5a; } 100% { opacity:0.5; box-shadow:inset 0 0 8px #2a3a4a; } }
@keyframes rrm-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* ross-delivers-death-news */
.scn-ross-delivers-death-news {
  background: linear-gradient(180deg, #120b0b 0%, #080303 100%), radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 60%);
}
.scn-ross-delivers-death-news .room-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0f0808, #1a1010); }
.scn-ross-delivers-death-news .candle-glow { position:absolute; bottom:50%; left:50%; width:20px; height:30px; background: radial-gradient(ellipse, #d08030 0%, #7a4018 40%, transparent 70%); filter:blur(4px); animation: rddn-candle 3s ease-in-out infinite alternate; }
.scn-ross-delivers-death-news .ross-standing { position:absolute; bottom:15%; left:20%; width:28px; height:85px; background: linear-gradient(180deg, #1a100a 0%, #0a0503 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin:bottom; animation: rddn-stand 4s ease-in-out infinite; }
.scn-ross-delivers-death-news .macduff-seated { position:absolute; bottom:18%; right:22%; width:35px; height:55px; background: linear-gradient(180deg, #1a0f0a 0%, #080503 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin:bottom; transform: rotate(-5deg); animation: rddn-seat 5s ease-in-out infinite; }
.scn-ross-delivers-death-news .scroll-hand { position:absolute; bottom:40%; left:35%; width:8px; height:20px; background: #c0a070; border-radius:2px; transform:rotate(20deg); box-shadow:0 0 4px rgba(0,0,0,0.5); animation: rddn-scroll 6s ease-in-out infinite; }
.scn-ross-delivers-death-news .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); }
@keyframes rddn-candle { 0% { transform: scale(1) translateY(0); opacity:0.8; } 50% { transform: scale(1.03) translateY(-3px); opacity:1; } 100% { transform: scale(0.97) translateY(1px); opacity:0.85; } }
@keyframes rddn-stand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rddn-seat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes rddn-scroll { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }

/* macduff-grief */
.scn-macduff-grief {
  background: linear-gradient(180deg, #0a0807 0%, #050303 100%), radial-gradient(ellipse at 40% 50%, #1a1210 0%, transparent 70%);
}
.scn-macduff-grief .chamber-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0a08, #140e0c); }
.scn-macduff-grief .hat-shadow { position:absolute; top:45%; left:50%; width:50px; height:40px; background: radial-gradient(ellipse, #0f0807 0%, transparent 100%); border-radius:50%; filter:blur(3px); transform:translate(-50%,-50%); animation: mg-hat 6s ease-in-out infinite; }
.scn-macduff-grief .grieving-figure { position:absolute; bottom:15%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #1a0f0a 0%, #080503 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(3deg); transform-origin:bottom; animation: mg-grief 7s ease-in-out infinite; }
.scn-macduff-grief .window-dim { position:absolute; top:10%; right:15%; width:20px; height:28px; background: radial-gradient(ellipse, #2a3a4a 0%, #101a24 70%); border-radius:2px; box-shadow: inset 0 0 6px #1a2a3a; animation: mg-window 10s ease-in-out infinite alternate; }
.scn-macduff-grief .chair-dark { position:absolute; bottom:10%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #0f0806 0%, #050302 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; transform:rotate(-2deg); }
.scn-macduff-grief .shadow-wall { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes mg-hat { 0% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-52%) scale(1.02); } 100% { transform: translate(-50%,-50%) scale(1); } }
@keyframes mg-grief { 0% { transform: translateX(-50%) rotate(3deg) translateY(0); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(3deg) translateY(0); } }
@keyframes mg-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* macduff-hell-kite */
.scn-macduff-hell-kite {
  background: linear-gradient(180deg, #0f0808 0%, #050202 100%), radial-gradient(ellipse at 30% 70%, #1a1010 0%, transparent 60%);
}
.scn-macduff-hell-kite .night-wall { position:absolute; inset:0; background: linear-gradient(135deg, #0a0606, #140c0c); }
.scn-macduff-hell-kite .window-frame { position:absolute; top:5%; right:10%; width:60px; height:70px; background: rgba(0,0,0,0.6); border:4px solid #2a1a1a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.8); animation: mhk-frame 12s ease-in-out infinite alternate; }
.scn-macduff-hell-kite .kite-bird { position:absolute; top:15%; right:20%; width:50px; height:40px; background: linear-gradient(180deg, #1a0f0a 0%, #0a0503 100%); border-radius: 60% 10% 60% 10% / 50% 20% 80% 20%; transform:rotate(-15deg); filter:blur(1px); animation: mhk-kite 8s ease-in-out infinite alternate; }
.scn-macduff-hell-kite .macduff-looking { position:absolute; bottom:20%; left:30%; width:32px; height:65px; background: linear-gradient(180deg, #1a0f0a 0%, #080503 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin:bottom; transform:rotate(-5deg); animation: mhk-looking 5s ease-in-out infinite; }
.scn-macduff-hell-kite .lamp-glow { position:absolute; bottom:30%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #b08040 0%, #6a3a1a 50%, transparent 100%); filter:blur(5px); animation: mhk-lamp 3s ease-in-out infinite alternate; }
.scn-macduff-hell-kite .shadow-bird { position:absolute; bottom:10%; left:20%; width:30px; height:20px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(4px); animation: mhk-shadow-wave 10s ease-in-out infinite alternate; }
.scn-macduff-hell-kite .floor-plank { position:absolute; bottom:12%; left:0; right:0; height:3px; background: linear-gradient(90deg, transparent 0%, #1a0f0a 20%, #1a0f0a 80%, transparent 100%); }
@keyframes mhk-frame { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes mhk-kite { 0% { transform: rotate(-15deg) translateX(0) scale(1); } 50% { transform: rotate(-12deg) translateX(3px) scale(1.02); } 100% { transform: rotate(-15deg) translateX(0) scale(1); } }
@keyframes mhk-looking { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes mhk-lamp { 0% { transform: scale(1) translateY(0); opacity:0.8; } 50% { transform: scale(1.05) translateY(-1px); opacity:1; } 100% { transform: scale(0.95) translateY(0); opacity:0.85; } }
@keyframes mhk-shadow-wave { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(5px) scale(1.1); opacity:0.6; } 100% { transform: translateX(0) scale(1); opacity:0.4; } }

.scn-dunsinane-queens-death { background: linear-gradient(180deg, #1a1423 0%, #2c1f33 30%, #3d2530 60%, #2a1a20 100%), radial-gradient(ellipse at 50% 80%, #4a2a30 0%, transparent 60%); }
.scn-dunsinane-queens-death .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1f2e 0%, #3a2a3e 30%, #2a1f2e 50%, #3a2a3e 70%, #2a1f2e 100%); animation: dq-wall 12s ease-in-out infinite alternate; }
.scn-dunsinane-queens-death .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1215 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-dunsinane-queens-death .queen-figure { position:absolute; bottom:28%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a20 0%, #0d080a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dq-queen 5s ease-in-out infinite alternate; }
.scn-dunsinane-queens-death .candle-1 { position:absolute; bottom:32%; left:30%; width:6px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #a08040 50%, #704030 100%); border-radius: 30% 30% 10% 10%; transform: rotate(4deg); animation: dq-candle 6s ease-in-out infinite alternate; }
.scn-dunsinane-queens-death .candle-2 { position:absolute; bottom:32%; left:36%; width:5px; height:26px; background: linear-gradient(180deg, #d4a060 0%, #a08040 50%, #704030 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-3deg); animation: dq-candle 6s ease-in-out infinite alternate-reverse; }
.scn-dunsinane-queens-death .shadow-figure { position:absolute; bottom:30%; right:28%; width:45px; height:70px; background: linear-gradient(180deg, #0d080a 0%, #050305 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; opacity:.7; animation: dq-shade 8s ease-in-out infinite alternate; }
.scn-dunsinane-queens-death .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #3a1a20 0%, #2a0a10 50%, #1a0508 100%); border-radius: 0 0 0 40%; box-shadow: -6px 0 20px rgba(0,0,0,.5); animation: dq-curtain 14s ease-in-out infinite alternate; }
.scn-dunsinane-queens-death .flame-glow { position:absolute; bottom:34%; left:33%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,150,80,.3) 0%, transparent 70%); border-radius:50%; animation: dq-glow 3s ease-in-out infinite alternate; }
@keyframes dq-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.75 } }
@keyframes dq-queen { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes dq-candle { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(6deg) scale(1.02) } 100% { transform: rotate(1deg) scale(.98) } }
@keyframes dq-shade { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(3px) } }
@keyframes dq-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }
@keyframes dq-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.3) } 100% { opacity:.5; transform: scale(.9) } }

.scn-dunsinane-tomorrow-speech { background: linear-gradient(180deg, #1a1420 0%, #2c1f2e 25%, #3d2530 50%, #2a1820 80%, #1a0e12 100%), radial-gradient(ellipse at 50% 75%, #4a2a30 0%, transparent 70%); }
.scn-dunsinane-tomorrow-speech .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2a1f2e 0%, #3a2a3e 40%, #2a1f2e 70%, #3a2a3e 100%); animation: ts-wall 15s ease-in-out infinite alternate; }
.scn-dunsinane-tomorrow-speech .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1215 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-dunsinane-tomorrow-speech .figure-macbeth { position:absolute; bottom:32%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: ts-figure 6s ease-in-out infinite alternate; }
.scn-dunsinane-tomorrow-speech .candle-group { position:absolute; bottom:35%; left:32%; width:20px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #a08040 50%, #704030 100%); border-radius: 30% 30% 10% 10%; animation: ts-candle 5s ease-in-out infinite alternate; }
.scn-dunsinane-tomorrow-speech .hourglass { position:absolute; bottom:37%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #d4c0a0 0%, #b0a080 50%, #8a7050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ts-sand 8s ease-in-out infinite; }
.scn-dunsinane-tomorrow-speech .shadow-creep { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, transparent 0%, rgba(10,8,12,.7) 50%, rgba(5,3,6,.9) 100%); border-radius: 20% 20% 0 0; animation: ts-shadow 12s ease-in-out infinite alternate; }
.scn-dunsinane-tomorrow-speech .candle-flame-a { position:absolute; bottom:36%; left:33%; width:8px; height:12px; background: radial-gradient(circle, rgba(255,200,100,.9) 0%, rgba(200,150,80,.4) 50%, transparent 80%); border-radius:50%; animation: ts-flame-a 3s ease-in-out infinite alternate; }
.scn-dunsinane-tomorrow-speech .candle-flame-b { position:absolute; bottom:36%; left:37%; width:6px; height:10px; background: radial-gradient(circle, rgba(255,200,100,.7) 0%, rgba(200,150,80,.3) 50%, transparent 80%); border-radius:50%; animation: ts-flame-b 4s ease-in-out infinite alternate; }
@keyframes ts-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ts-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes ts-candle { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(4deg) scale(1.03) } 100% { transform: rotate(0) scale(.97) } }
@keyframes ts-sand { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(.95) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ts-shadow { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(6px) scaleY(1.08) } 100% { transform: translateY(-3px) scaleY(.96) } }
@keyframes ts-flame-a { 0% { transform: scale(.8) translateY(1px) } 50% { transform: scale(1.2) translateY(-2px) } 100% { transform: scale(.9) translateY(0) } }
@keyframes ts-flame-b { 0% { transform: scale(.9) translateY(0) } 50% { transform: scale(1.1) translateY(-3px) } 100% { transform: scale(.85) translateY(1px) } }

.scn-dunsinane-moving-wood { background: linear-gradient(180deg, #1a1420 0%, #2c1f2e 20%, #3d2530 45%, #2a1820 70%, #1a0e12 100%), radial-gradient(ellipse at 50% 80%, #5a3030 0%, transparent 60%); }
.scn-dunsinane-moving-wood .bg-tapestry { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #3a2a3e 0%, #2a1f2e 30%, #4a3a4e 60%, #2a1f2e 100%); animation: mw-tapestry 10s ease-in-out infinite alternate; }
.scn-dunsinane-moving-wood .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1215 100%); box-shadow: inset 0 8px 25px rgba(0,0,0,.6); }
.scn-dunsinane-moving-wood .figure-macbeth { position:absolute; bottom:24%; right:30%; width:45px; height:85px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: mw-macbeth 4s ease-in-out infinite alternate; }
.scn-dunsinane-moving-wood .figure-messenger { position:absolute; bottom:24%; left:30%; width:35px; height:50px; background: linear-gradient(180deg, #2a1a20 0%, #0d080a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; transform: scale(.8); animation: mw-messenger 5s ease-in-out infinite alternate; }
.scn-dunsinane-moving-wood .torch { position:absolute; bottom:26%; left:18%; width:8px; height:40px; background: linear-gradient(180deg, #c0a080 0%, #8a6a50 50%, #5a3a30 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-8deg); animation: mw-torch 6s ease-in-out infinite alternate; }
.scn-dunsinane-moving-wood .torch-flame { position:absolute; bottom:38%; left:17.5%; width:14px; height:20px; background: radial-gradient(circle, rgba(255,200,80,.9) 0%, rgba(200,120,40,.6) 40%, transparent 80%); border-radius:50%; animation: mw-flame 3s ease-in-out infinite alternate; }
.scn-dunsinane-moving-wood .shadow-wood { position:absolute; bottom:0; left:0; right:0; height:100%; background: linear-gradient(180deg, transparent 0%, rgba(20,15,10,.4) 40%, rgba(10,8,5,.7) 100%); border-radius: 30% 70% 0 0; animation: mw-wood 7s ease-in-out infinite alternate; }
@keyframes mw-tapestry { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mw-macbeth { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mw-messenger { 0% { transform: scale(.8) translateY(0) } 50% { transform: scale(.85) translateY(-3px) } 100% { transform: scale(.75) translateY(2px) } }
@keyframes mw-torch { 0% { transform: rotate(-6deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-4deg) } }
@keyframes mw-flame { 0% { transform: scale(.8) translateY(1px) } 50% { transform: scale(1.3) translateY(-4px) } 100% { transform: scale(.9) translateY(0) } }
@keyframes mw-wood { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(8px) } 100% { opacity:.4; transform: translateY(-4px) } }

.scn-dunsinane-defiance { background: linear-gradient(180deg, #1a1420 0%, #2c1f2e 30%, #3d2530 55%, #2a1820 80%, #1a0e12 100%), radial-gradient(ellipse at 50% 70%, #4a2a30 0%, transparent 60%); }
.scn-dunsinane-defiance .bg-stone { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #2a2a3e 60%, #1a1a2e 100%); animation: df-stone 14s ease-in-out infinite alternate; }
.scn-dunsinane-defiance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1215 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-dunsinane-defiance .figure-armor { position:absolute; bottom:30%; left:45%; width:50px; height:90px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a15 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: df-armor 5s ease-in-out infinite alternate; }
.scn-dunsinane-defiance .sword { position:absolute; bottom:55%; left:35%; width:6px; height:60px; background: linear-gradient(180deg, #c0c0d0 0%, #808090 50%, #505060 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-30deg); transform-origin: bottom center; animation: df-sword 4s ease-in-out infinite alternate; }
.scn-dunsinane-defiance .shield { position:absolute; bottom:38%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; border: 2px solid #50506a; animation: df-shield 6s ease-in-out infinite alternate; }
.scn-dunsinane-defiance .wall-torch { position:absolute; bottom:35%; right:20%; width:7px; height:35px; background: linear-gradient(180deg, #c0a080 0%, #8a6a50 50%, #5a3a30 100%); border-radius: 20% 20% 10% 10%; transform: rotate(6deg); animation: df-torch 7s ease-in-out infinite alternate; }
.scn-dunsinane-defiance .torch-glow { position:absolute; bottom:40%; right:19%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,180,80,.25) 0%, rgba(200,120,40,.1) 40%, transparent 80%); border-radius:50%; animation: df-glow 3s ease-in-out infinite alternate; }
@keyframes df-stone { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes df-armor { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) scale(1.01) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes df-sword { 0% { transform: rotate(-28deg) } 50% { transform: rotate(-34deg) } 100% { transform: rotate(-26deg) } }
@keyframes df-shield { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(1.03) } 100% { transform: translateX(-2px) scale(.97) } }
@keyframes df-torch { 0% { transform: rotate(4deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(5deg) } }
@keyframes df-glow { 0% { opacity:.4; transform: scale(.8) } 50% { opacity:.7; transform: scale(1.3) } 100% { opacity:.5; transform: scale(.9) } }

.scn-macbeth-resolve-macduff {
  background: 
    linear-gradient(180deg, #1a1015 0%, #2d1d1a 40%, #3a2520 100%),
    radial-gradient(ellipse at 60% 20%, #4a2a22 0%, transparent 70%);
}
.scn-macbeth-resolve-macduff .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: md-wall 15s ease-in-out infinite alternate;
}
.scn-macbeth-resolve-macduff .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #120c0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: md-floor 20s ease-in-out infinite alternate;
}
.scn-macbeth-resolve-macduff .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: md-table 12s ease-in-out infinite;
}
.scn-macbeth-resolve-macduff .candle {
  position: absolute; bottom: 26%; left: 35%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d4b078 0%, #8a6a40 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: md-candle 4s ease-in-out infinite alternate;
}
.scn-macbeth-resolve-macduff .candle-glow {
  position: absolute; bottom: 24%; left: 32%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,150,80,0.6) 0%, rgba(200,150,80,0.1) 70%, transparent 100%);
  border-radius: 50%;
  animation: md-glow 3s ease-in-out infinite alternate;
}
.scn-macbeth-resolve-macduff .dagger {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #8a7a6a 0%, #c0b0a0 50%, #8a7a6a 100%);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  transform: rotate(-20deg);
  box-shadow: 0 0 10px rgba(180,160,140,0.3);
  animation: md-dagger 8s ease-in-out infinite;
}
.scn-macbeth-resolve-macduff .figure {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a18 0%, #0e0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: md-fig 9s ease-in-out infinite;
}
.scn-macbeth-resolve-macduff .shadow-figure {
  position: absolute; bottom: 8%; left: 48%; width: 50px; height: 70px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(6px);
  transform: translateX(-50%);
  animation: md-shadow 9s ease-in-out infinite alternate;
}
@keyframes md-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes md-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes md-table { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes md-candle { 0% { transform: scaleY(1) rotate(-1deg) } 50% { transform: scaleY(1.05) rotate(1deg) } 100% { transform: scaleY(1) rotate(-0.5deg) } }
@keyframes md-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes md-dagger { 0%, 100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-22deg) translateY(-2px) } }
@keyframes md-fig { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-52%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes md-shadow { 0% { opacity: 0.2; transform: translateX(-50%) scale(1) } 100% { opacity: 0.4; transform: translateX(-50%) scale(1.05) } }

.scn-hecate-scolds-witches {
  background: 
    linear-gradient(180deg, #0e0a18 0%, #1a1228 40%, #2a1a38 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a4a 0%, transparent 60%);
}
.scn-hecate-scolds-witches .storm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #0e0a18 0%, #1a1228 50%, #0e0a18 100%);
  animation: hs-sky 12s ease-in-out infinite alternate;
}
.scn-hecate-scolds-witches .heath-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-hecate-scolds-witches .lightning {
  position: absolute; top: 10%; left: 20%; width: 2px; height: 60px;
  background: #8a7aba;
  filter: blur(1px);
  box-shadow: 0 0 20px #8a7aba, 0 0 40px #6a4a9a;
  opacity: 0;
  animation: hs-lightning 8s ease-in-out infinite;
}
.scn-hecate-scolds-witches .flash-2 {
  left: 70%;
  animation-delay: 4s;
}
.scn-hecate-scolds-witches .witch {
  position: absolute; bottom: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-hecate-scolds-witches .figure-a { left: 15%; animation: hs-witch-a 6s ease-in-out infinite; }
.scn-hecate-scolds-witches .figure-b { left: 45%; animation: hs-witch-b 7s ease-in-out infinite; }
.scn-hecate-scolds-witches .figure-c { left: 75%; animation: hs-witch-c 5s ease-in-out infinite; }
.scn-hecate-scolds-witches .hecate {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a38 0%, #1a0a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px rgba(80,40,120,0.4);
  animation: hs-hecate 8s ease-in-out infinite;
}
.scn-hecate-scolds-witches .storm-cloud {
  position: absolute; top: 8%; right: 10%; width: 120px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(40,30,60,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: hs-cloud 30s linear infinite;
}
@keyframes hs-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hs-lightning { 0%, 90%, 100% { opacity: 0 } 10% { opacity: 0.9 } 20% { opacity: 0 } 30% { opacity: 0.6 } 40% { opacity: 0 } }
@keyframes hs-witch-a { 0%, 100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-5deg) } }
@keyframes hs-witch-b { 0%, 100% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(-3deg) } 66% { transform: translateY(-4px) rotate(2deg) } }
@keyframes hs-witch-c { 0%, 100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-5px) rotate(6deg) } 40% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(-3px) rotate(4deg) } 80% { transform: translateY(-1px) rotate(-4deg) } }
@keyframes hs-hecate { 0%, 100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes hs-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-30vw) } }

.scn-hecate-plans-deception {
  background: 
    linear-gradient(180deg, #0a0e1a 0%, #141e30 40%, #1a2a3e 100%),
    radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, transparent 70%);
}
.scn-hecate-plans-deception .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #101a28 100%);
  animation: hp-sky 20s ease-in-out infinite alternate;
}
.scn-hecate-plans-deception .moon {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c8d0e0 0%, #8a9aba 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px #8a9aba, 0 0 120px rgba(100,120,180,0.3);
  animation: hp-moon 30s ease-in-out infinite alternate;
}
.scn-hecate-plans-deception .moon-glow {
  position: absolute; top: 5%; left: 65%; width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(100,120,180,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: hp-moonglow 15s ease-in-out infinite alternate;
}
.scn-hecate-plans-deception .vaporous-drop {
  position: absolute; top: 30%; left: 68%; width: 10px; height: 14px;
  background: radial-gradient(circle, #a0b0d0 0%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: hp-drop 4s ease-in-out infinite;
}
.scn-hecate-plans-deception .hecate-floating {
  position: absolute; top: 25%; left: 30%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(80,80,120,0.3);
  animation: hp-hecate 7s ease-in-out infinite;
}
.scn-hecate-plans-deception .fog-mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(20,30,50,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: hp-fog 18s ease-in-out infinite alternate;
}
.scn-hecate-plans-deception .corner-of-moon {
  position: absolute; top: 12%; left: 72%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e8f0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: hp-corner 8s ease-in-out infinite;
}
@keyframes hp-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes hp-moon { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes hp-moonglow { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes hp-drop { 0%, 100% { transform: translateY(0) scale(1) } 50% { transform: translateY(10px) scale(0.8) } }
@keyframes hp-hecate { 0%, 100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-5px) rotate(3deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes hp-fog { 0% { opacity: 0.3; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-5px) } 100% { opacity: 0.4; transform: translateY(0) } }
@keyframes hp-corner { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }

.scn-witches-depart-hecate {
  background: 
    linear-gradient(180deg, #0e121a 0%, #1a2030 40%, #2a3040 100%),
    radial-gradient(ellipse at 70% 30%, #3a4a5a 0%, transparent 70%);
}
.scn-witches-depart-hecate .fog-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0e121a 0%, #16202a 100%);
  animation: wd-sky 25s ease-in-out infinite alternate;
}
.scn-witches-depart-hecate .fog-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2230 0%, #0e141a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.5);
}
.scn-witches-depart-hecate .hecate-spirit {
  position: absolute; top: 15%; right: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2230 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 0 30px rgba(60,80,120,0.3);
  animation: wd-hecate 6s ease-in-out infinite alternate;
}
.scn-witches-depart-hecate .witch-silhouette {
  position: absolute; bottom: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #0e141a 0%, #060a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-witches-depart-hecate .left-sil { left: 20%; animation: wd-witch-l 9s ease-in-out infinite; }
.scn-witches-depart-hecate .right-sil { left: 70%; animation: wd-witch-r 8s ease-in-out infinite; }
.scn-witches-depart-hecate .foggy-cloud {
  position: absolute; top: 5%; left: 50%; width: 160px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,100,130,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: wd-cloud 20s linear infinite alternate;
}
.scn-witches-depart-hecate .spirit-light {
  position: absolute; top: 12%; right: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a0b0c0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: wd-light 3s ease-in-out infinite alternate;
}
@keyframes wd-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wd-hecate { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wd-witch-l { 0%, 100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes wd-witch-r { 0%, 100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-4deg) } }
@keyframes wd-cloud { 0% { transform: translateX(-20%) scale(1) } 50% { transform: translateX(10%) scale(1.1) } 100% { transform: translateX(-20%) scale(1) } }
@keyframes wd-light { 0% { opacity: 0.4; transform: scale(1) } 100% { opacity: 0.9; transform: scale(1.3) } }

/* son-witty-banter */
.scn-son-witty-banter {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #1e0e0e 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-son-witty-banter .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a1a, #1e0e0e); }
.scn-son-witty-banter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1010, #0e0808); }
.scn-son-witty-banter .table { position:absolute; bottom:30%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: #3a2a1a; border-radius:2px; box-shadow: 0 -2px 6px rgba(0,0,0,.6); animation: swb-table 12s ease-in-out infinite; }
.scn-son-witty-banter .candle { position:absolute; bottom:38%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5040, #4a3020); border-radius:2px; }
.scn-son-witty-banter .flame { position:absolute; bottom:56%; left:50%; width:8px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #ffaa40 0%, #b06020 70%); border-radius:50%; box-shadow: 0 0 20px 8px #b06020, 0 0 40px 16px rgba(176,96,32,.4); animation: swb-flame 2s ease-in-out infinite alternate; }
.scn-son-witty-banter .mother { position:absolute; bottom:24%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: swb-mother 6s ease-in-out infinite; }
.scn-son-witty-banter .son { position:absolute; bottom:26%; right:38%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: swb-son 5s ease-in-out infinite; }
.scn-son-witty-banter .window { position:absolute; top:12%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); border:2px solid #2a1a1a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: swb-window 15s ease-in-out infinite alternate; }
@keyframes swb-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes swb-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(.8); opacity:1; } 100% { transform: translateX(-50%) scaleY(.9) scaleX(1.1); opacity:.85; } }
@keyframes swb-mother { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } }
@keyframes swb-son { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes swb-window { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

/* talk-of-traitors */
.scn-talk-of-traitors {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #1e0e0e 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-talk-of-traitors .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a1a, #1e0e0e); }
.scn-talk-of-traitors .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1010, #0e0808); }
.scn-talk-of-traitors .curtain { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 0 30% 30% 0 / 0 10% 10% 0; box-shadow: inset -4px 0 12px rgba(0,0,0,.6); animation: tot-curtain 20s ease-in-out infinite alternate; }
.scn-talk-of-traitors .mother { position:absolute; bottom:24%; left:35%; width:35px; height:65px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: tot-mother 4s ease-in-out infinite; }
.scn-talk-of-traitors .son { position:absolute; bottom:26%; right:32%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: tot-son 5s ease-in-out infinite; }
.scn-talk-of-traitors .fireplace { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 20px #4a2a1a; }
.scn-talk-of-traitors .glow { position:absolute; bottom:28%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #b06020 0%, transparent 70%); border-radius:50%; animation: tot-glow 3s ease-in-out infinite alternate; }
@keyframes tot-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(-2px); } }
@keyframes tot-mother { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } }
@keyframes tot-son { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes tot-glow { 0% { opacity:.5; transform: translateX(-50%) scale(1); } 50% { opacity:.8; transform: translateX(-50%) scale(1.2); } 100% { opacity:.6; transform: translateX(-50%) scale(.9); } }

/* son-logic-on-hanging */
.scn-son-logic-on-hanging {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #1e0e0e 100%),
              radial-gradient(ellipse at 60% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-son-logic-on-hanging .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a1a, #1e0e0e); }
.scn-son-logic-on-hanging .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1010, #0e0808); }
.scn-son-logic-on-hanging .beam { position:absolute; top:0; left:65%; width:10px; height:100%; background: linear-gradient(180deg, #3a2a1a, #1a0e0e); box-shadow: -2px 0 8px rgba(0,0,0,.6); animation: slh-beam 14s ease-in-out infinite; }
.scn-son-logic-on-hanging .mother { position:absolute; bottom:26%; left:30%; width:30px; height:58px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: slh-mother 5s ease-in-out infinite; }
.scn-son-logic-on-hanging .son { position:absolute; bottom:28%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: slh-son 4s ease-in-out infinite; }
.scn-son-logic-on-hanging .lamp { position:absolute; top:10%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c08040 0%, #6a4020 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 30px 12px #c08040, 0 0 60px 24px rgba(192,128,64,.3); animation: slh-lamp 4s ease-in-out infinite alternate; }
.scn-son-logic-on-hanging .shadow { position:absolute; bottom:24%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%); border-radius:50%; animation: slh-shadow 6s ease-in-out infinite; }
@keyframes slh-beam { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes slh-mother { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes slh-son { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes slh-lamp { 0% { opacity:.8; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:.9; transform: translateX(-50%) scale(.95); } }
@keyframes slh-shadow { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(6px) scaleX(1.2); } }

/* messenger-warns-lady-macduff */
.scn-messenger-warns-lady-macduff {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #1e0e0e 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-messenger-warns-lady-macduff .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a1a, #1e0e0e); }
.scn-messenger-warns-lady-macduff .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1010, #0e0808); }
.scn-messenger-warns-lady-macduff .door { position:absolute; top:8%; right:8%; width:60px; height:90px; background: linear-gradient(180deg, #3a2a1a, #1e0e0e); border-radius:4px; border:2px solid #2a1a1a; box-shadow: inset 0 0 20px rgba(0,0,0,.7); animation: mwl-door 10s ease-in-out infinite alternate; }
.scn-messenger-warns-lady-macduff .messenger { position:absolute; bottom:20%; right:16%; width:28px; height:56px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: mwl-messenger 3s ease-in-out infinite; }
.scn-messenger-warns-lady-macduff .lady { position:absolute; bottom:24%; left:32%; width:32px; height:62px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: mwl-lady 6s ease-in-out infinite; }
.scn-messenger-warns-lady-macduff .son { position:absolute; bottom:26%; left:20%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: mwl-son 5s ease-in-out infinite; }
.scn-messenger-warns-lady-macduff .candle { position:absolute; bottom:40%; left:50%; width:6px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5040, #4a3020); border-radius:2px; }
.scn-messenger-warns-lady-macduff .glow { position:absolute; bottom:48%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #b06020 0%, transparent 70%); border-radius:50%; animation: mwl-glow 2.5s ease-in-out infinite alternate; }
@keyframes mwl-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes mwl-messenger { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes mwl-lady { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes mwl-son { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes mwl-glow { 0% { opacity:.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.3); } 100% { opacity:.8; transform: translateX(-50%) scale(.9); } }

/* scene: malcolm-admits-lust */
.scn-malcolm-admits-lust {
  background: linear-gradient(135deg, #1a0f0a 0%, #2a1a10 40%, #160c08 100%),
              radial-gradient(ellipse at 70% 30%, #3a2010 0%, transparent 60%);
}
.scn-malcolm-admits-lust .throne {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 130px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: mal-throne 8s ease-in-out infinite alternate;
}
.scn-malcolm-admits-lust .figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #0f0a08 0%, #080504 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mal-figure 6s ease-in-out infinite;
}
.scn-malcolm-admits-lust .candle {
  position: absolute; bottom: 28%; left: 35%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8c080 0%, #a07030 100%);
  border-radius: 50% 50% 10% 10%;
  animation: mal-candle 4s ease-in-out infinite alternate;
}
.scn-malcolm-admits-lust .glow {
  position: absolute; bottom: 26%; left: 33%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(232,192,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mal-glow 3s ease-in-out infinite alternate;
}
.scn-malcolm-admits-lust .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1c1210 0%, #120a08 100%);
  border-radius: 30% 30% 0 0;
}
.scn-malcolm-admits-lust .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-malcolm-admits-lust .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(6px);
  animation: mal-shadow 8s ease-in-out infinite alternate;
}
@keyframes mal-throne {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.02); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98); opacity: 0.85; }
}
@keyframes mal-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  33% { transform: translateX(-48%) rotate(2deg); }
  66% { transform: translateX(-52%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mal-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(-2px) scaleY(1.1); opacity: 1; }
  100% { transform: translateY(1px) scaleY(0.95); opacity: 0.7; }
}
@keyframes mal-glow {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.3); opacity: 0.8; }
  100% { transform: scale(0.9); opacity: 0.4; }
}
@keyframes mal-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}

/* scene: malcolm-further-vices-avarice */
.scn-malcolm-further-vices-avarice {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 20%, #2a1810 0%, transparent 60%);
}
.scn-malcolm-further-vices-avarice .figure {
  position: absolute; bottom: 10%; left: 30%;
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #0d0a08 0%, #060404 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  animation: ml2-figure 7s ease-in-out infinite;
}
.scn-malcolm-further-vices-avarice .table {
  position: absolute; bottom: 15%; left: 45%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2218 0%, #22120c 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
  animation: ml2-table 10s ease-in-out infinite alternate;
}
.scn-malcolm-further-vices-avarice .jewels {
  position: absolute; bottom: 20%; left: 46%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, #c08030 0%, #a06020 40%, transparent 70%);
  filter: blur(3px);
  animation: ml2-jewels 3s ease-in-out infinite alternate;
}
.scn-malcolm-further-vices-avarice .sword {
  position: absolute; bottom: 18%; left: 38%;
  width: 8px; height: 60px;
  background: linear-gradient(180deg, #706058 0%, #403830 100%);
  transform: rotate(-20deg);
  border-radius: 10% 10% 0 0;
  animation: ml2-sword 6s ease-in-out infinite;
}
.scn-malcolm-further-vices-avarice .glow {
  position: absolute; bottom: 22%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,150,80,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: ml2-glow 4s ease-in-out infinite alternate;
}
.scn-malcolm-further-vices-avarice .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 20% 20% 0 0;
}
.scn-malcolm-further-vices-avarice .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 150px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(10px);
  animation: ml2-shadow 9s ease-in-out infinite alternate;
}
@keyframes ml2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ml2-table {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes ml2-jewels {
  0% { transform: scale(1) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.2) rotate(10deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-5deg); opacity: 0.5; }
}
@keyframes ml2-sword {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-25deg) translateY(2px); }
}
@keyframes ml2-glow {
  0% { transform: scale(1); opacity: 0.4; }
  100% { transform: scale(1.4); opacity: 0.7; }
}
@keyframes ml2-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.8); opacity: 0.4; }
}

/* scene: macduff-minimizes-avarice */
.scn-macduff-minimizes-avarice {
  background: linear-gradient(180deg, #14120e 0%, #0c0a08 100%),
              radial-gradient(ellipse at 30% 40%, #1a1812 0%, transparent 70%);
}
.scn-macduff-minimizes-avarice .figure {
  position: absolute; bottom: 12%; left: 60%;
  width: 55px; height: 110px;
  background: linear-gradient(180deg, #0e0c0a 0%, #070605 100%);
  border-radius: 45% 55% 35% 35% / 60% 60% 30% 30%;
  animation: md1-figure 8s ease-in-out infinite;
}
.scn-macduff-minimizes-avarice .scroll {
  position: absolute; bottom: 20%; left: 40%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8b098 0%, #a88a78 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(15deg);
  animation: md1-scroll 6s ease-in-out infinite alternate;
}
.scn-macduff-minimizes-avarice .sword {
  position: absolute; bottom: 15%; left: 55%;
  width: 6px; height: 70px;
  background: linear-gradient(180deg, #807068 0%, #504840 100%);
  border-radius: 5% 5% 0 0;
  transform: rotate(25deg);
  animation: md1-sword 7s ease-in-out infinite;
}
.scn-macduff-minimizes-avarice .glow {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(180,160,120,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: md1-glow 4s ease-in-out infinite alternate;
}
.scn-macduff-minimizes-avarice .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #161412 0%, #0c0a08 100%);
  border-radius: 10% 10% 0 0;
}
.scn-macduff-minimizes-avarice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 0 0 15% 15%;
}
.scn-macduff-minimizes-avarice .map {
  position: absolute; bottom: 25%; left: 30%;
  width: 60px; height: 40px;
  background: linear-gradient(135deg, #b09878 0%, #907050 100%);
  border-radius: 5% 5% 15% 15%;
  transform: rotate(-10deg);
  animation: md1-map 12s ease-in-out infinite alternate;
}
@keyframes md1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes md1-scroll {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(20deg) scale(1.1); }
  100% { transform: rotate(10deg) scale(0.95); }
}
@keyframes md1-sword {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(1px); }
}
@keyframes md1-glow {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.4); opacity: 0.6; }
  100% { transform: scale(0.8); opacity: 0.2; }
}
@keyframes md1-map {
  0% { transform: rotate(-10deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(-5deg) scale(1.05); opacity: 1; }
  100% { transform: rotate(-15deg) scale(0.95); opacity: 0.8; }
}

/* scene: malcolm-claims-no-virtues */
.scn-malcolm-claims-no-virtues {
  background: linear-gradient(180deg, #100c0a 0%, #080605 100%),
              radial-gradient(ellipse at 50% 30%, #1a1210 0%, transparent 60%);
}
.scn-malcolm-claims-no-virtues .figure {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(180deg, #0c0a08 0%, #050403 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ml3-figure 6s ease-in-out infinite;
}
.scn-malcolm-claims-no-virtues .doorway {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #0e0c0a 0%, #040302 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ml3-doorway 10s ease-in-out infinite alternate;
}
.scn-malcolm-claims-no-virtues .light {
  position: absolute; bottom: 25%; left: 43%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(160,140,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ml3-light 5s ease-in-out infinite alternate;
}
.scn-malcolm-claims-no-virtues .shadow {
  position: absolute; bottom: 12%; left: 35%; width: 180px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.85) 0%, transparent 70%);
  filter: blur(10px);
  animation: ml3-shadow 7s ease-in-out infinite alternate;
}
.scn-malcolm-claims-no-virtues .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #120e0c 0%, #0a0806 100%);
  border-radius: 25% 25% 0 0;
}
.scn-malcolm-claims-no-virtues .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1412 0%, #0c0a08 100%);
  border-radius: 0 0 10% 10%;
}
.scn-malcolm-claims-no-virtues .crown {
  position: absolute; bottom: 28%; left: 52%;
  width: 30px; height: 12px;
  background: linear-gradient(135deg, #b09868 0%, #806040 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: ml3-crown 4s ease-in-out infinite alternate;
}
@keyframes ml3-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-48%) rotate(2deg); }
  80% { transform: translateX(-52%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ml3-doorway {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.8; }
}
@keyframes ml3-light {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.5); opacity: 0.5; }
  100% { transform: scale(0.8); opacity: 0.1; }
}
@keyframes ml3-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.3); opacity: 0.9; }
  100% { transform: scaleX(0.8); opacity: 0.4; }
}
@keyframes ml3-crown {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.5; }
  50% { transform: rotate(-20deg) translateY(-3px); opacity: 0.8; }
  100% { transform: rotate(-10deg) translateY(2px); opacity: 0.4; }
}

/* Scene: lady-macbeth-returns-to-bed */
.scn-lady-macbeth-returns-to-bed {
  background:
    radial-gradient(ellipse at 30% 40%, #3a1e1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1122 0%, #2a1a2a 40%, #1a0e1a 100%);
}
.scn-lady-macbeth-returns-to-bed .bg-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #2a1a2e 0%, #1a0e1a 100%);
  animation: s1-wall 10s ease-in-out infinite alternate;
}
.scn-lady-macbeth-returns-to-bed .bed {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
  animation: s1-bed 8s ease-in-out infinite;
}
.scn-lady-macbeth-returns-to-bed .figure-lm {
  position: absolute; bottom: 20%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s1-figure 6s ease-in-out infinite;
}
.scn-lady-macbeth-returns-to-bed .candle-glow {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 0%, #ffcc80 0%, #b07030 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,200,100,0.4);
  animation: s1-candle 3s ease-in-out infinite alternate;
}
.scn-lady-macbeth-returns-to-bed .window-night {
  position: absolute; top: 12%; left: 65%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3a 100%);
  border: 4px solid #2a1a1a; border-radius: 8%;
  animation: s1-window 15s ease-in-out infinite alternate;
}
.scn-lady-macbeth-returns-to-bed .shadow-on-floor {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px); animation: s1-shadow 6s ease-in-out infinite;
}
.scn-lady-macbeth-returns-to-bed .linen {
  position: absolute; bottom: 15%; left: 22%; width: 40%; height: 15%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%; opacity: 0.7;
  animation: s1-linen 12s ease-in-out infinite;
}
@keyframes s1-wall { 0% { opacity: 0.9; } 50% { opacity: 0.8; } 100% { opacity: 0.95; } }
@keyframes s1-bed { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes s1-figure { 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 s1-candle { 0% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 50px 18px rgba(255,210,120,0.6); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(255,180,80,0.2); opacity: 0.7; } }
@keyframes s1-window { 0% { background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3a 100%); } 50% { background: linear-gradient(180deg, #12122e 0%, #1e1e3e 100%); } 100% { background: linear-gradient(180deg, #0a0a24 0%, #161630 100%); } }
@keyframes s1-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.7; } 100% { transform: scaleX(0.9); opacity: 0.4; } }
@keyframes s1-linen { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(1px); } 100% { opacity: 0.6; transform: translateY(0); } }

/* Scene: doctor-reflects */
.scn-doctor-reflects {
  background:
    radial-gradient(ellipse at 70% 30%, #2a1e10 0%, transparent 60%),
    linear-gradient(180deg, #1a1a22 0%, #12121a 50%, #0e0e16 100%);
}
.scn-doctor-reflects .bg-chamber {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #1e1a24 0%, #12101e 100%);
  animation: s2-chamber 12s ease-in-out infinite alternate;
}
.scn-doctor-reflects .door-arch {
  position: absolute; bottom: 0; left: 10%; width: 25%; height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: s2-door 20s ease-in-out infinite;
}
.scn-doctor-reflects .figure-doctor {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: s2-doctor 5s ease-in-out infinite;
}
.scn-doctor-reflects .candle-flame {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 18px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b07030 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 12px rgba(255,200,100,0.5);
  animation: s2-flame 2s ease-in-out infinite alternate;
}
.scn-doctor-reflects .curtain-hang {
  position: absolute; top: 0; right: 10%; width: 30%; height: 100%;
  background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 0 0 20% 20%; opacity: 0.7;
  animation: s2-curtain 18s ease-in-out infinite;
}
.scn-doctor-reflects .shadow-doctor {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px); animation: s2-shadow 5s ease-in-out infinite;
}
.scn-doctor-reflects .stool {
  position: absolute; bottom: 5%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: s2-stool 14s ease-in-out infinite;
}
@keyframes s2-chamber { 0% { opacity: 0.9; } 50% { opacity: 0.85; } 100% { opacity: 0.95; } }
@keyframes s2-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes s2-doctor { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s2-flame { 0% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); transform: scaleY(1); } 50% { box-shadow: 0 0 40px 15px rgba(255,210,120,0.7); transform: scaleY(1.1); } 100% { box-shadow: 0 0 15px 5px rgba(255,180,80,0.3); transform: scaleY(0.95); } }
@keyframes s2-curtain { 0% { opacity: 0.7; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(-5px); } 100% { opacity: 0.8; transform: translateX(3px); } }
@keyframes s2-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(0.85); opacity: 0.4; } 100% { transform: scaleX(1.1); opacity: 0.7; } }
@keyframes s2-stool { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* Scene: english-army-near-birnam */
.scn-english-army-near-birnam {
  background:
    radial-gradient(ellipse at 50% 0%, #4a5a5a 0%, transparent 60%),
    linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 50%, #2a3a2a 100%);
}
.scn-english-army-near-birnam .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a9a9a 0%, #6a7a6a 100%);
  animation: s3-sky 15s ease-in-out infinite alternate;
}
.scn-english-army-near-birnam .wood-birnam {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, #2a3a1a 0%, #3a4a2a 50%, #1a2a0e 100%);
  border-radius: 0 0 40% 60%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: s3-wood 20s ease-in-out infinite alternate;
}
.scn-english-army-near-birnam .ground-march {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  animation: s3-ground 8s ease-in-out infinite;
}
.scn-english-army-near-birnam .soldiers {
  position: absolute; bottom: 25%; left: 10%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0; opacity: 0.8;
  animation: s3-soldiers 6s ease-in-out infinite;
}
.scn-english-army-near-birnam .banners {
  position: absolute; bottom: 55%; left: 15%; width: 4px; height: 20px;
  background: #2a1a1a; transform: rotate(-10deg);
  animation: s3-banners 4s ease-in-out infinite;
}
.scn-english-army-near-birnam .clouds-drift {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(200,210,200,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: s3-clouds 40s linear infinite;
}
.scn-english-army-near-birnam .dust {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(120,100,80,0.3) 0%, transparent 100%);
  filter: blur(10px); animation: s3-dust 5s ease-in-out infinite;
}
@keyframes s3-sky { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes s3-wood { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(1.02); } 100% { transform: translateX(10px) scaleX(0.98); } }
@keyframes s3-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes s3-soldiers { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(5px) scaleY(0.98); } 50% { transform: translateX(10px) scaleY(1.02); } 75% { transform: translateX(15px) scaleY(1); } 100% { transform: translateX(20px) scaleY(0.99); } }
@keyframes s3-banners { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(1px); } }
@keyframes s3-clouds { 0% { transform: translateX(-60px); } 100% { transform: translateX(calc(100vw + 60px)); } }
@keyframes s3-dust { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.5); } 100% { opacity: 0.1; transform: scale(0.8); } }

/* Scene: tyrant-fortifies-dunsinane */
.scn-tyrant-fortifies-dunsinane {
  background:
    radial-gradient(ellipse at 80% 20%, #2a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%);
}
.scn-tyrant-fortifies-dunsinane .sky-storm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  animation: s4-sky 12s ease-in-out infinite alternate;
}
.scn-tyrant-fortifies-dunsinane .castle-wall {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 80%;
  background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #2a2a2a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: s4-wall 18s ease-in-out infinite;
}
.scn-tyrant-fortifies-dunsinane .rampart {
  position: absolute; bottom: 60%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.4);
  animation: s4-rampart 14s ease-in-out infinite;
}
.scn-tyrant-fortifies-dunsinane .tyrant-figure {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: s4-tyrant 6s ease-in-out infinite;
}
.scn-tyrant-fortifies-dunsinane .flag-tyrant {
  position: absolute; bottom: 70%; left: 60%; width: 4px; height: 30px;
  background: #2a1a1a; transform: rotate(15deg);
  animation: s4-flag 3s ease-in-out infinite alternate;
}
.scn-tyrant-fortifies-dunsinane .stones-loose {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 15px;
  background: linear-gradient(135deg, #4a4a4a 0%, #3a3a3a 100%);
  border-radius: 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: s4-stones 10s ease-in-out infinite;
}
.scn-tyrant-fortifies-dunsinane .shadow-battlements {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: s4-shadow 8s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes s4-wall { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes s4-rampart { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes s4-tyrant { 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 s4-flag { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(1px); } }
@keyframes s4-stones { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(10deg); } 100% { transform: translateX(-3px) rotate(-5deg); } }
@keyframes s4-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* heath-hails-macbeth */
.scn-heath-hails-macbeth {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 50%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 60%);
}
.scn-heath-hails-macbeth .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: hm-sky 15s ease-in-out infinite alternate; }
.scn-heath-hails-macbeth .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1e1e2a 0%, #12121a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: hm-ground 12s ease-in-out infinite alternate; }
.scn-heath-hails-macbeth .mist.a { position:absolute; bottom:30%; left:10%; width:200px; height:40px; background: radial-gradient(ellipse, rgba(180,180,200,0.3) 0%, transparent 70%); filter: blur(8px); animation: hm-mist-a 30s linear infinite; }
.scn-heath-hails-macbeth .mist.b { position:absolute; bottom:40%; right:5%; width:160px; height:30px; background: radial-gradient(ellipse, rgba(180,180,200,0.2) 0%, transparent 70%); filter: blur(6px); animation: hm-mist-b 25s linear infinite reverse; }
.scn-heath-hails-macbeth .witch { position:absolute; bottom:30%; width:20px; height:40px; background: linear-gradient(180deg, #0a0a14 0%, #000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: hm-witch 4s ease-in-out infinite; }
.scn-heath-hails-macbeth .witch.w1 { left:25%; animation-delay: 0s; transform-origin: bottom center; }
.scn-heath-hails-macbeth .witch.w2 { left:48%; animation-delay: 1.3s; transform-origin: bottom center; }
.scn-heath-hails-macbeth .witch.w3 { left:70%; animation-delay: 2.6s; transform-origin: bottom center; }
.scn-heath-hails-macbeth .macbeth { position:absolute; bottom:22%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm-macbeth 5s ease-in-out infinite; }
@keyframes hm-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hm-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes hm-mist-a { 0% { transform: translateX(-50px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-50px); } }
@keyframes hm-mist-b { 0% { transform: translateX(30px); } 50% { transform: translateX(-20px); } 100% { transform: translateX(30px); } }
@keyframes hm-witch { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hm-macbeth { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }

/* heath-hails-banquo */
.scn-heath-hails-banquo {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 50%);
}
.scn-heath-hails-banquo .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: hb-sky 18s ease-in-out infinite alternate; }
.scn-heath-hails-banquo .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1e1e2a 0%, #101018 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; animation: hb-ground 14s ease-in-out infinite alternate; }
.scn-heath-hails-banquo .mist { position:absolute; bottom:35%; left:5%; width:220px; height:35px; background: radial-gradient(ellipse, rgba(180,180,200,0.25) 0%, transparent 70%); filter: blur(10px); animation: hb-mist 40s linear infinite; }
.scn-heath-hails-banquo .witch { position:absolute; bottom:35%; width:20px; height:38px; background: linear-gradient(180deg, #0a0a14 0%, #000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: hb-witch 3.5s ease-in-out infinite; }
.scn-heath-hails-banquo .witch.a { left:20%; animation-delay: 0s; }
.scn-heath-hails-banquo .witch.b { left:45%; animation-delay: 1.1s; }
.scn-heath-hails-banquo .witch.c { left:70%; animation-delay: 2.2s; }
.scn-heath-hails-banquo .macbeth { position:absolute; bottom:28%; left:35%; width:28px; 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: hb-macbeth 6s ease-in-out infinite; }
.scn-heath-hails-banquo .banquo { position:absolute; bottom:28%; left:55%; width:26px; height:46px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-banquo 6s ease-in-out infinite 0.5s; }
@keyframes hb-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hb-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes hb-mist { 0% { transform: translateX(-60px); } 50% { transform: translateX(20px); } 100% { transform: translateX(-60px); } }
@keyframes hb-witch { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes hb-macbeth { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hb-banquo { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

/* heath-witches-vanish */
.scn-heath-witches-vanish {
  background: linear-gradient(180deg, #2e2e3e 0%, #1c1c2e 40%, #0c0c18 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-heath-witches-vanish .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1c1c2e 100%); animation: wv-sky 10s ease-in-out infinite alternate; }
.scn-heath-witches-vanish .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1e1e2a 0%, #0e0e18 100%); border-radius: 40% 60% 0 0 / 30% 70% 0 0; animation: wv-ground 8s ease-in-out infinite alternate; }
.scn-heath-witches-vanish .bubble { position:absolute; width:16px; height:16px; background: radial-gradient(circle, rgba(200,210,230,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
.scn-heath-witches-vanish .bubble.b1 { bottom:45%; left:30%; animation: wv-bubble 6s ease-in-out infinite 0s; }
.scn-heath-witches-vanish .bubble.b2 { bottom:48%; left:50%; animation: wv-bubble 6s ease-in-out infinite 1.5s; }
.scn-heath-witches-vanish .bubble.b3 { bottom:42%; left:65%; animation: wv-bubble 6s ease-in-out infinite 3s; }
.scn-heath-witches-vanish .swirl { position:absolute; width:80px; height:80px; border-radius: 50%; background: radial-gradient(ellipse, rgba(200,210,230,0.15) 0%, transparent 70%); filter: blur(10px); }
.scn-heath-witches-vanish .swirl.s1 { bottom:35%; left:20%; animation: wv-swirl 20s linear infinite; }
.scn-heath-witches-vanish .swirl.s2 { bottom:30%; right:15%; animation: wv-swirl 25s linear infinite reverse; }
.scn-heath-witches-vanish .trail { position:absolute; bottom:37%; left:40%; width:100px; height:6px; background: linear-gradient(90deg, rgba(200,210,230,0.4) 0%, transparent 100%); filter: blur(3px); animation: wv-trail 12s ease-in-out infinite; }
@keyframes wv-sky { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes wv-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes wv-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-20px) scale(1.3); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes wv-swirl { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(-10px, -5px) rotate(180deg); } 100% { transform: translate(0, 0) rotate(360deg); } }
@keyframes wv-trail { 0% { transform: translateX(-20px) scaleX(0.8); opacity: 0; } 50% { transform: translateX(10px) scaleX(1.2); opacity: 0.6; } 100% { transform: translateX(30px) scaleX(0.8); opacity: 0; } }

/* heath-ross-angus-arrive */
.scn-heath-ross-angus-arrive {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 80% 100%, #4a4a5e 0%, transparent 60%);
}
.scn-heath-ross-angus-arrive .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%); animation: ra-sky 20s ease-in-out infinite alternate; }
.scn-heath-ross-angus-arrive .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: ra-ground 16s ease-in-out infinite alternate; }
.scn-heath-ross-angus-arrive .mist { position:absolute; bottom:35%; left:10%; width:200px; height:30px; background: radial-gradient(ellipse, rgba(200,200,220,0.2) 0%, transparent 70%); filter: blur(8px); animation: ra-mist 35s linear infinite; }
.scn-heath-ross-angus-arrive .ross { position:absolute; bottom:30%; left:20%; width:24px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ra-figure 5s ease-in-out infinite; }
.scn-heath-ross-angus-arrive .angus { position:absolute; bottom:30%; left:40%; width:24px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ra-figure 5s ease-in-out infinite 0.7s; }
.scn-heath-ross-angus-arrive .path { position:absolute; bottom:25%; left:15%; right:30%; height:8px; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ra-path 8s ease-in-out infinite alternate; }
.scn-heath-ross-angus-arrive .hills { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 60% 40% 0 0 / 70% 30% 0 0; animation: ra-hills 12s ease-in-out infinite alternate; }
.scn-heath-ross-angus-arrive .horse-trace { position:absolute; bottom:20%; left:5%; width:60px; height:4px; background: radial-gradient(ellipse, rgba(200,200,220,0.3) 0%, transparent 100%); filter: blur(2px); animation: ra-trace 6s ease-in-out infinite; }
@keyframes ra-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ra-ground { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.99) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ra-mist { 0% { transform: translateX(-50px); } 50% { transform: translateX(20px); } 100% { transform: translateX(-50px); } }
@keyframes ra-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ra-path { 0% { transform: scaleY(1); opacity: 0.5; } 50% { transform: scaleY(0.8); opacity: 0.8; } 100% { transform: scaleY(1); opacity: 0.5; } }
@keyframes ra-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ra-trace { 0% { transform: translateX(-10px) scaleX(0.8); opacity: 0.3; } 50% { transform: translateX(10px) scaleX(1.2); opacity: 0.6; } 100% { transform: translateX(-10px) scaleX(0.8); opacity: 0.3; } }

/* Scene 1: lennox-conversation-lord */
.scn-lennox-conversation-lord {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #3a2a1a 100%), radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-lennox-conversation-lord .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: len01-room 8s ease-in-out infinite alternate;
}
.scn-lennox-conversation-lord .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-lennox-conversation-lord .table {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a, #4a3a2a, #3a2a1a);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-lennox-conversation-lord .candle {
  position: absolute; bottom: 22%; left: 50%; width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a, #4a3a1a);
  border-radius: 2px 2px 4px 4px;
  animation: len01-candle 4s ease-in-out infinite;
}
.scn-lennox-conversation-lord .glow {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 30px;
  transform: translate(-50%, -10%);
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: len01-glow 3s ease-in-out infinite alternate;
}
.scn-lennox-conversation-lord .figure-left {
  position: absolute; bottom: 8%; left: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: len01-fig-left 6s ease-in-out infinite;
}
.scn-lennox-conversation-lord .figure-right {
  position: absolute; bottom: 8%; right: 20%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: len01-fig-right 7s ease-in-out infinite;
}
.scn-lennox-conversation-lord .shadow {
  position: absolute; bottom: 5%; left: 18%; width: 50%; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: len01-shadow 6s ease-in-out infinite;
}
@keyframes len01-room { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes len01-candle { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.02); } 50% { transform: translateX(-50%) scaleY(0.98); } 75% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes len01-glow { 0% { opacity:0.5; transform: translate(-50%, -10%) scale(0.9); } 50% { opacity:0.8; transform: translate(-50%, -10%) scale(1.1); } 100% { opacity:0.6; transform: translate(-50%, -10%) scale(1); } }
@keyframes len01-fig-left { 0% { transform: rotate(-1deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-1px); } 60% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes len01-fig-right { 0% { transform: rotate(1deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-1px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes len01-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }

/* Scene 2: lennox-macduff-disgrace */
.scn-lennox-macduff-disgrace {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-lennox-macduff-disgrace .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a10 100%);
  border-radius: 0 0 20% 20% / 0 0 15% 15%;
  animation: len02-room 10s ease-in-out infinite alternate;
}
.scn-lennox-macduff-disgrace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a0a0a 100%);
  box-shadow: inset 0 10px 16px rgba(0,0,0,0.7);
}
.scn-lennox-macduff-disgrace .column {
  position: absolute; bottom: 10%; left: 20%; width: 12px; height: 70%;
  background: linear-gradient(90deg, #3a2a2a, #5a4a3a, #3a2a2a);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
}
.scn-lennox-macduff-disgrace .lamp {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 12px;
  background: #6a5a3a;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #c08040;
  animation: len02-lamp 2s ease-in-out infinite alternate;
}
.scn-lennox-macduff-disgrace .figure-standing {
  position: absolute; bottom: 5%; right: 15%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: len02-stand 8s ease-in-out infinite;
}
.scn-lennox-macduff-disgrace .figure-kneeling {
  position: absolute; bottom: 0%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: len02-kneel 6s ease-in-out infinite;
}
.scn-lennox-macduff-disgrace .shadow {
  position: absolute; bottom: 2%; left: 10%; width: 60%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: len02-shadow 8s ease-in-out infinite;
}
@keyframes len02-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes len02-lamp { 0% { opacity:0.6; box-shadow: 0 0 12px 4px #c08040; } 100% { opacity:1; box-shadow: 0 0 28px 12px #ffd080; } }
@keyframes len02-stand { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes len02-kneel { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(17deg) translateY(-2px); } 50% { transform: rotate(13deg) translateY(0); } 75% { transform: rotate(16deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes len02-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(1); } }

/* Scene 3: lord-reports-macduff-flight */
.scn-lord-reports-macduff-flight {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 30%, #1a1a2e 100%), radial-gradient(ellipse at 70% 30%, #3a3a6a 0%, transparent 60%);
}
.scn-lord-reports-macduff-flight .room-bg {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 0 20% 20% 0 / 0 10% 10% 0;
  animation: len03-room 12s ease-in-out infinite alternate;
}
.scn-lord-reports-macduff-flight .window {
  position: absolute; top: 8%; right: 5%; width: 30%; height: 40%;
  background: #2a3a5a;
  border: 6px solid #3a2a1a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-lord-reports-macduff-flight .moon {
  position: absolute; top: 15%; right: 12%; width: 16px; height: 16px;
  background: radial-gradient(circle, #e0e8ff 0%, #8090c0 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #8090c0;
  animation: len03-moon 20s ease-in-out infinite alternate;
}
.scn-lord-reports-macduff-flight .hills {
  position: absolute; top: 35%; right: 8%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  opacity: 0.6;
  animation: len03-hills 30s ease-in-out infinite;
}
.scn-lord-reports-macduff-flight .figure-at-window {
  position: absolute; bottom: 15%; right: 15%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: len03-fig 10s ease-in-out infinite;
}
.scn-lord-reports-macduff-flight .desk {
  position: absolute; bottom: 5%; right: 10%; width: 40%; height: 6px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-lord-reports-macduff-flight .map {
  position: absolute; bottom: 7%; right: 18%; width: 20%; height: 14px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: len03-map 15s ease-in-out infinite alternate;
}
@keyframes len03-room { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes len03-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(1.02); } 100% { transform: translateX(-2px) scale(0.98); } }
@keyframes len03-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes len03-fig { 0% { transform: rotate(0) translateY(0); } 30% { transform: rotate(-2deg) translateY(-1px); } 60% { transform: rotate(1deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes len03-map { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-7deg) scale(0.98); } }

/* Scene 4: messager-reply-from-macduff */
.scn-messager-reply-from-macduff {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 30%, #1a0a0a 100%), radial-gradient(ellipse at 20% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-messager-reply-from-macduff .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: len04-room 8s ease-in-out infinite alternate;
}
.scn-messager-reply-from-macduff .door-frame {
  position: absolute; bottom: 0; left: 10%; width: 20%; height: 100%;
  background: #3a2a1a;
  border: 4px solid #2a1a0a;
  box-sizing: border-box;
  border-radius: 0 0 10% 10%;
}
.scn-messager-reply-from-macduff .door-open {
  position: absolute; bottom: 5%; left: 8%; width: 22%; height: 90%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a0a 100%);
  border-radius: 0 0 8% 8%;
  transform-origin: left center;
  animation: len04-door 12s ease-in-out infinite alternate;
}
.scn-messager-reply-from-macduff .light-beam {
  position: absolute; bottom: 10%; left: 8%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(200,180,120,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: len04-light 4s ease-in-out infinite alternate;
}
.scn-messager-reply-from-macduff .messenger {
  position: absolute; bottom: 5%; left: 35%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: len04-walk 6s ease-in-out infinite;
}
.scn-messager-reply-from-macduff .shadow {
  position: absolute; bottom: 2%; left: 25%; width: 40%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: len04-shadow 6s ease-in-out infinite;
}
@keyframes len04-room { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes len04-door { 0% { transform: rotate(0); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0); } }
@keyframes len04-light { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes len04-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(-2deg); } 50% { transform: translateX(20px) rotate(0); } 75% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(40px) rotate(0); } }
@keyframes len04-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.2); } 100% { opacity:0.4; transform: scaleX(1); } }

.scn-battlefield-castle-taken { background: linear-gradient(180deg, #6b7b8d 0%, #8a9baa 40%, #aabbc0 100%), radial-gradient(ellipse at 50% 100%, #c0c8d0 0%, transparent 60%); }
.scn-battlefield-castle-taken .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a8a9a 0%, #9aabba 100%); animation: bc-sky 20s ease-in-out infinite alternate; }
.scn-battlefield-castle-taken .clouds { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 20% 50%, rgba(200,210,220,.6) 0%, transparent 50%); filter: blur(8px); animation: bc-clouds 40s linear infinite; }
.scn-battlefield-castle-taken .hills { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,.3); animation: bc-hills 15s ease-in-out infinite alternate; }
.scn-battlefield-castle-taken .castle { position:absolute; bottom:30%; left:40%; width:120px; height:100px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 5px 15px rgba(0,0,0,.5); transform-origin: bottom center; animation: bc-castle 8s ease-in-out infinite; }
.scn-battlefield-castle-taken .castle::before { content: ''; position:absolute; top:-15px; left:20px; width:10px; height:20px; background:#3a3a4a; border-radius: 3px 3px 0 0; box-shadow: 20px 0 0 #3a3a4a, 40px 0 0 #3a3a4a, 60px 0 0 #3a3a4a; } /* turrets */
.scn-battlefield-castle-taken .banner { position:absolute; bottom:55%; left:44%; width:12px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; transform-origin: top center; animation: bc-banner 3s ease-in-out infinite; box-shadow: 0 0 8px rgba(200,85,61,.4); }
.scn-battlefield-castle-taken .figures { position:absolute; bottom:22%; left:30%; width:15px; height:25px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-figures 6s ease-in-out infinite; box-shadow: -20px 0 0 #2a2a3a, -40px 0 0 #2a2a3a; }
.scn-battlefield-castle-taken .ground-mist { position:absolute; bottom:0; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,.3) 0%, transparent 70%); filter: blur(6px); animation: bc-mist 25s ease-in-out infinite alternate; }
@keyframes bc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bc-clouds { 0% { transform: translateX(-10%) scaleX(1) } 50% { transform: translateX(30%) scaleX(1.1) } 100% { transform: translateX(10%) scaleX(1) } }
@keyframes bc-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes bc-castle { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bc-banner { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 50% { transform: rotate(-3deg) scaleY(0.95) } 75% { transform: rotate(4deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes bc-figures { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg) } }
@keyframes bc-mist { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-final-duel-approach { background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 60%); }
.scn-final-duel-approach .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2e 100%); animation: fda-sky 18s ease-in-out infinite alternate; }
.scn-final-duel-approach .bg-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; }
.scn-final-duel-approach .figure-left { position:absolute; bottom:25%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fda-walk-left 7s ease-in-out infinite; }
.scn-final-duel-approach .figure-right { position:absolute; bottom:25%; right:20%; width:20px; height:40px; background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fda-walk-right 7s ease-in-out infinite; }
.scn-final-duel-approach .sword-gleam { position:absolute; bottom:35%; left:45%; width:6px; height:18px; background: linear-gradient(180deg, #c0c8d0 0%, #808890 100%); border-radius: 2px; box-shadow: 0 0 12px 3px rgba(192,200,208,.5); animation: fda-gleam 2s ease-in-out infinite alternate; }
.scn-final-duel-approach .fog { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,.15) 0%, transparent 70%); filter: blur(10px); animation: fda-fog 30s ease-in-out infinite alternate; }
@keyframes fda-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fda-walk-left { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(-6px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-6px) translateY(-1px) rotate(2deg) } }
@keyframes fda-walk-right { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(12px) translateY(0) rotate(1deg) } 75% { transform: translateX(6px) translateY(-1px) rotate(-2deg) } }
@keyframes fda-gleam { 0% { opacity:.3; transform: scaleY(0.8) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.5; transform: scaleY(0.9) } }
@keyframes fda-fog { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-item-macduffs-revelation { background: linear-gradient(180deg, #1a1a2e 0%, #2c2c44 30%, #3a3a54 100%), radial-gradient(ellipse at 60% 40%, #3a3a54 0%, transparent 50%); }
.scn-item-macduffs-revelation .bg-storm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2e 100%); animation: mdr-storm 12s ease-in-out infinite alternate; }
.scn-item-macduffs-revelation .figure-macduff { position:absolute; bottom:10%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%); border-radius: 45% 45% 40% 40% / 70% 70% 50% 50%; transform-origin: bottom center; animation: mdr-figure 5s ease-in-out infinite; box-shadow: -2px 0 12px rgba(0,0,0,.6); }
.scn-item-macduffs-revelation .sword { position:absolute; bottom:25%; left:38%; width:4px; height:35px; background: linear-gradient(180deg, #a0aab0 0%, #707880 100%); border-radius: 2px; transform: rotate(45deg); transform-origin: bottom center; animation: mdr-sword 1.5s ease-in-out infinite alternate; box-shadow: 0 0 6px 2px rgba(160,170,176,.4); }
.scn-item-macduffs-revelation .lightning-flash { position:absolute; top:5%; left:20%; width:80px; height:80px; background: radial-gradient(ellipse, rgba(255,255,255,.8) 0%, transparent 70%); filter: blur(12px); animation: mdr-flash 4s ease-in-out infinite; }
.scn-item-macduffs-revelation .shadow-wisp { position:absolute; bottom:20%; left:50%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(6px); animation: mdr-wisp 7s ease-in-out infinite; }
.scn-item-macduffs-revelation .ground-close { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
@keyframes mdr-storm { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mdr-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(-4px) rotate(-1deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(1deg) } }
@keyframes mdr-sword { 0% { transform: rotate(40deg) scaleY(0.9) } 50% { transform: rotate(50deg) scaleY(1.1) } 100% { transform: rotate(45deg) scaleY(1) } }
@keyframes mdr-flash { 0% { opacity:0; transform: scale(1) } 10% { opacity:1; transform: scale(1.5) } 20% { opacity:0; transform: scale(1) } 100% { opacity:0 } }
@keyframes mdr-wisp { 0% { opacity:.2; transform: translateX(-10px) } 50% { opacity:.5; transform: translateX(10px) } 100% { opacity:.2; transform: translateX(-5px) } }

.scn-final-duel-surrender-refused { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0a0a14 100%), radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 80%); }
.scn-final-duel-surrender-refused .bg-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%); animation: fdsr-bg 20s ease-in-out infinite alternate; }
.scn-final-duel-surrender-refused .arena-ground { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-final-duel-surrender-refused .spear-ring { position:absolute; bottom:15%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: repeating-linear-gradient(45deg, rgba(180,190,200,.1) 0px, rgba(180,190,200,.1) 2px, transparent 2px, transparent 12px); border-radius: 50%; animation: fdsr-spears 30s linear infinite; }
.scn-final-duel-surrender-refused .spear-ring::after { content: ''; position:absolute; top:-10px; left:-10px; right:-10px; bottom:-10px; border: 2px solid rgba(180,190,200,.15); border-radius: 50%; animation: fdsr-spears 30s linear infinite reverse; }
.scn-final-duel-surrender-refused .macbeth-center { position:absolute; bottom:15%; left:50%; width:12px; height:25px; transform: translateX(-50%); background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fdsr-macbeth 4s ease-in-out infinite; }
.scn-final-duel-surrender-refused .enemy-shadows { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,.5) 0%, transparent 70%), radial-gradient(ellipse at 70% 100%, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(4px); animation: fdsr-enemies 10s ease-in-out infinite alternate; }
.scn-final-duel-surrender-refused .dark-aura { position:absolute; bottom:5%; left:40%; width:60px; height:60px; background: radial-gradient(circle, rgba(0,0,0,.6) 0%, transparent 70%); animation: fdsr-aura 6s ease-in-out infinite; }
@keyframes fdsr-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fdsr-spears { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes fdsr-macbeth { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-52%) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-48%) translateY(-2px) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } }
@keyframes fdsr-enemies { 0% { opacity:.3; filter: blur(4px) } 50% { opacity:.5; filter: blur(2px) } 100% { opacity:.4; filter: blur(5px) } }
@keyframes fdsr-aura { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.2); opacity:.6 } 100% { transform: scale(1); opacity:.4 } }

/* Scene: malcolm-commands-march */
.scn-malcolm-commands-march { background: linear-gradient(180deg, #5f6b7a 0%, #4a5563 40%, #3d4650 100%), radial-gradient(ellipse at 50% 0%, #7a8a9a 0%, transparent 60%); }
.scn-malcolm-commands-march .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5f6b7a 0%, #4a5563 100%); animation: mmc-sky 12s ease-in-out infinite alternate; }
.scn-malcolm-commands-march .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a4233 0%, #2c3326 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-malcolm-commands-march .march-soldiers { position:absolute; bottom:30%; left:10%; width:80%; height:30%; background: repeating-linear-gradient(90deg, #2a2e30 0px, #2a2e30 4px, transparent 4px, transparent 10px); mask: linear-gradient(90deg, transparent 0%, black 20%, black 80%, transparent 100%); -webkit-mask: linear-gradient(90deg, transparent 0%, black 20%, black 80%, transparent 100%); animation: mmc-soldiers 8s linear infinite; }
.scn-malcolm-commands-march .march-spears { position:absolute; bottom:38%; left:10%; width:80%; height:20%; background: repeating-linear-gradient(90deg, #5a4e3c 0px, #5a4e3c 2px, transparent 2px, transparent 12px); mask: linear-gradient(90deg, transparent 10%, black 30%, black 70%, transparent 90%); -webkit-mask: linear-gradient(90deg, transparent 10%, black 30%, black 70%, transparent 90%); animation: mmc-spears 8s linear infinite; }
.scn-malcolm-commands-march .march-standard { position:absolute; bottom:30%; left:45%; width:4px; height:40%; background: linear-gradient(180deg, #6a5e4a 0%, #3a3228 100%); transform: skewX(-5deg); animation: mmc-standard 4s ease-in-out infinite; }
.scn-malcolm-commands-march .march-standard::after { content:''; position:absolute; top:0; left:-8px; width:20px; height:14px; background: #5a4e3c; border-radius: 0 0 50% 50%; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-malcolm-commands-march .march-dust { position:absolute; bottom:30%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(180,170,150,.2) 0%, transparent 70%); animation: mmc-dust 10s ease-in-out infinite; }
.scn-malcolm-commands-march .cloud-a{ position:absolute; top:10%; left:15%; width:120px; height:20px; background: linear-gradient(180deg, rgba(200,200,210,.3) 0%, rgba(200,200,210,.05) 100%); border-radius:50%; filter: blur(8px); animation: mmc-drift-a 40s linear infinite; }
.scn-malcolm-commands-march .cloud-b{ position:absolute; top:18%; right:10%; width:100px; height:15px; background: linear-gradient(180deg, rgba(200,200,210,.25) 0%, rgba(200,200,210,.03) 100%); border-radius:50%; filter: blur(7px); animation: mmc-drift-b 55s linear infinite reverse; }
@keyframes mmc-sky   { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.7 } }
@keyframes mmc-soldiers { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }
@keyframes mmc-spears { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }
@keyframes mmc-standard { 0%,100% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-2px) } }
@keyframes mmc-dust { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes mmc-drift-a{ 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes mmc-drift-b{ 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* Scene: macbeth-defiant */
.scn-macbeth-defiant { background: linear-gradient(180deg, #1a1a1a 0%, #2a1e1a 40%, #1a0e0a 100%), radial-gradient(ellipse at 35% 50%, #3a2e2a 0%, transparent 70%); }
.scn-macbeth-defiant .wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #1a1412 0%, #2a221e 100%); box-shadow: inset -8px 0 12px rgba(0,0,0,.4); }
.scn-macbeth-defiant .wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #2a221e 0%, #1a1412 100%); box-shadow: inset 8px 0 12px rgba(0,0,0,.4); }
.scn-macbeth-defiant .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e1816 0%, #0e0a08 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-macbeth-defiant .chair { position:absolute; bottom:22%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(2deg); box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-macbeth-defiant .figure-sitting { position:absolute; bottom:24%; left:44%; width:30px; height:55px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(3deg); animation: mdf-breath 4s ease-in-out infinite; }
.scn-macbeth-defiant .figure-sitting::before { content:''; position:absolute; top:10%; left:60%; width:8px; height:12px; background: #2a1e16; border-radius: 50%; transform: rotate(-15deg); } /* arm */
.scn-macbeth-defiant .goblet { position:absolute; bottom:28%; left:52%; width:14px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: mdf-goblet 6s ease-in-out infinite; }
.scn-macbeth-defiant .candle { position:absolute; bottom:20%; left:22%; width:8px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 20%; transform: rotate(-2deg); }
.scn-macbeth-defiant .candle::after { content:''; position:absolute; top:-8px; left:0; right:0; margin:auto; width:6px; height:8px; background: radial-gradient(circle, #ffcc80 0%, #e08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 6px #e08040, 0 0 32px 12px rgba(224,128,64,.3); animation: mdf-flame 3s ease-in-out infinite alternate; }
.scn-macbeth-defiant .shadow { position:absolute; bottom:0; left:40%; width:70px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%); animation: mdf-shad 5s ease-in-out infinite alternate; }
@keyframes mdf-breath { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes mdf-goblet { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes mdf-flame { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.85; transform: scaleY(0.9); } }
@keyframes mdf-shad { 0% { opacity:0.3; transform: scaleX(1); } 100% { opacity:0.6; transform: scaleX(1.2); } }

/* Scene: macbeth-rages-at-servant */
.scn-macbeth-rages-at-servant { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #0e0806 100%), radial-gradient(ellipse at 60% 40%, #3a2a22 0%, transparent 60%); }
.scn-macbeth-rages-at-servant .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #1e1614 0%, #0e0a08 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-macbeth-rages-at-servant .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-macbeth-rages-at-servant .torch { position:absolute; bottom:20%; left:20%; width:10px; height:30px; background: #2a1a12; border-radius: 20%; transform: rotate(-10deg); }
.scn-macbeth-rages-at-servant .torch::after { content:''; position:absolute; top:-12px; left:-4px; width:18px; height:18px; background: radial-gradient(circle, #ff9940 0%, #cc5000 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px #cc5000, 0 0 50px 15px rgba(204,80,0,.3); animation: mrs-flame 2s ease-in-out infinite alternate; }
.scn-macbeth-rages-at-servant .figure-macbeth { position:absolute; bottom:22%; left:35%; width:28px; height:60px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: mrs-macbeth 1s ease-in-out infinite alternate; }
.scn-macbeth-rages-at-servant .figure-macbeth::before { content:''; position:absolute; top:15%; left:-12px; width:20px; height:6px; background: #1a1412; border-radius: 20%; transform: rotate(30deg); transform-origin: right; animation: mrs-arm 1.2s ease-in-out infinite alternate; } /* pointing arm */
.scn-macbeth-rages-at-servant .figure-servant { position:absolute; bottom:18%; left:55%; width:22px; height:45px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: rotate(5deg) scaleX(0.8); animation: mrs-servant 0.8s ease-in-out infinite alternate; }
.scn-macbeth-rages-at-servant .servant-shadow { position:absolute; bottom:0; left:50%; width:50px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%); animation: mrs-shad 0.8s ease-in-out infinite alternate; }
.scn-macbeth-rages-at-servant .sparks { position:absolute; top:30%; left:15%; width:60%; height:20%; background: radial-gradient(circle, rgba(255,140,50,.4) 0%, transparent 10%); background-size: 8px 8px; animation: mrs-sparks 1.5s linear infinite; }
@keyframes mrs-flame { 0% { opacity:0.7; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.3); } }
@keyframes mrs-macbeth { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes mrs-arm { 0% { transform: rotate(30deg); } 100% { transform: rotate(50deg); } }
@keyframes mrs-servant { 0% { transform: rotate(5deg) scaleX(0.8) translateY(0); } 100% { transform: rotate(10deg) scaleX(0.7) translateY(-2px); } }
@keyframes mrs-shad { 0% { transform: scaleX(1); opacity:0.5; } 100% { transform: scaleX(1.2); opacity:0.7; } }
@keyframes mrs-sparks { 0% { background-position: 0 0; opacity:0.6; } 100% { background-position: 20px 20px; opacity:0; } }

/* Scene: macbeth-resigns-to-fate */
.scn-macbeth-resigns-to-fate { background: linear-gradient(180deg, #1a1a1a 0%, #2a221e 40%, #1a1210 100%), radial-gradient(ellipse at 40% 30%, #3a2e26 0%, transparent 60%); }
.scn-macbeth-resigns-to-fate .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1614 0%, #0e0a08 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-macbeth-resigns-to-fate .window { position:absolute; top:15%; left:65%; width:30px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border: 3px solid #1e1a16; border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%; box-shadow: inset 0 0 8px rgba(0,0,0,.5); }
.scn-macbeth-resigns-to-fate .window::after { content:''; position:absolute; top:2px; left:2px; width:26px; height:36px; background: linear-gradient(180deg, rgba(120,130,100,.2) 0%, rgba(80,90,70,.1) 100%); border-radius: 8%; filter: blur(2px); animation: mrf-window 8s ease-in-out infinite alternate; }
.scn-macbeth-resigns-to-fate .table { position:absolute; bottom:8%; left:30%; width:80px; height:12px; background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-macbeth-resigns-to-fate .candle { position:absolute; bottom:12%; left:35%; width:8px; height:22px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%); border-radius: 20%; transform: rotate(1deg); }
.scn-macbeth-resigns-to-fate .candle::after { content:''; position:absolute; top:-6px; left:0; right:0; margin:auto; width:5px; height:7px; background: radial-gradient(circle, #ffe0a0 0%, #d08040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 14px 4px #d08040, 0 0 28px 8px rgba(208,128,64,.3); animation: mrf-flame 4s ease-in-out infinite alternate; }
.scn-macbeth-resigns-to-fate .figure-seated { position:absolute; bottom:5%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(2deg) translateY(0); animation: mrf-seated 5s ease-in-out infinite; }
.scn-macbeth-resigns-to-fate .figure-seated::before { content:''; position:absolute; top:30%; right:-8px; width:16px; height:5px; background: #1a1412; border-radius: 20%; transform: rotate(-20deg); } /* arm resting */
.scn-macbeth-resigns-to-fate .letter { position:absolute; bottom:6%; left:38%; width:14px; height:10px; background: #3a2e26; border-radius: 5%; transform: rotate(-5deg); box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.scn-macbeth-resigns-to-fate .leaf { position:absolute; bottom:25%; left:20%; width:20px; height:12px; background: linear-gradient(180deg, #4a4a2a 0%, #2a2a1a 100%); border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%; transform: rotate(20deg); animation: mrf-leaf 12s ease-in-out infinite; }
@keyframes mrf-window { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.15; } }
@keyframes mrf-flame { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }
@keyframes mrf-seated { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes mrf-leaf { 0% { transform: rotate(20deg) translateY(0); opacity:0.8; } 50% { transform: rotate(30deg) translateY(-3px); opacity:0.5; } 100% { transform: rotate(20deg) translateY(0); opacity:0.2; } }

/* final-duel-death */
.scn-final-duel-death {
  background: linear-gradient(180deg, #2f3940 0%, #1a1f24 40%, #0d1114 100%),
              radial-gradient(ellipse at 50% 80%, #3a4a55 0%, transparent 60%);
}
.scn-final-duel-death .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #45505a 0%, #2f3940 100%);
  animation: fdd-sky 10s ease-in-out infinite alternate;
}
.scn-final-duel-death .mist {
  position: absolute; inset: 20% 0 30% 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,190,200,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: fdd-mist 15s ease-in-out infinite alternate;
}
.scn-final-duel-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3228 0%, #1a1f1a 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-final-duel-death .tree {
  position: absolute; bottom: 35%; width: 12px; height: 90px;
  background: linear-gradient(180deg, #3a3225 0%, #1e1a12 100%);
  border-radius: 3px;
}
.scn-final-duel-death .tree-1 { left: 15%; animation: fdd-sway 8s ease-in-out infinite; }
.scn-final-duel-death .tree-2 { left: 28%; width: 8px; height: 70px; animation: fdd-sway 10s ease-in-out infinite 1s; }
.scn-final-duel-death .tree-3 { right: 22%; width: 14px; height: 100px; animation: fdd-sway 9s ease-in-out infinite 0.5s; }
.scn-final-duel-death .figure {
  position: absolute; bottom: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1e22 0%, #0d1012 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fdd-battle 2s ease-in-out infinite alternate;
}
.scn-final-duel-death .macbeth { left: 35%; transform-origin: bottom center; }
.scn-final-duel-death .macduff { left: 55%; animation-direction: alternate-reverse; }
.scn-final-duel-death .shield {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 24px;
  background: radial-gradient(circle, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 8px #1a1410;
  animation: fdd-shield 1.5s ease-in-out infinite alternate;
}
@keyframes fdd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes fdd-mist { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-5px); } 100% { opacity: 0.4; transform: translateY(2px); } }
@keyframes fdd-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes fdd-battle { 0% { transform: translateX(-3px) rotate(-3deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes fdd-shield { 0% { transform: translate(-4px, -2px) rotate(-5deg); } 50% { transform: translate(4px, 2px) rotate(5deg); } 100% { transform: translate(-2px, 0) rotate(-3deg); } }

/* victory-sorrow */
.scn-victory-sorrow {
  background: linear-gradient(180deg, #3b3f42 0%, #262b2e 50%, #14171a 100%),
              radial-gradient(ellipse at 50% 90%, #4a5258 0%, transparent 60%);
}
.scn-victory-sorrow .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #505860 0%, #383e44 100%);
  animation: vs-sky 12s ease-in-out infinite alternate;
}
.scn-victory-sorrow .bg-mist {
  position: absolute; inset: 25% 0 35% 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,0.15) 0%, transparent 70%);
  filter: blur(15px);
  animation: vs-mist 20s ease-in-out infinite alternate;
}
.scn-victory-sorrow .land {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2d332b 0%, #1c1f1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.5);
}
.scn-victory-sorrow .figure {
  position: absolute; bottom: 22%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1c2024 0%, #0a0d0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-victory-sorrow .macduff-vs { left: 30%; animation: vs-stand 6s ease-in-out infinite; }
.scn-victory-sorrow .boy { left: 50%; width: 16px; height: 35px; background: linear-gradient(180deg, #2a2e32 0%, #1a1c1e 100%); animation: vs-fall 8s ease-in-out infinite; }
.scn-victory-sorrow .flag {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 30px;
  background: #3a2a22; animation: vs-flag 4s ease-in-out infinite;
}
.scn-victory-sorrow .flag::after {
  content: ''; position: absolute; top: 0; left: 4px; width: 18px; height: 12px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 50% 50% 0;
  animation: vs-flag-wave 2s ease-in-out infinite alternate;
}
.scn-victory-sorrow .sword {
  position: absolute; bottom: 25%; left: 45%; width: 2px; height: 28px;
  background: #6a7a7a; transform: rotate(-20deg); transform-origin: bottom;
  animation: vs-sword 5s ease-in-out infinite;
}
.scn-victory-sorrow .cairn {
  position: absolute; bottom: 15%; left: 65%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a5048 0%, #2a3028 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: vs-cairn 10s ease-in-out infinite alternate;
}
@keyframes vs-sky { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes vs-mist { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.4; transform: translateY(-4px); } 100% { opacity: 0.3; transform: translateY(2px); } }
@keyframes vs-stand { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes vs-fall { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(8px) rotate(10deg); } }
@keyframes vs-flag { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes vs-flag-wave { 0% { transform: rotate(-5deg); } 100% { transform: rotate(10deg); } }
@keyframes vs-sword { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }
@keyframes vs-cairn { 0%,100% { transform: scale(1); } 50% { transform: scale(0.98) translateY(1px); } }

/* siward-fair-death */
.scn-siward-fair-death {
  background: linear-gradient(180deg, #505a60 0%, #384048 50%, #202830 100%),
              radial-gradient(ellipse at 50% 80%, #607080 0%, transparent 60%);
}
.scn-siward-fair-death .sky-sfd {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a787a 0%, #4a565a 100%);
  animation: sfd-sky 14s ease-in-out infinite alternate;
}
.scn-siward-fair-death .cloud-sfd {
  position: absolute; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-siward-fair-death .cloud-sfd-1 { top: 15%; left: 10%; width: 100px; animation: sfd-drift 40s linear infinite; }
.scn-siward-fair-death .cloud-sfd-2 { top: 25%; right: 15%; width: 70px; animation: sfd-drift 50s linear infinite reverse; }
.scn-siward-fair-death .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-siward-fair-death .figure {
  position: absolute; bottom: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a3036 0%, #181e22 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-siward-fair-death .siward { left: 35%; animation: sfd-stand 6s ease-in-out infinite; }
.scn-siward-fair-death .son { left: 50%; width: 18px; height: 40px; background: linear-gradient(180deg, #3a4046 0%, #22282c 100%); animation: sfd-lie 10s ease-in-out infinite alternate; }
.scn-siward-fair-death .shield-sfd {
  position: absolute; bottom: 26%; left: 42%; width: 16px; height: 22px;
  background: radial-gradient(circle, #5a5a4a 0%, #2a2a1e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 6px #1a1a12;
  animation: sfd-shield 8s ease-in-out infinite alternate;
}
.scn-siward-fair-death .sword-sfd {
  position: absolute; bottom: 24%; left: 30%; width: 2px; height: 30px;
  background: #7a8a8a; transform: rotate(15deg); transform-origin: bottom;
  animation: sfd-sword 5s ease-in-out infinite;
}
.scn-siward-fair-death .stone {
  position: absolute; bottom: 14%; left: 60%; width: 20px; height: 14px;
  background: #4a504a; border-radius: 40% 40% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: sfd-stone 12s ease-in-out infinite alternate;
}
@keyframes sfd-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes sfd-drift { 0% { transform: translateX(-40px); } 100% { transform: translateX(110vw); } }
@keyframes sfd-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sfd-lie { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sfd-shield { 0% { transform: translateX(-2px) rotate(-3deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes sfd-sword { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } }
@keyframes sfd-stone { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(0.97) translateY(2px); } }

/* item-macbeths-head */
.scn-item-macbeths-head {
  background: linear-gradient(180deg, #2a3038 0%, #181e24 50%, #0a0e12 100%),
              radial-gradient(ellipse at 50% 60%, #3a4a5a 0%, transparent 50%);
}
.scn-item-macbeths-head .sky-mh {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4850 0%, #202a30 100%);
  animation: mh-sky 12s ease-in-out infinite alternate;
}
.scn-item-macbeths-head .beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(240,230,210,0.15) 0%, transparent 100%);
  filter: blur(20px);
  animation: mh-beam 6s ease-in-out infinite alternate;
}
.scn-item-macbeths-head .crowd {
  position: absolute; bottom: 15%; height: 40px;
  background: linear-gradient(180deg, #1a1e22 0%, #0d1012 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
}
.scn-item-macbeths-head .crowd-1 { left: 20%; width: 80px; animation: mh-crowd 8s ease-in-out infinite; }
.scn-item-macbeths-head .crowd-2 { right: 15%; width: 60px; animation: mh-crowd 9s ease-in-out infinite 1s; }
.scn-item-macbeths-head .pike {
  position: absolute; bottom: 20%; left: 48%; width: 4px; height: 80px;
  background: #3a3a2a; transform-origin: bottom;
  animation: mh-pike 4s ease-in-out infinite alternate;
}
.scn-item-macbeths-head .head {
  position: absolute; bottom: 70%; left: 48%; width: 28px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: mh-head 3s ease-in-out infinite alternate;
}
.scn-item-macbeths-head .figure {
  position: absolute; bottom: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1c2024 0%, #0a0d0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-item-macbeths-head .macduff-mh { left: 45%; animation: mh-stand 6s ease-in-out infinite; }
.scn-item-macbeths-head .castle {
  position: absolute; bottom: 10%; left: 5%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #2a3030 0%, #121616 100%);
  border-radius: 4% 4% 2% 2% / 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: mh-castle 15s ease-in-out infinite alternate;
}
.scn-item-macbeths-head .crown {
  position: absolute; bottom: 72%; left: 49%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #c8a860 0%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(200,168,96,0.5);
  animation: mh-crown 4s ease-in-out infinite alternate;
}
@keyframes mh-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes mh-beam { 0% { opacity: 0.1; transform: scaleY(0.8); } 50% { opacity: 0.3; transform: scaleY(1.1); } 100% { opacity: 0.15; transform: scaleY(0.9); } }
@keyframes mh-crowd { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes mh-pike { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes mh-head { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(1px) rotate(-2deg); } }
@keyframes mh-stand { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes mh-castle { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-1px); } }
@keyframes mh-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }

/* witches-convene */
.scn-witches-convene {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2a 40%, #2a1a3a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a5a 0%, transparent 60%);
}
.scn-witches-convene .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #15152e 0%, #0f0f1f 100%);
  animation: wc1-sky 12s ease-in-out infinite alternate;
}
.scn-witches-convene .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0f0f05 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-witches-convene .lightning {
  position: absolute; top: 10%; left: 40%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #ffffff 0%, #aaccff 40%, transparent 100%);
  filter: blur(2px);
  animation: wc1-lightning 5s ease-in-out infinite;
}
.scn-witches-convene .witch {
  position: absolute; bottom: 18%; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc1-witch 6s ease-in-out infinite;
}
.scn-witches-convene .witch-left { left: 10%; width: 28px; animation-delay: -1s; }
.scn-witches-convene .witch-center { left: 45%; width: 32px; animation-delay: -2.5s; }
.scn-witches-convene .witch-right { right: 10%; width: 26px; animation-delay: -4s; }
.scn-witches-convene .moon {
  position: absolute; top: 8%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #eeeedd 0%, #8888aa 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,200,220,.15);
  animation: wc1-moon 20s ease-in-out infinite alternate;
}
@keyframes wc1-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes wc1-lightning { 0%, 90% { opacity: 0; transform: scaleX(1); } 92% { opacity: 1; transform: scaleX(2) rotate(5deg); } 94% { opacity: .3; } 96% { opacity: .8; transform: scaleX(1.5) rotate(-3deg); } 100% { opacity: 0; } }
@keyframes wc1-witch { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wc1-moon { 0% { transform: scale(1) translateX(0); opacity: .7; } 50% { transform: scale(1.1) translateX(-5px); opacity: .9; } 100% { transform: scale(.95) translateX(5px); opacity: .6; } }

/* camp-bleeding-sergeant */
.scn-camp-bleeding-sergeant {
  background: linear-gradient(180deg, #2b2b35 0%, #1f1f28 50%, #15151a 100%),
              radial-gradient(ellipse at 50% 80%, #3c3c50 0%, transparent 70%);
}
.scn-camp-bleeding-sergeant .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3b3b45 0%, #2a2a35 100%);
  animation: cbs1-sky 15s ease-in-out infinite alternate;
}
.scn-camp-bleeding-sergeant .tent {
  position: absolute; bottom: 15%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-camp-bleeding-sergeant .king {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbs1-king 8s ease-in-out infinite;
}
.scn-camp-bleeding-sergeant .sergeant {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbs1-sergeant 4s ease-in-out infinite;
}
.scn-camp-bleeding-sergeant .blood {
  position: absolute; bottom: 18%; left: 52%; width: 12px; height: 8px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 60%, transparent 100%);
  border-radius: 50%;
  animation: cbs1-blood 2s ease-in-out infinite alternate;
}
.scn-camp-bleeding-sergeant .flag {
  position: absolute; top: 10%; left: 10%; width: 8px; height: 40px;
  background: #2a2a1a;
  transform-origin: bottom left;
  animation: cbs1-flag 3s ease-in-out infinite;
}
.scn-camp-bleeding-sergeant .flag::before {
  content: ''; position: absolute; top: 0; left: 4px; width: 20px; height: 14px;
  background: #5a4a3a;
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
@keyframes cbs1-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes cbs1-king { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cbs1-sergeant { 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 cbs1-blood { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.3); opacity: .4; } }
@keyframes cbs1-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }

/* sergeant-battle-report */
.scn-sergeant-battle-report {
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1f2f 50%, #050a1a 100%),
              radial-gradient(ellipse at 50% 10%, #2a4a5a 0%, transparent 80%);
}
.scn-sergeant-battle-report .water {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1a2a 0%, #101a25 100%);
  animation: sbr1-water 8s ease-in-out infinite alternate;
}
.scn-sergeant-battle-report .swimmer-a,
.scn-sergeant-battle-report .swimmer-b {
  position: absolute; bottom: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbr1-swimmer 3s ease-in-out infinite;
}
.scn-sergeant-battle-report .swimmer-a { left: 35%; animation-delay: 0s; }
.scn-sergeant-battle-report .swimmer-b { left: 50%; animation-delay: -1.5s; transform: scaleX(-1); }
.scn-sergeant-battle-report .foam {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(180deg, rgba(200,220,240,.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: sbr1-foam 4s ease-in-out infinite;
}
.scn-sergeant-battle-report .clouds {
  position: absolute; top: 10%; left: -10%; width: 120%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,190,200,.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: sbr1-clouds 30s linear infinite;
}
@keyframes sbr1-water { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(2px); } }
@keyframes sbr1-swimmer { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(10px) translateY(0) rotate(-3deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sbr1-foam { 0% { opacity: .2; transform: scaleY(1); } 50% { opacity: .5; transform: scaleY(2); } 100% { opacity: .2; transform: scaleY(1); } }
@keyframes sbr1-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(50%); } }

/* sergeant-macbeth-valor */
.scn-sergeant-macbeth-valor {
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a22 40%, #0f0f15 70%, #050508 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-sergeant-macbeth-valor .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3b3b45 0%, #2a2a35 100%);
  animation: smv1-sky 10s ease-in-out infinite alternate;
}
.scn-sergeant-macbeth-valor .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a0f 0%, #0f0f0a 100%);
  clip-path: polygon(0% 20%, 10% 0%, 90% 0%, 100% 20%, 100% 100%, 0% 100%);
}
.scn-sergeant-macbeth-valor .macbeth {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smv1-macbeth 4s ease-in-out infinite;
}
.scn-sergeant-macbeth-valor .sword {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #aa9988 0%, #665544 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  box-shadow: 0 0 10px 5px rgba(170,153,136,.3);
  animation: smv1-sword 2s ease-in-out infinite alternate;
}
.scn-sergeant-macbeth-valor .blood-spray {
  position: absolute; bottom: 30%; left: 55%; width: 15px; height: 10px;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: smv1-blood 1s ease-in-out infinite alternate;
}
.scn-sergeant-macbeth-valor .dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(180,160,140,.1) 100%);
  filter: blur(6px);
  animation: smv1-dust 3s ease-in-out infinite;
}
@keyframes smv1-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes smv1-macbeth { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes smv1-sword { 0% { transform: rotate(-20deg) scaleY(1); } 100% { transform: rotate(20deg) scaleY(1.1); } }
@keyframes smv1-blood { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.5); opacity: .2; } }
@keyframes smv1-dust { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.2); } 100% { transform: translateY(0) scaleX(1); } }

.scn-donalbain-flees-ireland {
  background: linear-gradient(180deg, #2b1a10 0%, #1a0f0a 40%, #0d0603 100%), radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-donalbain-flees-ireland .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(135deg, #1c110c 0%, #0f0805 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.7);
}
.scn-donalbain-flees-ireland .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #1a0f0a 0%, #2b1a10 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-donalbain-flees-ireland .window {
  position: absolute; top: 12%; right: 18%; width: 40px; height: 60px; background: linear-gradient(180deg, #1a2835 0%, #0d151e 100%); border: 4px solid #1c110c; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,140,180,.2); animation: dfi-window 12s ease-in-out infinite alternate;
}
.scn-donalbain-flees-ireland .candle {
  position: absolute; bottom: 38%; left: 25%; width: 8px; height: 20px; background: linear-gradient(0deg, #c8a878 0%, #e8c888 50%, #f0e0b0 100%); border-radius: 3px; transform: skewX(-2deg); animation: dfi-candle 2s ease-in-out infinite alternate;
}
.scn-donalbain-flees-ireland .glow {
  position: absolute; bottom: 32%; left: 22%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(200,168,120,.5) 0%, rgba(200,168,120,.2) 40%, transparent 70%); border-radius: 50%; animation: dfi-glow 3s ease-in-out infinite alternate;
}
.scn-donalbain-flees-ireland .figure {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 45px; background: linear-gradient(180deg, #0d0603 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dfi-walk 4s ease-in-out infinite;
}
.scn-donalbain-flees-ireland .arrow {
  position: absolute; bottom: 44%; left: 60%; width: 30px; height: 4px; background: #3a2a1a; border-radius: 2px; transform: rotate(-30deg); box-shadow: 0 0 4px #5a3a2a; animation: dfi-arrow 6s ease-in-out infinite;
}
.scn-donalbain-flees-ireland .shadow {
  position: absolute; bottom: 28%; left: 8%; width: 30px; height: 12px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(3px); animation: dfi-shadow 4s ease-in-out infinite;
}
@keyframes dfi-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes dfi-candle { 0% { height: 18px; opacity: .8 } 30% { height: 22px; opacity: 1 } 70% { height: 19px; opacity: .9 } 100% { height: 21px; opacity: .95 } }
@keyframes dfi-glow { 0% { transform: scale(.9); opacity: .6 } 50% { transform: scale(1.1); opacity: .9 } 100% { transform: scale(1); opacity: .75 } }
@keyframes dfi-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-2deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes dfi-arrow { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(4px) } 100% { transform: rotate(-30deg) translateX(0) } }
@keyframes dfi-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(.8) } 100% { transform: translateX(20px) scale(1) } }

.scn-ross-old-man-prodigies {
  background: linear-gradient(180deg, #2f3a40 0%, #1f282e 50%, #0f151a 100%), radial-gradient(ellipse at 70% 30%, #3a4a50 0%, transparent 60%);
}
.scn-ross-old-man-prodigies .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a353b 0%, #1a2329 100%); animation: ro-sky 20s ease-in-out infinite alternate;
}
.scn-ross-old-man-prodigies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1f24 0%, #0d1114 100%); box-shadow: inset 0 6px 10px rgba(0,0,0,.6);
}
.scn-ross-old-man-prodigies .wall {
  position: absolute; bottom: 30%; left: 10%; width: 25%; height: 40%; background: linear-gradient(180deg, #2a3338 0%, #1a2329 100%); border-radius: 10% 10% 0 0; box-shadow: 4px 0 10px rgba(0,0,0,.5);
}
.scn-ross-old-man-prodigies .ross {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 48px; background: linear-gradient(180deg, #1a2025 0%, #0d1114 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ro-figure 6s ease-in-out infinite;
}
.scn-ross-old-man-prodigies .old-man {
  position: absolute; bottom: 28%; left: 44%; width: 18px; height: 40px; background: linear-gradient(180deg, #1f282e 0%, #0f151a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ro-figure 7s ease-in-out infinite .5s;
}
.scn-ross-old-man-prodigies .tree {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a353b 0%, #1a2329 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ro-tree 15s ease-in-out infinite;
}
.scn-ross-old-man-prodigies .raven {
  position: absolute; top: 15%; left: 50%; width: 16px; height: 10px; background: #1a2025; border-radius: 50% 50% 20% 20%; transform: rotate(-10deg); animation: ro-raven 12s linear infinite;
}
@keyframes ro-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ro-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ro-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ro-raven { 0% { transform: translateX(-10px) rotate(-10deg) } 50% { transform: translateX(20px) rotate(10deg) } 100% { transform: translateX(-10px) rotate(-10deg) } }

.scn-falcon-owl-omen {
  background: linear-gradient(180deg, #2a3338 0%, #1a2329 40%, #0f151a 100%), radial-gradient(ellipse at 50% 20%, #3a4a50 0%, transparent 60%);
}
.scn-falcon-owl-omen .sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #1f282e 0%, #0f151a 100%); animation: fo-sky 25s ease-in-out infinite alternate;
}
.scn-falcon-owl-omen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #0d1114 0%, #1a2329 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-falcon-owl-omen .ross {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 46px; background: linear-gradient(180deg, #1a2025 0%, #0d1114 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fo-figure 5s ease-in-out infinite;
}
.scn-falcon-owl-omen .macduff {
  position: absolute; bottom: 30%; left: 44%; width: 22px; height: 48px; background: linear-gradient(180deg, #1f282e 0%, #0f151a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fo-figure 6s ease-in-out infinite .3s;
}
.scn-falcon-owl-omen .falcon {
  position: absolute; top: 15%; left: 20%; width: 24px; height: 14px; background: #1a2025; border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); animation: fo-falcon 8s ease-in-out infinite;
}
.scn-falcon-owl-omen .owl {
  position: absolute; top: 20%; right: 20%; width: 20px; height: 16px; background: #1a2025; border-radius: 50%; transform: rotate(10deg); animation: fo-owl 10s ease-in-out infinite;
}
.scn-falcon-owl-omen .cloud-a {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px; background: rgba(40,50,55,.3); border-radius: 50%; filter: blur(6px); animation: fo-cloud 40s linear infinite;
}
.scn-falcon-owl-omen .cloud-b {
  position: absolute; top: 22%; right: 10%; width: 60px; height: 15px; background: rgba(30,40,45,.2); border-radius: 50%; filter: blur(5px); animation: fo-cloud 50s linear infinite reverse;
}
@keyframes fo-sky { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes fo-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fo-falcon { 0% { transform: translateY(0) rotate(-20deg) } 50% { transform: translateY(-10px) rotate(-10deg) } 100% { transform: translateY(0) rotate(-20deg) } }
@keyframes fo-owl { 0% { transform: translateY(0) rotate(10deg) } 50% { transform: translateY(6px) rotate(0) } 100% { transform: translateY(0) rotate(10deg) } }
@keyframes fo-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-macduff-malcolm-suspicion {
  background: linear-gradient(180deg, #2f3a40 0%, #1f282e 50%, #0f151a 100%), radial-gradient(ellipse at 30% 70%, #3a4a50 0%, transparent 60%);
}
.scn-macduff-malcolm-suspicion .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a353b 0%, #1a2329 100%); animation: mm-sky 18s ease-in-out infinite alternate;
}
.scn-macduff-malcolm-suspicion .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1f24 0%, #0d1114 100%); box-shadow: inset 0 6px 10px rgba(0,0,0,.6);
}
.scn-macduff-malcolm-suspicion .gate {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a3338 0%, #1a2329 100%); border: 3px solid #1f282e; border-radius: 4px; transform-origin: top center; animation: mm-gate 15s ease-in-out infinite;
}
.scn-macduff-malcolm-suspicion .macduff {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 48px; background: linear-gradient(180deg, #1a2025 0%, #0d1114 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 6s ease-in-out infinite;
}
.scn-macduff-malcolm-suspicion .ross {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 45px; background: linear-gradient(180deg, #1f282e 0%, #0f151a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 7s ease-in-out infinite .5s;
}
.scn-macduff-malcolm-suspicion .chain {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 30px; background: #4a5a60; border-radius: 2px; transform: translateX(-50%); animation: mm-chain 8s ease-in-out infinite;
}
.scn-macduff-malcolm-suspicion .shadow {
  position: absolute; bottom: 26%; left: 25%; width: 50px; height: 12px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px); animation: mm-shadow 6s ease-in-out infinite;
}
@keyframes mm-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes mm-gate { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes mm-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mm-chain { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes mm-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }

.scn-porter-opens-gate { background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 40%, #1f1510 100%), radial-gradient(ellipse at 30% 70%, #c87a3a 0%, transparent 60%); }
.scn-porter-opens-gate .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3d2a1a 0%, #2a1e14 100%); }
.scn-porter-opens-gate .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1f1510 0%, #120c08 100%); border-radius: 10% 10% 0 0; }
.scn-porter-opens-gate .gate { position:absolute; bottom:30%; left:20%; width:45%; height:60%; background: linear-gradient(90deg, #4a3628 0%, #5c4430 50%, #4a3628 100%); border: 3px solid #2a1e14; border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.7); animation: pg-gate 8s ease-in-out infinite alternate; }
.scn-porter-opens-gate .porter-silhouette { position:absolute; bottom:30%; left:30%; width:15%; height:40%; background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: pg-porter 4s ease-in-out infinite; }
.scn-porter-opens-gate .lantern { position:absolute; bottom:50%; left:18%; width:6%; height:8%; background: radial-gradient(circle, #f0b060 0%, #b07030 70%); border-radius: 30%; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 15px rgba(192,128,64,.3); animation: pg-lantern 3s ease-in-out infinite alternate; }
.scn-porter-opens-gate .key { position:absolute; bottom:40%; left:40%; width:4%; height:10%; background: linear-gradient(180deg, #b09060 0%, #806040 100%); border-radius: 20%; transform: rotate(15deg); animation: pg-key 6s ease-in-out infinite; }
.scn-porter-opens-gate .shadow-pool { position:absolute; bottom:30%; left:25%; width:50%; height:15%; background: radial-gradient(ellipse at 50% 0%, #0a0500 0%, transparent 100%); animation: pg-shadow 4s ease-in-out infinite; }
@keyframes pg-gate { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.85) translateX(5%); } 100% { transform: scaleX(0.7) translateX(10%); } }
@keyframes pg-porter { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5%) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pg-lantern { 0% { box-shadow: 0 0 15px 5px #c08040, 0 0 30px 10px rgba(192,128,64,.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 12px #f0b060, 0 0 60px 20px rgba(240,176,96,.5); opacity: 1; } 100% { box-shadow: 0 0 20px 8px #c08040, 0 0 40px 15px rgba(192,128,64,.3); opacity: 0.85; } }
@keyframes pg-key { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5%); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes pg-shadow { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.3; transform: scaleY(0.8); } 100% { opacity: 0.6; transform: scaleY(1); } }

.scn-porter-macduff-drink { background: linear-gradient(180deg, #301e14 0%, #4a2e1a 60%, #1f1208 100%), radial-gradient(ellipse at 50% 100%, #8b5a2e 0%, transparent 70%); }
.scn-porter-macduff-drink .wall-left { position:absolute; inset:0 50% 20% 0; background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%); }
.scn-porter-macduff-drink .fire-hearth { position:absolute; bottom:20%; left:55%; width:35%; height:40%; background: linear-gradient(180deg, #7a3a1a 0%, #4a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 30px #e08030; animation: pd-fire 2s ease-in-out infinite alternate; }
.scn-porter-macduff-drink .table { position:absolute; bottom:25%; left:10%; width:70%; height:12%; background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 5px 10px rgba(0,0,0,.5); }
.scn-porter-macduff-drink .tankard-1 { position:absolute; bottom:32%; left:20%; width:8%; height:20%; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: pd-tankard 4s ease-in-out infinite; }
.scn-porter-macduff-drink .tankard-2 { position:absolute; bottom:32%; left:50%; width:8%; height:20%; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: pd-tankard 4s ease-in-out infinite 1.5s; }
.scn-porter-macduff-drink .figure-porter { position:absolute; bottom:20%; left:15%; width:12%; height:40%; background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-figures 6s ease-in-out infinite; }
.scn-porter-macduff-drink .figure-macduff { position:absolute; bottom:20%; left:45%; width:12%; height:40%; background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-figures 6s ease-in-out infinite 0.5s; }
@keyframes pd-fire { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes pd-tankard { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-2%); } 60% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pd-figures { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3%) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-porter-lechery-discourse { background: linear-gradient(180deg, #2a1a0e 0%, #3d2816 50%, #1a1008 100%), radial-gradient(ellipse at 40% 80%, #6b4a2e 0%, transparent 60%); }
.scn-porter-lechery-discourse .wall-light { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3d2816 0%, #2a1a0e 100%); }
.scn-porter-lechery-discourse .floor-tile { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1008 0%, #120a04 100%); border-radius: 5% 5% 0 0; }
.scn-porter-lechery-discourse .table-round { position:absolute; bottom:25%; left:30%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 50%, #5a3a20 0%, #3a1e0e 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-porter-lechery-discourse .candle { position:absolute; bottom:40%; left:35%; width:5%; height:15%; background: linear-gradient(180deg, #d0a070 0%, #a07040 100%); border-radius: 10% 10% 5% 5%; animation: pl-candle 3s ease-in-out infinite alternate; }
.scn-porter-lechery-discourse .bottle { position:absolute; bottom:30%; left:55%; width:6%; height:18%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-10deg); }
.scn-porter-lechery-discourse .porter-arm { position:absolute; bottom:30%; left:25%; width:10%; height:25%; background: linear-gradient(180deg, #1a1210 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: pl-arm 2s ease-in-out infinite; }
.scn-porter-lechery-discourse .macduff-head { position:absolute; bottom:35%; left:55%; width:10%; height:14%; background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, #0a0705 100%); border-radius: 50%; transform-origin: bottom center; animation: pl-head 2.5s ease-in-out infinite; }
@keyframes pl-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }
@keyframes pl-arm { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-3%); } 50% { transform: rotate(-10deg) translateY(0); } 75% { transform: rotate(15deg) translateY(-2%); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pl-head { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-2%); } 50% { transform: rotate(5deg) translateX(2%); } 75% { transform: rotate(-3deg) translateX(0); } 100% { transform: rotate(0deg) translateX(0); } }

.scn-macbeth-macduff-greeting { background: linear-gradient(180deg, #1a1210 0%, #2a1a1a 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%); }
.scn-macbeth-macduff-greeting .wall-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%); }
.scn-macbeth-macduff-greeting .door { position:absolute; bottom:20%; left:15%; width:30%; height:70%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border: 2px solid #1a1008; border-radius: 5% 5% 3% 3%; box-shadow: inset 0 0 15px rgba(0,0,0,.6); animation: mg-door 12s ease-in-out infinite alternate; }
.scn-macbeth-macduff-greeting .floor-stone { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 8% 8% 0 0; }
.scn-macbeth-macduff-greeting .macbeth-shadow { position:absolute; bottom:20%; left:45%; width:12%; height:45%; background: radial-gradient(ellipse at 50% 20%, #0a0605 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mg-macbeth 5s ease-in-out infinite; }
.scn-macbeth-macduff-greeting .macduff-shadow { position:absolute; bottom:20%; left:60%; width:12%; height:45%; background: radial-gradient(ellipse at 50% 20%, #0a0605 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mg-macduff 5s ease-in-out infinite 1s; }
.scn-macbeth-macduff-greeting .handle-glow { position:absolute; bottom:50%; left:28%; width:3%; height:4%; background: radial-gradient(circle, #c08040 0%, #804020 70%); border-radius: 30%; box-shadow: 0 0 15px 5px #a06030, 0 0 30px 10px rgba(160,96,48,.3); animation: mg-handle 3s ease-in-out infinite alternate; }
.scn-macbeth-macduff-greeting .lantern-bars { position:absolute; bottom:55%; left:68%; width:5%; height:10%; background: linear-gradient(180deg, #d0a070 0%, #a07040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 6px #c08040; animation: mg-lantern 4s ease-in-out infinite alternate; }
@keyframes mg-door { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2%) scaleX(0.98); } 100% { transform: translateX(2%) scaleX(1.02); } }
@keyframes mg-macbeth { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3%) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mg-macduff { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3%) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mg-handle { 0% { box-shadow: 0 0 10px 3px #a06030; opacity: 0.7; } 50% { box-shadow: 0 0 25px 10px #c08040, 0 0 50px 15px rgba(192,128,64,.3); opacity: 1; } 100% { box-shadow: 0 0 15px 5px #a06030; opacity: 0.8; } }
@keyframes mg-lantern { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }

.scn-warning-to-macduff {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a5a 100%),
    radial-gradient(ellipse at 30% 70%, #4a4a6a 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-warning-to-macduff .room-back {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(40,40,60,.5) 0%, transparent 70%);
}
.scn-warning-to-macduff .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0;
}
.scn-warning-to-macduff .window-frame {
  position:absolute; top:10%; left:50%; transform:translateX(-50%); width:120px; height:180px; border: 6px solid #4a4a5a; border-radius: 4px; background: rgba(20,20,30,.3);
}
.scn-warning-to-macduff .window-glow {
  position:absolute; top:12%; left:50%; transform:translateX(-50%); width:108px; height:168px; background: radial-gradient(ellipse at 50% 40%, #4a6a8a 0%, #2a3a5a 100%); animation: wm-glow 6s ease-in-out infinite alternate;
}
.scn-warning-to-macduff .figure-silhouette {
  position:absolute; bottom:12%; left:35%; width:20px; height:60px; background: #111122; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wm-figure 8s ease-in-out infinite;
}
.scn-warning-to-macduff .hand-shadow {
  position:absolute; top:25%; left:45%; width:30px; height:40px; background: radial-gradient(circle at 50% 30%, #1a1a2e 0%, transparent 80%); filter: blur(4px); animation: wm-hand 10s ease-in-out infinite;
}
.scn-warning-to-macduff .prayer-bead {
  position:absolute; bottom:18%; right:30%; width:8px; height:8px; background: #6a5a4a; border-radius: 50%; box-shadow: 0 0 4px rgba(100,90,70,.5); animation: wm-bead 4s ease-in-out infinite;
}
.scn-warning-to-macduff .dust-motes {
  position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 20% 30%, rgba(200,200,220,.08) 0%, transparent 30%), radial-gradient(circle at 80% 60%, rgba(200,200,220,.05) 0%, transparent 50%); animation: wm-dust 15s ease-in-out infinite alternate;
}
@keyframes wm-glow { 0% { opacity:.6; box-shadow: 0 0 20px 5px #4a6a8a; } 50% { opacity:1; box-shadow: 0 0 40px 10px #6a8aaa; } 100% { opacity:.7; box-shadow: 0 0 25px 5px #4a6a8a; } }
@keyframes wm-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes wm-hand { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(5deg); } 100% { transform: scale(1) rotate(-3deg); } }
@keyframes wm-bead { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wm-dust { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.1; } }

.scn-witches-cavern-cauldron {
  background: 
    linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 30%, #2a1a2e 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-witches-cavern-cauldron .cavern-back {
  position:absolute; inset:0; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M0 0 L100 0 L100 100 L0 100 Z" fill="rgba(20,20,30,0.3)"/><circle cx="20" cy="15" r="8" fill="rgba(255,100,50,0.05)"/><circle cx="80" cy="25" r="6" fill="rgba(255,100,50,0.05)"/></svg>');
  background-size: cover; opacity:.3; animation: wc-cavern 20s ease-in-out infinite;
}
.scn-witches-cavern-cauldron .cauldron-body {
  position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:120px; height:100px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.8), 0 10px 30px rgba(0,0,0,.6);
}
.scn-witches-cavern-cauldron .cauldron-rim {
  position:absolute; bottom:48%; left:50%; transform:translateX(-50%); width:130px; height:15px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-witches-cavern-cauldron .fire-glow {
  position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:80px; height:100px; background: radial-gradient(ellipse at 50% 100%, #ff6a20 0%, #c84010 40%, #4a1a0a 80%); filter: blur(20px); animation: wc-fire 3s ease-in-out infinite alternate;
}
.scn-witches-cavern-cauldron .witch-left,
.scn-witches-cavern-cauldron .witch-right,
.scn-witches-cavern-cauldron .witch-center {
  position:absolute; bottom:10%; width:30px; height:80px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center;
}
.scn-witches-cavern-cauldron .witch-left { left:15%; animation: wc-witch-l 12s ease-in-out infinite; }
.scn-witches-cavern-cauldron .witch-right { right:15%; animation: wc-witch-r 14s ease-in-out infinite reverse; }
.scn-witches-cavern-cauldron .witch-center { left:50%; transform:translateX(-50%); bottom:16%; height:90px; width:35px; animation: wc-witch-c 10s ease-in-out infinite; }
.scn-witches-cavern-cauldron .bubble-1,
.scn-witches-cavern-cauldron .bubble-2 {
  position:absolute; bottom:38%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #ff8a40 0%, transparent 80%); border-radius:50%; animation: wc-bubble 2s ease-in-out infinite;
}
.scn-witches-cavern-cauldron .bubble-2 { left:52%; width:4px; height:4px; animation-delay: .7s; }
@keyframes wc-cavern { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; } }
@keyframes wc-fire { 0% { transform: translateX(-50%) scale(1); opacity:.7; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(.95); opacity:.8; } }
@keyframes wc-witch-l { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-5px) rotate(-3deg); } 66% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wc-witch-r { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-4px) rotate(3deg); } 66% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wc-witch-c { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-6px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes wc-bubble { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-20px) scale(1.5); opacity:.5; } 100% { transform: translateY(-40px) scale(0); opacity:0; } }

.scn-item-cauldron-poison {
  background: 
    linear-gradient(180deg, #0f0f1a 0%, #1a0f0a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 70%, #4a2a1a 0%, transparent 50%);
}
.scn-item-cauldron-poison .cauldron-back {
  position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:140px; height:130px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -30px 40px rgba(0,0,0,.9);
}
.scn-item-cauldron-poison .cauldron-front {
  position:absolute; bottom:8%; left:50%; transform:translateX(-50%); width:130px; height:100px; background: radial-gradient(ellipse at 50% 50%, #5a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-item-cauldron-poison .froth {
  position:absolute; bottom:42%; left:50%; transform:translateX(-50%); width:100px; height:20px; background: radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, transparent 80%); filter: blur(4px); animation: ic-froth 4s ease-in-out infinite alternate;
}
.scn-item-cauldron-poison .snake-fillet {
  position:absolute; bottom:50%; left:40%; width:12px; height:40px; background: linear-gradient(180deg, #3a5a3a, #1a2a1a); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform: rotate(20deg); animation: ic-snake 5s ease-in-out infinite;
}
.scn-item-cauldron-poison .eyeball {
  position:absolute; bottom:55%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #c0a060 0%, #4a3a1a 60%, #1a1a0a 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(200,160,80,.5); animation: ic-eye 3s ease-in-out infinite;
}
.scn-item-cauldron-poison .toe-claw {
  position:absolute; bottom:45%; left:48%; width:6px; height:14px; background: linear-gradient(180deg, #6a5a3a 0%, #2a1a0a 100%); border-radius: 60% 60% 30% 30% / 70% 70% 30% 30%; transform: rotate(-15deg); animation: ic-claw 4s ease-in-out infinite alternate;
}
.scn-item-cauldron-poison .bat-wing {
  position:absolute; bottom:35%; right:25%; width:20px; height:12px; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #0a0a1a 100%); border-radius: 0 60% 60% 0 / 0 80% 80% 0; transform-origin: left center; animation: ic-wing 6s ease-in-out infinite;
}
.scn-item-cauldron-poison .spark {
  position:absolute; bottom:60%; left:30%; width:4px; height:4px; background: #ff8a40; border-radius:50%; box-shadow: 0 0 8px #ff8a40; animation: ic-spark 2s ease-in-out infinite alternate;
}
@keyframes ic-froth { 0% { transform: translateX(-50%) scaleY(1); opacity:.5; } 50% { transform: translateX(-50%) scaleY(1.2); opacity:.8; } 100% { transform: translateX(-50%) scaleY(1); opacity:.5; } }
@keyframes ic-snake { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ic-eye { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-1px) scale(1.1); } 100% { transform: translate(-1px,1px) scale(1); } }
@keyframes ic-claw { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-20deg) scaleY(1.2); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes ic-wing { 0% { transform: scale(1,1); } 50% { transform: scale(1.2, .8); } 100% { transform: scale(1,1); } }
@keyframes ic-spark { 0% { opacity:.2; transform: translateY(0); } 100% { opacity:1; transform: translateY(-10px); } }

.scn-more-evil-ingredients {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-more-evil-ingredients .vortex-back {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, rgba(255,80,20,.05) 0%, transparent 60%); animation: me-vortex 15s linear infinite;
}
.scn-more-evil-ingredients .cauldron-heavy {
  position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:150px; height:140px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -40px 50px rgba(0,0,0,.9);
}
.scn-more-evil-ingredients .dragon-scale {
  position:absolute; bottom:40%; left:35%; width:10px; height:8px; background: radial-gradient(circle, #5a4a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: me-scale 6s ease-in-out infinite;
}
.scn-more-evil-ingredients .wolf-tooth {
  position:absolute; bottom:50%; left:50%; width:6px; height:12px; background: linear-gradient(180deg, #c0b080 0%, #6a5a3a 100%); border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%; transform: rotate(-10deg); animation: me-tooth 4s ease-in-out infinite alternate;
}
.scn-more-evil-ingredients .shark-fin {
  position:absolute; bottom:60%; right:30%; width:10px; height:15px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 0 100% 0 0 / 0 100% 0 0; animation: me-fin 5s ease-in-out infinite;
}
.scn-more-evil-ingredients .yew-branch {
  position:absolute; bottom:30%; left:25%; width:4px; height:25px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 20% 20% 0 0; transform: rotate(15deg); animation: me-yew 7s ease-in-out infinite;
}
.scn-more-evil-ingredients .tongue-slime {
  position:absolute; bottom:55%; left:42%; width:8px; height:4px; background: radial-gradient(ellipse, #6a6a5a 0%, #3a3a2a 100%); border-radius: 50%; filter: blur(2px); animation: me-slime 3s ease-in-out infinite alternate;
}
.scn-more-evil-ingredients .ember {
  position:absolute; bottom:30%; left:55%; width:3px; height:3px; background: #ff6a20; border-radius:50%; box-shadow: 0 0 6px #ff6a20; animation: me-ember 2s ease-in-out infinite alternate;
}
@keyframes me-vortex { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes me-scale { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(45deg) scale(1.2); } 100% { transform: rotate(30deg) scale(1); } }
@keyframes me-tooth { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes me-fin { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0) scale(1); } }
@keyframes me-yew { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.2); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes me-slime { 0% { opacity:.3; transform: scaleX(1); } 100% { opacity:.7; transform: scaleX(1.5); } }
@keyframes me-ember { 0% { opacity:.2; transform: translateY(0); } 100% { opacity:1; transform: translateY(-15px); } }

/* Scene 1: lady-takes-daggers - tense, dark */
.scn-lady-takes-daggers {
  background: linear-gradient(180deg, #0e0a20 0%, #1c1430 40%, #2a1a40 100%), radial-gradient(ellipse at 50% 30%, #3a2a50 0%, transparent 60%);
}
.scn-lady-takes-daggers .lt-bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a1230 0%, #0a0820 100%); }
.scn-lady-takes-daggers .lt-hand-l, .lt-hand-r { position:absolute; bottom:25%; width:28%; height:40%; background:radial-gradient(ellipse, #c8b8a0 0%, #8a7a6a 60%, #4a3a2a 100%); border-radius:40% 40% 60% 60%; box-shadow:0 0 20px rgba(0,0,0,.6); }
.scn-lady-takes-daggers .lt-hand-l { left:12%; transform-origin:80% 80%; animation:lt-shake 0.3s ease-in-out infinite; }
.scn-lady-takes-daggers .lt-hand-r { right:12%; transform-origin:20% 80%; animation:lt-shake 0.3s ease-in-out infinite alternate; }
.scn-lady-takes-daggers .lt-dagger-l, .lt-dagger-r { position:absolute; bottom:45%; width:6%; height:30%; background:linear-gradient(180deg, #d0d0d0 0%, #808080 50%, #303030 100%); border-radius:4px; box-shadow:0 0 12px rgba(255,255,255,.2); }
.scn-lady-takes-daggers .lt-dagger-l { left:20%; transform:rotate(-20deg); animation:lt-dagger 0.4s ease-in-out infinite; }
.scn-lady-takes-daggers .lt-dagger-r { right:20%; transform:rotate(20deg); animation:lt-dagger 0.4s ease-in-out infinite reverse; }
.scn-lady-takes-daggers .lt-blood { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background:linear-gradient(90deg, #6e1a1a 0%, #9e2a2a 50%, #6e1a1a 100%); border-radius:50%; filter:blur(4px); animation:lt-blood-pulse 2s ease-in-out infinite; }
.scn-lady-takes-daggers .lt-candle { position:absolute; bottom:60%; left:45%; width:8%; height:15%; background:linear-gradient(180deg, #f0d0a0 0%, #c08040 70%); border-radius:10% 10% 30% 30%; box-shadow:0 0 30px #ffd080, 0 0 60px rgba(255,208,128,.4); }
.scn-lady-takes-daggers .lt-face { position:absolute; bottom:50%; left:40%; width:20%; height:25%; background:radial-gradient(ellipse, #2a1a1a 0%, #0a0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 -10px 20px #000; }
.scn-lady-takes-daggers .lt-drip { position:absolute; bottom:10%; left:45%; width:4px; height:0; background:#7e1a1a; border-radius:50%; animation:lt-drip 1s ease-in-out infinite; }
@keyframes lt-shake { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes lt-dagger { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-5px); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes lt-blood-pulse { 0% { opacity:.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.3); } 100% { opacity:.6; transform:scaleY(1); } }
@keyframes lt-drip { 0% { height:0; opacity:0; } 50% { height:40px; opacity:1; } 100% { height:0; opacity:0; } }

/* Scene 2: porter-comedy - funny, dim interior */
.scn-porter-comedy { background: linear-gradient(180deg, #2a2018 0%, #3a2a20 50%, #4a3a30 100%); }
.scn-porter-comedy .pc-bg { position:absolute; inset:0; background:linear-gradient(90deg, #1a1410 0%, transparent 50%, #1a1410 100%); }
.scn-porter-comedy .pc-door { position:absolute; bottom:10%; left:30%; width:40%; height:70%; background:linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%); border-radius:4% 4% 0 0; border:4px solid #3a2a1a; box-shadow:inset 0 0 20px #1a100a; }
.scn-porter-comedy .pc-keyhole { position:absolute; bottom:45%; left:47%; width:6%; height:10%; background:#0a0800; border-radius:30% 30% 50% 50%; border:2px solid #8a7050; }
.scn-porter-comedy .pc-key { position:absolute; bottom:40%; left:40%; width:15%; height:20%; background:linear-gradient(180deg, #b0a080 0%, #705040 100%); border-radius:20% 20% 60% 60%; transform:rotate(15deg); animation:pc-key-turn 3s ease-in-out infinite; }
.scn-porter-comedy .pc-hat { position:absolute; bottom:75%; left:20%; width:25%; height:20%; background:#3a2a1a; border-radius:30% 30% 20% 20%; box-shadow:0 8px 0 #2a1a0a; animation:pc-hat-bob 2s ease-in-out infinite; }
.scn-porter-comedy .pc-bottle { position:absolute; bottom:15%; right:20%; width:10%; height:25%; background:linear-gradient(180deg, #c8a070 0%, #8a6040 100%); border-radius:30% 30% 20% 20%; transform:rotate(25deg); animation:pc-bottle-tilt 4s ease-in-out infinite; }
.scn-porter-comedy .pc-lantern { position:absolute; bottom:65%; right:25%; width:12%; height:18%; background:radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius:30%; box-shadow:0 0 30px #ffd080; animation:pc-flicker 0.5s ease-in-out infinite; }
.scn-porter-comedy .pc-porter { position:absolute; bottom:10%; left:10%; width:20%; height:60%; background:radial-gradient(ellipse, #3a3228 0%, #1a1410 100%); border-radius:40% 40% 30% 30%; animation:pc-wobble 1.2s ease-in-out infinite; }
@keyframes pc-key-turn { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(30deg) translateY(-5px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes pc-hat-bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes pc-bottle-tilt { 0% { transform:rotate(25deg); } 50% { transform:rotate(35deg); } 100% { transform:rotate(25deg); } }
@keyframes pc-flicker { 0% { opacity:.7; box-shadow:0 0 20px #ffd080; } 50% { opacity:1; box-shadow:0 0 40px #ffd080; } 100% { opacity:.7; box-shadow:0 0 20px #ffd080; } }
@keyframes pc-wobble { 0% { transform:rotate(0deg); } 30% { transform:rotate(3deg); } 60% { transform:rotate(-3deg); } 100% { transform:rotate(0deg); } }

/* Scene 3: porter-gate-knocking - funny, dim interior, hell-gate */
.scn-porter-gate-knocking { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3020 100%), radial-gradient(ellipse at 50% 30%, #5a3020 0%, transparent 60%); }
.scn-porter-gate-knocking .pg-bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a1010 0%, #2a1a10 100%); }
.scn-porter-gate-knocking .pg-gate { position:absolute; bottom:5%; left:20%; width:60%; height:80%; background:linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:8% 8% 0 0; border:8px solid #1a0a00; box-shadow:inset 0 0 30px #000; }
.scn-porter-gate-knocking .pg-knocker { position:absolute; bottom:55%; left:45%; width:10%; height:15%; background:radial-gradient(ellipse, #8a6040 0%, #4a3020 100%); border-radius:40% 40% 30% 30%; transform-origin:50% 0; animation:pg-knock 0.8s ease-in-out infinite; }
.scn-porter-gate-knocking .pg-chain-l, .pg-chain-r { position:absolute; top:40%; width:4%; height:20%; background:repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 8px, #3a2a1a 8px, #3a2a1a 16px); }
.scn-porter-gate-knocking .pg-chain-l { left:30%; animation:pg-chain 2s ease-in-out infinite; }
.scn-porter-gate-knocking .pg-chain-r { right:30%; animation:pg-chain 2s ease-in-out infinite reverse; }
.scn-porter-gate-knocking .pg-porter { position:absolute; bottom:5%; left:10%; width:20%; height:70%; background:radial-gradient(ellipse, #2a2218 0%, #0a0a08 100%); border-radius:40% 40% 30% 30%; animation:pg-porter-bounce 1.5s ease-in-out infinite; }
.scn-porter-gate-knocking .pg-key { position:absolute; bottom:25%; left:35%; width:12%; height:30%; background:linear-gradient(180deg, #c0a080 0%, #7a6040 100%); border-radius:20% 20% 60% 60%; transform:rotate(-10deg); animation:pg-key-wag 2s ease-in-out infinite; }
.scn-porter-gate-knocking .pg-glow { position:absolute; bottom:50%; left:45%; width:10%; height:10%; background:radial-gradient(circle, #ff8040 0%, transparent 70%); filter:blur(10px); animation:pg-glow-pulse 3s ease-in-out infinite; }
@keyframes pg-knock { 0% { transform:rotate(0deg); } 20% { transform:rotate(30deg); } 40% { transform:rotate(-30deg); } 60% { transform:rotate(20deg); } 100% { transform:rotate(0deg); } }
@keyframes pg-chain { 0% { transform:rotate(0deg); } 50% { transform:rotate(8deg); } 100% { transform:rotate(0deg); } }
@keyframes pg-porter-bounce { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes pg-key-wag { 0% { transform:rotate(-10deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-10deg); } }
@keyframes pg-glow-pulse { 0% { opacity:.3; transform:scale(.8); } 50% { opacity:.7; transform:scale(1.2); } 100% { opacity:.3; transform:scale(.8); } }

/* Scene 4: porter-equivocator-tailor - funny, dim interior */
.scn-porter-equivocator-tailor { background: linear-gradient(180deg, #2a2218 0%, #3a2a1a 50%, #4a3420 100%); }
.scn-porter-equivocator-tailor .pe-bg { position:absolute; inset:0; background:linear-gradient(90deg, #1a1410 0%, transparent 40%, #1a1410 100%); }
.scn-porter-equivocator-tailor .pe-tailor { position:absolute; bottom:15%; left:15%; width:18%; height:60%; background:radial-gradient(ellipse, #3a3228 0%, #1a1410 100%); border-radius:30% 30% 20% 20%; animation:pe-tilt 3s ease-in-out infinite; }
.scn-porter-equivocator-tailor .pe-scissors { position:absolute; bottom:30%; left:30%; width:20%; height:8%; background:linear-gradient(90deg, #a08060 0%, #705040 100%); border-radius:40%; transform-origin:50% 50%; animation:pe-snip 0.6s ease-in-out infinite; }
.scn-porter-equivocator-tailor .pe-tape { position:absolute; bottom:40%; left:50%; width:5%; height:40%; background:repeating-linear-gradient(0deg, #c0a080 0px, #c0a080 8px, #e0c0a0 8px, #e0c0a0 16px); border-radius:2px; transform:rotate(10deg); animation:pe-unroll 4s linear infinite; }
.scn-porter-equivocator-tailor .pe-needle { position:absolute; bottom:55%; left:40%; width:2%; height:20%; background:#d0c0a0; border-radius:1px; transform:rotate(45deg); animation:pe-stitch 0.8s ease-in-out infinite; }
.scn-porter-equivocator-tailor .pe-cloth { position:absolute; bottom:10%; right:15%; width:25%; height:40%; background:linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius:10%; transform:rotate(-5deg); animation:pe-float 5s ease-in-out infinite; }
.scn-porter-equivocator-tailor .pe-thread { position:absolute; bottom:50%; left:42%; width:0; height:0; border:1px dashed #a08060; animation:pe-sew 2s linear infinite; }
.scn-porter-equivocator-tailor .pe-counter { position:absolute; bottom:5%; left:20%; width:60%; height:10%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 -4px 0 #2a1a0a; }
@keyframes pe-tilt { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(5deg); } }
@keyframes pe-snip { 0% { transform:rotate(0deg) scaleX(1); } 25% { transform:rotate(-20deg) scaleX(.8); } 50% { transform:rotate(0deg) scaleX(1); } 75% { transform:rotate(20deg) scaleX(.8); } 100% { transform:rotate(0deg) scaleX(1); } }
@keyframes pe-unroll { 0% { height:0; } 100% { height:40%; } }
@keyframes pe-stitch { 0%,100% { transform:translateY(0) rotate(45deg); } 50% { transform:translateY(-10px) rotate(40deg); } }
@keyframes pe-float { 0%,100% { transform:translateY(0) rotate(-5deg); } 50% { transform:translateY(-15px) rotate(0deg); } }
@keyframes pe-sew { 0% { border-width:0 0 0 2px; opacity:0; } 50% { opacity:1; } 100% { border-width:2px 0 0 0; opacity:0; } }

/* Scene: banquo-suspicion-sollioquy (bq-) – tense, bright interior */
.scn-banquo-suspicion-sollioquy {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 20%, #d4b080 0%, transparent 60%);
}

.scn-banquo-suspicion-sollioquy .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  animation: bq-wall 10s ease-in-out infinite alternate;
}

.scn-banquo-suspicion-sollioquy .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}

.scn-banquo-suspicion-sollioquy .pillar-left {
  position:absolute; left:10%; bottom:20%; width:6%; height:70%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 4px / 8px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

.scn-banquo-suspicion-sollioquy .pillar-right {
  position:absolute; right:10%; bottom:20%; width:6%; height:70%;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 4px / 8px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

.scn-banquo-suspicion-sollioquy .arch-top {
  position:absolute; top:0; left:0; right:0; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 70%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: bq-arch 8s infinite alternate;
}

.scn-banquo-suspicion-sollioquy .figure-banquo {
  position:absolute; bottom:28%; left:45%; width:10%; height:45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bq-footstep 4s ease-in-out infinite;
}

.scn-banquo-suspicion-sollioquy .shadow-banquo {
  position:absolute; bottom:28%; left:35%; width:15%; height:20%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: bq-shade 4s ease-in-out infinite reverse;
}

.scn-banquo-suspicion-sollioquy .torch-left {
  position:absolute; left:20%; bottom:70%; width:3%; height:12%;
  background: radial-gradient(circle, #ffc080 0%, #b06030 50%, #402010 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 15px #ffa050, 0 0 80px 30px rgba(255,160,80,0.3);
  animation: bq-flicker 2s ease-in-out infinite alternate;
}

.scn-banquo-suspicion-sollioquy .torch-right {
  position:absolute; right:20%; bottom:70%; width:3%; height:12%;
  background: radial-gradient(circle, #ffc080 0%, #b06030 50%, #402010 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 15px #ffa050, 0 0 80px 30px rgba(255,160,80,0.3);
  animation: bq-flicker 2s ease-in-out infinite alternate 0.7s;
}

@keyframes bq-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bq-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes bq-footstep { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(2deg) } 50% { transform: translateX(4%) rotate(-1deg) } 75% { transform: translateX(2%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bq-shade { 0% { transform: scaleX(1) skewX(0deg) } 25% { transform: scaleX(1.1) skewX(-5deg) } 50% { transform: scaleX(0.9) skewX(5deg) } 75% { transform: scaleX(1.05) skewX(-3deg) } 100% { transform: scaleX(1) skewX(0deg) } }
@keyframes bq-flicker { 0% { opacity:0.8; box-shadow: 0 0 30px 10px #ffa050; } 50% { opacity:1; box-shadow: 0 0 50px 20px #ffb060; } 100% { opacity:0.9; box-shadow: 0 0 35px 12px #ff9030; } }

/* Scene: macbeth-welcomes-banquo (mw-) – warm, bright interior */
.scn-macbeth-welcomes-banquo {
  background: 
    linear-gradient(180deg, #c0a080 0%, #a08060 40%, #604020 100%),
    radial-gradient(ellipse at 50% 40%, #f0d0b0 0%, transparent 50%);
}

.scn-macbeth-welcomes-banquo .feast-table {
  position:absolute; bottom:15%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 5% 5% 30% 30% / 10% 10% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: mw-table 12s ease-in-out infinite;
}

.scn-macbeth-welcomes-banquo .tablecloth {
  position:absolute; bottom:15%; left:15%; right:15%; height:5%;
  background: linear-gradient(90deg, #d0b090 0%, #e0c0a0 50%, #c0a080 100%);
  border-radius: 0 0 30% 30%;
  filter: blur(1px);
}

.scn-macbeth-welcomes-banquo .plate-left {
  position:absolute; bottom:22%; left:25%; width:8%; height:6%;
  background: radial-gradient(circle, #f0e0d0 0%, #c0a080 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mw-plate 8s infinite alternate;
}

.scn-macbeth-welcomes-banquo .plate-right {
  position:absolute; bottom:22%; right:25%; width:8%; height:6%;
  background: radial-gradient(circle, #f0e0d0 0%, #c0a080 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mw-plate 8s infinite alternate 1s;
}

.scn-macbeth-welcomes-banquo .goblet {
  position:absolute; bottom:24%; left:48%; width:4%; height:10%;
  background: linear-gradient(90deg, #b09070 0%, #d0b090 50%, #a08060 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(5deg);
  animation: mw-goblet 20s ease-in-out infinite alternate;
}

.scn-macbeth-welcomes-banquo .candelabra {
  position:absolute; bottom:35%; left:45%; width:10%; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #605040 0%, #302010 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #ffd080;
  animation: mw-candle 3s ease-in-out infinite alternate;
}

.scn-macbeth-welcomes-banquo .figure-macbeth {
  position:absolute; bottom:10%; left:35%; width:12%; height:60%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: mw-greet 6s ease-in-out infinite;
}

.scn-macbeth-welcomes-banquo .figure-banquo {
  position:absolute; bottom:10%; right:35%; width:12%; height:60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: mw-bow 6s ease-in-out infinite 0.5s;
}

.scn-macbeth-welcomes-banquo .warm-glare {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,200,150,0.2) 0%, transparent 70%);
  animation: mw-glare 5s ease-in-out infinite alternate;
}

@keyframes mw-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mw-plate { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes mw-goblet { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(2deg) } }
@keyframes mw-candle { 0% { box-shadow: 0 0 20px 5px #ffd080; } 50% { box-shadow: 0 0 40px 15px #ffc060; } 100% { box-shadow: 0 0 25px 8px #ffb040; } }
@keyframes mw-greet { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1%) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mw-bow { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) scaleY(0.98) } 50% { transform: rotate(0deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes mw-glare { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* Scene: banquo-ride-pledge (bp-) – warm, bright interior */
.scn-banquo-ride-pledge {
  background: 
    linear-gradient(180deg, #b09060 0%, #907050 30%, #604020 100%),
    radial-gradient(ellipse at 60% 30%, #e0c0a0 0%, transparent 50%);
}

.scn-banquo-ride-pledge .door-frame {
  position:absolute; left:20%; right:20%; bottom:15%; height:70%;
  border: 8px solid #5a3a1a;
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  background: #3a2a1a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.scn-banquo-ride-pledge .door-open {
  position:absolute; left:30%; right:28%; bottom:15%; height:70%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 5% 5% 0 0;
  transform: skewY(5deg);
  animation: bp-door 10s ease-in-out infinite alternate;
}

.scn-banquo-ride-pledge .horse-silhouette {
  position:absolute; bottom:20%; right:15%; width:20%; height:40%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%;
  transform: scaleX(-1);
  animation: bp-horse 8s ease-in-out infinite;
}

.scn-banquo-ride-pledge .figure-banquo {
  position:absolute; bottom:30%; left:45%; width:10%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bp-walk 6s ease-in-out infinite;
}

.scn-banquo-ride-pledge .figure-macbeth {
  position:absolute; bottom:30%; left:25%; width:10%; height:40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bp-walk 6s ease-in-out infinite 0.5s reverse;
}

.scn-banquo-ride-pledge .riding-cape {
  position:absolute; bottom:30%; right:15%; width:15%; height:25%;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 60% 20% 20% 40% / 80% 20% 20% 40%;
  filter: blur(2px);
  animation: bp-cape 8s ease-in-out infinite;
}

.scn-banquo-ride-pledge .torch-portal {
  position:absolute; left:30%; bottom:70%; width:4%; height:14%;
  background: radial-gradient(circle, #ffc080 0%, #b06030 50%, #402010 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 15px #ffa050, 0 0 80px 30px rgba(255,160,80,0.3);
  animation: bp-flicker 2s ease-in-out infinite alternate;
}

.scn-banquo-ride-pledge .evening-sky {
  position:absolute; top:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #202030 0%, #403050 100%);
  opacity: 0.4;
  animation: bp-sky 15s linear infinite alternate;
}

@keyframes bp-door { 0% { transform: skewY(5deg) } 50% { transform: skewY(8deg) } 100% { transform: skewY(2deg) } }
@keyframes bp-horse { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(-3%) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes bp-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(3deg) } 50% { transform: translateX(4%) rotate(-2deg) } 75% { transform: translateX(2%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bp-cape { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3%) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bp-flicker { 0% { opacity:0.8; box-shadow: 0 0 30px 10px #ffa050; } 50% { opacity:1; box-shadow: 0 0 50px 20px #ffb060; } 100% { opacity:0.9; box-shadow: 0 0 35px 12px #ff9030; } }
@keyframes bp-sky { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

/* Scene: macbeth-alone-fears-banquo (ma-) – dark, bright interior (but mood dark) */
.scn-macbeth-alone-fears-banquo {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a2a 0%, transparent 60%);
}

.scn-macbeth-alone-fears-banquo .wall-dark {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 100%);
  animation: ma-wall 12s ease-in-out infinite alternate;
}

.scn-macbeth-alone-fears-banquo .floor-dark {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}

.scn-macbeth-alone-fears-banquo .throne-shadow {
  position:absolute; bottom:20%; left:35%; right:30%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: ma-shadow 8s ease-in-out infinite alternate;
}

.scn-macbeth-alone-fears-banquo .figure-macbeth-alone {
  position:absolute; bottom:25%; left:42%; width:15%; height:50%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ma-turn 6s ease-in-out infinite;
}

.scn-macbeth-alone-fears-banquo .face-hand {
  position:absolute; bottom:55%; left:45%; width:8%; height:15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0;
  animation: ma-hand 4s ease-in-out infinite alternate;
}

.scn-macbeth-alone-fears-banquo .candle-glow {
  position:absolute; bottom:30%; left:25%; width:5%; height:12%;
  background: radial-gradient(circle, #ffd080 0%, #b06030 50%, #402010 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 15px #ffa050, 0 0 80px 30px rgba(255,160,80,0.3);
  animation: ma-candle 3s ease-in-out infinite alternate;
}

.scn-macbeth-alone-fears-banquo .creeping-veil {
  position:absolute; top:0; left:0; right:0; height:100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
  animation: ma-veil 15s ease-in-out infinite alternate;
}

@keyframes ma-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes ma-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }
@keyframes ma-turn { 0% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(0deg) } }
@keyframes ma-hand { 0% { transform: translateY(0) } 50% { transform: translateY(-5%) scale(1.1) } 100% { transform: translateY(0) } }
@keyframes ma-candle { 0% { opacity:0.7; box-shadow: 0 0 20px 5px #ffa050; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffb060; } 100% { opacity:0.8; box-shadow: 0 0 25px 8px #ff9030; } }
@keyframes ma-veil { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* first-apparition-warns-macduff */
.scn-first-apparition-warns-macduff {
  background: radial-gradient(ellipse at 50% 60%, #3a1e0e 0%, #1a0a04 60%, #0d0502 100%),
              linear-gradient(180deg, #2c1408 0%, #160803 100%);
}
.scn-first-apparition-warns-macduff .bg-cavern {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #4f2b14 0%, transparent 70%);
  animation: fa-cavern 8s ease-in-out infinite alternate;
}
.scn-first-apparition-warns-macduff .fire {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 20%, #ffae3a 0%, #e85a0b 40%, #5c1a02 70%, transparent 80%);
  border-radius: 60% 60% 30% 30%; filter: blur(3px);
  animation: fa-fire 2s ease-in-out infinite;
}
.scn-first-apparition-warns-macduff .embers {
  position: absolute; bottom: 15%; left: 18%; width: 100px; height: 20px;
  background: radial-gradient(circle, #e87b1a 0%, transparent 70%);
  animation: fa-ember 1s ease-in-out infinite;
}
.scn-first-apparition-warns-macduff .smoke {
  position: absolute; bottom: 50%; left: 25%; width: 120px; height: 160px;
  background: linear-gradient(180deg, rgba(70,40,20,0.6) 0%, transparent 80%);
  border-radius: 60%; filter: blur(12px);
  animation: fa-smoke 12s ease-in-out infinite alternate;
}
.scn-first-apparition-warns-macduff .apparition.helmet {
  position: absolute; top: 20%; left: 55%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #d4a263 0%, #7a4f23 60%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: 0 0 30px 10px rgba(232, 123, 26, 0.4);
  animation: fa-helmet 4s ease-in-out infinite;
}
.scn-first-apparition-warns-macduff .macbeth {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0603 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  transform: scaleX(-1);
  animation: fa-macbeth 6s ease-in-out infinite;
}
.scn-first-apparition-warns-macduff .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0502 0%, transparent 100%);
}
.scn-first-apparition-warns-macduff .glow-rim {
  position: absolute; inset: 0; border: 2px solid rgba(255, 174, 58, 0.15);
  border-radius: 15px;
  animation: fa-glow-rim 5s ease-in-out infinite alternate;
}
@keyframes fa-cavern { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fa-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-5px); } 100% { transform: scaleY(0.95) translateY(2px); } }
@keyframes fa-ember { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.7; transform: translateY(1px); } }
@keyframes fa-smoke { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 50% { transform: translate(-10px, -15px) scale(1.1); opacity: 0.3; } 100% { transform: translate(5px, -5px) scale(0.9); opacity: 0.4; } }
@keyframes fa-helmet { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(7deg) translateY(0); } 75% { transform: rotate(2deg) translateY(2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes fa-macbeth { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 30% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 60% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes fa-glow-rim { 0% { box-shadow: inset 0 0 20px rgba(232, 123, 26, 0.1); } 50% { box-shadow: inset 0 0 40px rgba(232, 123, 26, 0.2); } 100% { box-shadow: inset 0 0 10px rgba(232, 123, 26, 0.05); } }

/* second-apparition-promises-safety */
.scn-second-apparition-promises-safety {
  background: radial-gradient(ellipse at 50% 70%, #4a1f0e 0%, #1c0a04 60%, #0d0502 100%),
              linear-gradient(180deg, #2a1107 0%, #120602 100%);
}
.scn-second-apparition-promises-safety .bg-pit {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, #3a180a 0%, transparent 70%);
  animation: sb-pit 10s ease-in-out infinite alternate;
}
.scn-second-apparition-promises-safety .cauldron-glow {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 60px;
  background: radial-gradient(circle, #e8771a 0%, #b84f0b 40%, transparent 70%);
  border-radius: 50%;
  animation: sb-cauldron 3s ease-in-out infinite;
}
.scn-second-apparition-promises-safety .apparition.bloody-child {
  position: absolute; top: 25%; left: 55%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #702243 60%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(200, 85, 61, 0.5);
  animation: sb-bloody 2.5s ease-in-out infinite;
}
.scn-second-apparition-promises-safety .macbeth-kneel {
  position: absolute; bottom: 15%; left: 30%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0603 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform: scaleX(-1) skewX(3deg);
  animation: sb-kneel 8s ease-in-out infinite;
}
.scn-second-apparition-promises-safety .blood-drip {
  position: absolute; top: 40%; left: 55%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, transparent 100%);
  border-radius: 50%;
  animation: sb-drip 1.5s ease-in-out infinite;
}
.scn-second-apparition-promises-safety .sparkles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 60% 30%, rgba(255, 174, 58, 0.2) 0%, transparent 10%);
  background-size: 20px 20px;
  animation: sb-sparks 2s step-end infinite;
}
.scn-second-apparition-promises-safety .shadow-walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 20%, transparent 80%, rgba(0,0,0,0.5) 100%);
}
@keyframes sb-pit { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sb-cauldron { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.6; } }
@keyframes sb-bloody { 0% { transform: rotate(-3deg) translateY(0); } 30% { transform: rotate(0deg) translateY(-4px); } 60% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(-1deg) translateY(2px); } }
@keyframes sb-kneel { 0% { transform: scaleX(-1) skewX(3deg) translateY(0); } 50% { transform: scaleX(-1) skewX(3deg) translateY(-2px); } 100% { transform: scaleX(-1) skewX(3deg) translateY(0); } }
@keyframes sb-drip { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.8); opacity: 0.5; } }
@keyframes sb-sparks { 0%, 100% { opacity: 0; } 50% { opacity: 0.3; } }

/* macbeth-resolves-macduff-death */
.scn-macbeth-resolves-macduff-death {
  background: radial-gradient(ellipse at 30% 50%, #3a1e0e 0%, #170703 60%, #090301 100%),
              linear-gradient(180deg, #201008 0%, #0e0502 100%);
}
.scn-macbeth-resolves-macduff-death .bg-throne {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, #2c1408 0%, transparent 70%);
  animation: mr-throne 12s ease-in-out infinite alternate;
}
.scn-macbeth-resolves-macduff-death .torch {
  position: absolute; bottom: 40%; left: 15%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #e8771a 0%, #5c1a02 60%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  filter: blur(2px);
  animation: mr-torch 2s ease-in-out infinite;
}
.scn-macbeth-resolves-macduff-death .apparition.crowned-child {
  position: absolute; top: 25%; left: 50%; width: 55px; height: 60px;
  background: linear-gradient(180deg, #d4a263 0%, #7a4f23 60%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(212, 162, 99, 0.3);
  animation: mr-crowned 5s ease-in-out infinite;
}
.scn-macbeth-resolves-macduff-death .tree-branch {
  position: absolute; top: 25%; left: 42%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a180a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: mr-branch 7s ease-in-out infinite;
}
.scn-macbeth-resolves-macduff-death .macbeth-stand {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0603 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  transform: scaleX(-1);
  animation: mr-stand 9s ease-in-out infinite;
}
.scn-macbeth-resolves-macduff-death .crown-shine {
  position: absolute; top: 28%; left: 52%; width: 12px; height: 8px;
  background: radial-gradient(circle, #ffd680 0%, transparent 60%);
  border-radius: 50%;
  animation: mr-shine 2s ease-in-out infinite;
}
.scn-macbeth-resolves-macduff-death .smoke-curl {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, rgba(80,40,20,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: mr-curl 15s ease-in-out infinite alternate;
}
.scn-macbeth-resolves-macduff-death .ground-ash {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #0a0502 0%, transparent 100%);
}
@keyframes mr-throne { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mr-torch { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }
@keyframes mr-crowned { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mr-branch { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(-20deg) scaleY(0.95); } }
@keyframes mr-stand { 0% { transform: scaleX(-1) translateY(0); } 30% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 60% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes mr-shine { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.5; transform: scale(0.8); } }
@keyframes mr-curl { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 50% { transform: translate(-12px, -10px) scale(1.15); opacity: 0.6; } 100% { transform: translate(8px, -20px) scale(0.9); opacity: 0.3; } }

/* third-apparition-assures-birnam */
.scn-third-apparition-assures-birnam {
  background: radial-gradient(ellipse at 60% 50%, #2d1608 0%, #100602 60%, #050201 100%),
              linear-gradient(180deg, #1a0c06 0%, #0a0401 100%);
}
.scn-third-apparition-assures-birnam .bg-hill {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: hotpink; /* placeholder - will be replaced */
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%) no-repeat;
  clip-path: polygon(0% 100%, 25% 30%, 50% 40%, 75% 25%, 100% 35%, 100% 100%);
  animation: ta-hill 20s ease-in-out infinite alternate;
}
.scn-third-apparition-assures-birnam .fire-pit {
  position: absolute; bottom: 15%; left: 30%; width: 90px; height: 50px;
  background: radial-gradient(circle, #e8771a 0%, #7a2f02 40%, transparent 70%);
  border-radius: 50%;
  animation: ta-pit 3s ease-in-out infinite;
}
.scn-third-apparition-assures-birnam .apparition.tree-child {
  position: absolute; top: 30%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #c8a46e 0%, #7a4f23 60%, #3a2510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 25px 12px rgba(200, 164, 110, 0.3);
  animation: ta-tree-child 6s ease-in-out infinite;
}
.scn-third-apparition-assures-birnam .birnam-wood {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 20%;
  background: repeating-linear-gradient(90deg, #2a1a0e 0px, #2a1a0e 8px, transparent 8px, transparent 20px);
  background-size: 20px 100%;
  filter: blur(2px);
  animation: ta-wood 40s linear infinite;
}
.scn-third-apparition-assures-birnam .macbeth-shadow {
  position: absolute; bottom: 18%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0603 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: scaleX(-1) skewX(2deg);
  animation: ta-macbeth 7s ease-in-out infinite;
}
.scn-third-apparition-assures-birnam .ember-stream {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 80px;
  background: linear-gradient(0deg, #e8771a 0%, transparent 100%);
  filter: blur(4px);
  animation: ta-ember-stream 1.5s ease-in-out infinite;
}
.scn-third-apparition-assures-birnam .distant-keep {
  position: absolute; bottom: 25%; left: 70%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #362216 0%, #1a0f08 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
  animation: ta-keep 0s linear; /* static but needs keyframe? we'll add dummy */
}
.scn-third-apparition-assures-birnam .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(40,20,10,0.3) 0%, transparent 60%);
  animation: ta-mist 15s ease-in-out infinite alternate;
}
@keyframes ta-hill { 0% { opacity: 0.9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.85; transform: translateY(0); } }
@keyframes ta-pit { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.6; } }
@keyframes ta-tree-child { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(0deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ta-wood { 0% { background-position: 0 0; } 100% { background-position: -200px 0; } }
@keyframes ta-macbeth { 0% { transform: scaleX(-1) skewX(2deg) translateY(0); } 50% { transform: scaleX(-1) skewX(2deg) translateY(-2px); } 100% { transform: scaleX(-1) skewX(2deg) translateY(0); } }
@keyframes ta-ember-stream { 0% { opacity: 0.3; transform: scaleY(0.8); } 50% { opacity: 0.8; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes ta-keep { 0%,100% { background: linear-gradient(180deg, #362216 0%, #1a0f08 100%); } }
@keyframes ta-mist { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-malcolm-urges-revenge {
  background: 
    linear-gradient(180deg, #1a1010 0%, #2a1a12 50%, #2a1810 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-malcolm-urges-revenge .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-malcolm-urges-revenge .whetstone {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 15px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mal-whetstone 6s ease-in-out infinite;
}
.scn-malcolm-urges-revenge .sword {
  position: absolute; bottom: 20%; left: 35%; width: 14px; height: 80px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px 2px 6px 6px; transform-origin: bottom center;
  animation: mal-sword 4s ease-in-out infinite alternate;
}
.scn-malcolm-urges-revenge .hand {
  position: absolute; bottom: 25%; left: 32%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 80% 90%;
  animation: mal-hand 4s ease-in-out infinite alternate;
}
.scn-malcolm-urges-revenge .candle {
  position: absolute; bottom: 32%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px 2px 0 0;
}
.scn-malcolm-urges-revenge .candle::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 10px; height: 12px;
  background: radial-gradient(circle at 50% 0%, #ffd060 0%, #ffb020 50%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: mal-flame 2s ease-in-out infinite alternate;
}
.scn-malcolm-urges-revenge .wall-shadow {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 40%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: mal-shadow 8s ease-in-out infinite alternate;
}
@keyframes mal-whetstone {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mal-sword {
  0% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.02); }
  100% { transform: rotate(0) scaleY(1); }
}
@keyframes mal-hand {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes mal-flame {
  0% { transform: scaleY(1) scaleX(0.8); opacity: 0.9; }
  50% { transform: scaleY(1.2) scaleX(1); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(0.7); opacity: 0.8; }
}
@keyframes mal-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-gentlewoman-reports-sleepwalking {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #14101a 50%, #1a1220 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a2a 0%, transparent 80%);
}
.scn-gentlewoman-reports-sleepwalking .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a14 0%, #0a0604 100%);
}
.scn-gentlewoman-reports-sleepwalking .bed {
  position: absolute; bottom: 10%; left: 10%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a0e0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-gentlewoman-reports-sleepwalking .bed::after {
  content: ''; position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
}
.scn-gentlewoman-reports-sleepwalking .sleepwalker {
  position: absolute; bottom: 12%; left: 25%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #f0e0c8 0%, #c0a890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gen-walk 5s ease-in-out infinite;
}
.scn-gentlewoman-reports-sleepwalking .sleepwalker::before {
  content: ''; position: absolute; top: -8px; left: 4px; width: 14px; height: 16px;
  background: radial-gradient(circle, #f0e0c8 0%, #d0b8a0 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-gentlewoman-reports-sleepwalking .taper {
  position: absolute; bottom: 35%; left: 30%; width: 5px; height: 25px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px;
}
.scn-gentlewoman-reports-sleepwalking .taper::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 14px;
  background: radial-gradient(circle at 50% 0%, #ffd060 0%, #ffb020 50%, transparent 100%);
  filter: blur(4px); border-radius: 50%;
  animation: gen-flame 3s ease-in-out infinite alternate;
}
.scn-gentlewoman-reports-sleepwalking .gentlewoman {
  position: absolute; bottom: 12%; right: 15%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #2a1a14 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gen-watch 6s ease-in-out infinite alternate;
}
.scn-gentlewoman-reports-sleepwalking .nightgown {
  position: absolute; bottom: 12%; left: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(240,224,200,0.6) 0%, rgba(192,168,144,0.4) 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%;
  filter: blur(2px); animation: gen-gown 5s ease-in-out infinite;
}
@keyframes gen-walk {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(-1deg); }
  50% { transform: translateX(6px) rotate(1deg); }
  75% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gen-flame {
  0% { transform: scaleY(1) scaleX(0.7); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(1); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(0.6); opacity: 0.9; }
}
@keyframes gen-watch {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes gen-gown {
  0% { transform: translateX(0) rotate(0); opacity: 0.5; }
  50% { transform: translateX(2px) rotate(3deg); opacity: 0.7; }
  100% { transform: translateX(0) rotate(0); opacity: 0.5; }
}

.scn-doctor-observes-lady-macbeth {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #16101e 50%, #1a1222 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 70%);
}
.scn-doctor-observes-lady-macbeth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
}
.scn-doctor-observes-lady-macbeth .desk {
  position: absolute; bottom: 10%; left: 10%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-doctor-observes-lady-macbeth .doctor {
  position: absolute; bottom: 12%; left: 20%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #2a1a14 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: doc-tilt 8s ease-in-out infinite alternate;
}
.scn-doctor-observes-lady-macbeth .lady {
  position: absolute; bottom: 10%; right: 15%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #f0e0c8 0%, #c0a890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: doc-write 6s ease-in-out infinite;
}
.scn-doctor-observes-lady-macbeth .taper {
  position: absolute; bottom: 30%; right: 20%; width: 5px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px;
}
.scn-doctor-observes-lady-macbeth .taper::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 14px;
  background: radial-gradient(circle at 50% 0%, #ffd060 0%, #ffb020 50%, transparent 100%);
  filter: blur(4px); border-radius: 50%;
  animation: doc-flame 3s ease-in-out infinite alternate;
}
.scn-doctor-observes-lady-macbeth .paper {
  position: absolute; bottom: 18%; right: 25%; width: 20px; height: 16px;
  background: linear-gradient(135deg, #f0e0b0 0%, #d0c090 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: doc-paper 4s ease-in-out infinite;
}
@keyframes doc-tilt {
  0% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes doc-write {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(-5deg) translateY(2px); }
  50% { transform: rotate(0) translateY(0); }
  75% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes doc-flame {
  0% { transform: scaleY(1) scaleX(0.7); opacity: 0.8; }
  50% { transform: scaleY(1.2) scaleX(1); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(0.6); opacity: 0.9; }
}
@keyframes doc-paper {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-lady-macbeth-enters-with-taper {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #14101a 50%, #1a1220 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 80%);
}
.scn-lady-macbeth-enters-with-taper .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a14 0%, #0a0604 100%);
}
.scn-lady-macbeth-enters-with-taper .doorframe {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 20%;
  border: 4px solid #2a1a12; background: transparent;
  border-radius: 8px 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-lady-macbeth-enters-with-taper .figure {
  position: absolute; bottom: 12%; left: 45%; width: 24px; height: 75px;
  background: linear-gradient(180deg, #f0e0c8 0%, #c0a890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lad-enter 8s ease-in-out infinite;
}
.scn-lady-macbeth-enters-with-taper .figure::before {
  content: ''; position: absolute; top: -6px; left: 5px; width: 14px; height: 14px;
  background: radial-gradient(circle, #f0e0c8 0%, #d0b8a0 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-lady-macbeth-enters-with-taper .nightgown {
  position: absolute; bottom: 12%; left: 38%; width: 34px; height: 60px;
  background: linear-gradient(180deg, rgba(240,224,200,0.5) 0%, rgba(192,168,144,0.3) 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%;
  filter: blur(3px); animation: lad-gown 8s ease-in-out infinite;
}
.scn-lady-macbeth-enters-with-taper .taper {
  position: absolute; bottom: 45%; left: 48%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: lad-taper 4s ease-in-out infinite;
}
.scn-lady-macbeth-enters-with-taper .taper::after {
  content: ''; position: absolute; top: -12px; left: -4px; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 0%, #ffd060 0%, #ffb020 50%, transparent 100%);
  filter: blur(4px); border-radius: 50%;
  animation: lad-flame 3s ease-in-out infinite alternate;
}
.scn-lady-macbeth-enters-with-taper .shadow {
  position: absolute; bottom: 10%; left: 42%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: lad-shadow 8s ease-in-out infinite;
}
@keyframes lad-enter {
  0% { transform: translateX(20px) scaleX(0.8); opacity: 0; }
  20% { transform: translateX(0) scaleX(1); opacity: 1; }
  80% { transform: translateX(0) scaleX(1); opacity: 1; }
  100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.8; }
}
@keyframes lad-gown {
  0% { transform: translateX(0) rotate(0); opacity: 0.4; }
  50% { transform: translateX(2px) rotate(4deg); opacity: 0.6; }
  100% { transform: translateX(0) rotate(0); opacity: 0.4; }
}
@keyframes lad-taper {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes lad-flame {
  0% { transform: scaleY(1) scaleX(0.7); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(1); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(0.5); opacity: 0.9; }
}
@keyframes lad-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}

/* Scene: lady-macbeth-rubs-hands */
.scn-lady-macbeth-rubs-hands { background: linear-gradient(180deg, #1a0e0a 0%, #2d1810 60%, #3a1f12 100%), radial-gradient(ellipse at 50% 70%, #5e2a1a 0%, transparent 70%); }
.scn-lady-macbeth-rubs-hands .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1a0e0a 0%, transparent 60%); animation: lm1-bg 8s ease-in-out infinite alternate; }
.scn-lady-macbeth-rubs-hands .basin { position:absolute; bottom:20%; left:50%; width:120px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%); border-radius:0 0 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); }
.scn-lady-macbeth-rubs-hands .water { position:absolute; bottom:22%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: radial-gradient(ellipse, #7a4a2a 0%, transparent 70%); border-radius:50%; opacity:0.5; animation: lm1-ripple 6s ease-in-out infinite; }
.scn-lady-macbeth-rubs-hands .hands { position:absolute; bottom:28%; left:50%; width:70px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 50%, #4a2a1a 30%, transparent 32%), radial-gradient(ellipse at 70% 50%, #4a2a1a 30%, transparent 32%); background-size:50% 100%, 50% 100%; background-position: left center, right center; background-repeat:no-repeat; animation: lm1-rub 2s ease-in-out infinite; }
.scn-lady-macbeth-rubs-hands .candle { position:absolute; bottom:30%; right:25%; width:12px; height:40px; background: linear-gradient(180deg, #d4c0a0 0%, #8a7050 100%); border-radius:2px; box-shadow: 0 0 4px rgba(180,140,80,.4); }
.scn-lady-macbeth-rubs-hands .flame { position:absolute; bottom:calc(30% + 40px); right:calc(25% + 6px); width:8px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse 6px 14px at 50% 50%, #ffd080 0%, #ff8040 50%, transparent 100%); border-radius:50%; animation: lm1-flame 1s ease-in-out infinite alternate; }
.scn-lady-macbeth-rubs-hands .shadow { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse 70% 100% at 50% 100%, #000 0%, transparent 70%); animation: lm1-shadow-sway 7s ease-in-out infinite; }
@keyframes lm1-bg { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes lm1-ripple { 0% { transform:translateX(-50%) scaleX(1); opacity:.3 } 50% { transform:translateX(-50%) scaleX(1.08); opacity:.5 } 100% { transform:translateX(-50%) scaleX(1); opacity:.3 } }
@keyframes lm1-rub { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-50%) translateY(-1px) rotate(-4deg) } 50% { transform:translateX(-50%) translateY(0) rotate(4deg) } 75% { transform:translateX(-50%) translateY(-1px) rotate(-4deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes lm1-flame { 0% { transform:translateX(-50%) scaleY(1) scaleX(.9); opacity:.9 } 50% { transform:translateX(-50%) scaleY(1.2) scaleX(.7); opacity:1 } 100% { transform:translateX(-50%) scaleY(.85) scaleX(1); opacity:.8 } }
@keyframes lm1-shadow-sway { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(3px) scaleY(1.02) } 100% { transform:translateX(-2px) scaleY(.98) } }

/* Scene: spot-speech */
.scn-spot-speech { background: linear-gradient(180deg, #1a0e0a 0%, #2d1810 60%, #3a1f12 100%), radial-gradient(ellipse at 50% 60%, #4a2212 0%, transparent 70%); }
.scn-spot-speech .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #1a0e0a 0%, transparent 60%); animation: lm2-bg 10s ease-in-out infinite alternate; }
.scn-spot-speech .figure { position:absolute; bottom:20%; left:40%; width:60px; height:140px; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: lm2-figure-sway 6s ease-in-out infinite; }
.scn-spot-speech .arm { position:absolute; bottom:65%; left:50%; width:50px; height:10px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); border-radius:50%; transform-origin: left center; transform: rotate(-30deg); animation: lm2-arm 3s ease-in-out infinite; }
.scn-spot-speech .spot { position:absolute; bottom:35%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #6a2a1a 0%, #3a120a 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(100,30,10,.3); animation: lm2-pulse 4s ease-in-out infinite; }
.scn-spot-speech .candle { position:absolute; bottom:30%; right:20%; width:10px; height:35px; background: linear-gradient(180deg, #d4c0a0 0%, #8a7050 100%); border-radius:2px; }
.scn-spot-speech .shadow { position:absolute; bottom:0; left:0; width:100%; height:30%; background: radial-gradient(ellipse 60% 100% at 50% 100%, #000 0%, transparent 80%); animation: lm2-shadow 8s ease-in-out infinite; }
@keyframes lm2-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes lm2-figure-sway { 0% { transform:rotate(-1deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes lm2-arm { 0% { transform:rotate(-30deg) } 50% { transform:rotate(-20deg) } 100% { transform:rotate(-30deg) } }
@keyframes lm2-pulse { 0% { box-shadow: 0 0 15px 4px rgba(100,30,10,.2); opacity:.6 } 50% { box-shadow: 0 0 30px 10px rgba(100,30,10,.5); opacity:1 } 100% { box-shadow: 0 0 15px 4px rgba(100,30,10,.2); opacity:.6 } }
@keyframes lm2-shadow { 0% { transform:scaleX(.95) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(.95) } }

/* Scene: thane-of-fife-wife */
.scn-thane-of-fife-wife { background: linear-gradient(180deg, #1a0e0a 0%, #2d1810 60%, #3a1f12 100%), radial-gradient(ellipse at 50% 70%, #4a2212 0%, transparent 70%); }
.scn-thane-of-fife-wife .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 20%, #1a0e0a 0%, transparent 60%); }
.scn-thane-of-fife-wife .chair { position:absolute; bottom:15%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:10% 10% 20% 20%; box-shadow: inset 0 -8px 10px rgba(0,0,0,.7); animation: lm3-chair 12s ease-in-out infinite; }
.scn-thane-of-fife-wife .figure { position:absolute; bottom:20%; left:40%; width:50px; height:120px; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: lm3-figure 9s ease-in-out infinite; }
.scn-thane-of-fife-wife .hands-wrung { position:absolute; bottom:35%; left:45%; width:40px; height:30px; background: radial-gradient(ellipse 20px 15px at 30% 50%, #3a2015 0%, transparent 100%), radial-gradient(ellipse 20px 15px at 70% 50%, #3a2015 0%, transparent 100%); background-repeat:no-repeat; transform-origin: center; animation: lm3-wring 3s ease-in-out infinite; }
.scn-thane-of-fife-wife .cloth { position:absolute; bottom:25%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 50% 20% 20%; transform:rotate(-10deg); animation: lm3-cloth 5s ease-in-out infinite; }
.scn-thane-of-fife-wife .candle { position:absolute; bottom:30%; right:25%; width:10px; height:30px; background: linear-gradient(180deg, #d4c0a0 0%, #8a7050 100%); border-radius:2px; }
.scn-thane-of-fife-wife .flicker { position:absolute; bottom:calc(30% + 30px); right:calc(25% + 5px); width:6px; height:12px; transform:translateX(-50%); background: radial-gradient(ellipse 5px 12px at 50% 50%, #ffd080 0%, #ff8040 60%, transparent 100%); border-radius:50%; animation: lm3-flame 0.8s ease-in-out infinite alternate; }
@keyframes lm3-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes lm3-figure { 0% { transform:rotate(-0.5deg) } 33% { transform:rotate(1deg) } 66% { transform:rotate(-1deg) } 100% { transform:rotate(-0.5deg) } }
@keyframes lm3-wring { 0% { transform:translateX(0) rotate(0deg); opacity:.8 } 33% { transform:translateX(-2px) rotate(-3deg); opacity:1 } 66% { transform:translateX(2px) rotate(3deg); opacity:.9 } 100% { transform:translateX(0) rotate(0deg); opacity:.8 } }
@keyframes lm3-cloth { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-3px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes lm3-flame { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.3) scaleX(.7) } 100% { transform:translateX(-50%) scaleY(.8) } }

/* Scene: smell-of-blood */
.scn-smell-of-blood { background: linear-gradient(180deg, #1a0e0a 0%, #2d1810 60%, #3a1f12 100%), radial-gradient(ellipse at 50% 60%, #5e2a1a 0%, transparent 70%); }
.scn-smell-of-blood .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1a0e0a 0%, transparent 60%); }
.scn-smell-of-blood .hand { position:absolute; bottom:35%; left:40%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #3a2015 50%, transparent 52%), radial-gradient(ellipse at 50% 70%, #3a2015 50%, transparent 52%); background-size:60% 40%, 60% 40%; background-position:50% 20%, 50% 80%; background-repeat:no-repeat; transform:rotate(15deg); animation: lm4-hand 5s ease-in-out infinite; }
.scn-smell-of-blood .stain { position:absolute; bottom:30%; left:42%; width:15px; height:15px; background: radial-gradient(circle, #6a2a1a 0%, #3a120a 80%, transparent 100%); border-radius:50%; opacity:.7; animation: lm4-stain-glow 4s ease-in-out infinite; }
.scn-smell-of-blood .drip { position:absolute; bottom:20%; left:40%; width:4px; height:40px; background: linear-gradient(180deg, #5a2015 0%, #2a0E08 100%); border-radius:50%; animation: lm4-drip 6s ease-in-out infinite; }
.scn-smell-of-blood .candle { position:absolute; bottom:30%; right:20%; width:10px; height:35px; background: linear-gradient(180deg, #d4c0a0 0%, #8a7050 100%); border-radius:2px; }
.scn-smell-of-blood .shadow { position:absolute; bottom:0; left:0; width:100%; height:25%; background: radial-gradient(ellipse 70% 100% at 50% 100%, #000 0%, transparent 70%); animation: lm4-shadow 8s ease-in-out infinite; }
.scn-smell-of-blood .curtain { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, rgba(20,10,5,.4) 0%, transparent 30%, transparent 70%, rgba(20,10,5,.4) 100%); }
@keyframes lm4-hand { 0% { transform:rotate(15deg) translateY(0) } 33% { transform:rotate(10deg) translateY(-3px) } 66% { transform:rotate(20deg) translateY(2px) } 100% { transform:rotate(15deg) translateY(0) } }
@keyframes lm4-stain-glow { 0% { box-shadow: 0 0 5px 2px rgba(100,30,10,.2); opacity:.6 } 50% { box-shadow: 0 0 15px 6px rgba(100,30,10,.4); opacity:.9 } 100% { box-shadow: 0 0 5px 2px rgba(100,30,10,.2); opacity:.6 } }
@keyframes lm4-drip { 0% { transform:scaleY(1); opacity:.5 } 50% { transform:scaleY(1.1); opacity:.8 } 100% { transform:scaleY(1); opacity:.5 } }
@keyframes lm4-shadow { 0% { transform:scaleX(.98) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(.98) } }

/* Background layers use muted overcast tones with warm or tense accents */
.scn-heath-thane-title {
  background: 
    linear-gradient(180deg, #7a7a6a 0%, #9a8a7a 30%, #c8b8a0 70%, #a09080 100%),
    radial-gradient(ellipse at 50% 0%, #d4c4b0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-heath-thane-title .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a6a5a 0%, #8a7a6a 50%, #6a5a4a 100%);
  animation: htt-sky 12s ease-in-out infinite alternate;
}
.scn-heath-thane-title .ground-moor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
}
.scn-heath-thane-title .hill-bg {
  position: absolute; bottom: 35%; left: 10%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 0 0;
  transform: scaleX(1.2) translateX(-10%);
  animation: htt-hill-bg 20s ease-in-out infinite alternate;
}
.scn-heath-thane-title .hill-fg {
  position: absolute; bottom: 25%; right: 5%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 60% 40% 0 0;
  transform: scaleX(1.1) translateX(5%);
  animation: htt-hill-fg 18s ease-in-out infinite alternate-reverse;
}
.scn-heath-thane-title .figure-thane {
  position: absolute; bottom: 22%; left: 38%; width: 24px; 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: htt-walk 4s ease-in-out infinite, htt-bob 2s ease-in-out infinite;
}
.scn-heath-thane-title .figure-herald {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: htt-walk 4.2s ease-in-out infinite 0.5s, htt-bob 2.1s ease-in-out infinite 0.5s;
}
.scn-heath-thane-title .banner {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 20px;
  background: #7a6030;
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(122,96,48,0.4);
  animation: htt-flag 3s ease-in-out infinite alternate;
}
.scn-heath-thane-title .cloud-a,
.scn-heath-thane-title .cloud-b {
  position: absolute; top: 15%; width: 100px; height: 20px;
  background: rgba(180,170,150,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: htt-drift 35s linear infinite;
}
.scn-heath-thane-title .cloud-a { left: -10%; }
.scn-heath-thane-title .cloud-b { left: 50%; animation-delay: -12s; width: 80px; height: 15px; }

@keyframes htt-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes htt-hill-bg { 0% { transform: scaleX(1.2) translateX(-10%) translateY(0); } 50% { transform: scaleX(1.2) translateX(-10%) translateY(-2px); } 100% { transform: scaleX(1.2) translateX(-10%) translateY(0); } }
@keyframes htt-hill-fg { 0% { transform: scaleX(1.1) translateX(5%) translateY(0); } 50% { transform: scaleX(1.1) translateX(5%) translateY(-3px); } 100% { transform: scaleX(1.1) translateX(5%) translateY(0); } }
@keyframes htt-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(8px) translateY(0) rotate(2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(16px) translateY(0) rotate(-2deg); } }
@keyframes htt-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes htt-flag { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.2) rotate(5deg); } 100% { transform: scaleX(1) rotate(-5deg); } }
@keyframes htt-drift { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-heath-ambition-stirred {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #2a2a3a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 60% 50%, #5a4a5a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-heath-ambition-stirred .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, transparent 40%, #1a1a2a 100%);
  animation: has-void 8s ease-in-out infinite alternate;
}
.scn-heath-ambition-stirred .shadow-figure {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a14 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: has-shiver 2s ease-in-out infinite;
}
.scn-heath-ambition-stirred .crown-shadow {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 12px;
  background: #4a3a2a;
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: has-gleam 3s ease-in-out infinite alternate;
}
.scn-heath-ambition-stirred .light-orb {
  position: absolute; bottom: 45%; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle, #d4c0a0 0%, #b0a080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(180,160,120,0.5);
  animation: has-pulse 2s ease-in-out infinite alternate;
}
.scn-heath-ambition-stirred .hand-reach {
  position: absolute; bottom: 25%; left: 38%; width: 16px; height: 10px;
  background: #3a2a1a;
  border-radius: 30% 30% 0 0;
  transform-origin: bottom center;
  animation: has-reach 3s ease-in-out infinite;
}
.scn-heath-ambition-stirred .ground-shard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-heath-ambition-stirred .mist-wisp {
  position: absolute; bottom: 10%; left: 5%; width: 80px; height: 30px;
  background: rgba(80,80,100,0.15);
  border-radius: 50%;
  filter: blur(12px);
  animation: has-mist 15s ease-in-out infinite alternate;
}

@keyframes has-void { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes has-shiver { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(-2px) rotate(1deg); } 75% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes has-gleam { 0% { box-shadow: 0 4px 12px rgba(0,0,0,0.6); } 50% { box-shadow: 0 4px 30px rgba(100,80,60,0.4); } 100% { box-shadow: 0 4px 12px rgba(0,0,0,0.6); } }
@keyframes has-pulse { 0% { transform: scale(0.8); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.8; } }
@keyframes has-reach { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(-10deg); } 50% { transform: translateX(14px) rotate(-20deg); } 75% { transform: translateX(8px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes has-mist { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(20px) scaleY(1.3); } 100% { transform: translateX(-10px) scaleY(0.8); } }

.scn-heath-imperial-theme {
  background: 
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #1a1a2e 70%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a5a 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-heath-imperial-theme .sky-slate {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%);
  animation: hit-sky 14s ease-in-out infinite alternate;
}
.scn-heath-imperial-theme .ground-bleak {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-heath-imperial-theme .throne-block {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.7);
  animation: hit-throne 5s ease-in-out infinite;
}
.scn-heath-imperial-theme .crown-imperial {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 16px;
  transform: translateX(-50%);
  background: #6a5030;
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px 3px rgba(106,80,48,0.4);
  animation: hit-crown 3s ease-in-out infinite alternate;
}
.scn-heath-imperial-theme .scepter {
  position: absolute; bottom: 23%; left: 46%; width: 6px; height: 40px;
  background: #5a4a3a;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: hit-scepter 4s ease-in-out infinite alternate;
}
.scn-heath-imperial-theme .cloud-raven {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 12px;
  background: rgba(60,60,80,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: hit-drift 40s linear infinite;
}
.scn-heath-imperial-theme .glow-ember {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a070 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(200,160,112,0.3);
  animation: hit-glow 2s ease-in-out infinite alternate;
}

@keyframes hit-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes hit-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hit-crown { 0% { transform: translateX(-50%) rotate(-3deg) scale(1); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.95); } }
@keyframes hit-scepter { 0% { transform: rotate(12deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(0); } }
@keyframes hit-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes hit-glow { 0% { opacity:0.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.9); } }

.scn-heath-partner-rapt {
  background: 
    linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 30%, #2a2a3e 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 40% 60%, #5a4a4a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-heath-partner-rapt .sky-grey {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%);
  animation: hpr-sky 10s ease-in-out infinite alternate;
}
.scn-heath-partner-rapt .ground-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 60% 0 0 / 20% 80% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.5);
}
.scn-heath-partner-rapt .figure-rapt {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpr-trance 3s ease-in-out infinite;
}
.scn-heath-partner-rapt .figure-beholder {
  position: absolute; bottom: 18%; left: 55%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #14141e 0%, #222232 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpr-watch 4s ease-in-out infinite;
}
.scn-heath-partner-rapt .rock-ledge {
  position: absolute; bottom: 15%; left: 20%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: hpr-rock 20s ease-in-out infinite alternate;
}
.scn-heath-partner-rapt .mist-seam {
  position: absolute; bottom: 10%; left: 10%; width: 120px; height: 8px;
  background: rgba(100,100,120,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: hpr-mist 25s ease-in-out infinite alternate;
}
.scn-heath-partner-rapt .glow-focus {
  position: absolute; bottom: 30%; left: 42%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b0a890 0%, #8a7a70 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 6px rgba(138,122,112,0.3);
  animation: hpr-focus 2s ease-in-out infinite alternate;
}

@keyframes hpr-sky { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }
@keyframes hpr-trance { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg) scale(1.01); } 50% { transform: translateX(-1px) rotate(-2deg) scale(0.99); } 75% { transform: translateX(3px) rotate(1deg) scale(1.01); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hpr-watch { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hpr-rock { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes hpr-mist { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(15px) scaleY(1.4); } 100% { transform: translateX(-10px) scaleY(0.8); } }
@keyframes hpr-focus { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }

/* ---------- Scene: dunsinane-before-battle ---------- */
.scn-dunsinane-before-battle {
  background: linear-gradient(180deg, #5a5a5e 0%, #3a3a3e 50%, #2a2a2e 100%),
              radial-gradient(ellipse at 50% 30%, #6a6a6e 0%, transparent 70%);
}
.scn-dunsinane-before-battle .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6a6e 0%, #4a4a4e 60%, transparent 100%);
  animation: db-sky 12s ease-in-out infinite alternate;
}
.scn-dunsinane-before-battle .trees-bg {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 50%;
  background: radial-gradient(ellipse at 40% 100%, #2a3a2a 0%, transparent 70%),
              radial-gradient(ellipse at 60% 100%, #1a2a1a 0%, transparent 60%);
  border-radius: 30% 40% 0 0 / 50% 30% 0 0;
  filter: blur(2px);
  animation: db-bg-trees 20s ease-in-out infinite alternate;
}
.scn-dunsinane-before-battle .trees-fg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 20% 100%, #1a2a1a 0%, transparent 50%),
              radial-gradient(ellipse at 80% 100%, #0a1a0a 0%, transparent 50%);
  border-radius: 20% 30% 0 0 / 40% 20% 0 0;
  animation: db-fg-trees 15s ease-in-out infinite alternate;
}
.scn-dunsinane-before-battle .leaf-screen {
  position: absolute; bottom: 30%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, #1a3a1a 70%, transparent 100%);
  border-radius: 60% 40% 20% 20% / 80% 60% 30% 30%;
  filter: blur(1px);
  animation: db-sway 6s ease-in-out infinite alternate;
}
.scn-dunsinane-before-battle .leaf-left { left: 8%; transform-origin: bottom left; }
.scn-dunsinane-before-battle .leaf-right { right: 8%; transform-origin: bottom right; animation-direction: alternate-reverse; }
.scn-dunsinane-before-battle .soldier {
  position: absolute; bottom: 28%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-soldier 4s ease-in-out infinite;
}
.scn-dunsinane-before-battle .silhouette-1 { left: 25%; }
.scn-dunsinane-before-battle .silhouette-2 { left: 55%; animation-delay: -2s; }
.scn-dunsinane-before-battle .banner {
  position: absolute; bottom: 50%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: db-banner 5s ease-in-out infinite alternate;
}
@keyframes db-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes db-bg-trees {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes db-fg-trees {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(0.99); }
}
@keyframes db-sway {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}
@keyframes db-soldier {
  0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(4px) translateY(0) rotate(1deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
}
@keyframes db-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-3deg); }
}

/* ---------- Scene: battlefield-stake ---------- */
.scn-battlefield-stake {
  background: linear-gradient(180deg, #3a3a40 0%, #2a2a30 40%, #1a1a20 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a50 0%, transparent 70%);
}
.scn-battlefield-stake .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a50 0%, #2a2a30 70%, transparent 100%);
  animation: bs-sky 15s ease-in-out infinite alternate;
}
.scn-battlefield-stake .mist {
  position: absolute; inset: 30% 0 0 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,200,210,0.2) 0%, transparent 80%);
  filter: blur(8px);
  animation: bs-mist 12s ease-in-out infinite alternate;
}
.scn-battlefield-stake .stake {
  position: absolute; bottom: 24%; left: 50%; width: 10px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: bs-stake 3s ease-in-out infinite alternate;
}
.scn-battlefield-stake .figure-bound {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: bs-bound 4s ease-in-out infinite;
}
.scn-battlefield-stake .rope {
  position: absolute; bottom: 26%; width: 4px; height: 30px;
  background: #6a5a4a;
  border-radius: 2px;
  transform-origin: top center;
  animation: bs-rope 3s ease-in-out infinite;
}
.scn-battlefield-stake .rope-left { left: 46%; transform: rotate(20deg); }
.scn-battlefield-stake .rope-right { left: 52%; transform: rotate(-20deg); animation-delay: -1.5s; }
.scn-battlefield-stake .attacker {
  position: absolute; bottom: 22%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-attacker 4s ease-in-out infinite alternate;
}
.scn-battlefield-stake .attacker-left { left: 30%; }
.scn-battlefield-stake .attacker-right { right: 30%; animation-direction: alternate-reverse; }
@keyframes bs-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes bs-mist {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(3px); }
}
@keyframes bs-stake {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
}
@keyframes bs-bound {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes bs-rope {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(25deg) scaleY(1.05); }
  100% { transform: rotate(18deg); }
}
@keyframes bs-attacker {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}

/* ---------- Scene: battlefield-young-siward-death ---------- */
.scn-battlefield-young-siward-death {
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 50%, #0a0a10 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a40 0%, transparent 70%);
}
.scn-battlefield-young-siward-death .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3a40 0%, #1a1a20 70%, transparent 100%);
  animation: ys-sky 18s ease-in-out infinite alternate;
}
.scn-battlefield-young-siward-death .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: ys-hills 20s ease-in-out infinite alternate;
}
.scn-battlefield-young-siward-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.7);
}
.scn-battlefield-young-siward-death .figure-macbeth {
  position: absolute; bottom: 28%; left: 35%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: ys-macbeth 5s ease-in-out infinite alternate;
}
.scn-battlefield-young-siward-death .figure-young {
  position: absolute; bottom: 25%; left: 55%; width: 14px; height: 45px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: ys-young 6s ease-in-out infinite;
}
.scn-battlefield-young-siward-death .sword-falling {
  position: absolute; bottom: 40%; left: 58%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: ys-sword 3s ease-in-out infinite;
}
.scn-battlefield-young-siward-death .blood-splash {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ys-blood 4s ease-in-out infinite alternate;
}
@keyframes ys-sky {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes ys-hills {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes ys-macbeth {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(1px) translateY(0) rotate(-1deg); }
}
@keyframes ys-young {
  0% { transform: rotate(0deg) translateX(0); }
  30% { transform: rotate(-45deg) translateX(-10px) translateY(10px); }
  60% { transform: rotate(-90deg) translateX(-20px) translateY(20px); }
  100% { transform: rotate(-135deg) translateX(-30px) translateY(30px); opacity: 0.3; }
}
@keyframes ys-sword {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(15px); }
  100% { transform: rotate(60deg) translateY(30px); }
}
@keyframes ys-blood {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

/* ---------- Scene: battlefield-macduff-entry ---------- */
.scn-battlefield-macduff-entry {
  background: linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 50%, #1a1a1e 100%),
              radial-gradient(ellipse at 50% 40%, #4a4a4e 0%, transparent 70%);
}
.scn-battlefield-macduff-entry .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 70%, transparent 100%);
  animation: me-sky 14s ease-in-out infinite alternate;
}
.scn-battlefield-macduff-entry .storm-clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(100,100,110,0.4) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 30%, rgba(80,80,90,0.3) 0%, transparent 60%);
  filter: blur(4px);
  animation: me-clouds 25s linear infinite;
}
.scn-battlefield-macduff-entry .mist-low {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,200,210,0.15) 50%, transparent 100%);
  filter: blur(10px);
  animation: me-mist 10s ease-in-out infinite alternate;
}
.scn-battlefield-macduff-entry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
}
.scn-battlefield-macduff-entry .figure-macduff {
  position: absolute; bottom: 28%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.6);
  animation: me-macduff 5s ease-in-out infinite alternate;
}
.scn-battlefield-macduff-entry .sword-blade {
  position: absolute; bottom: 40%; left: 42%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #9a8a7a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: me-sword 4s ease-in-out infinite alternate;
}
.scn-battlefield-macduff-entry .corpse {
  position: absolute; bottom: 15%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: me-corpse 8s ease-in-out infinite;
}
.scn-battlefield-macduff-entry .corpse-1 { left: 20%; }
.scn-battlefield-macduff-entry .corpse-2 { right: 25%; animation-delay: -4s; }
@keyframes me-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes me-clouds {
  0% { transform: translateX(0); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(-20px); }
}
@keyframes me-mist {
  0% { opacity: 0.1; transform: translateY(0); }
  50% { opacity: 0.4; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(3px); }
}
@keyframes me-macduff {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}
@keyframes me-sword {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(-5deg); }
}
@keyframes me-corpse {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
}

/* macduff-defends-honour */
.scn-macduff-defends-honour {
  background: linear-gradient(180deg, #2b1b10 0%, #1a0f08 40%, #0d0704 100%),
              radial-gradient(ellipse at 50% 70%, #634023 0%, transparent 60%);
}
.scn-macduff-defends-honour .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3d2a1a 0%, #2b1b10 50%, #1a0f08 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: mdh-wall 12s ease-in-out infinite alternate;
}
.scn-macduff-defends-honour .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
  animation: mdh-floor 8s ease-in-out infinite;
}
.scn-macduff-defends-honour .figure {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2e1f12 0%, #1a0f08 70%, #0d0704 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 35% 35%;
  box-shadow: 0 0 20px 5px rgba(102, 56, 24, 0.3);
  animation: mdh-figure 4s ease-in-out infinite;
}
.scn-macduff-defends-honour .sword {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8b6930 0%, #5a4220 50%, #3a2a14 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(200,150,60,0.3);
  animation: mdh-sword 6s ease-in-out infinite alternate;
}
.scn-macduff-defends-honour .candle {
  position: absolute; bottom: 20%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 50%, #8b6930 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 8px #e8b050, 0 0 40px 16px rgba(200,150,50,0.4);
  animation: mdh-candle 3s ease-in-out infinite alternate;
}
.scn-macduff-defends-honour .shadow {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: mdh-shadow 5s ease-in-out infinite alternate;
}
.scn-macduff-defends-honour .glow {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 25% 65%, rgba(200,150,50,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: mdh-glow 7s ease-in-out infinite alternate;
}
@keyframes mdh-wall {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; transform: scaleY(1.01); }
}
@keyframes mdh-floor {
  0%, 100% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
}
@keyframes mdh-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  75% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes mdh-sword {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}
@keyframes mdh-candle {
  0%, 100% { opacity: 0.85; box-shadow: 0 0 15px 5px #e8b050, 0 0 30px 10px rgba(200,150,50,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 10px #f0c860, 0 0 50px 20px rgba(200,150,50,0.5); }
}
@keyframes mdh-shadow {
  0%, 100% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.7; }
}
@keyframes mdh-glow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}

/* malcolm-confesses-vices */
.scn-malcolm-confesses-vices {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f08 40%, #0d0704 100%),
              radial-gradient(ellipse at 50% 80%, #4a2e1a 0%, transparent 70%);
}
.scn-malcolm-confesses-vices .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3d2a1a 0%, #25160e 50%, #1a0f08 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  animation: mcv-bg 10s ease-in-out infinite alternate;
}
.scn-malcolm-confesses-vices .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.8);
  animation: mcv-floor 9s ease-in-out infinite;
}
.scn-malcolm-confesses-vices .figure-kneeling {
  position: absolute; bottom: 20%; left: 60%; transform: translateX(-50%);
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #2e1f12 0%, #1a0f08 70%, #0d0704 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 15px 3px rgba(102, 56, 24, 0.3);
  animation: mcv-figure 5s ease-in-out infinite;
}
.scn-malcolm-confesses-vices .table {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 10px;
  background: linear-gradient(180deg, #4a2e1a 0%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: mcv-table 7s ease-in-out infinite alternate;
}
.scn-malcolm-confesses-vices .candle {
  position: absolute; bottom: 22%; left: 28%; width: 5px; height: 15px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 50%, #8b6930 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 18px 6px #e8b050, 0 0 36px 12px rgba(200,150,50,0.35);
  animation: mcv-candle 3s ease-in-out infinite alternate;
}
.scn-malcolm-confesses-vices .shadow {
  position: absolute; bottom: 20%; left: 52%; width: 70px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: mcv-shadow 6s ease-in-out infinite alternate;
}
.scn-malcolm-confesses-vices .reflection {
  position: absolute; bottom: 12%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 20% 50%, rgba(200,150,50,0.1) 0%, transparent 70%);
  filter: blur(8px);
  opacity: 0.6;
  animation: mcv-reflection 4s ease-in-out infinite alternate;
}
@keyframes mcv-bg {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes mcv-floor {
  0%, 100% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-1px); }
}
@keyframes mcv-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98); }
  60% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
}
@keyframes mcv-table {
  0%, 100% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
}
@keyframes mcv-candle {
  0%, 100% { opacity: 0.85; box-shadow: 0 0 12px 4px #e8b050, 0 0 24px 8px rgba(200,150,50,0.3); }
  50% { opacity: 1; box-shadow: 0 0 22px 8px #f0c860, 0 0 44px 16px rgba(200,150,50,0.5); }
}
@keyframes mcv-shadow {
  0%, 100% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.3) scaleY(0.7); opacity: 0.7; }
}
@keyframes mcv-reflection {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.7; }
}

/* malcolm-self-accusation */
.scn-malcolm-self-accusation {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f08 45%, #0d0704 100%),
              radial-gradient(ellipse at 50% 75%, #3d2010 0%, transparent 60%);
}
.scn-malcolm-self-accusation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3d2a1a 0%, #2b1b10 60%, #1a0f08 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: msa-wall 14s ease-in-out infinite alternate;
}
.scn-malcolm-self-accusation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 50% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 18px 28px rgba(0,0,0,0.9);
  animation: msa-floor 11s ease-in-out infinite;
}
.scn-malcolm-self-accusation .figure-bowed {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 32px; height: 68px;
  background: linear-gradient(180deg, #2e1f12 0%, #1a0f08 60%, #0d0704 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 30% 30%;
  box-shadow: 0 0 18px 4px rgba(102, 56, 24, 0.3);
  animation: msa-figure 6s ease-in-out infinite;
}
.scn-malcolm-self-accusation .chair {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #25160e 100%);
  border-radius: 10% 10% 5% 5% / 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: msa-chair 8s ease-in-out infinite alternate;
}
.scn-malcolm-self-accusation .candle {
  position: absolute; bottom: 18%; left: 60%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 50%, #8b6930 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 16px 5px #e8b050, 0 0 32px 10px rgba(200,150,50,0.35);
  animation: msa-candle 3s ease-in-out infinite alternate;
}
.scn-malcolm-self-accusation .shadow {
  position: absolute; bottom: 25%; left: 42%; width: 60px; height: 22px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(6px);
  animation: msa-shadow 7s ease-in-out infinite alternate;
}
.scn-malcolm-self-accusation .stain {
  position: absolute; top: 20%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #3d2010 0%, transparent 80%);
  filter: blur(10px);
  opacity: 0.5;
  animation: msa-stain 9s ease-in-out infinite alternate;
}
@keyframes msa-wall {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 0.9; }
}
@keyframes msa-floor {
  0%, 100% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-2px); }
}
@keyframes msa-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-50%) rotate(-3deg) scale(0.98); }
  60% { transform: translateX(-50%) rotate(3deg) scale(1.02); }
}
@keyframes msa-chair {
  0%, 100% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
}
@keyframes msa-candle {
  0%, 100% { opacity: 0.85; box-shadow: 0 0 14px 4px #e8b050, 0 0 28px 8px rgba(200,150,50,0.3); }
  50% { opacity: 1; box-shadow: 0 0 20px 7px #f0c860, 0 0 40px 14px rgba(200,150,50,0.5); }
}
@keyframes msa-shadow {
  0%, 100% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(1.4) scaleY(0.6); opacity: 0.6; }
}
@keyframes msa-stain {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
}

/* macduff-contests */
.scn-macduff-contests {
  background: linear-gradient(180deg, #2b1b10 0%, #1a0f08 40%, #0d0704 100%),
              radial-gradient(ellipse at 50% 80%, #4a2e1a 0%, transparent 60%);
}
.scn-macduff-contests .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3d2a1a 0%, #2b1b10 50%, #1a0f08 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: mdc-bg 13s ease-in-out infinite alternate;
}
.scn-macduff-contests .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
  animation: mdc-floor 10s ease-in-out infinite;
}
.scn-macduff-contests .figure-left {
  position: absolute; bottom: 25%; left: 35%; transform: translateX(-50%);
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #2e1f12 0%, #1a0f08 70%, #0d0704 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 0 0 15px 3px rgba(102, 56, 24, 0.4);
  animation: mdc-figure-left 5s ease-in-out infinite;
}
.scn-macduff-contests .figure-right {
  position: absolute; bottom: 25%; left: 65%; transform: translateX(-50%);
  width: 35px; height: 72px;
  background: linear-gradient(180deg, #2e1f12 0%, #1a0f08 70%, #0d0704 100%);
  border-radius: 40% 40% 45% 45% / 50% 50% 40% 40%;
  box-shadow: 0 0 15px 3px rgba(102, 56, 24, 0.4);
  animation: mdc-figure-right 6s ease-in-out infinite;
}
.scn-macduff-contests .table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 8px;
  background: linear-gradient(180deg, #4a2e1a 0%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: mdc-table 8s ease-in-out infinite alternate;
}
.scn-macduff-contests .candle {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 5px; height: 16px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 50%, #8b6930 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 7px #e8b050, 0 0 40px 14px rgba(200,150,50,0.4);
  animation: mdc-candle 3s ease-in-out infinite alternate;
}
.scn-macduff-contests .shadow-left {
  position: absolute; bottom: 25%; left: 28%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: mdc-shadow-left 6s ease-in-out infinite alternate;
}
.scn-macduff-contests .shadow-right {
  position: absolute; bottom: 25%; right: 28%; width: 50px; height: 22px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: mdc-shadow-right 7s ease-in-out infinite alternate;
}
@keyframes mdc-bg {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 0.9; }
}
@keyframes mdc-floor {
  0%, 100% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-2px); }
}
@keyframes mdc-figure-left {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  75% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes mdc-figure-right {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(2deg); }
  60% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes mdc-table {
  0%, 100% { opacity: 0.8; transform: translateX(-50%) translateY(0); }
  50% { opacity: 1; transform: translateX(-50%) translateY(-1px); }
}
@keyframes mdc-candle {
  0%, 100% { opacity: 0.85; box-shadow: 0 0 15px 5px #e8b050, 0 0 30px 10px rgba(200,150,50,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 9px #f0c860, 0 0 50px 18px rgba(200,150,50,0.5); }
}
@keyframes mdc-shadow-left {
  0%, 100% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(1.3) scaleY(0.7); opacity: 0.6; }
}
@keyframes mdc-shadow-right {
  0%, 100% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.7; }
}

/* first-murderer-vengeful */
.scn-first-murderer-vengeful { 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 50%, #0a0a05 100%), radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%); 
}
.scn-first-murderer-vengeful .bg-wall { 
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 30% 30%/0 0 20% 20%; 
}
.scn-first-murderer-vengeful .bg-floor { 
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); 
}
.scn-first-murderer-vengeful .torch { 
  position:absolute; bottom:48%; left:28%; width:22px; height:34px; background: radial-gradient(circle, #ffcc66 0%, #cc8833 40%, #663300 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 12px rgba(255,200,100,.6), 0 0 80px 24px rgba(255,200,100,.3); animation: fmv-torch 1.8s ease-in-out infinite alternate; 
}
.scn-first-murderer-vengeful .figure-left { 
  position:absolute; bottom:20%; left:18%; width:36px; height:66px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fmv-figure 3s ease-in-out infinite; 
}
.scn-first-murderer-vengeful .figure-right { 
  position:absolute; bottom:20%; left:44%; width:34px; height:60px; background: linear-gradient(180deg, #222222 0%, #111111 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fmv-figure 3s ease-in-out infinite 1s; 
}
.scn-first-murderer-vengeful .shadow-left { 
  position:absolute; bottom:0; left:14%; width:50px; height:22px; background: linear-gradient(180deg, rgba(0,0,0,.7), transparent); border-radius: 50%; filter: blur(4px); animation: fmv-shadow 6s ease-in-out infinite alternate; 
}
.scn-first-murderer-vengeful .shadow-right { 
  position:absolute; bottom:0; right:20%; width:44px; height:18px; background: linear-gradient(180deg, rgba(0,0,0,.6), transparent); border-radius: 50%; filter: blur(4px); animation: fmv-shadow 6s ease-in-out infinite alternate-reverse; 
}
@keyframes fmv-torch { 
  0% { transform: scale(1) rotate(0deg); opacity:.85; box-shadow: 0 0 30px 8px rgba(255,200,100,.5), 0 0 60px 16px rgba(255,200,100,.25); } 
  50% { transform: scale(1.06) rotate(3deg); opacity:1; box-shadow: 0 0 50px 16px rgba(255,200,100,.7), 0 0 90px 28px rgba(255,200,100,.35); } 
  100% { transform: scale(0.94) rotate(-3deg); opacity:.8; box-shadow: 0 0 20px 4px rgba(255,200,100,.4), 0 0 40px 12px rgba(255,200,100,.2); } 
}
@keyframes fmv-figure { 
  0% { transform: translateY(0) rotate(-1deg); } 
  50% { transform: translateY(-2px) rotate(1deg); } 
  100% { transform: translateY(0) rotate(-1deg); } 
}
@keyframes fmv-shadow { 
  0% { transform: scaleX(1) translateX(0); opacity:.6; } 
  50% { transform: scaleX(1.2) translateX(4px); opacity:.8; } 
  100% { transform: scaleX(0.9) translateX(-2px); opacity:.5; } 
}

/* macbeth-orders-assassination */
.scn-macbeth-orders-assassination { 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #7a5a3a 0%, transparent 80%); 
}
.scn-macbeth-orders-assassination .bg-chamber { 
  position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40%/0 0 30% 30%; 
}
.scn-macbeth-orders-assassination .table { 
  position:absolute; bottom:22%; left:30%; width:30%; height:8%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); 
}
.scn-macbeth-orders-assassination .candle { 
  position:absolute; bottom:28%; left:53%; width:8px; height:28px; background: linear-gradient(180deg, #eebb66 0%, #cc8833 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,.6); animation: mao-candle 2.2s ease-in-out infinite alternate; 
}
.scn-macbeth-orders-assassination .macbeth { 
  position:absolute; bottom:16%; left:20%; width:40px; height:72px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mao-figure 3s ease-in-out infinite; 
}
.scn-macbeth-orders-assassination .murderer { 
  position:absolute; bottom:16%; right:20%; width:38px; height:66px; background: linear-gradient(180deg, #222222 0%, #111111 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mao-figure 3s ease-in-out infinite 0.5s; 
}
.scn-macbeth-orders-assassination .candle-glow { 
  position:absolute; bottom:30%; left:52%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: mao-glow 2.5s ease-in-out infinite alternate; 
}
.scn-macbeth-orders-assassination .curtain { 
  position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 0 0 50% / 20% 0 0 20%; box-shadow: -6px 0 12px rgba(0,0,0,.4); 
}
@keyframes mao-candle { 
  0% { transform: scaleY(1) rotate(0deg); opacity:.9; } 
  50% { transform: scaleY(1.08) rotate(2deg); opacity:1; } 
  100% { transform: scaleY(0.92) rotate(-2deg); opacity:.8; } 
}
@keyframes mao-figure { 
  0% { transform: translateX(0) rotate(0deg); } 
  50% { transform: translateX(3px) rotate(1deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes mao-glow { 
  0% { transform: scale(1); opacity:.4; } 
  50% { transform: scale(1.3); opacity:.7; } 
  100% { transform: scale(0.9); opacity:.3; } 
}

/* murderers-resolve */
.scn-murderers-resolve { 
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 40%, #0a0505 100%), radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 60%); 
}
.scn-murderers-resolve .bg-hall { 
  position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); 
}
.scn-murderers-resolve .floor { 
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.6); 
}
.scn-murderers-resolve .figure-1 { 
  position:absolute; bottom:20%; left:15%; width:35px; height:64px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mre-figure 4s ease-in-out infinite; 
}
.scn-murderers-resolve .figure-2 { 
  position:absolute; bottom:20%; left:40%; width:38px; height:68px; background: linear-gradient(180deg, #222222 0%, #111111 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mre-figure 4s ease-in-out infinite 0.7s; 
}
.scn-murderers-resolve .figure-3 { 
  position:absolute; bottom:20%; right:15%; width:34px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mre-figure 4s ease-in-out infinite 1.4s; 
}
.scn-murderers-resolve .door { 
  position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:60px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 12px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,200,100,.1); 
}
.scn-murderers-resolve .shadow { 
  position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.8), transparent); border-radius: 50%; filter: blur(6px); animation: mre-shadow 8s ease-in-out infinite alternate; 
}
@keyframes mre-figure { 
  0% { transform: translateY(0) rotate(-1deg); } 
  50% { transform: translateY(-3px) rotate(1.5deg); } 
  100% { transform: translateY(0) rotate(-1deg); } 
}
@keyframes mre-shadow { 
  0% { transform: scaleX(1); opacity:.6; } 
  50% { transform: scaleX(1.15); opacity:.8; } 
  100% { transform: scaleX(0.9); opacity:.5; } 
}

/* lady-macbeth-restless */
.scn-lady-macbeth-restless { 
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #050510 100%), radial-gradient(ellipse at 30% 80%, #3a3a5e 0%, transparent 70%); 
}
.scn-lady-macbeth-restless .bg-room { 
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); 
}
.scn-lady-macbeth-restless .window { 
  position:absolute; top:10%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border: 4px solid #3a3a5a; border-radius: 8px; box-shadow: inset 0 0 20px rgba(200,200,255,.2); 
}
.scn-lady-macbeth-restless .moonlight { 
  position:absolute; top:10%; left:60%; width:80px; height:100px; background: linear-gradient(135deg, rgba(200,200,255,.15) 0%, transparent 100%); filter: blur(4px); animation: lmr-moonlight 12s ease-in-out infinite alternate; 
}
.scn-lady-macbeth-restless .figure { 
  position:absolute; bottom:24%; left:40%; width:36px; height:68px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lmr-figure 2.5s ease-in-out infinite; 
}
.scn-lady-macbeth-restless .shadow { 
  position:absolute; bottom:0; left:30%; width:60px; height:24px; background: linear-gradient(180deg, rgba(0,0,0,.6), transparent); border-radius: 50%; filter: blur(4px); animation: lmr-shadow 8s ease-in-out infinite alternate; 
}
.scn-lady-macbeth-restless .chair { 
  position:absolute; bottom:20%; left:65%; width:40px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); 
}
.scn-lady-macbeth-restless .candle { 
  position:absolute; bottom:30%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #ddaa55 0%, #aa7733 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 16px 4px rgba(200,170,100,.4); animation: lmr-candle 3s ease-in-out infinite alternate; 
}
@keyframes lmr-moonlight { 
  0% { opacity:.3; transform: translateX(0); } 
  50% { opacity:.6; transform: translateX(4px); } 
  100% { opacity:.2; transform: translateX(-2px); } 
}
@keyframes lmr-figure { 
  0% { transform: translateX(0) rotate(0deg); } 
  30% { transform: translateX(8px) rotate(2deg); } 
  60% { transform: translateX(-4px) rotate(-1deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes lmr-shadow { 
  0% { transform: scaleX(1) translateX(0); opacity:.5; } 
  50% { transform: scaleX(1.2) translateX(6px); opacity:.7; } 
  100% { transform: scaleX(0.9) translateX(-3px); opacity:.4; } 
}
@keyframes lmr-candle { 
  0% { transform: scaleY(1) rotate(0deg); opacity:.8; } 
  50% { transform: scaleY(1.06) rotate(2deg); opacity:1; } 
  100% { transform: scaleY(0.94) rotate(-2deg); opacity:.7; } 
}

.scn-lady-challenges-macbeth {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #1e1612 60%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 50%, #4a3228 0%, transparent 70%);
}
.scn-lady-challenges-macbeth .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  animation: lcm-wall 10s ease-in-out infinite alternate;
}
.scn-lady-challenges-macbeth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-lady-challenges-macbeth .shadow-arch {
  position: absolute; top: 5%; left: 50%; width: 60%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  filter: blur(8px);
  opacity: 0.6;
  animation: lcm-arch 14s ease-in-out infinite alternate;
}
.scn-lady-challenges-macbeth .figure-a {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lcm-figA 6s ease-in-out infinite;
}
.scn-lady-challenges-macbeth .figure-b {
  position: absolute; bottom: 30%; right: 30%; width: 44px; height: 96px;
  background: linear-gradient(180deg, #241c16 0%, #120e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lcm-figB 5.5s ease-in-out infinite alternate;
}
.scn-lady-challenges-macbeth .table {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-lady-challenges-macbeth .goblet {
  position: absolute; bottom: 32%; left: 46%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: lcm-goblet 8s ease-in-out infinite;
}
.scn-lady-challenges-macbeth .candle {
  position: absolute; bottom: 35%; left: 54%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c09468 0%, #8a6a4a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-lady-challenges-macbeth .candle-glow {
  position: absolute; bottom: 38%; left: 54%; width: 24px; height: 24px;
  background: radial-gradient(circle, #f0c870 0%, #c09440 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-30%, -30%);
  animation: lcm-glow 3s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 6px #c09440, 0 0 40px 12px rgba(192,148,64,0.4);
}
@keyframes lcm-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes lcm-arch {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes lcm-figA {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(0.5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes lcm-figB {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1.5deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes lcm-goblet {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(3deg) translateX(1px); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(2deg) translateX(-1px); }
  100% { transform: rotate(-2deg); }
}
@keyframes lcm-glow {
  0% { box-shadow: 0 0 20px 6px #c09440, 0 0 40px 12px rgba(192,148,64,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 28px 10px #e0b060, 0 0 50px 18px rgba(224,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 4px #b08038, 0 0 36px 8px rgba(176,128,56,0.35); opacity: 0.85; }
}

.scn-manhood-argument {
  background:
    linear-gradient(135deg, #1a1210 0%, #2a2018 50%, #120e0a 100%),
    radial-gradient(ellipse at 60% 40%, #3a2820 0%, transparent 60%);
}
.scn-manhood-argument .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  animation: mna-bg 12s ease-in-out infinite alternate;
}
.scn-manhood-argument .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1612 0%, #0a0806 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-manhood-argument .silhouette-left {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mna-silL 5s ease-in-out infinite alternate;
}
.scn-manhood-argument .silhouette-right {
  position: absolute; bottom: 28%; right: 25%; width: 44px; height: 110px;
  background: linear-gradient(180deg, #221a14 0%, #120e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mna-silR 4.5s ease-in-out infinite;
}
.scn-manhood-argument .dirk {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 30px;
  transform: translateX(-50%) rotate(15deg);
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 6px 2px rgba(176,160,144,0.6);
  animation: mna-dirk 7s ease-in-out infinite;
}
.scn-manhood-argument .dirk-glow {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8b8a8 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -10%);
  opacity: 0.4;
  animation: mna-dirkGlow 3s ease-in-out infinite alternate;
}
.scn-manhood-argument .hand-left {
  position: absolute; bottom: 35%; left: 40%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: mna-handL 6s ease-in-out infinite;
}
.scn-manhood-argument .hand-right {
  position: absolute; bottom: 34%; right: 40%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: mna-handR 5s ease-in-out infinite alternate;
}
@keyframes mna-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mna-silL {
  0% { transform: translateX(0) rotate(-1.5deg); }
  50% { transform: translateX(3px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes mna-silR {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-2px) rotate(-0.5deg); }
  50% { transform: translateX(0) rotate(-1.5deg); }
  75% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes mna-dirk {
  0% { transform: translateX(-50%) rotate(15deg); }
  50% { transform: translateX(-50%) rotate(10deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(15deg); }
}
@keyframes mna-dirkGlow {
  0% { opacity: 0.3; transform: translate(-50%, -10%) scale(0.9); }
  50% { opacity: 0.5; transform: translate(-50%, -10%) scale(1.1); }
  100% { opacity: 0.2; transform: translate(-50%, -10%) scale(0.95); }
}
@keyframes mna-handL {
  0% { transform: translate(0, 0) rotate(-3deg); }
  50% { transform: translate(2px, -1px) rotate(5deg); }
  100% { transform: translate(-1px, 0) rotate(-2deg); }
}
@keyframes mna-handR {
  0% { transform: translate(0, 0) rotate(2deg); }
  50% { transform: translate(-2px, 1px) rotate(-4deg); }
  100% { transform: translate(0, 0) rotate(3deg); }
}

.scn-macbeth-resolve {
  background:
    linear-gradient(90deg, #1a1210 0%, #2a1e18 30%, #1a1210 100%),
    radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%);
}
.scn-macbeth-resolve .bg-murky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  animation: mcr-bg 15s ease-in-out infinite alternate;
}
.scn-macbeth-resolve .pillar-left {
  position: absolute; top: 5%; left: 8%; width: 30px; height: 75%;
  background: linear-gradient(90deg, #3a2a1e 0%, #2a1e18 50%, #1a1410 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
}
.scn-macbeth-resolve .pillar-right {
  position: absolute; top: 5%; right: 8%; width: 30px; height: 75%;
  background: linear-gradient(90deg, #1a1410 0%, #2a1e18 50%, #3a2a1e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
}
.scn-macbeth-resolve .lady-silhouette {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  animation: mcr-lady 7s ease-in-out infinite;
}
.scn-macbeth-resolve .child-shape {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: mcr-child 4s ease-in-out infinite alternate;
}
.scn-macbeth-resolve .crown {
  position: absolute; bottom: 78%; left: 50%; width: 30px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-macbeth-resolve .crown-glow {
  position: absolute; bottom: 78%; left: 50%; width: 50px; height: 30px;
  background: radial-gradient(circle, #f0d0a0 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -20%);
  opacity: 0.5;
  animation: mcr-crownGlow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-macbeth-resolve .blood-drip {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #702243 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: mcr-blood 5s ease-in-out infinite;
}
@keyframes mcr-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes mcr-lady {
  0% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); }
  60% { transform: translateX(-50%) translateY(1px) rotate(-0.3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
}
@keyframes mcr-child {
  0% { transform: translateX(0) rotate(-3deg) scaleY(1); }
  50% { transform: translateX(2px) rotate(1deg) scaleY(0.97); }
  100% { transform: translateX(0) rotate(3deg) scaleY(1); }
}
@keyframes mcr-crownGlow {
  0% { opacity: 0.3; transform: translate(-50%, -20%) scale(0.9); }
  50% { opacity: 0.6; transform: translate(-50%, -20%) scale(1.15); }
  100% { opacity: 0.4; transform: translate(-50%, -20%) scale(0.95); }
}
@keyframes mcr-blood {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 0.9; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.5; }
}

.scn-court-night-banquo {
  background:
    linear-gradient(180deg, #0a0a14 0%, #101020 30%, #181830 60%, #0e0e1a 100%),
    radial-gradient(ellipse at 30% 80%, #2a2a40 0%, transparent 60%);
}
.scn-court-night-banquo .sky-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a14 0%, #101020 100%);
  animation: cnb-sky 20s ease-in-out infinite alternate;
}
.scn-court-night-banquo .wall-court {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 45%;
  background: linear-gradient(90deg, #181828 0%, #202038 50%, #181828 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.7);
}
.scn-court-night-banquo .gate {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a40 0%, #121220 100%);
  border-radius: 20% 20% 5% 5%;
  border: 2px solid #3a3a50;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.8);
}
.scn-court-night-banquo .banquo-silhouette {
  position: absolute; bottom: 22%; left: 35%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #0e0e1a 0%, #080810 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cnb-banquo 6s ease-in-out infinite;
}
.scn-court-night-banquo .fleance-silhouette {
  position: absolute; bottom: 24%; left: 55%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #0e0e1a 0%, #080810 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cnb-fleance 4.5s ease-in-out infinite alternate;
}
.scn-court-night-banquo .torch-flame {
  position: absolute; bottom: 40%; left: 58%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #f0a040 0%, #c06020 60%, #802010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cnb-flame 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 6px #f0a040, 0 0 40px 12px rgba(240,160,64,0.5);
}
.scn-court-night-banquo .torch-light {
  position: absolute; bottom: 30%; left: 58%; width: 80px; height: 80px;
  background: radial-gradient(circle, #f0a040 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -30%);
  opacity: 0.6;
  animation: cnb-light 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-court-night-banquo .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%);
  animation: cnb-shadow 10s ease-in-out infinite alternate;
}
@keyframes cnb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes cnb-banquo {
  0% { transform: translateX(0) rotate(-0.5deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  60% { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cnb-fleance {
  0% { transform: translateX(0) rotate( 1.5deg); }
  50% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes cnb-flame {
  0% { transform: scaleY(1) rotate(-2deg); }
  25% { transform: scaleY(1.1) rotate(1deg); }
  50% { transform: scaleY(0.95) rotate(-1deg); }
  75% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes cnb-light {
  0% { opacity: 0.5; transform: translate(-50%, -30%) scale(0.95); }
  50% { opacity: 0.7; transform: translate(-50%, -30%) scale(1.08); }
  100% { opacity: 0.4; transform: translate(-50%, -30%) scale(0.9); }
}
@keyframes cnb-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

.scn-heath-departure {
  background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 40%, #3a4a3a 70%, #2a3a2a 100%), radial-gradient(ellipse at 50% 80%, #5a6a5a 0%, transparent 70%);
}
.scn-heath-departure .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #8a9a8a 0%, #5a6a5a 100%); animation: hd-sky 20s ease-in-out infinite alternate; }
.scn-heath-departure .cloud-a { position: absolute; top: 15%; left: -10%; width: 110px; height: 30px; background: linear-gradient(180deg, rgba(200,210,200,0.6) 0%, rgba(200,210,200,0.2) 100%); border-radius: 50%; filter: blur(8px); animation: hd-drift-a 40s linear infinite; }
.scn-heath-departure .cloud-b { position: absolute; top: 25%; right: -5%; width: 80px; height: 22px; background: linear-gradient(180deg, rgba(210,220,210,0.5) 0%, rgba(210,220,210,0.15) 100%); border-radius: 50%; filter: blur(6px); animation: hd-drift-b 55s linear infinite reverse; }
.scn-heath-departure .distant-hills { position: absolute; bottom: 40%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #4a6a4a 0%, #3a5a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 18px rgba(0,0,0,0.3); animation: hd-hills 15s ease-in-out infinite alternate; }
.scn-heath-departure .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); }
.scn-heath-departure .path { position: absolute; bottom: 20%; left: 45%; width: 12%; height: 30%; background: linear-gradient(180deg, #5a6a4a 0%, #4a5a3a 100%); border-radius: 30% 30% 0 0; transform: skewX(-5deg); animation: hd-path 12s ease-in-out infinite alternate; }
.scn-heath-departure .figure { position: absolute; bottom: 28%; left: 48%; width: 22px; height: 44px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hd-figure 6s ease-in-out infinite; }
.scn-heath-departure .staff { position: absolute; bottom: 28%; left: 46%; width: 4px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; transform: rotate(8deg); animation: hd-staff 6s ease-in-out infinite; }
.scn-heath-departure .bush { position: absolute; bottom: 30%; left: 30%; width: 40px; height: 28px; background: radial-gradient(ellipse at 50% 60%, #4a6a3a 0%, #3a5a2a 70%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: hd-bush 20s ease-in-out infinite alternate; }
@keyframes hd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hd-drift-a { 0% { transform: translateX(0px); } 100% { transform: translateX(150vw); } }
@keyframes hd-drift-b { 0% { transform: translateX(0px); } 100% { transform: translateX(-130vw); } }
@keyframes hd-hills { 0% { transform: translateY(0px) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0px) scale(0.98); } }
@keyframes hd-path { 0% { opacity: 0.9; transform: skewX(-5deg) translateY(0); } 50% { opacity: 1; transform: skewX(-5deg) translateY(-2px); } 100% { opacity: 0.95; transform: skewX(-5deg) translateY(0); } }
@keyframes hd-figure { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0px) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-3px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0px) rotate(0deg); } }
@keyframes hd-staff { 0% { transform: rotate(8deg) translateX(0px); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(6deg) translateX(0px); } }
@keyframes hd-bush { 0% { transform: scale(1); } 50% { transform: scale(0.9); } 100% { transform: scale(1.05); } }

.scn-palace-forres-execution {
  background: linear-gradient(180deg, #d4c8b8 0%, #c0b4a4 40%, #a09080 100%), radial-gradient(ellipse at 50% 30%, #e0d4c4 0%, transparent 70%);
}
.scn-palace-forres-execution .wall-bg { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 100%); animation: pfe-wall 16s ease-in-out infinite alternate; }
.scn-palace-forres-execution .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); box-shadow: inset 0 4px 10px rgba(0,0,0,0.3); }
.scn-palace-forres-execution .pillar-left { position: absolute; bottom: 20%; left: 15%; width: 6%; height: 70%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 8% 8% 0 0; box-shadow: 8px 0 12px rgba(0,0,0,0.2); }
.scn-palace-forres-execution .pillar-right { position: absolute; bottom: 20%; right: 15%; width: 6%; height: 70%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 8% 8% 0 0; box-shadow: -8px 0 12px rgba(0,0,0,0.2); }
.scn-palace-forres-execution .throne { position: absolute; bottom: 25%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: pfe-throne 10s ease-in-out infinite; }
.scn-palace-forres-execution .window { position: absolute; top: 10%; left: 40%; width: 30%; height: 35%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 40px 20px rgba(240,232,216,0.4); animation: pfe-window 8s ease-in-out infinite alternate; }
.scn-palace-forres-execution .figure-king { position: absolute; bottom: 24%; left: 44%; width: 30px; 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: pfe-king 7s ease-in-out infinite; }
.scn-palace-forres-execution .figure-attendant { position: absolute; bottom: 24%; left: 54%; width: 26px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pfe-attendant 7s ease-in-out infinite; }
.scn-palace-forres-execution .light-beam { position: absolute; top: 0; left: 40%; width: 30%; height: 100%; background: linear-gradient(180deg, rgba(240,232,216,0.15) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: pfe-beam 12s ease-in-out infinite alternate; }
@keyframes pfe-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes pfe-throne { 0% { transform: translateX(-50%) translateY(0px); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0px); } }
@keyframes pfe-window { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(240,232,216,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(240,232,216,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 40px 20px rgba(240,232,216,0.4); } }
@keyframes pfe-king { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 30% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 70% { transform: translateX(-2px) translateY(0px) rotate(-1deg); } 100% { transform: translateX(0px) translateY(0px) rotate(0deg); } }
@keyframes pfe-attendant { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 30% { transform: translateX(-1px) translateY(-2px) rotate(-1deg); } 70% { transform: translateX(1px) translateY(0px) rotate(1deg); } 100% { transform: translateX(0px) translateY(0px) rotate(0deg); } }
@keyframes pfe-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-palace-macbeth-welcome {
  background: linear-gradient(180deg, #d4c090 0%, #c0a880 40%, #a08060 100%), radial-gradient(ellipse at 50% 50%, #e8d0a0 0%, transparent 70%);
}
.scn-palace-macbeth-welcome .chamber-bg { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #d8c098 0%, #b8a078 100%); animation: pmw-chamber 14s ease-in-out infinite alternate; }
.scn-palace-macbeth-welcome .arch { position: absolute; top: -5%; left: 20%; width: 60%; height: 40%; background: radial-gradient(ellipse at 50% 100%, #c8b088 0%, transparent 70%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.3); }
.scn-palace-macbeth-welcome .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); }
.scn-palace-macbeth-welcome .figure-macbeth { position: absolute; bottom: 18%; left: 35%; width: 40px; height: 70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmw-macbeth 5s ease-in-out infinite; }
.scn-palace-macbeth-welcome .figure-duncan { position: absolute; bottom: 18%; left: 48%; width: 38px; height: 68px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmw-duncan 5s ease-in-out infinite; }
.scn-palace-macbeth-welcome .embrace { position: absolute; bottom: 25%; left: 40%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 50%, #c8a878 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: pmw-embrace 5s ease-in-out infinite; }
.scn-palace-macbeth-welcome .tapestry { position: absolute; top: 10%; left: 5%; width: 15%; height: 50%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.3); animation: pmw-tapestry 18s ease-in-out infinite alternate; }
.scn-palace-macbeth-welcome .candle { position: absolute; bottom: 30%; left: 25%; width: 8px; height: 20px; background: linear-gradient(180deg, #f0d080 0%, #c8a040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(240,208,128,0.7); animation: pmw-candle 3s ease-in-out infinite alternate; }
@keyframes pmw-chamber { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes pmw-macbeth { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 20% { transform: translateX(5px) translateY(-2px) rotate(3deg); } 40% { transform: translateX(10px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(15px) translateY(0px) rotate(-1deg); } 80% { transform: translateX(20px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(25px) translateY(0px) rotate(0deg); } }
@keyframes pmw-duncan { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 20% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 40% { transform: translateX(-4px) translateY(0px) rotate(0deg); } 60% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 80% { transform: translateX(-4px) translateY(0px) rotate(-1deg); } 100% { transform: translateX(0px) translateY(0px) rotate(0deg); } }
@keyframes pmw-embrace { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes pmw-tapestry { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98); } }
@keyframes pmw-candle { 0% { transform: scaleY(0.9); opacity: 0.8; box-shadow: 0 0 15px 4px rgba(240,208,128,0.5); } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 30px 10px rgba(240,208,128,0.8); } 100% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 20px 6px rgba(240,208,128,0.6); } }

.scn-palace-loyalty-pledged {
  background: linear-gradient(180deg, #b8a888 0%, #a09070 40%, #807050 100%), radial-gradient(ellipse at 50% 20%, #e0d0b0 0%, transparent 70%);
}
.scn-palace-loyalty-pledged .hall-bg { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); animation: plp-hall 18s ease-in-out infinite alternate; }
.scn-palace-loyalty-pledged .window-ray { position: absolute; top: -10%; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: plp-ray 10s ease-in-out infinite alternate; }
.scn-palace-loyalty-pledged .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #908060 0%, #706050 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.4); }
.scn-palace-loyalty-pledged .throne { position: absolute; bottom: 22%; left: 50%; width: 80px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 10px 24px rgba(0,0,0,0.5); animation: plp-throne 12s ease-in-out infinite; }
.scn-palace-loyalty-pledged .kneeling-figure { position: absolute; bottom: 18%; left: 42%; width: 28px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plp-kneel 8s ease-in-out infinite; }
.scn-palace-loyalty-pledged .standing-king { position: absolute; bottom: 22%; left: 52%; width: 34px; 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: plp-stand 8s ease-in-out infinite; }
.scn-palace-loyalty-pledged .crown { position: absolute; bottom: 72%; left: 53%; width: 20px; height: 12px; background: linear-gradient(180deg, #d0b060 0%, #b09040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: plp-crown 8s ease-in-out infinite; }
.scn-palace-loyalty-pledged .cloak { position: absolute; bottom: 18%; left: 48%; width: 40px; height: 50px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10%; filter: blur(1px); animation: plp-cloak 8s ease-in-out infinite; }
@keyframes plp-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes plp-ray { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes plp-throne { 0% { transform: translateX(-50%) translateY(0px); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0px); } }
@keyframes plp-kneel { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 30% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); } 60% { transform: translateX(0px) translateY(0px) rotate(0deg); } 100% { transform: translateX(0px) translateY(0px) rotate(0deg); } }
@keyframes plp-stand { 0% { transform: translateX(0px) translateY(0px) rotate(0deg); } 30% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(0px) translateY(0px) rotate(0deg); } 100% { transform: translateX(0px) translateY(0px) rotate(0deg); } }
@keyframes plp-crown { 0% { transform: translateY(0px) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0px) rotate(-1deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes plp-cloak { 0% { transform: scale(1); } 50% { transform: scale(0.95) translateY(1px); } 100% { transform: scale(1); } }

/* scene: three-murderers-wait */
.scn-three-murderers-wait {
  background:
    linear-gradient(180deg, #2b2245 0%, #1a1635 40%, #131124 70%, #0e0c1e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2f5a 0%, transparent 70%);
}
.scn-three-murderers-wait .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3e6a 0%, #2a2245 60%, transparent 100%);
  animation: mw-sky 15s ease-in-out infinite alternate;
}
.scn-three-murderers-wait .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-three-murderers-wait .palace {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px rgba(200,180,140,0.1);
  opacity: 0.5;
}
.scn-three-murderers-wait .tree-left {
  position: absolute; bottom: 25%; left: 5%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: skewX(-5deg);
  filter: blur(1px);
  animation: mw-sway 8s ease-in-out infinite alternate;
}
.scn-three-murderers-wait .tree-right {
  position: absolute; bottom: 28%; right: 8%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: skewX(5deg);
  filter: blur(1px);
  animation: mw-sway 9s ease-in-out infinite alternate-reverse;
}
.scn-three-murderers-wait .figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a12 0%, #020208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figure 6s ease-in-out infinite;
}
.scn-three-murderers-wait .figure-b {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a12 0%, #020208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figure 7s ease-in-out infinite -2s;
}
.scn-three-murderers-wait .figure-c {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a12 0%, #020208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-figure 8s ease-in-out infinite -4s;
}
.scn-three-murderers-wait .cloud-slow {
  position: absolute; top: 10%; left: 0; width: 70px; height: 12px;
  background: linear-gradient(90deg, rgba(180,170,200,0.15), rgba(180,170,200,0.05));
  filter: blur(8px);
  border-radius: 50%;
  animation: mw-cloud 30s linear infinite;
}
@keyframes mw-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes mw-sway {
  0% { transform: skewX(-3deg) rotate(0deg); }
  50% { transform: skewX(2deg) rotate(-1deg); }
  100% { transform: skewX(-3deg) rotate(1deg); }
}
@keyframes mw-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes mw-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(100vw); }
}

/* scene: banquo-approaches-light */
.scn-banquo-approaches-light {
  background:
    linear-gradient(180deg, #1e1a35 0%, #2a2445 50%, #141128 100%),
    radial-gradient(ellipse at 50% 80%, #3a2f55 0%, transparent 60%);
}
.scn-banquo-approaches-light .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3e6a 0%, #2a2245 60%, transparent 100%);
  animation: ba-sky 20s ease-in-out infinite alternate;
}
.scn-banquo-approaches-light .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-banquo-approaches-light .torch {
  position: absolute; bottom: 45%; left: 35%; width: 6px; height: 16px;
  background: #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #e0a060, 0 0 40px 16px rgba(224,160,96,0.4);
  animation: ba-torch 2s ease-in-out infinite alternate;
}
.scn-banquo-approaches-light .banquo {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0e0c18 0%, #060610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: ba-walk 6s ease-in-out infinite;
}
.scn-banquo-approaches-light .fleance {
  position: absolute; bottom: 20%; left: 42%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #0e0c18 0%, #060610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: ba-walk 6s ease-in-out infinite -1s;
}
.scn-banquo-approaches-light .murderer-one {
  position: absolute; bottom: 20%; right: 25%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #0a0a12 0%, #020208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-lunge 4s ease-in-out infinite;
}
.scn-banquo-approaches-light .murderer-two {
  position: absolute; bottom: 20%; right: 10%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #0a0a12 0%, #020208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-lunge 4s ease-in-out infinite -2s;
}
.scn-banquo-approaches-light .path-glow {
  position: absolute; bottom: 22%; left: 28%; width: 120px; height: 10px;
  background: linear-gradient(90deg, rgba(224,160,96,0.3), transparent);
  filter: blur(6px);
  border-radius: 50%;
  animation: ba-path 3s ease-in-out infinite alternate;
}
@keyframes ba-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ba-torch {
  0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 8px #e0a060, 0 0 40px 16px rgba(224,160,96,0.4); }
  50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 25px 10px #f0b070, 0 0 50px 20px rgba(240,176,112,0.5); }
  100% { transform: scale(0.95) rotate(-1deg); box-shadow: 0 0 18px 6px #e0a060, 0 0 35px 12px rgba(224,160,96,0.3); }
}
@keyframes ba-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  40% { transform: translateX(4px) translateY(0) rotate(0deg); }
  60% { transform: translateX(6px) translateY(-1px) rotate(-1deg); }
  80% { transform: translateX(8px) translateY(0) rotate(1deg); }
  100% { transform: translateX(10px) translateY(0) rotate(0deg); }
}
@keyframes ba-lunge {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-5px) translateY(-3px) rotate(10deg); }
  50% { transform: translateX(-10px) translateY(0) rotate(5deg); }
  75% { transform: translateX(-5px) translateY(-2px) rotate(8deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ba-path {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.2; transform: scaleX(1); }
}

/* scene: banquet-preparation */
.scn-banquet-preparation {
  background:
    linear-gradient(180deg, #6a5540 0%, #4a3a2a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #8a7050 0%, transparent 50%);
}
.scn-banquet-preparation .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7a6050 0%, #5a4535 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: bp-wall 12s ease-in-out infinite alternate;
}
.scn-banquet-preparation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-banquet-preparation .table {
  position: absolute; bottom: 22%; left: 50%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #5a4535 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: bp-table 8s ease-in-out infinite;
}
.scn-banquet-preparation .candelabra {
  position: absolute; bottom: 34%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  transform: translateX(-50%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 30%, 100% 40%, 100% 45%, 0% 45%, 0% 40%, 30% 30%);
  box-shadow: 0 0 20px 5px rgba(240,200,100,0.3);
  animation: bp-candelabra 4s ease-in-out infinite alternate;
}
.scn-banquet-preparation .plates {
  position: absolute; bottom: 23%; left: 30%; width: 25px; height: 8px;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-banquet-preparation .goblet {
  position: absolute; bottom: 23%; right: 40%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  clip-path: polygon(20% 0%, 80% 0%, 90% 60%, 10% 60%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: bp-goblet 6s ease-in-out infinite;
}
.scn-banquet-preparation .figure-macbeth {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(0.5px);
  animation: bp-sit 10s ease-in-out infinite;
}
.scn-banquet-preparation .figure-lady {
  position: absolute; bottom: 12%; right: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(0.5px);
  animation: bp-sit 10s ease-in-out infinite -3s;
}
.scn-banquet-preparation .chandelier-glow {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(240,200,100,0.25) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(10px);
  animation: bp-glow 4s ease-in-out infinite alternate;
}
@keyframes bp-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bp-table {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes bp-candelabra {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  75% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes bp-goblet {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bp-sit {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bp-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(1); }
}

/* scene: murderer-news-banquo */
.scn-murderer-news-banquo {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-murderer-news-banquo .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-murderer-news-banquo .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-murderer-news-banquo .throne {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: mn-throne 8s ease-in-out infinite alternate;
}
.scn-murderer-news-banquo .macbeth {
  position: absolute; bottom: 15%; left: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mn-macbeth 6s ease-in-out infinite;
}
.scn-murderer-news-banquo .murderer {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mn-murderer 5s ease-in-out infinite;
}
.scn-murderer-news-banquo .blood-stain {
  position: absolute; bottom: 40%; right: 30%; width: 14px; height: 12px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 100%);
  border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%;
  filter: blur(2px);
  box-shadow: 0 0 8px 2px #a0461a;
  animation: mn-blood 3s ease-in-out infinite alternate;
}
.scn-murderer-news-banquo .torch-light {
  position: absolute; top: 30%; left: 50%; width: 8px; height: 20px;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 0 30px 10px #e0a060, 0 0 60px 20px rgba(224,160,96,0.3);
  animation: mn-torch 2s ease-in-out infinite alternate;
}
.scn-murderer-news-banquo .table {
  position: absolute; bottom: 22%; left: 55%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: mn-table 12s ease-in-out infinite;
}
@keyframes mn-throne {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes mn-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes mn-murderer {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-3px) translateY(-1px) rotate(3deg); }
  40% { transform: translateX(-6px) translateY(0) rotate(2deg); }
  60% { transform: translateX(-3px) translateY(-1px) rotate(1deg); }
  80% { transform: translateX(0) translateY(0) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mn-blood {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes mn-torch {
  0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 30px 10px #e0a060, 0 0 60px 20px rgba(224,160,96,0.3); }
  50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 35px 12px #f0b070, 0 0 70px 25px rgba(240,176,112,0.4); }
  100% { transform: scale(0.95) rotate(-1deg); box-shadow: 0 0 25px 8px #e0a060, 0 0 50px 15px rgba(224,160,96,0.3); }
}
@keyframes mn-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}

/* palace-banquo-honour */
.scn-palace-banquo-honour {
  background: 
    linear-gradient(180deg, #d4a76a 0%, #c48a4e 40%, #9b6c3a 100%),
    radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 80%);
}
.scn-palace-banquo-honour .throne {
  position:absolute; bottom:20%; left:50%; width:120px; height:90px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #c8944a 0%, #a07030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
  animation: pbh-throne 6s ease-in-out infinite;
}
.scn-palace-banquo-honour .crown {
  position:absolute; bottom:62%; left:50%; width:30px; height:20px;
  transform:translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd700 0%, #cc9900 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 20px #ffd700;
  animation: pbh-crown 4s ease-in-out infinite alternate;
}
.scn-palace-banquo-honour .pillar-left {
  position:absolute; bottom:10%; left:10%; width:25px; height:70%;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 8px;
  animation: pbh-pillar 12s ease-in-out infinite;
}
.scn-palace-banquo-honour .pillar-right {
  position:absolute; bottom:10%; right:10%; width:25px; height:70%;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 8px;
  animation: pbh-pillar 12s ease-in-out infinite reverse;
}
.scn-palace-banquo-honour .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-palace-banquo-honour .window-glow {
  position:absolute; top:15%; left:35%; width:60px; height:80px;
  background: radial-gradient(ellipse, #ffe080 0%, transparent 70%);
  border-radius: 10px;
  animation: pbh-window 5s ease-in-out infinite alternate;
}
.scn-palace-banquo-honour .figure-left {
  position:absolute; bottom:20%; left:30%; width:30px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbh-figure 7s ease-in-out infinite;
}
.scn-palace-banquo-honour .figure-right {
  position:absolute; bottom:20%; right:30%; width:30px; height:85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbh-figure 7s ease-in-out infinite reverse;
}
@keyframes pbh-throne {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pbh-crown {
  0% { transform: translateX(-50%) rotate(-5deg); opacity:.8; }
  50% { transform: translateX(-50%) rotate(0deg); opacity:1; }
  100% { transform: translateX(-50%) rotate(5deg); opacity:.9; }
}
@keyframes pbh-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes pbh-window {
  0% { opacity:.6; box-shadow: 0 0 30px #ffe080; }
  100% { opacity:1; box-shadow: 0 0 60px #ffe080; }
}
@keyframes pbh-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}

/* palace-macbeth-aside */
.scn-palace-macbeth-aside {
  background:
    linear-gradient(180deg, #b8945a 0%, #8a6a3a 40%, #5a3a1a 100%),
    radial-gradient(ellipse at 60% 40%, #e0c080 0%, transparent 70%);
}
.scn-palace-macbeth-aside .backdrop {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #c4a060 0%, #8a6a3a 100%);
  opacity:.3; animation: pma-backdrop 10s ease-in-out infinite alternate;
}
.scn-palace-macbeth-aside .col-left {
  position:absolute; bottom:0; left:15%; width:20px; height:80%;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a4a2a 100%);
  border-radius: 6px; box-shadow: inset -5px 0 10px rgba(0,0,0,.4);
}
.scn-palace-macbeth-aside .col-right {
  position:absolute; bottom:0; right:15%; width:20px; height:80%;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a4a2a 100%);
  border-radius: 6px; box-shadow: inset 5px 0 10px rgba(0,0,0,.4);
}
.scn-palace-macbeth-aside .step {
  position:absolute; bottom:15%; left:40%; width:20%; height:8px;
  background: #5a3a1a; border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: pma-step 3s ease-in-out infinite;
}
.scn-palace-macbeth-aside .figure-malcolm {
  position:absolute; bottom:20%; left:42%; width:28px; height:75px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pma-malcolm 6s ease-in-out infinite;
}
.scn-palace-macbeth-aside .figure-macbeth {
  position:absolute; bottom:20%; right:35%; width:30px; height:80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pma-macbeth 4s ease-in-out infinite alternate;
}
.scn-palace-macbeth-aside .shadow-macbeth {
  position:absolute; bottom:15%; right:28%; width:50px; height:90px;
  background: rgba(0,0,0,.4); border-radius: 40%;
  filter: blur(8px);
  animation: pma-shadow 4s ease-in-out infinite alternate;
}
@keyframes pma-backdrop {
  0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; }
}
@keyframes pma-step {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes pma-malcolm {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); }
}
@keyframes pma-macbeth {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes pma-shadow {
  0% { transform: scale(1) translateX(0); opacity:.3; }
  50% { transform: scale(1.1) translateX(-3px); opacity:.5; }
  100% { transform: scale(1) translateX(0); opacity:.3; }
}

/* lady-macbeth-letter */
.scn-lady-macbeth-letter {
  background:
    linear-gradient(180deg, #2a1a10 0%, #4a2a1a 30%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 80%);
}
.scn-lady-macbeth-letter .table {
  position:absolute; bottom:15%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-lady-macbeth-letter .letter {
  position:absolute; bottom:22%; left:40%; width:40px; height:30px;
  background: linear-gradient(135deg, #d4c090 0%, #b8a070 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(5deg);
  animation: lml-letter 8s ease-in-out infinite alternate;
}
.scn-lady-macbeth-letter .candle {
  position:absolute; bottom:20%; left:55%; width:12px; height:40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a870 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 10px #ffa060;
}
.scn-lady-macbeth-letter .flame {
  position:absolute; bottom:55%; left:55%; width:8px; height:14px;
  margin-left:-4px; margin-bottom:-2px;
  background: radial-gradient(circle, #ffd080 0%, #ff8030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px #ffa040;
  animation: lml-flame 0.3s ease-in-out infinite alternate;
}
.scn-lady-macbeth-letter .lady {
  position:absolute; bottom:25%; left:30%; width:35px; height:90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lml-lady 6s ease-in-out infinite;
}
.scn-lady-macbeth-letter .chair {
  position:absolute; bottom:12%; left:28%; width:40px; height:50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: lml-chair 10s ease-in-out infinite;
}
.scn-lady-macbeth-letter .window {
  position:absolute; top:15%; right:15%; width:50px; height:70px;
  background: radial-gradient(ellipse, #3a4a5a 0%, transparent 80%);
  border: 4px solid #5a4a3a; border-radius: 6px;
  box-shadow: inset 0 0 20px #1a2a3a;
  animation: lml-window 12s ease-in-out infinite alternate;
}
@keyframes lml-letter {
  0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); }
}
@keyframes lml-flame {
  0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); }
}
@keyframes lml-lady {
  0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-1deg); }
}
@keyframes lml-chair {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes lml-window {
  0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; }
}

/* lady-macbeth-ambition */
.scn-lady-macbeth-ambition {
  background:
    linear-gradient(180deg, #0a0510 0%, #1a0a20 40%, #0a0010 100%),
    radial-gradient(ellipse at 50% 70%, #3a1a2a 0%, transparent 80%);
}
.scn-lady-macbeth-ambition .bg-dark {
  position:absolute; inset:0; 
  background: radial-gradient(circle at 50% 60%, #2a1a30 0%, transparent 70%);
  animation: lma-bg 15s ease-in-out infinite alternate;
}
.scn-lady-macbeth-ambition .candle-dim {
  position:absolute; bottom:20%; left:60%; width:8px; height:30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 3px;
}
.scn-lady-macbeth-ambition .flame-dim {
  position:absolute; bottom:47%; left:60%; width:6px; height:10px;
  margin-left:-3px;
  background: radial-gradient(circle, #c08040 0%, #804020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px #804020;
  animation: lma-flame 0.5s ease-in-out infinite alternate;
}
.scn-lady-macbeth-ambition .lady-ambition {
  position:absolute; bottom:25%; left:35%; width:30px; height:85px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lma-lady 8s ease-in-out infinite;
}
.scn-lady-macbeth-ambition .crown-ambition {
  position:absolute; bottom:60%; left:45%; width:20px; height:15px;
  background: radial-gradient(circle at 50% 30%, #b89650 0%, #7a5a20 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 15px #7a5a20;
  animation: lma-crown 5s ease-in-out infinite alternate;
}
.scn-lady-macbeth-ambition .shadow-crown {
  position:absolute; bottom:58%; left:44%; width:24px; height:18px;
  background: rgba(50,30,10,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: lma-shadow 5s ease-in-out infinite alternate;
}
@keyframes lma-bg {
  0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.3; }
}
@keyframes lma-flame {
  0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); }
}
@keyframes lma-lady {
  0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes lma-crown {
  0% { transform: rotate(-10deg); opacity:.6; }
  50% { transform: rotate(0deg); opacity:.9; }
  100% { transform: rotate(10deg); opacity:.6; }
}
@keyframes lma-shadow {
  0% { transform: scale(1) translateX(0); opacity:.4; }
  50% { transform: scale(1.1) translateX(2px); opacity:.7; }
  100% { transform: scale(1) translateX(0); opacity:.4; }
}

.scn-macbeth-fears-banquo-prophecy {
  background: linear-gradient(180deg, #1a1210 0%, #2d1e18 40%, #4a2e24 100%), radial-gradient(ellipse at 70% 30%, #6a4a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-macbeth-fears-banquo-prophecy .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1f1713 0%, #34241d 50%, #2a1e18 100%);
  border-bottom: 2px solid #3a2a20;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-macbeth-fears-banquo-prophecy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1511 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-macbeth-fears-banquo-prophecy .window {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 50%, #cba060 0%, #8a6a40 30%, #4a3a2a 70%);
  border: 6px solid #2a1e18;
  border-radius: 6px;
  box-shadow: 0 0 80px 20px #a07840, inset 0 0 30px #ffd080;
  animation: fbp-window 8s ease-in-out infinite alternate;
}
.scn-macbeth-fears-banquo-prophecy .table {
  position: absolute; bottom: 28%; left: 35%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #4a3525 0%, #2e2018 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: fbp-table 12s ease-in-out infinite;
}
.scn-macbeth-fears-banquo-prophecy .goblet {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #b07850 0%, #7a5038 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: fbp-goblet 6s ease-in-out infinite alternate;
}
.scn-macbeth-fears-banquo-prophecy .goblet::after {
  content: "";
  position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
  width: 18px; height: 6px;
  background: #a07040;
  border-radius: 4px 4px 0 0;
}
.scn-macbeth-fears-banquo-prophecy .figure-macbeth {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbp-figure 3s ease-in-out infinite;
}
.scn-macbeth-fears-banquo-prophecy .figure-macbeth::before {
  content: "";
  position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #2a1e18 0%, #1a1210 100%);
  border-radius: 50%;
}
.scn-macbeth-fears-banquo-prophecy .shadow {
  position: absolute; bottom: 30%; left: 28%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  transform: skewX(-20deg) translateX(20px);
  animation: fbp-shadow 4s ease-in-out infinite;
}
@keyframes fbp-window {
  0% { opacity: 0.85; box-shadow: 0 0 60px 15px #a07840, inset 0 0 20px #ffd080; }
  50% { opacity: 1; box-shadow: 0 0 100px 30px #c09050, inset 0 0 40px #ffe0a0; }
  100% { opacity: 0.9; box-shadow: 0 0 70px 18px #a07840, inset 0 0 25px #ffd080; }
}
@keyframes fbp-table {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes fbp-goblet {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(3deg); }
}
@keyframes fbp-figure {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
}
@keyframes fbp-shadow {
  0%, 100% { opacity: 0.4; transform: skewX(-20deg) translateX(20px); }
  50% { opacity: 0.6; transform: skewX(-20deg) translateX(28px) scaleX(1.1); }
}

.scn-macbeth-rage-banquo-issue {
  background: linear-gradient(180deg, #1a1210 0%, #2d1e18 40%, #4a2e24 100%), radial-gradient(ellipse at 50% 20%, #6a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-macbeth-rage-banquo-issue .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1f1713 0%, #34241d 50%, #2a1e18 100%);
  border-bottom: 2px solid #3a2a20;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-macbeth-rage-banquo-issue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1511 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-macbeth-rage-banquo-issue .candle {
  position: absolute; bottom: 25%; left: 60%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #a07040 0%, #705030 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px #b08040;
  animation: rbi-candle 4s ease-in-out infinite alternate;
}
.scn-macbeth-rage-banquo-issue .candle::after {
  content: "";
  position: absolute; top: -18px; left: 50%; transform: translateX(-50%);
  width: 8px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa040;
  animation: rbi-flame 0.5s ease-in-out infinite alternate;
}
.scn-macbeth-rage-banquo-issue .chair {
  position: absolute; bottom: 24%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3525 0%, #2e2018 100%);
  border-radius: 6px;
  transform-origin: bottom right;
  animation: rbi-chair 2s ease-in-out infinite;
}
.scn-macbeth-rage-banquo-issue .figure-macbeth {
  position: absolute; bottom: 25%; left: 25%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbi-macbeth 3s ease-in-out infinite;
}
.scn-macbeth-rage-banquo-issue .figure-macbeth::before {
  content: "";
  position: absolute; top: -24px; left: 50%; transform: translateX(-50%);
  width: 34px; height: 34px;
  background: radial-gradient(circle at 50% 50%, #2a1e18 0%, #1a1210 100%);
  border-radius: 50%;
}
.scn-macbeth-rage-banquo-issue .figure-ghost {
  position: absolute; bottom: 25%; right: 20%; width: 35px; height: 85px;
  background: linear-gradient(180deg, rgba(180,150,130,0.4) 0%, rgba(120,100,80,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: rbi-ghost 8s ease-in-out infinite;
}
.scn-macbeth-rage-banquo-issue .shadow {
  position: absolute; bottom: 24%; left: 25%; width: 70px; height: 20px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  transform: skewX(-20deg) translateX(30px);
  animation: rbi-shadow 3s ease-in-out infinite;
}
@keyframes rbi-candle {
  0% { opacity: 0.9; box-shadow: 0 0 15px 5px #b08040; }
  100% { opacity: 1; box-shadow: 0 0 25px 10px #c09050; }
}
@keyframes rbi-flame {
  0% { transform: scale(1) translateX(-50%); }
  100% { transform: scale(1.2, 0.8) translateX(-50%); }
}
@keyframes rbi-chair {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-10deg) translateY(-2px); }
  50% { transform: rotate(5deg) translateY(0); }
  75% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes rbi-macbeth {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rbi-ghost {
  0% { opacity: 0.2; transform: translateY(0); filter: blur(4px); }
  50% { opacity: 0.5; transform: translateY(-10px); filter: blur(2px); }
  100% { opacity: 0.3; transform: translateY(0); filter: blur(4px); }
}
@keyframes rbi-shadow {
  0%, 100% { opacity: 0.4; transform: skewX(-20deg) translateX(30px); }
  50% { opacity: 0.7; transform: skewX(-20deg) translateX(38px) scaleX(1.2); }
}

.scn-macbeth-murderers-remind {
  background: linear-gradient(180deg, #1a1210 0%, #2d1e18 40%, #4a2e24 100%), radial-gradient(ellipse at 60% 30%, #6a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-macbeth-murderers-remind .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1f1713 0%, #34241d 50%, #2a1e18 100%);
  border-bottom: 2px solid #3a2a20;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-macbeth-murderers-remind .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1511 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-macbeth-murderers-remind .torch {
  position: absolute; bottom: 30%; left: 15%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #906030 0%, #603818 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 12px #b07030;
  animation: mur-torch 6s ease-in-out infinite alternate;
}
.scn-macbeth-murderers-remind .torch::after {
  content: "";
  position: absolute; top: -22px; left: 50%; transform: translateX(-50%);
  width: 20px; height: 22px;
  background: radial-gradient(circle at 50% 50%, #ffb040 0%, #ff8020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff8020;
  animation: mur-flame 0.6s ease-in-out infinite alternate;
}
.scn-macbeth-murderers-remind .table {
  position: absolute; bottom: 25%; left: 55%; width: 100px; height: 10px;
  background: linear-gradient(180deg, #4a3525 0%, #2e2018 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: mur-table 15s ease-in-out infinite;
}
.scn-macbeth-murderers-remind .knife {
  position: absolute; bottom: 25%; left: 58%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #705030 0%, #503020 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: mur-knife 4s ease-in-out infinite alternate;
}
.scn-macbeth-murderers-remind .knife::after {
  content: "";
  position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 6px;
  background: #906030;
  border-radius: 4px 4px 0 0;
}
.scn-macbeth-murderers-remind .murderer-1 {
  position: absolute; bottom: 24%; left: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mur-murderer1 5s ease-in-out infinite;
}
.scn-macbeth-murderers-remind .murderer-1::before {
  content: "";
  position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 26px; height: 26px;
  background: radial-gradient(circle at 50% 50%, #2a1e18 0%, #1a1210 100%);
  border-radius: 50%;
}
.scn-macbeth-murderers-remind .murderer-2 {
  position: absolute; bottom: 24%; left: 42%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mur-murderer2 5s ease-in-out 0.5s infinite;
}
.scn-macbeth-murderers-remind .murderer-2::before {
  content: "";
  position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 26px; height: 26px;
  background: radial-gradient(circle at 50% 50%, #2a1e18 0%, #1a1210 100%);
  border-radius: 50%;
}
@keyframes mur-torch {
  0% { opacity: 0.9; box-shadow: 0 0 20px 8px #b07030; }
  100% { opacity: 1; box-shadow: 0 0 35px 15px #c08040; }
}
@keyframes mur-flame {
  0% { transform: scale(1) translateX(-50%); }
  100% { transform: scale(1.3, 0.7) translateX(-50%); }
}
@keyframes mur-table {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
}
@keyframes mur-knife {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}
@keyframes mur-murderer1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mur-murderer2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-macbeth-men-catalogue {
  background: linear-gradient(180deg, #1e1612 0%, #2f201a 40%, #4a3025 100%), radial-gradient(ellipse at 40% 50%, #6a4a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-macbeth-men-catalogue .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1f1713 0%, #34241d 50%, #2a1e18 100%);
  border-bottom: 2px solid #3a2a20;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-macbeth-men-catalogue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1511 100%);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-macbeth-men-catalogue .scroll {
  position: absolute; bottom: 18%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a7558 0%, #6a5a3e 100%);
  border-radius: 2px 2px 10px 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform-origin: bottom left;
  animation: mca-scroll 10s ease-in-out infinite;
}
.scn-macbeth-men-catalogue .scroll::before {
  content: "";
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 100%; height: 4px;
  background: #5a4a32;
  border-radius: 2px;
}
.scn-macbeth-men-catalogue .figure-macbeth {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mca-macbeth 4s ease-in-out infinite;
}
.scn-macbeth-men-catalogue .figure-macbeth::before {
  content: "";
  position: absolute; top: -22px; left: 50%; transform: translateX(-50%);
  width: 32px; height: 32px;
  background: radial-gradient(circle at 50% 50%, #2a1e18 0%, #1a1210 100%);
  border-radius: 50%;
}
.scn-macbeth-men-catalogue .dog-1,
.scn-macbeth-men-catalogue .dog-2,
.scn-macbeth-men-catalogue .dog-3,
.scn-macbeth-men-catalogue .dog-4,
.scn-macbeth-men-catalogue .dog-5 {
  position: absolute; bottom: 18%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-macbeth-men-catalogue .dog-1 { left: 20%; animation: mca-dog 3s ease-in-out 0.1s infinite; }
.scn-macbeth-men-catalogue .dog-2 { left: 28%; animation: mca-dog 3.5s ease-in-out 0.3s infinite; }
.scn-macbeth-men-catalogue .dog-3 { left: 36%; animation: mca-dog 2.8s ease-in-out 0.5s infinite; }
.scn-macbeth-men-catalogue .dog-4 { left: 44%; animation: mca-dog 3.2s ease-in-out 0.7s infinite; }
.scn-macbeth-men-catalogue .dog-5 { left: 52%; animation: mca-dog 3.4s ease-in-out 0.9s infinite; }
@keyframes mca-scroll {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mca-macbeth {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
}
@keyframes mca-dog {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* macbeth-killing-guards */
.scn-macbeth-killing-guards {
  background:
    linear-gradient(180deg, #1c1a2e 0%, #12101f 60%, #0d0b14 100%),
    radial-gradient(ellipse at 50% 60%, #2a1f3a 0%, transparent 70%);
}
.scn-macbeth-killing-guards .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, transparent 0%, rgba(60,50,80,0.3) 50%, transparent 100%);
  animation: mkg-shadow 20s ease-in-out infinite alternate;
}
.scn-macbeth-killing-guards .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2230 0%, #141118 100%);
  border-radius: 0 0 8px 8px;
}
.scn-macbeth-killing-guards .bed-frame {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #3a2c28 0%, #1e1815 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-macbeth-killing-guards .guard-a,
.scn-macbeth-killing-guards .guard-b {
  position: absolute; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1515 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-macbeth-killing-guards .guard-a {
  bottom: 29%; left: 30%;
  animation: mkg-still 4s ease-in-out infinite;
}
.scn-macbeth-killing-guards .guard-b {
  bottom: 29%; right: 32%;
  animation: mkg-still 4s ease-in-out infinite reverse;
}
.scn-macbeth-killing-guards .dagger-hand {
  position: absolute; bottom: 34%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(-15deg);
  animation: mkg-tremble 2s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-macbeth-killing-guards .candle-glow {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(circle, #e09030 0%, #b06020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mkg-flicker 3s ease-in-out infinite alternate;
}
.scn-macbeth-killing-guards .curtain-left,
.scn-macbeth-killing-guards .curtain-right {
  position: absolute; top: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #2a2230 0%, #141118 100%);
  opacity: 0.6;
}
.scn-macbeth-killing-guards .curtain-left {
  left: 0;
  animation: mkg-sway 12s ease-in-out infinite;
}
.scn-macbeth-killing-guards .curtain-right {
  right: 0;
  animation: mkg-sway 12s ease-in-out infinite reverse;
}
@keyframes mkg-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes mkg-still {
  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 mkg-tremble {
  0% { transform: rotate(-15deg) translate(0, 0); }
  30% { transform: rotate(-10deg) translate(2px, -1px); }
  60% { transform: rotate(-18deg) translate(-1px, 1px); }
  100% { transform: rotate(-15deg) translate(0, 0); }
}
@keyframes mkg-flicker {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes mkg-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

/* macbeth-justification */
.scn-macbeth-justification {
  background:
    linear-gradient(180deg, #1a1822 0%, #12101a 50%, #0a0810 100%),
    radial-gradient(ellipse at 60% 40%, #2a1f33 0%, transparent 60%);
}
.scn-macbeth-justification .wall {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, transparent 0%, rgba(40,30,50,0.4) 100%);
  animation: mju-shadow 18s ease-in-out infinite alternate;
}
.scn-macbeth-justification .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2230 0%, #181420 100%);
}
.scn-macbeth-justification .royal-bed {
  position: absolute; bottom: 22%; left: 15%; width: 70%; height: 35%;
  background: linear-gradient(180deg, #3a2c28 0%, #1e1815 100%);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7);
}
.scn-macbeth-justification .king-form {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: mju-breathe 8s ease-in-out infinite;
}
.scn-macbeth-justification .blood-streaks {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(90deg, transparent 0%, #8a6a3a 20%, #c8a040 40%, #8a6a3a 60%, transparent 100%);
  filter: blur(2px);
  border-radius: 10px;
  animation: mju-drip 6s ease-in-out infinite;
}
.scn-macbeth-justification .murderer-left,
.scn-macbeth-justification .murderer-right {
  position: absolute; width: 45px; height: 90px;
  background: linear-gradient(180deg, #2a2230 0%, #121018 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
}
.scn-macbeth-justification .murderer-left {
  bottom: 20%; left: 18%;
  animation: mju-turn 10s ease-in-out infinite;
}
.scn-macbeth-justification .murderer-right {
  bottom: 20%; right: 18%;
  animation: mju-turn 10s ease-in-out infinite reverse;
}
.scn-macbeth-justification .torch-glow {
  position: absolute; bottom: 50%; left: 55%; width: 80px; height: 100px;
  background: radial-gradient(circle, #e0a040 0%, #b07030 30%, transparent 70%);
  filter: blur(8px);
  animation: mju-fire 4s ease-in-out infinite alternate;
}
@keyframes mju-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes mju-breathe {
  0% { transform: scaleY(1) translateY(0); }
  40% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes mju-drip {
  0% { opacity: 0.6; transform: translateX(0) scaleY(1); }
  50% { opacity: 1; transform: translateX(3px) scaleY(1.2); }
  100% { opacity: 0.6; transform: translateX(0) scaleY(1); }
}
@keyframes mju-turn {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(5deg); }
  60% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mju-fire {
  0% { opacity: 0.4; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* lady-macbeth-faints */
.scn-lady-macbeth-faints {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #12101f 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 70%, #2a1f33 0%, transparent 70%);
}
.scn-lady-macbeth-faints .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(40,30,60,0.2) 0%, rgba(60,40,80,0.4) 50%, rgba(40,30,60,0.2) 100%);
  animation: lmf-drift 25s linear infinite alternate;
}
.scn-lady-macbeth-faints .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a2230 0%, #141118 100%);
}
.scn-lady-macbeth-faints .throne {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2c28 0%, #1e1815 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7);
}
.scn-lady-macbeth-faints .lady-falling {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmf-fall 6s ease-in-out infinite;
}
.scn-lady-macbeth-faints .lord-left,
.scn-lady-macbeth-faints .lord-right,
.scn-lady-macbeth-faints .lord-behind {
  position: absolute; width: 40px; height: 85px;
  background: linear-gradient(180deg, #2a2230 0%, #121018 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
}
.scn-lady-macbeth-faints .lord-left {
  bottom: 25%; left: 18%;
  animation: lmf-reach 4s ease-in-out infinite alternate;
}
.scn-lady-macbeth-faints .lord-right {
  bottom: 25%; right: 18%;
  animation: lmf-reach 4s ease-in-out infinite alternate-reverse;
}
.scn-lady-macbeth-faints .lord-behind {
  bottom: 28%; left: 45%; width: 45px; height: 90px;
  transform: scaleX(-1);
  animation: lmf-still 10s ease-in-out infinite;
}
.scn-lady-macbeth-faints .goblet {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-20deg);
  animation: lmf-tilt 3s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(200,160,64,0.5);
}
@keyframes lmf-drift {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes lmf-fall {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(10deg) translateY(-5px); }
  60% { transform: rotate(20deg) translateY(10px); }
  100% { transform: rotate(25deg) translateY(20px); }
}
@keyframes lmf-reach {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(10px) translateY(-5px); }
}
@keyframes lmf-still {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-2px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes lmf-tilt {
  0% { transform: rotate(-20deg) translate(0, 0); }
  50% { transform: rotate(10deg) translate(1px, -2px); }
  100% { transform: rotate(-20deg) translate(0, 0); }
}

/* malcolm-flees-england */
.scn-malcolm-flees-england {
  background:
    linear-gradient(180deg, #1a1822 0%, #12101a 50%, #0a0810 100%),
    radial-gradient(ellipse at 50% 30%, #2a2030 0%, transparent 60%);
}
.scn-malcolm-flees-england .stone-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(30,25,40,0.3) 0%, transparent 50%, rgba(30,25,40,0.3) 100%);
  animation: mfe-dance 30s linear infinite alternate;
}
.scn-malcolm-flees-england .door-arch {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  overflow: hidden;
}
.scn-malcolm-flees-england .malcolm-figure,
.scn-malcolm-flees-england .donalbain-figure {
  position: absolute; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2230 0%, #121018 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
}
.scn-malcolm-flees-england .malcolm-figure {
  bottom: 20%; left: 40%;
  animation: mfe-walk 8s ease-in-out infinite;
}
.scn-malcolm-flees-england .donalbain-figure {
  bottom: 20%; left: 52%;
  animation: mfe-walk 8s ease-in-out infinite 2s;
}
.scn-malcolm-flees-england .torch-left,
.scn-malcolm-flees-england .torch-right {
  position: absolute; bottom: 45%; width: 10px; height: 60px;
  background: radial-gradient(ellipse at center, #e09030 0%, #b06020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-malcolm-flees-england .torch-left {
  left: 20%;
  animation: mfe-flicker 3s ease-in-out infinite alternate;
}
.scn-malcolm-flees-england .torch-right {
  right: 20%;
  animation: mfe-flicker 3s ease-in-out infinite alternate-reverse;
}
.scn-malcolm-flees-england .shadow-pool {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse at center, #0a0810 0%, transparent 80%);
  filter: blur(8px);
  animation: mfe-pulse 6s ease-in-out infinite;
}
@keyframes mfe-dance {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes mfe-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(20px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(30px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}
@keyframes mfe-flicker {
  0% { opacity: 0.4; transform: scale(0.9); }
  100% { opacity: 0.8; transform: scale(1.1); }
}
@keyframes mfe-pulse {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene 1 — macbeth-banquo-safe */
.scn-macbeth-banquo-safe {
  background: linear-gradient(180deg, #3a2a2a 0%, #4a3a2e 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 70%);
}
.scn-macbeth-banquo-safe .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  animation: mb1-wall 12s ease-in-out infinite alternate;
}
.scn-macbeth-banquo-safe .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: mb1-floor 16s ease-in-out infinite alternate;
}
.scn-macbeth-banquo-safe .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: mb1-table 8s ease-in-out infinite;
}
.scn-macbeth-banquo-safe .goblet {
  position: absolute; bottom: 36%; left: 52%; 
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #806040 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mb1-goblet 6s ease-in-out infinite;
}
.scn-macbeth-banquo-safe .candle {
  position: absolute; bottom: 34%; left: 44%;
  width: 6px; height: 24px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 40%, #806040 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 0 4px rgba(240,208,160,.5);
  animation: mb1-candle 3s ease-in-out infinite;
}
.scn-macbeth-banquo-safe .candle-glow {
  position: absolute; bottom: 32%; left: 42%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,200,100,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: mb1-glow 2s ease-in-out infinite alternate;
}
.scn-macbeth-banquo-safe .serpent {
  position: absolute; bottom: 28%; left: 30%;
  width: 60px; height: 20px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 20% / 60% 50% 40% 30%;
  transform: rotate(15deg);
  animation: mb1-serpent 10s ease-in-out infinite;
}
.scn-macbeth-banquo-safe .macbeth {
  position: absolute; bottom: 20%; left: 58%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb1-macbeth 7s ease-in-out infinite;
}
.scn-macbeth-banquo-safe .chair {
  position: absolute; bottom: 24%; left: 40%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mb1-chair 9s ease-in-out infinite alternate;
}
@keyframes mb1-wall { 0% { opacity: 1 } 50% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes mb1-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes mb1-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes mb1-goblet { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 75% { transform: rotate(2deg) } }
@keyframes mb1-candle { 0%,100% { transform: scaleY(1) translateY(0); opacity: 1 } 50% { transform: scaleY(1.05) translateY(-1px); opacity: 0.9 } }
@keyframes mb1-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 mb1-serpent { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(20deg) translateX(4px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes mb1-macbeth { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(1px) rotate(0deg) } }
@keyframes mb1-chair { 0% { transform: scale(1) } 50% { transform: scale(0.97) } 100% { transform: scale(1) } }

/* Scene 2 — ghost-of-banquo-enters */
.scn-ghost-of-banquo-enters {
  background: linear-gradient(180deg, #3a2a3a 0%, #4a303a 40%, #2a1a2a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a4a 0%, transparent 60%);
}
.scn-ghost-of-banquo-enters .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a2a 100%);
  animation: mb2-wall 14s ease-in-out infinite alternate;
}
.scn-ghost-of-banquo-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  animation: mb2-floor 18s ease-in-out infinite alternate;
}
.scn-ghost-of-banquo-enters .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 35px;
  background: linear-gradient(180deg, #6a4a4a 0%, #4a2a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: mb2-table 10s ease-in-out infinite;
}
.scn-ghost-of-banquo-enters .ghost-sit {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 48px;
  background: linear-gradient(180deg, rgba(200,220,255,0.4) 0%, rgba(150,180,230,0.2) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(200,220,255,0.3), 0 0 40px rgba(150,180,230,0.1);
  backdrop-filter: blur(2px);
  animation: mb2-ghost 4s ease-in-out infinite alternate;
}
.scn-ghost-of-banquo-enters .candle {
  position: absolute; bottom: 30%; left: 36%;
  width: 5px; height: 22px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 40%, #806040 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 10% 10%;
  animation: mb2-candle 3s ease-in-out infinite;
}
.scn-ghost-of-banquo-enters .candle-glow {
  position: absolute; bottom: 28%; left: 34%;
  width: 28px; height: 28px;
  background: radial-gradient(circle, rgba(240,200,100,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: mb2-glow 2.5s ease-in-out infinite alternate;
}
.scn-ghost-of-banquo-enters .macbeth-stand {
  position: absolute; bottom: 18%; left: 62%;
  width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb2-macbeth 6s ease-in-out infinite;
}
.scn-ghost-of-banquo-enters .guest-left {
  position: absolute; bottom: 20%; left: 30%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: mb2-guest 9s ease-in-out infinite alternate;
}
.scn-ghost-of-banquo-enters .guest-right {
  position: absolute; bottom: 22%; right: 25%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: mb2-guest 9s ease-in-out infinite alternate 2s;
}
@keyframes mb2-wall { 0% { opacity: 1 } 50% { opacity: 0.85 } 100% { opacity: 1 } }
@keyframes mb2-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes mb2-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes mb2-ghost { 0% { opacity: 0.5; transform: translateX(-50%) scale(1) } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.05) } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.95) } }
@keyframes mb2-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.06) } }
@keyframes mb2-glow { 0% { transform: scale(0.7); opacity: 0.5 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(0.8); opacity: 0.6 } }
@keyframes mb2-macbeth { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes mb2-guest { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(0.95) translateY(-2px) } 100% { transform: scale(0.9) translateY(0) } }

/* Scene 3 — lady-macbeth-covers-fear */
.scn-lady-macbeth-covers-fear {
  background: linear-gradient(180deg, #4a3030 0%, #5a3a3a 40%, #3a2020 100%),
              radial-gradient(ellipse at 50% 25%, #6a4a4a 0%, transparent 60%);
}
.scn-lady-macbeth-covers-fear .wall {
  position: absolute; inset: 0 0 42% 0;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a2020 100%);
  animation: mb3-wall 13s ease-in-out infinite alternate;
}
.scn-lady-macbeth-covers-fear .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(0deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 25% 25% 0 0 / 12% 12% 0 0;
  animation: mb3-floor 17s ease-in-out infinite alternate;
}
.scn-lady-macbeth-covers-fear .table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 150px; height: 38px;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: mb3-table 9s ease-in-out infinite;
}
.scn-lady-macbeth-covers-fear .lady {
  position: absolute; bottom: 18%; left: 45%;
  width: 26px; height: 56px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb3-lady 5s ease-in-out infinite;
}
.scn-lady-macbeth-covers-fear .macbeth-seat {
  position: absolute; bottom: 22%; left: 55%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb3-macbeth 7s ease-in-out infinite;
}
.scn-lady-macbeth-covers-fear .guest {
  position: absolute; bottom: 20%; left: 32%;
  width: 18px; height: 44px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: mb3-guest 10s ease-in-out infinite alternate;
}
.scn-lady-macbeth-covers-fear .candle {
  position: absolute; bottom: 32%; left: 38%;
  width: 5px; height: 24px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 40%, #806040 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 10% 10%;
  animation: mb3-candle 3.5s ease-in-out infinite;
}
.scn-lady-macbeth-covers-fear .candle-glow {
  position: absolute; bottom: 30%; left: 36%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,200,100,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: mb3-glow 2.2s ease-in-out infinite alternate;
}
@keyframes mb3-wall { 0% { opacity: 1 } 50% { opacity: 0.88 } 100% { opacity: 1 } }
@keyframes mb3-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes mb3-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes mb3-lady { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(-4px) rotate(2deg) } 75% { transform: translateX(2px) rotate(-1deg) } }
@keyframes mb3-macbeth { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(0.95) translateY(-3px) } }
@keyframes mb3-guest { 0% { transform: scale(0.85) translateX(0) } 50% { transform: scale(0.9) translateX(-2px) } 100% { transform: scale(0.85) translateX(0) } }
@keyframes mb3-candle { 0%,100% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.07) scaleX(0.95) } }
@keyframes mb3-glow { 0% { transform: scale(0.6); opacity: 0.4 } 50% { transform: scale(1.4); opacity: 1 } 100% { transform: scale(0.7); opacity: 0.5 } }

/* Scene 4 — macbeth-ghost-vanishes */
.scn-macbeth-ghost-vanishes {
  background: linear-gradient(180deg, #2a1a2a 0%, #3a202a 40%, #1a0a1a 100%),
              radial-gradient(ellipse at 50% 20%, #4a2a3a 0%, transparent 60%);
}
.scn-macbeth-ghost-vanishes .wall {
  position: absolute; inset: 0 0 44% 0;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  animation: mb4-wall 15s ease-in-out infinite alternate;
}
.scn-macbeth-ghost-vanishes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 44%;
  background: linear-gradient(0deg, #3a1a2a 0%, #1a0a1a 100%);
  border-radius: 35% 35% 0 0 / 18% 18% 0 0;
  animation: mb4-floor 19s ease-in-out infinite alternate;
}
.scn-macbeth-ghost-vanishes .table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 155px; height: 36px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a2020 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: mb4-table 11s ease-in-out infinite;
}
.scn-macbeth-ghost-vanishes .empty-chair {
  position: absolute; bottom: 24%; left: 48%;
  width: 28px; height: 45px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: mb4-chair 8s ease-in-out infinite alternate;
}
.scn-macbeth-ghost-vanishes .goblet-tipped {
  position: absolute; bottom: 33%; left: 56%;
  width: 10px; height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #806040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: rotate(35deg);
  transform-origin: bottom center;
  animation: mb4-goblet 5s ease-in-out infinite;
}
.scn-macbeth-ghost-vanishes .macbeth-alone {
  position: absolute; bottom: 16%; left: 55%;
  width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb4-macbeth 6.5s ease-in-out infinite;
}
.scn-macbeth-ghost-vanishes .candle {
  position: absolute; bottom: 30%; left: 34%;
  width: 5px; height: 22px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 40%, #806040 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 10% 10%;
  animation: mb4-candle 4s ease-in-out infinite;
}
.scn-macbeth-ghost-vanishes .candle-glow {
  position: absolute; bottom: 28%; left: 32%;
  width: 26px; height: 26px;
  background: radial-gradient(circle, rgba(240,200,100,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: mb4-glow 2.8s ease-in-out infinite alternate;
}
@keyframes mb4-wall { 0% { opacity: 1 } 50% { opacity: 0.82 } 100% { opacity: 1 } }
@keyframes mb4-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes mb4-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes mb4-chair { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(0.96) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes mb4-goblet { 0% { transform: rotate(35deg) translateX(0) } 50% { transform: rotate(40deg) translateX(2px) } 100% { transform: rotate(35deg) translateX(0) } }
@keyframes mb4-macbeth { 0%,100% { transform: translateX(0) scale(1) } 25% { transform: translateX(-3px) scale(0.97) } 50% { transform: translateX(3px) scale(1.03) } 75% { transform: translateX(-1px) scale(0.98) } }
@keyframes mb4-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.08) translateY(-1px) } }
@keyframes mb4-glow { 0% { transform: scale(0.5); opacity: 0.3 } 50% { transform: scale(1.5); opacity: 1 } 100% { transform: scale(0.6); opacity: 0.4 } }

/* court-macbeth-arrives */
.scn-court-macbeth-arrives { background: linear-gradient(180deg, #1a101a 0%, #0d080d 50%, #1a101a 100%), radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 60%); }
.scn-court-macbeth-arrives .bg-wall { position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(135deg, #1c121c 0%, #0d080d 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-court-macbeth-arrives .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #0a060a 0%, #1c121c 100%); }
.scn-court-macbeth-arrives .arch { position: absolute; top: 5%; left: 15%; right: 15%; height: 55%; background: linear-gradient(180deg, #2a1a1a 0%, #1a101a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: ma-arch 8s ease-in-out infinite alternate; }
.scn-court-macbeth-arrives .figure-macbeth { position: absolute; bottom: 25%; left: 35%; width: 16px; height: 40px; background: linear-gradient(180deg, #1c121c 0%, #0d080d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-figure 4s ease-in-out infinite; }
.scn-court-macbeth-arrives .figure-servant { position: absolute; bottom: 25%; left: 52%; width: 12px; height: 32px; background: linear-gradient(180deg, #1c121c 0%, #0d080d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-servant 4.5s ease-in-out infinite; }
.scn-court-macbeth-arrives .torch { position: absolute; bottom: 42%; left: 32%; width: 8px; height: 10px; background: radial-gradient(circle, #ff9a4a 0%, #c86a2a 70%); border-radius: 50%; box-shadow: 0 0 12px 3px #ff8a3a, 0 0 24px 6px rgba(255,138,58,.4); animation: ma-torch 0.8s ease-in-out infinite alternate; }
.scn-court-macbeth-arrives .torch-glow { position: absolute; bottom: 38%; left: 29%; width: 50px; height: 50px; background: radial-gradient(circle, rgba(255,138,58,.25) 0%, transparent 70%); border-radius: 50%; animation: ma-glow 2s ease-in-out infinite alternate; }
.scn-court-macbeth-arrives .sword-glint { position: absolute; bottom: 38%; left: 43%; width: 2px; height: 16px; background: linear-gradient(180deg, transparent, rgba(255,255,200,.6), transparent); transform: rotate(20deg); animation: ma-glint 3s ease-in-out infinite; }
@keyframes ma-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ma-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ma-servant { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ma-torch { 0% { transform: scale(1) rotate(0deg); opacity: .8; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-2deg); opacity: .9; } }
@keyframes ma-glow { 0% { opacity: .6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes ma-glint { 0% { opacity: 0; } 33% { opacity: .8; } 66% { opacity: .2; } 100% { opacity: 0; } }

/* court-tempting-honour */
.scn-court-tempting-honour { background: linear-gradient(180deg, #14101a 0%, #0c0810 50%, #14101a 100%), radial-gradient(ellipse at 70% 50%, #1a1420 0%, transparent 60%); }
.scn-court-tempting-honour .bg-corridor { position: absolute; top: 0; left: 0; right: 0; bottom: 20%; background: linear-gradient(90deg, #1c1420 0%, #0c0810 50%, #1c1420 100%); }
.scn-court-tempting-honour .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #0a060e 0%, #1c1420 100%); }
.scn-court-tempting-honour .door { position: absolute; bottom: 20%; right: 10%; width: 40px; height: 60px; background: linear-gradient(180deg, #2a1c2a 0%, #1a101a 100%); border-radius: 4px 4px 0 0; transform-origin: left center; animation: th-door 6s ease-in-out infinite; }
.scn-court-tempting-honour .figure-banquo { position: absolute; bottom: 15%; right: 25%; width: 14px; height: 38px; background: linear-gradient(180deg, #1c1420 0%, #0c0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-banquo 8s ease-in-out infinite; }
.scn-court-tempting-honour .figure-fleance { position: absolute; bottom: 15%; right: 30%; width: 10px; height: 24px; background: linear-gradient(180deg, #1c1420 0%, #0c0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-fleance 8s ease-in-out infinite reverse; }
.scn-court-tempting-honour .candle { position: absolute; bottom: 25%; left: 20%; width: 6px; height: 12px; background: linear-gradient(180deg, #ffb07a 0%, #c8703a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 8px 2px #ff9a5a; animation: th-candle 1.2s ease-in-out infinite alternate; }
.scn-court-tempting-honour .candle-glow { position: absolute; bottom: 22%; left: 16%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,154,90,.25) 0%, transparent 70%); border-radius: 50%; animation: th-candle-glow 3s ease-in-out infinite alternate; }
.scn-court-tempting-honour .shadow { position: absolute; bottom: 0; right: 20%; width: 60px; height: 20px; background: linear-gradient(90deg, transparent 0%, #0a060e 50%, transparent 100%); transform: skewX(-20deg); animation: th-shadow 8s ease-in-out infinite; }
@keyframes th-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-15deg); } 75% { transform: rotateY(-15deg); } 100% { transform: rotateY(0deg); } }
@keyframes th-banquo { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-8px) translateY(-2px); } 75% { transform: translateX(-8px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes th-fleance { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-6px) translateY(-1px); } 75% { transform: translateX(-6px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes th-candle { 0% { transform: scaleY(1) rotate(0deg); opacity: .8; } 50% { transform: scaleY(1.15) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity: .7; } }
@keyframes th-candle-glow { 0% { opacity: .5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.05); } }
@keyframes th-shadow { 0% { opacity: .6; transform: skewX(-20deg) scaleX(1); } 50% { opacity: 1; transform: skewX(-25deg) scaleX(1.1); } 100% { opacity: .6; transform: skewX(-20deg) scaleX(1); } }

/* dagger-vision */
.scn-dagger-vision { background: linear-gradient(180deg, #0a0a12 0%, #06040a 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 40%, #1a1420 0%, transparent 60%); }
.scn-dagger-vision .bg-void { position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a12 30%, #121020 60%, #0a0a12 100%); }
.scn-dagger-vision .blade { position: absolute; top: 15%; left: 50%; width: 8px; height: 70px; background: linear-gradient(180deg, #9a9ab0 0%, #70708a 50%, #4a4a5e 100%); border-radius: 2px 2px 0 0; transform: translateX(-50%) rotate(15deg); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); box-shadow: 0 0 10px rgba(200,200,220,.3); animation: dv-blade 3s ease-in-out infinite; }
.scn-dagger-vision .guard { position: absolute; top: 30%; left: 50%; width: 20px; height: 4px; background: linear-gradient(90deg, #4a3a5a 0%, #3a2a4a 100%); border-radius: 2px; transform: translateX(-50%) rotate(15deg); box-shadow: 0 0 8px rgba(180,160,200,.2); }
.scn-dagger-vision .handle { position: absolute; top: 31%; left: 50%; width: 6px; height: 30px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 2px; transform: translateX(-50%) rotate(15deg); }
.scn-dagger-vision .arm { position: absolute; bottom: 20%; left: 38%; width: 14px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 6px 6px 4px 4px; transform-origin: top center; transform: rotate(10deg); animation: dv-arm 4s ease-in-out infinite; }
.scn-dagger-vision .hand { position: absolute; bottom: 50%; left: 42%; width: 18px; height: 16px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: dv-hand 4s ease-in-out infinite; }
.scn-dagger-vision .glow { position: absolute; top: 5%; left: 40%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(180,180,220,.08) 0%, transparent 70%); border-radius: 50%; animation: dv-glow 6s ease-in-out infinite alternate; }
@keyframes dv-blade { 0% { transform: translateX(-50%) rotate(15deg) translateY(0); opacity: .9; } 50% { transform: translateX(-50%) rotate(17deg) translateY(-8px); opacity: 1; } 100% { transform: translateX(-50%) rotate(14deg) translateY(2px); opacity: .8; } }
@keyframes dv-arm { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(9deg) translateY(0); } }
@keyframes dv-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(17deg) translateY(-2px); } 100% { transform: rotate(14deg) translateY(0); } }
@keyframes dv-glow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .7; transform: scale(1.08); } 100% { opacity: .4; transform: scale(0.95); } }

/* dagger-bell-ring */
.scn-dagger-bell-ring { background: linear-gradient(180deg, #0a0a12 0%, #06040a 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 20%, #1a1420 0%, transparent 60%); }
.scn-dagger-bell-ring .bg-arch { position: absolute; top: 0; left: 10%; right: 10%; height: 70%; background: linear-gradient(180deg, #1c1420 0%, #0c0810 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; }
.scn-dagger-bell-ring .bell { position: absolute; top: 5%; left: 50%; width: 30px; height: 34px; background: radial-gradient(ellipse at 50% 20%, #6a5a6a 0%, #3a2a3a 100%); border-radius: 50% 50% 30% 30%; transform: translateX(-50%); box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: db-bell 3s ease-in-out infinite; }
.scn-dagger-bell-ring .clapper { position: absolute; top: 25%; left: 50%; width: 6px; height: 8px; background: #2a1a2a; border-radius: 50%; transform: translateX(-50%); animation: db-clapper 3s ease-in-out infinite; }
.scn-dagger-bell-ring .rope { position: absolute; top: 12%; left: 50%; width: 2px; height: 80px; background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); transform: translateX(-50%); transform-origin: top center; animation: db-rope 3s ease-in-out infinite; }
.scn-dagger-bell-ring .figure-macbeth { position: absolute; bottom: 20%; right: 15%; width: 16px; height: 40px; background: linear-gradient(180deg, #1c1420 0%, #0c0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: db-figure 8s ease-in-out infinite; }
.scn-dagger-bell-ring .door { position: absolute; bottom: 20%; right: 10%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a1c2a 0%, #1a101a 100%); border-radius: 4px 0 0 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-dagger-bell-ring .shadow { position: absolute; bottom: 15%; right: 20%; width: 40px; height: 20px; background: linear-gradient(90deg, transparent, #0a060e 60%, transparent); transform: skewX(-15deg); animation: db-shadow 8s ease-in-out infinite; }
.scn-dagger-bell-ring .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #0a060e 0%, #1c1420 100%); }
@keyframes db-bell { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(10deg); } 75% { transform: translateX(-50%) rotate(-10deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes db-clapper { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(4px); } 75% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes db-rope { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(8deg); } 75% { transform: translateX(-50%) rotate(-8deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes db-figure { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-6px) translateY(-2px); } 50% { transform: translateX(-12px) translateY(0); } 75% { transform: translateX(-18px) translateY(-1px); } 100% { transform: translateX(-24px) translateY(0); } }
@keyframes db-shadow { 0% { opacity: .5; transform: skewX(-15deg) scaleX(1); } 50% { opacity: 1; transform: skewX(-20deg) scaleX(1.1); } 100% { opacity: .5; transform: skewX(-15deg) scaleX(1); } }

/* Scene: before-castle-duncan (calm, sunlit) */
.scn-before-castle-duncan {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFDAB9 40%, #F4A460 100%),
    radial-gradient(ellipse at 50% 0%, #FFFAF0 0%, transparent 60%);
}
.scn-before-castle-duncan .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(135,206,235,.6) 0%, transparent 100%);
  animation: bcd-sky 10s ease-in-out infinite alternate;
}
.scn-before-castle-duncan .sun {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #FFD700, 0 0 80px 40px rgba(255,215,0,.5);
  animation: bcd-sun 15s ease-in-out infinite alternate;
}
.scn-before-castle-duncan .castle {
  position: absolute; bottom: 20%; left: 35%; width: 180px; height: 120px;
  background:
    linear-gradient(180deg, #8B7355 0%, #6B5B3A 50%, #4A3D2A 100%),
    repeating-linear-gradient(90deg, #4A3D2A 0px, #4A3D2A 2px, transparent 2px, transparent 6px);
  border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 4px 8px rgba(255,255,255,.2);
  animation: bcd-castle 8s ease-in-out infinite;
}
.scn-before-castle-duncan .tower {
  position: absolute; bottom: 45%; left: 41%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7B6B4A 0%, #5A4A2A 100%);
  border-radius: 20% 20% 0 0; box-shadow: -2px 0 4px rgba(0,0,0,.5);
  animation: bcd-tower 6s ease-in-out infinite;
}
.scn-before-castle-duncan .martlet-1 {
  position: absolute; bottom: 60%; left: 20%; width: 24px; height: 12px;
  background: radial-gradient(ellipse at 40% 50%, #2F4F4F 0%, #1A1A2A 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-20deg); animation: bcd-bird1 12s ease-in-out infinite alternate;
}
.scn-before-castle-duncan .martlet-2 {
  position: absolute; bottom: 55%; right: 25%; width: 18px; height: 10px;
  background: radial-gradient(ellipse at 40% 50%, #2F4F4F 0%, #1A1A2A 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(15deg); animation: bcd-bird2 14s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-before-castle-duncan .cloud-1 {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%; filter: blur(8px); animation: bcd-cloud1 40s linear infinite;
}
.scn-before-castle-duncan .cloud-2 {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%; filter: blur(6px); animation: bcd-cloud2 55s linear infinite reverse;
  animation-delay: 10s;
}
.scn-before-castle-duncan .banner {
  position: absolute; bottom: 55%; left: 43%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #6B3A1A 100%);
  border-radius: 0 0 10% 10%; transform-origin: top center;
  animation: bcd-banner 4s ease-in-out infinite alternate;
}
@keyframes bcd-sky    { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes bcd-sun    { 0% { transform: translateX(-5px) translateY(2px); opacity:.95 } 50% { transform: translateX(0) translateY(0); opacity:1 } 100% { transform: translateX(5px) translateY(-2px); opacity:.9 } }
@keyframes bcd-castle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes bcd-tower  { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes bcd-bird1  { 0% { transform: translateX(-10px) translateY(0) rotate(-20deg) } 50% { transform: translateX(10px) translateY(-15px) rotate(-15deg) } 100% { transform: translateX(30px) translateY(-5px) rotate(-25deg) } }
@keyframes bcd-bird2  { 0% { transform: translateX(0) translateY(0) rotate(15deg) } 50% { transform: translateX(-20px) translateY(-10px) rotate(10deg) } 100% { transform: translateX(-40px) translateY(-5px) rotate(20deg) } }
@keyframes bcd-cloud1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes bcd-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }
@keyframes bcd-banner { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(1) } }

/* Scene: hostess-greeting (calm, sunlit interior) */
.scn-hostess-greeting {
  background:
    linear-gradient(180deg, #E8DCCB 0%, #C9A96E 40%, #8B7355 100%),
    radial-gradient(ellipse at 50% 100%, #D4B886 0%, transparent 70%);
}
.scn-hostess-greeting .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #BFA56A 0%, #D4B886 50%, #A48B5A 100%);
  border-bottom: 4px solid #7A6633;
  animation: hgg-wall 12s ease-in-out infinite alternate;
}
.scn-hostess-greeting .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8B7355 0%, #6B5B3A 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: hgg-floor 8s ease-in-out infinite;
}
.scn-hostess-greeting .door-arch {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, transparent 40%, #6B5B3A 40%, #4A3D2A 100%),
    radial-gradient(ellipse at 50% 40%, #A48B5A 0%, #7A6633 60%, transparent 60%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: hgg-door 10s ease-in-out infinite alternate;
}
.scn-hostess-greeting .light-beam {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 180px;
  background: linear-gradient(180deg, rgba(255,255,200,.4) 0%, rgba(255,255,200,.05) 100%);
  transform: rotate(-10deg); transform-origin: top center;
  filter: blur(4px); animation: hgg-beam 6s ease-in-out infinite alternate;
}
.scn-hostess-greeting .hostess-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 50%, #0A0A1A 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: -4px 0 8px rgba(0,0,0,.5);
  animation: hgg-figure 4s ease-in-out infinite;
}
.scn-hostess-greeting .train {
  position: absolute; bottom: 10%; left: 48%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  transform: skewX(-10deg); transform-origin: top left;
  animation: hgg-train 5s ease-in-out infinite alternate;
}
@keyframes hgg-wall  { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes hgg-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hgg-door  { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes hgg-beam  { 0% { opacity:.4; transform: rotate(-12deg) scaleY(1) } 50% { opacity:.7; transform: rotate(-8deg) scaleY(1.1) } 100% { opacity:.5; transform: rotate(-10deg) scaleY(1) } }
@keyframes hgg-figure{ 0%,100% { transform: translateX(-50%) translateY(0) rotate(1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } }
@keyframes hgg-train { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-2px) } 100% { transform: skewX(-12deg) translateY(0) } }

/* Scene: hostess-welcome (calm, sunlit interior, different composition) */
.scn-hostess-welcome {
  background:
    linear-gradient(180deg, #D4C4A8 0%, #BFA785 40%, #9A8360 100%),
    radial-gradient(ellipse at 50% 0%, #E8DCCB 0%, transparent 60%);
}
.scn-hostess-welcome .bg-hall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(90deg, #C9B088 0%, #D4C4A8 50%, #B09570 100%);
  animation: hww-hall 14s ease-in-out infinite alternate;
}
.scn-hostess-welcome .pillar-left {
  position: absolute; bottom: 10%; left: 12%; width: 24px; height: 160px;
  background: linear-gradient(90deg, #8B7355 0%, #A48B5A 50%, #7A6633 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.3);
  animation: hww-pillar 10s ease-in-out infinite alternate;
}
.scn-hostess-welcome .pillar-right {
  position: absolute; bottom: 10%; right: 12%; width: 24px; height: 160px;
  background: linear-gradient(90deg, #7A6633 0%, #A48B5A 50%, #8B7355 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: hww-pillar 10s ease-in-out infinite alternate-reverse;
}
.scn-hostess-welcome .chandelier {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 0%, #B8860B 0%, transparent 50%),
    radial-gradient(circle at 50% 50%, #FFD700 0%, #B8860B 60%, transparent 80%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 0 30px 10px #FFD700;
  animation: hww-chandelier 5s ease-in-out infinite alternate;
}
.scn-hostess-welcome .table {
  position: absolute; bottom: 10%; left: 30%; width: 160px; height: 12px;
  background: linear-gradient(90deg, #5A4A2A 0%, #7A6633 50%, #4A3D2A 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: hww-table 8s ease-in-out infinite;
}
.scn-hostess-welcome .goblet {
  position: absolute; bottom: 18%; left: 42%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #C9A96E 0%, #A48B5A 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: hww-goblet 4s ease-in-out infinite alternate;
}
.scn-hostess-welcome .hand {
  position: absolute; bottom: 16%; left: 40%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #D2B48C 0%, #A08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: hww-hand 5s ease-in-out infinite;
}
.scn-hostess-welcome .shadow-cast {
  position: absolute; bottom: 10%; left: 28%; width: 200px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(6px); animation: hww-shadow 9s ease-in-out infinite alternate;
}
@keyframes hww-hall   { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes hww-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes hww-chandelier { 0% { opacity:.85; transform: translateX(-50%) rotate(-2deg) } 50% { opacity:1; transform: translateX(-50%) rotate(2deg) } 100% { opacity:.9; transform: translateX(-50%) rotate(0) } }
@keyframes hww-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hww-goblet { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hww-hand   { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes hww-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.3 } 50% { transform: scaleX(1.2) scaleY(.8); opacity:.5 } 100% { transform: scaleX(.9) scaleY(1.1); opacity:.4 } }

/* Scene: macbeth-soliloquy-dagger (tense, dark firelit) */
.scn-macbeth-soliloquy-dagger {
  background:
    linear-gradient(180deg, #1A1A2E 0%, #2C2244 30%, #4A3A5A 60%, #2A1A2A 100%),
    radial-gradient(ellipse at 50% 30%, #5A2A2A 0%, transparent 60%);
}
.scn-macbeth-soliloquy-dagger .dark-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #1A1A2E 0%, #2A2030 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.8);
  animation: msd-wall 15s ease-in-out infinite alternate;
}
.scn-macbeth-soliloquy-dagger .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2A1A2A 0%, #0A0A1A 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
  animation: msd-floor 10s ease-in-out infinite;
}
.scn-macbeth-soliloquy-dagger .torch {
  position: absolute; bottom: 50%; right: 10%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #6B3A1A 0%, #3A1A0A 100%);
  border-radius: 4px; transform-origin: bottom center;
  animation: msd-torch 2s ease-in-out infinite alternate;
}
.scn-macbeth-soliloquy-dagger .torch-glow {
  position: absolute; bottom: 45%; right: 8%; width: 60px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #FF6347 0%, #C8553D 40%, transparent 70%);
  filter: blur(12px); opacity: .6; animation: msd-glow 3s ease-in-out infinite alternate;
}
.scn-macbeth-soliloquy-dagger .dagger {
  position: absolute; bottom: 35%; left: 45%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #C0C0C0 0%, #808080 50%, #606060 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 0 12px 4px rgba(192,192,192,.6), 0 0 24px 8px rgba(200,85,61,.4);
  transform: rotate(15deg);
  animation: msd-dagger 3s ease-in-out infinite, msd-flicker .5s steps(2) 10;
}
.scn-macbeth-soliloquy-dagger .hand-reaching {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #D2B48C 0%, #A08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: msd-hand 2s ease-in-out infinite;
}
.scn-macbeth-soliloquy-dagger .cloak {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(ellipse at 40% 20%, #2A1A2A 0%, #1A0A1A 100%);
  border-radius: 0 40% 50% 50% / 0 30% 50% 50%;
  box-shadow: 4px 4px 12px rgba(0,0,0,.7);
  animation: msd-cloak 5s ease-in-out infinite alternate;
}
.scn-macbeth-soliloquy-dagger .sparks {
  position: absolute; top: 20%; right: 12%; width: 4px; height: 4px;
  background: #FFD700; border-radius: 50%;
  box-shadow: 0 0 6px 2px #FFD700, 0 0 12px 4px rgba(255,215,0,.5);
  animation: msd-sparks 1s linear infinite;
}
.scn-macbeth-soliloquy-dagger .curtain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #2A1A3A 40%, #1A0A1A 100%);
  clip-path: polygon(0% 0%, 20% 10%, 40% 0%, 60% 8%, 80% 0%, 100% 12%, 100% 100%, 0% 100%);
  animation: msd-curtain 12s ease-in-out infinite alternate;
}
@keyframes msd-wall   { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes msd-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes msd-torch  { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.1) } 100% { transform: rotate(-2deg) scaleY(.95) } }
@keyframes msd-glow   { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes msd-dagger { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-4px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes msd-flicker { 0%,100% { opacity:1 } 50% { opacity:.7 } }
@keyframes msd-hand   { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(15deg) translateX(6px) } 100% { transform: rotate(25deg) translateX(2px) } }
@keyframes msd-cloak  { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.05) translateY(-4px) } 100% { transform: scaleX(.95) translateY(0) } }
@keyframes msd-sparks { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-20px) scale(.5); opacity:.5 } 100% { transform: translateY(0) scale(0); opacity:0 } }
@keyframes msd-curtain { 0% { clip-path: polygon(0% 0%, 20% 10%, 40% 0%, 60% 8%, 80% 0%, 100% 12%, 100% 100%, 0% 100%); } 50% { clip-path: polygon(0% 0%, 20% 15%, 40% 0%, 60% 12%, 80% 0%, 100% 18%, 100% 100%, 0% 100%); } 100% { clip-path: polygon(0% 0%, 20% 8%, 40% 0%, 60% 5%, 80% 0%, 100% 10%, 100% 100%, 0% 100%); } }

.scn-macbeth-fears-banquo-issue {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 30%, #4a2a1a 70%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 60%);
}
.scn-macbeth-fears-banquo-issue .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, transparent 100%);
  animation: mf1-backdrop 14s ease-in-out infinite alternate;
}
.scn-macbeth-fears-banquo-issue .roots {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 50% 50% / 0 0 70% 70%;
  transform-origin: bottom center;
  animation: mf1-roots 12s ease-in-out infinite;
}
.scn-macbeth-fears-banquo-issue .tree {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 140px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.6);
  animation: mf1-tree-sway 8s ease-in-out infinite;
}
.scn-macbeth-fears-banquo-issue .figure-macbeth {
  position: absolute; bottom: 14%; left: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mf1-figure 5s ease-in-out infinite alternate;
}
.scn-macbeth-fears-banquo-issue .fire {
  position: absolute; bottom: 6%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #d06020 0%, #8a3010 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mf1-fire 1.5s ease-in-out infinite alternate;
}
.scn-macbeth-fears-banquo-issue .smoke {
  position: absolute; bottom: 28%; left: 22%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,80,30,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: mf1-smoke 10s ease-out infinite;
}
.scn-macbeth-fears-banquo-issue .sparks {
  position: absolute; bottom: 40%; left: 25%; width: 4px; height: 4px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffa040, 0 0 12px #d06020;
  animation: mf1-sparks 2s ease-in-out infinite;
}

@keyframes mf1-backdrop { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mf1-roots { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes mf1-tree-sway { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes mf1-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-3px) translateY(1px) rotate(-1deg); } }
@keyframes mf1-fire { 0% { transform: scale(1) rotate(0deg); opacity: .9; } 50% { transform: scale(1.15) rotate(3deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-2deg); opacity: .8; } }
@keyframes mf1-smoke { 0% { transform: translateY(0) scale(0.8); opacity: 0.4; } 50% { transform: translateY(-60px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(-120px) scale(2.5); opacity: 0; } }
@keyframes mf1-sparks { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-40px) scale(1.2); opacity: 0.7; } 100% { transform: translateY(-80px) scale(0.5); opacity: 0; } }

/* --- Scene 2: macbeth-demands-answer --- */
.scn-macbeth-demands-answer {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #5a3010 0%, transparent 70%);
}
.scn-macbeth-demands-answer .cauldron {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
  animation: md1-cauldron 6s ease-in-out infinite alternate;
}
.scn-macbeth-demands-answer .fire-under {
  position: absolute; bottom: 14%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #d06020 0%, #8a3010 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: md1-fire 1.2s ease-in-out infinite alternate;
}
.scn-macbeth-demands-answer .steam {
  position: absolute; bottom: 56%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,70,40,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: md1-steam 7s ease-out infinite;
}
.scn-macbeth-demands-answer .witch-left {
  position: absolute; bottom: 18%; left: 16%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: md1-witch-left 4s ease-in-out infinite alternate;
}
.scn-macbeth-demands-answer .witch-right {
  position: absolute; bottom: 18%; right: 16%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: md1-witch-right 4s ease-in-out infinite alternate;
}
.scn-macbeth-demands-answer .bubble {
  position: absolute; bottom: 44%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c85a2a 0%, transparent 70%);
  border-radius: 50%;
  animation: md1-bubble 3s ease-in-out infinite;
}
.scn-macbeth-demands-answer .glow {
  position: absolute; bottom: 36%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 30px;
  background: radial-gradient(ellipse, #d06020 0%, transparent 100%);
  filter: blur(10px);
  animation: md1-glow 2s ease-in-out infinite alternate;
}
.scn-macbeth-demands-answer .sparkle {
  position: absolute; bottom: 50%; left: 45%; width: 3px; height: 3px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 4px #ffa040;
  animation: md1-sparkle 1.8s ease-in-out infinite;
}

@keyframes md1-cauldron { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-0.5deg) scale(0.98); } }
@keyframes md1-fire { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); opacity: .8; } 50% { transform: translateX(-50%) scale(1.2) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9) rotate(-1deg); opacity: .9; } }
@keyframes md1-steam { 0% { transform: translateX(-50%) translateY(0) scale(0.8); opacity: 0.5; } 50% { transform: translateX(calc(-50% + 10px)) translateY(-40px) scale(1.3); opacity: 0.2; } 100% { transform: translateX(calc(-50% - 5px)) translateY(-80px) scale(2); opacity: 0; } }
@keyframes md1-witch-left { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(3px) rotate(3deg) scale(1.02); } 100% { transform: translateX(-2px) rotate(-2deg) scale(0.98); } }
@keyframes md1-witch-right { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-3px) rotate(-3deg) scale(1.02); } 100% { transform: translateX(2px) rotate(2deg) scale(0.98); } }
@keyframes md1-bubble { 0% { transform: scale(0.8) translateY(0); opacity: 0.5; } 50% { transform: scale(1.3) translateY(-20px); opacity: 1; } 100% { transform: scale(0.5) translateY(-40px); opacity: 0; } }
@keyframes md1-glow { 0% { opacity: .6; filter: blur(8px); } 50% { opacity: 1; filter: blur(12px); } 100% { opacity: .7; filter: blur(10px); } }
@keyframes md1-sparkle { 0% { transform: translateY(0) scale(1); opacity: .8; } 50% { transform: translateY(-30px) scale(1.5); opacity: 1; } 100% { transform: translateY(-60px) scale(0.3); opacity: 0; } }

/* --- Scene 3: show-of-eight-kings --- */
.scn-show-of-eight-kings {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-show-of-eight-kings .king-fore {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.6);
  animation: s8k-king-fore 6s ease-in-out infinite alternate;
}
.scn-show-of-eight-kings .king-mid {
  position: absolute; bottom: 20%; left: 36%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.6);
  animation: s8k-king-mid 6s ease-in-out infinite alternate 0.5s;
}
.scn-show-of-eight-kings .king-back {
  position: absolute; bottom: 22%; left: 52%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.6);
  animation: s8k-king-back 6s ease-in-out infinite alternate 1s;
}
.scn-show-of-eight-kings .ghost-banquo {
  position: absolute; bottom: 16%; left: 66%; width: 22px; height: 55px;
  background: linear-gradient(180deg, rgba(60,40,20,0.4) 0%, rgba(30,20,10,0.2) 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  filter: blur(3px);
  animation: s8k-ghost 8s ease-in-out infinite alternate;
}
.scn-show-of-eight-kings .crowns {
  position: absolute; bottom: 44%; left: 20%; width: 24px; height: 12px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 6px #c8553d, 0 0 12px #a0461a;
  animation: s8k-crowns 3s ease-in-out infinite alternate;
}
.scn-show-of-eight-kings .scepter {
  position: absolute; bottom: 36%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: s8k-scepter 4s ease-in-out infinite alternate;
}
.scn-show-of-eight-kings .mirror {
  position: absolute; bottom: 28%; left: 62%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.2) 0%, rgba(200,150,100,0.05) 100%);
  border: 1px solid rgba(255,200,150,0.3);
  border-radius: 10%;
  box-shadow: 0 0 20px rgba(255,200,150,0.3);
  animation: s8k-mirror 2s ease-in-out infinite alternate;
}
.scn-show-of-eight-kings .firelight {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,100,30,0.15) 0%, transparent 70%);
  animation: s8k-firelight 3s ease-in-out infinite alternate;
}
.scn-show-of-eight-kings .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: s8k-shadow 5s ease-in-out infinite alternate;
}

@keyframes s8k-king-fore { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(4px) rotate(1deg) scale(1.02); } 100% { transform: translateX(-3px) rotate(-1deg) scale(0.98); } }
@keyframes s8k-king-mid { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(5px) rotate(2deg) scale(1.03); } 100% { transform: translateX(-2px) rotate(-1deg) scale(0.97); } }
@keyframes s8k-king-back { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(6px) rotate(1deg) scale(1.04); } 100% { transform: translateX(-4px) rotate(-2deg) scale(0.96); } }
@keyframes s8k-ghost { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.3; } 50% { transform: translateX(8px) translateY(-4px) rotate(3deg); opacity: 0.6; } 100% { transform: translateX(-5px) translateY(2px) rotate(-2deg); opacity: 0.2; } }
@keyframes s8k-crowns { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(5deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-3deg); opacity: 0.7; } }
@keyframes s8k-scepter { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(0.95); } }
@keyframes s8k-mirror { 0% { opacity: 0.3; box-shadow: 0 0 10px rgba(255,200,150,0.2); } 50% { opacity: 0.7; box-shadow: 0 0 30px rgba(255,200,150,0.4); } 100% { opacity: 0.4; box-shadow: 0 0 15px rgba(255,200,150,0.25); } }
@keyframes s8k-firelight { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s8k-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* --- Scene 4: macbeth-horrified-at-lineage --- */
.scn-macbeth-horrified-at-lineage {
  background: 
    linear-gradient(180deg, #0a0000 0%, #1a0a00 30%, #2a1a0a 60%, #0a0000 100%),
    radial-gradient(ellipse at 50% 50%, #3a1a0a 0%, transparent 80%);
}
.scn-macbeth-horrified-at-lineage .line-fore {
  position: absolute; bottom: 15%; left: 10%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.7);
  animation: mhl-line-fore 7s ease-in-out infinite alternate;
}
.scn-macbeth-horrified-at-lineage .line-mid {
  position: absolute; bottom: 17%; left: 26%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.7);
  animation: mhl-line-mid 7s ease-in-out infinite alternate 0.3s;
}
.scn-macbeth-horrified-at-lineage .line-back {
  position: absolute; bottom: 19%; left: 42%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.7);
  animation: mhl-line-back 7s ease-in-out infinite alternate 0.6s;
}
.scn-macbeth-horrified-at-lineage .mirror-horror {
  position: absolute; bottom: 22%; left: 58%; width: 32px; height: 44px;
  background: radial-gradient(ellipse, rgba(255,180,120,0.15) 0%, rgba(200,130,80,0.05) 100%);
  border: 1px solid rgba(255,180,120,0.2);
  border-radius: 10%;
  box-shadow: 0 0 30px rgba(255,180,120,0.2);
  animation: mhl-mirror 1.5s ease-in-out infinite alternate;
}
.scn-macbeth-horrified-at-lineage .figure-macbeth-horrified {
  position: absolute; bottom: 12%; left: 70%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mhl-figure-horrified 3s ease-in-out infinite alternate;
}
.scn-macbeth-horrified-at-lineage .eyes-glow {
  position: absolute; bottom: 36%; left: 71%; width: 6px; height: 4px;
  background: radial-gradient(circle, #d06020 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px #d06020, 0 0 20px #8a3010;
  animation: mhl-eyes 2s ease-in-out infinite alternate;
}
.scn-macbeth-horrified-at-lineage .shadow-crawl {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: mhl-shadow-crawl 6s ease-in-out infinite alternate;
}
.scn-macbeth-horrified-at-lineage .crack-doom {
  position: absolute; top: 20%; left: 10%; width: 2px; height: 60%;
  background: linear-gradient(180deg, #c8553d 0%, transparent 100%);
  border-radius: 1px;
  animation: mhl-crack 8s ease-in-out infinite alternate;
}
.scn-macbeth-horrified-at-lineage .firelight-horror {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,80,20,0.2) 0%, transparent 60%);
  animation: mhl-firelight-horror 2.5s ease-in-out infinite alternate;
}

@keyframes mhl-line-fore { 0% { transform: translateX(0) scale(1) rotate(0deg); } 50% { transform: translateX(6px) scale(1.03) rotate(2deg); } 100% { transform: translateX(-4px) scale(0.97) rotate(-1deg); } }
@keyframes mhl-line-mid { 0% { transform: translateX(0) scale(1) rotate(0deg); } 50% { transform: translateX(7px) scale(1.04) rotate(1deg); } 100% { transform: translateX(-5px) scale(0.96) rotate(-2deg); } }
@keyframes mhl-line-back { 0% { transform: translateX(0) scale(1) rotate(0deg); } 50% { transform: translateX(8px) scale(1.05) rotate(3deg); } 100% { transform: translateX(-6px) scale(0.95) rotate(-1deg); } }
@keyframes mhl-mirror { 0% { opacity: 0.2; box-shadow: 0 0 15px rgba(255,180,120,0.1); } 50% { opacity: 0.8; box-shadow: 0 0 40px rgba(255,180,120,0.4); } 100% { opacity: 0.3; box-shadow: 0 0 20px rgba(255,180,120,0.2); } }
@keyframes mhl-figure-horrified { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateX(4px) translateY(-3px) rotate(3deg) scale(1.04); } 100% { transform: translateX(-2px) translateY(2px) rotate(-1deg) scale(0.96); } }
@keyframes mhl-eyes { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.5; transform: scale(0.8); } }
@keyframes mhl-shadow-crawl { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes mhl-crack { 0% { transform: translateY(0) scaleY(1); opacity: 0.3; } 50% { transform: translateY(10px) scaleY(1.2); opacity: 0.7; } 100% { transform: translateY(-5px) scaleY(0.9); opacity: 0.4; } }
@keyframes mhl-firelight-horror { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* ---- lady-waits ---- */
.scn-lady-waits {
  background:
    linear-gradient(#1a1a2e 0%, #0a0a1a 100%),
    radial-gradient(circle at 30% 40%, #2a2a4e 0%, transparent 70%);
}
.scn-lady-waits .wall    { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #141428 100%); }
.scn-lady-waits .door    { position:absolute; left:20%; top:30%; width:20%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 8px 8px 0; transform:skewY(-5deg); transform-origin:left; animation: lw-door 5s ease-in-out infinite; }
.scn-lady-waits .light-shaft { position:absolute; left:18%; top:30%; width:25%; height:70%; background: linear-gradient(90deg, rgba(255,220,180,.25) 0%, transparent 100%); border-radius:0 0 50% 50%; filter:blur(4px); animation: lw-shaft 6s ease-in-out infinite alternate; }
.scn-lady-waits .figure  { position:absolute; bottom:10%; left:50%; width:50px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: lw-figure 4s ease-in-out infinite; }
.scn-lady-waits .candle  { position:absolute; bottom:18%; left:42%; width:8px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:2px; animation: lw-flicker .8s ease-in-out infinite alternate; }
.scn-lady-waits .candle::after { content:''; position:absolute; top:-10px; left:50%; width:6px; height:14px; background: radial-gradient(circle, #ffd680 0%, #c08040 100%); border-radius:50%; transform:translateX(-50%); animation: lw-flame .3s ease-in-out infinite alternate; }
.scn-lady-waits .shadow  { position:absolute; bottom:0; left:30%; width:80px; height:20px; background: rgba(0,0,0,.4); border-radius:50%; filter:blur(4px); transform-origin:center; animation: lw-shadow 3s ease-in-out infinite; }
@keyframes lw-door   { 0% { transform: skewY(-5deg) } 50% { transform: skewY(-7deg) } 100% { transform: skewY(-5deg) } }
@keyframes lw-shaft  { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.6; transform:scaleX(1.1) } 100% { opacity:.3; transform:scaleX(1) } }
@keyframes lw-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes lw-flicker { 0% { opacity:.7; transform:scaleY(1) } 100% { opacity:1; transform:scaleY(1.1) } }
@keyframes lw-flame  { 0% { transform: translateX(-50%) scale(.9); opacity:.8 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(.95); opacity:.9 } }
@keyframes lw-shadow { 0% { transform:scaleX(1) scaleY(1); opacity:.3 } 50% { transform:scaleX(1.2) scaleY(.95); opacity:.5 } 100% { transform:scaleX(1) scaleY(1); opacity:.3 } }

/* ---- deed-done ---- */
.scn-deed-done {
  background:
    linear-gradient(180deg, #1a0f0f 0%, #0a0505 100%),
    radial-gradient(circle at 20% 80%, #3a1a1a 0%, transparent 80%);
}
.scn-deed-done .floor     { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-deed-done .wall      { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a0f0f 0%, #141008 100%); }
.scn-deed-done .figure    { position:absolute; bottom:20%; left:50%; width:60px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-radius:35% 35% 25% 25% / 55% 55% 25% 25%; animation: dd-breathe 3s ease-in-out infinite; }
.scn-deed-done .hands     { position:absolute; bottom:35%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 -4px 0 #5e1a1d; animation: dd-tremble .5s ease-in-out infinite; }
.scn-deed-done .blood-drop { position:absolute; top:35%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 100%); border-radius:50%; animation: dd-fall 2.5s ease-in infinite; }
.scn-deed-done .window    { position:absolute; left:70%; top:15%; width:30px; height:40px; background: #0a1620; border:2px solid #1a1a1a; border-radius:4px; animation: dd-moon 6s ease-in-out infinite; }
.scn-deed-done .owl       { position:absolute; left:70%; top:18%; width:20px; height:15px; transform:translateX(-50%); background: radial-gradient(circle at 40% 40%, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40%; animation: dd-owl 10s ease-in-out infinite; }
@keyframes dd-breathe { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.04); } }
@keyframes dd-tremble { 0% { transform: translateX(-50%) translateX(0); } 25% { transform: translateX(-50%) translateX(-1px); } 75% { transform: translateX(-50%) translateX(1px); } 100% { transform: translateX(-50%) translateX(0); } }
@keyframes dd-fall    { 0% { transform: translateY(0); opacity:1; } 50% { transform: translateY(20px); opacity:.8; } 100% { transform: translateY(40px); opacity:0; } }
@keyframes dd-moon    { 0%,100% { opacity:.4; } 50% { opacity:.7; } }
@keyframes dd-owl     { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(8deg); } 50% { transform: translateX(-50%) rotate(-5deg); } 75% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0); } }

/* ---- sleep-no-more ---- */
.scn-sleep-no-more {
  background:
    linear-gradient(180deg, #0d0d1a 0%, #05050a 100%),
    radial-gradient(circle at 50% 30%, #1a1a3e 0%, transparent 60%);
}
.scn-sleep-no-more .bg       { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,.02) 2px, rgba(255,255,255,.02) 4px); }
.scn-sleep-no-more .figure   { position:absolute; bottom:15%; left:40%; width:50px; height:110px; background: linear-gradient(180deg, #0a0a0a 0%, #030303 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation: sn-shake .8s ease-in-out infinite; }
.scn-sleep-no-more .figure::after { content:''; position:absolute; top:25%; left:50%; width:12px; height:20px; background: #0a0a0a; border-radius:50%; transform:translateX(-50%); }
.scn-sleep-no-more .ghost    { position:absolute; bottom:50%; right:20%; width:30px; height:70px; background: rgba(200,200,255,.05); border-radius:50% 50% 30% 30% / 80% 80% 30% 30%; filter:blur(3px); animation: sn-float 8s ease-in-out infinite; }
.scn-sleep-no-more .whisper-1 { position:absolute; top:30%; left:10%; width:80px; height:2px; background: rgba(255,255,255,.05); border-radius:2px; filter:blur(1px); animation: sn-whisper 12s linear infinite; }
.scn-sleep-no-more .whisper-2 { position:absolute; top:45%; right:10%; width:60px; height:2px; background: rgba(255,255,255,.04); border-radius:2px; filter:blur(1px); animation: sn-whisper 15s linear infinite reverse; }
.scn-sleep-no-more .eye      { position:absolute; top:20%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 50% 50%, #2a2a3e 0%, #0a0a1a 100%); border-radius:50%; border:2px solid #1a1a2a; animation: sn-blink 4s ease-in-out infinite; }
.scn-sleep-no-more .eye::after { content:''; position:absolute; top:10%; left:10%; width:12px; height:12px; background: radial-gradient(circle, #4a4a6e 0%, transparent 100%); border-radius:50%; }
@keyframes sn-float  { 0% { transform:translateY(0) scale(1); } 33% { transform:translateY(-10px) scale(1.05); } 66% { transform:translateY(-5px) scale(.95); } 100% { transform:translateY(0) scale(1); } }
@keyframes sn-whisper { 0% { transform:translateX(-30px); opacity:0; } 25% { transform:translateX(0); opacity:.3; } 75% { transform:translateX(20px); opacity:.2; } 100% { transform:translateX(40px); opacity:0; } }
@keyframes sn-shake { 0% { transform:rotate(0) translateX(0); } 20% { transform:rotate(1deg) translateX(2px); } 40% { transform:rotate(-1deg) translateX(-2px); } 60% { transform:rotate(.5deg) translateX(1px); } 80% { transform:rotate(-.5deg) translateX(-1px); } 100% { transform:rotate(0) translateX(0); } }
@keyframes sn-blink { 0% { transform:translateX(-50%) scaleY(1); } 48% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(0.1); } 52% { transform:translateX(-50%) scaleY(1); } 100% { transform:translateX(-50%) scaleY(1); } }

/* ---- lady-commands-water ---- */
.scn-lady-commands-water {
  background:
    linear-gradient(180deg, #12101a 0%, #0a0810 100%),
    radial-gradient(circle at 50% 60%, #1a1a2a 0%, transparent 70%);
}
.scn-lady-commands-water .wall   { position:absolute; inset:0; background: linear-gradient(90deg, #12101a 0%, #0e0c14 100%); }
.scn-lady-commands-water .table  { position:absolute; bottom:25%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,.5); }
.scn-lady-commands-water .basin  { position:absolute; bottom:28%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50%; overflow:hidden; }
.scn-lady-commands-water .water  { position:absolute; bottom:0; left:0; width:100%; height:60%; background: linear-gradient(180deg, rgba(60,80,120,.3) 0%, rgba(40,60,100,.1) 100%); border-radius:0 0 50% 50%; animation: lc-wave 4s ease-in-out infinite; }
.scn-lady-commands-water .hand   { position:absolute; bottom:33%; left:48%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin:bottom; animation: lc-dip 2.5s ease-in-out infinite; }
.scn-lady-commands-water .candle { position:absolute; bottom:30%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; animation: lc-flicker .6s ease-in-out infinite alternate; }
.scn-lady-commands-water .candle::after { content:''; position:absolute; top:-8px; left:50%; width:4px; height:10px; background: radial-gradient(circle, #ffd680 0%, #c08040 100%); border-radius:50%; transform:translateX(-50%); animation: lc-flame .2s ease-in-out infinite alternate; }
.scn-lady-commands-water .figure { position:absolute; bottom:10%; right:25%; width:40px; height:110px; background: linear-gradient(180deg, #0a0a0a 0%, #030303 100%); border-radius:35% 35% 25% 25% / 55% 55% 25% 25%; transform-origin:bottom; animation: lc-command 3s ease-in-out infinite; }
@keyframes lc-wave    { 0% { transform:translateX(0); } 33% { transform:translateX(4px); } 66% { transform:translateX(-4px); } 100% { transform:translateX(0); } }
@keyframes lc-dip     { 0%,100% { transform:translateY(0); } 50% { transform:translateY(6px); } }
@keyframes lc-flicker { 0% { opacity:.7; transform:scaleY(1); } 100% { opacity:1; transform:scaleY(1.1); } }
@keyframes lc-flame   { 0% { transform: translateX(-50%) scale(.9); opacity:.8 } 50% { transform: translateX(-50%) scale(1.15); opacity:1 } 100% { transform: translateX(-50%) scale(.95); opacity:.9 } }
@keyframes lc-command { 0%,100% { transform: rotate(0); } 50% { transform: rotate(3deg); } }

.scn-thane-of-cawdor {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #a09070 0%, transparent 60%);
}
.scn-thane-of-cawdor .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%); animation: thc-sky 15s ease-in-out infinite alternate; }
.scn-thane-of-cawdor .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: thc-hills 20s ease-in-out infinite alternate; }
.scn-thane-of-cawdor .castle { position:absolute; bottom:30%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-thane-of-cawdor .castle::before { content:''; position:absolute; top:-15px; left:10px; width:20px; height:20px; background: #8a7a5a; border-radius: 50% 50% 0 0; }
.scn-thane-of-cawdor .banner { position:absolute; bottom:55%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #b87878 0%, #a0461a 100%); border-radius:0; clip-path: polygon(0 0, 100% 0, 100% 70%, 0 100%); animation: thc-banner 3s ease-in-out infinite; }
.scn-thane-of-cawdor .path { position:absolute; bottom:20%; left:40%; width:100px; height:30px; background: #5a4a3a; border-radius: 50%; filter: blur(3px); animation: thc-path 10s ease-in-out infinite alternate; }
.scn-thane-of-cawdor .tree-1 { position:absolute; bottom:30%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 10% 10%; }
.scn-thane-of-cawdor .tree-2 { position:absolute; bottom:30%; right:30%; width:15px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10%; }
@keyframes thc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes thc-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes thc-banner { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } }
@keyframes thc-path { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }

.scn-heath-witches-sister {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 60%);
}
.scn-heath-witches-sister .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); animation: hws-sky 12s ease-in-out infinite alternate; }
.scn-heath-witches-sister .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0; }
.scn-heath-witches-sister .witch { position:absolute; bottom:10%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-heath-witches-sister .witch-a { left:20%; animation: hws-witch-a 5s ease-in-out infinite; }
.scn-heath-witches-sister .witch-b { left:45%; animation: hws-witch-b 6s ease-in-out infinite; }
.scn-heath-witches-sister .witch-c { left:70%; animation: hws-witch-c 4s ease-in-out infinite; }
.scn-heath-witches-sister .pig { position:absolute; bottom:10%; left:35%; width:40px; height:20px; background: #3a2a2a; border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hws-pig 7s ease-in-out infinite; }
.scn-heath-witches-sister .cauldron { position:absolute; bottom:10%; left:55%; width:50px; height:40px; background: #2a2a2a; border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -10px 10px rgba(0,0,0,.6); animation: hws-cauldron 8s ease-in-out infinite; }
@keyframes hws-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes hws-witch-a { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } }
@keyframes hws-witch-b { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-1deg) } }
@keyframes hws-witch-c { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-6px) rotate(1deg) } }
@keyframes hws-pig { 0%,100% { transform: scale(1) } 50% { transform: scale(0.95) } }
@keyframes hws-cauldron { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }

.scn-heath-witches-incantation {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #000010 100%), radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%);
}
.scn-heath-witches-incantation .deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1e 80%); }
.scn-heath-witches-incantation .cauldron { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 5px rgba(255,100,0,.3); animation: hwi-cauldron 6s ease-in-out infinite; }
.scn-heath-witches-incantation .fire-glow { position:absolute; bottom:20%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ff8030 0%, #ff4000 40%, transparent 70%); filter: blur(8px); animation: hwi-fire 2s ease-in-out infinite alternate; }
.scn-heath-witches-incantation .hand { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: rotate(20deg); animation: hwi-hand 4s ease-in-out infinite; }
.scn-heath-witches-incantation .thumb { position:absolute; bottom:45%; left:60%; width:10px; height:15px; background: #3a2a1a; border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); animation: hwi-thumb 3s ease-in-out infinite; }
.scn-heath-witches-incantation .witch-shadow { position:absolute; bottom:0; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1e 0%, transparent 100%); border-radius: 50% 50% 40% 40%; opacity:.5; }
@keyframes hwi-cauldron { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } }
@keyframes hwi-fire { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(0.95) } }
@keyframes hwi-hand { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } }
@keyframes hwi-thumb { 0%,100% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.05) } }

.scn-heath-macbeth-approaches {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #050510 100%), radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 60%);
}
.scn-heath-macbeth-approaches .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: hma-sky 15s ease-in-out infinite alternate; }
.scn-heath-macbeth-approaches .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #050510 100%); border-radius: 50% 50% 0 0; }
.scn-heath-macbeth-approaches .witch { position:absolute; bottom:10%; width:25px; height:60px; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-heath-macbeth-approaches .witch-1 { left:15%; animation: hma-witch1 6s ease-in-out infinite; }
.scn-heath-macbeth-approaches .witch-2 { left:45%; animation: hma-witch2 7s ease-in-out infinite; }
.scn-heath-macbeth-approaches .witch-3 { left:75%; animation: hma-witch3 5s ease-in-out infinite; }
.scn-heath-macbeth-approaches .figure { position:absolute; bottom:12%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-heath-macbeth-approaches .figure-m { left:30%; animation: hma-macbeth 10s ease-in-out infinite; }
.scn-heath-macbeth-approaches .figure-b { left:60%; animation: hma-banquo 12s ease-in-out infinite; }
.scn-heath-macbeth-approaches .drum { position:absolute; bottom:20%; left:50%; width:20px; height:20px; background: #3a2a2a; border-radius: 50%; box-shadow: 0 0 10px 2px rgba(255,100,0,.2); animation: hma-drum 2s ease-in-out infinite alternate; }
@keyframes hma-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes hma-witch1 { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(2deg) } }
@keyframes hma-witch2 { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-6px) rotate(-1deg) } }
@keyframes hma-witch3 { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-10px) rotate(1deg) } }
@keyframes hma-macbeth { 0% { transform: scale(0.8) translateX(-10px) } 50% { transform: scale(1) translateX(0) } 100% { transform: scale(0.9) translateX(10px) } }
@keyframes hma-banquo { 0% { transform: scale(0.7) translateX(10px) } 50% { transform: scale(0.9) translateX(0) } 100% { transform: scale(0.8) translateX(-10px) } }
@keyframes hma-drum { 0% { transform: scale(1) } 100% { transform: scale(1.1) } }

/* Scene: lady-macduff-laments-flight */
.scn-lady-macduff-laments-flight {
  background: linear-gradient(180deg, #2a1e1a 0%, #1c1512 50%, #14100e 100%), radial-gradient(ellipse at 70% 60%, #3a2a22 0%, transparent 60%);
}
.scn-lady-macduff-laments-flight .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1e1a 50%, #1c1512 100%);
  animation: lm1-wall 18s ease infinite alternate;
}
.scn-lady-macduff-laments-flight .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a1410 0%, #261e1a 100%);
}
.scn-lady-macduff-laments-flight .window {
  position:absolute; top:15%; right:8%; width:25%; height:50%;
  background: linear-gradient(180deg, #0e1a2a 0%, #1a2a3a 50%, #2a3a4a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: lm1-win 10s ease-in-out infinite alternate;
}
.scn-lady-macduff-laments-flight .window-sill {
  position:absolute; bottom:40%; right:8%; width:28%; height:4%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-lady-macduff-laments-flight .table {
  position:absolute; bottom:30%; left:10%; width:30%; height:12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-lady-macduff-laments-flight .figure-mother {
  position:absolute; bottom:38%; left:15%; width:16%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lm1-mother 6s ease-in-out infinite;
}
.scn-lady-macduff-laments-flight .figure-child {
  position:absolute; bottom:42%; left:28%; width:10%; height:20%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lm1-child 4s ease-in-out infinite;
}
.scn-lady-macduff-laments-flight .candle {
  position:absolute; bottom:38%; left:16%; width:2%; height:6%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 50%, #a08060 100%);
  border-radius: 10%;
}
.scn-lady-macduff-laments-flight .candle-glow {
  position:absolute; bottom:36%; left:14%; width:6%; height:12%;
  background: radial-gradient(ellipse, #ffd0a0 0%, rgba(255,208,160,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lm1-glow 2s ease-in-out infinite alternate;
}
@keyframes lm1-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lm1-win { 0% { background: linear-gradient(180deg, #0e1a2a 0%, #1a2a3a 50%, #2a3a4a 100%); } 50% { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #3a4a5a 100%); } 100% { background: linear-gradient(180deg, #0e1a2a 0%, #1a2a3a 50%, #2a3a4a 100%); } }
@keyframes lm1-mother { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lm1-child { 0% { transform: translateY(0); } 50% { transform: translateY(-2%); } 100% { transform: translateY(0); } }
@keyframes lm1-glow { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:.8; } }

/* Scene: ross-defends-macduff */
.scn-ross-defends-macduff {
  background: linear-gradient(180deg, #2a1a1a 0%, #1c1512 50%, #14100e 100%), radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 60%);
}
.scn-ross-defends-macduff .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1e1a 50%, #1c1512 100%);
}
.scn-ross-defends-macduff .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #1a1410 0%, #261e1a 100%);
}
.scn-ross-defends-macduff .fireplace {
  position:absolute; bottom:20%; left:5%; width:20%; height:50%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1e1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-ross-defends-macduff .fire-glow {
  position:absolute; bottom:22%; left:10%; width:10%; height:18%;
  background: radial-gradient(ellipse, #ff8040 0%, rgba(255,128,64,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rd2-fire 1.5s ease-in-out infinite alternate;
}
.scn-ross-defends-macduff .figure-ross {
  position:absolute; bottom:30%; right:12%; width:15%; height:45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd2-ross 5s ease-in-out infinite;
}
.scn-ross-defends-macduff .figure-macduff {
  position:absolute; bottom:30%; left:30%; width:15%; height:45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd2-macduff 7s ease-in-out infinite;
}
.scn-ross-defends-macduff .gesture {
  position:absolute; bottom:42%; left:38%; width:10%; height:4%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1c1512 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: rd2-gesture 3s ease-in-out infinite alternate;
}
.scn-ross-defends-macduff .column {
  position:absolute; bottom:20%; left:50%; width:6%; height:60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
}
@keyframes rd2-fire { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.2) translateY(-5%); opacity:1; } 100% { transform: scaleY(.9) translateY(2%); opacity:.9; } }
@keyframes rd2-ross { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes rd2-macduff { 0% { transform: translateX(0); } 50% { transform: translateX(2%); } 100% { transform: translateX(0); } }
@keyframes rd2-gesture { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(-10deg) scaleX(1); } }

/* Scene: ross-takes-leave */
.scn-ross-takes-leave {
  background: linear-gradient(180deg, #2a1e1a 0%, #1c1512 50%, #14100e 100%), radial-gradient(ellipse at 80% 50%, #3a2a22 0%, transparent 60%);
}
.scn-ross-takes-leave .wall {
  position:absolute; inset:0 0 28% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1e1a 50%, #1c1512 100%);
}
.scn-ross-takes-leave .floor {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(0deg, #1a1410 0%, #261e1a 100%);
}
.scn-ross-takes-leave .doorway {
  position:absolute; right:5%; top:5%; width:20%; height:65%;
  background: linear-gradient(180deg, #0a0a0a 0%, #141010 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
}
.scn-ross-takes-leave .figure-ross {
  position:absolute; bottom:32%; right:18%; width:14%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt3-ross 10s ease-in-out infinite;
}
.scn-ross-takes-leave .figure-lady {
  position:absolute; bottom:32%; left:12%; width:16%; height:42%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rt3-lady 6s ease-in-out infinite;
}
.scn-ross-takes-leave .figure-child {
  position:absolute; bottom:36%; left:5%; width:10%; height:18%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rt3-child 3s ease-in-out infinite;
}
.scn-ross-takes-leave .lantern {
  position:absolute; bottom:35%; right:22%; width:4%; height:8%;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-ross-takes-leave .lantern-glow {
  position:absolute; bottom:33%; right:20%; width:8%; height:12%;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rt3-glow 2s ease-in-out infinite alternate;
}
@keyframes rt3-ross { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-20%) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes rt3-lady { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes rt3-child { 0% { transform: translateY(0); } 50% { transform: translateY(-5%); } 100% { transform: translateY(0); } }
@keyframes rt3-glow { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(1); opacity:.8; } }

/* Scene: ross-exit */
.scn-ross-exit {
  background: linear-gradient(180deg, #2a1e1a 0%, #1c1512 50%, #14100e 100%), radial-gradient(ellipse at 50% 40%, #3a2a22 0%, transparent 60%);
}
.scn-ross-exit .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1e1a 50%, #1c1512 100%);
}
.scn-ross-exit .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a1410 0%, #261e1a 100%);
}
.scn-ross-exit .door {
  position:absolute; right:8%; top:10%; width:18%; height:60%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1c1512 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  transform-origin: right center;
  animation: re4-door 14s ease-in-out infinite alternate;
}
.scn-ross-exit .door-frame {
  position:absolute; right:6%; top:8%; width:22%; height:64%;
  border: 4px solid #3a2a22;
  border-radius: 8% 8% 0 0;
  background: transparent;
}
.scn-ross-exit .figure-ross {
  position:absolute; bottom:30%; right:20%; width:12%; height:35%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: re4-ross 20s ease-in-out infinite;
}
.scn-ross-exit .table {
  position:absolute; bottom:30%; left:5%; width:25%; height:10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-ross-exit .candle {
  position:absolute; bottom:33%; left:10%; width:2%; height:5%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 50%, #a08060 100%);
  border-radius: 10%;
}
.scn-ross-exit .candle-glow {
  position:absolute; bottom:31%; left:8%; width:6%; height:10%;
  background: radial-gradient(ellipse, #ffd0a0 0%, rgba(255,208,160,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: re4-glow 2.5s ease-in-out infinite alternate;
}
@keyframes re4-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-10deg); } 100% { transform: rotateY(0deg); } }
@keyframes re4-ross { 0% { transform: translateX(0) scaleX(1); opacity:1; } 50% { transform: translateX(50%) scaleX(0.8); opacity:0.6; } 100% { transform: translateX(0) scaleX(1); opacity:1; } }
@keyframes re4-glow { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(1); opacity:.8; } }

.scn-macbeth-toasts-banquo {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #8a4a3a 60%, #4a2a1a 100%), radial-gradient(ellipse at 50% 30%, #ffcc80 0%, transparent 70%);
  background-blend-mode: overlay, normal;
}
.scn-macbeth-toasts-banquo .mtb-table {
  position:absolute; bottom:20%; left:10%; right:10%; height:8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-macbeth-toasts-banquo .mtb-wine {
  position:absolute; bottom:27%; left:50%; width:12px; height:18px;
  background: radial-gradient(ellipse at 30% 30%, #b8653a 0%, #8a401a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 8px 2px #d08040;
  animation: mtb-wine 3s ease-in-out infinite;
}
.scn-macbeth-toasts-banquo .mtb-macbeth {
  position:absolute; bottom:27%; left:35%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtb-macbeth 2s ease-in-out infinite;
}
.scn-macbeth-toasts-banquo .mtb-banquo-ghost {
  position:absolute; bottom:27%; right:30%; width:22px; height:45px;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: mtb-ghost 6s ease-in-out infinite;
}
.scn-macbeth-toasts-banquo .mtb-candle {
  position:absolute; bottom:30%; left:30%; width:6px; height:14px;
  background: linear-gradient(180deg, #e0a060 0%, #c08040 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 12px 4px #ffcc80, 0 0 20px 6px rgba(255,204,128,0.4);
  animation: mtb-candle 2s ease-in-out infinite;
}
.scn-macbeth-toasts-banquo .mtb-shadow {
  position:absolute; bottom:20%; left:30%; width:40px; height:10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: mtb-shadow 4s ease-in-out infinite;
}
.scn-macbeth-toasts-banquo .mtb-drapery {
  position:absolute; top:0; right:20%; width:15%; height:80%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 20px 20px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
}
@keyframes mtb-wine {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity:1; }
  100% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
}
@keyframes mtb-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mtb-ghost {
  0% { opacity:0; transform: scale(0.8); }
  50% { opacity:0.4; transform: scale(1.1); }
  100% { opacity:0; transform: scale(0.9); }
}
@keyframes mtb-candle {
  0% { box-shadow: 0 0 12px 4px #ffcc80; height:14px; }
  50% { box-shadow: 0 0 16px 6px #ffe0a0; height:15px; }
  100% { box-shadow: 0 0 12px 4px #ffcc80; height:14px; }
}
@keyframes mtb-shadow {
  0% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(1.2); opacity:0.5; }
  100% { transform: scaleX(1); opacity:0.3; }
}

.scn-macbeth-defies-ghost {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #1a1a3e 100%), radial-gradient(ellipse at 70% 50%, #8080ff 0%, transparent 60%);
}
.scn-macbeth-defies-ghost .mdg-macbeth {
  position:absolute; bottom:25%; left:40%; 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: mdg-macbeth 1.5s ease-in-out infinite;
}
.scn-macbeth-defies-ghost .mdg-ghost {
  position:absolute; bottom:25%; right:35%; width:24px; height:50px;
  background: linear-gradient(180deg, rgba(180,180,220,0.2) 0%, rgba(180,180,220,0.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: mdg-ghost 4s ease-in-out infinite;
}
.scn-macbeth-defies-ghost .mdg-table {
  position:absolute; bottom:20%; left:15%; right:15%; height:6%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%);
  border-radius: 4px;
  box-shadow: 0 3px 8px rgba(0,0,0,.5);
}
.scn-macbeth-defies-ghost .mdg-light {
  position:absolute; top:10%; left:30%; width:60%; height:60%;
  background: radial-gradient(ellipse at center, rgba(200,200,255,0.15) 0%, transparent 70%);
  animation: mdg-light 3s ease-in-out infinite;
}
.scn-macbeth-defies-ghost .mdg-shadow {
  position:absolute; bottom:20%; left:38%; width:30px; height:12px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: mdg-shadow 2s ease-in-out infinite;
}
.scn-macbeth-defies-ghost .mdg-drapery {
  position:absolute; top:0; left:0; width:20%; height:100%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 0 0 20px 0;
}
@keyframes mdg-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mdg-ghost {
  0% { opacity:0.1; transform: scale(0.9); }
  50% { opacity:0.3; transform: scale(1.1) rotate(2deg); }
  100% { opacity:0.1; transform: scale(0.9); }
}
@keyframes mdg-light {
  0% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.4; transform: scale(1.05); }
  100% { opacity:0.2; transform: scale(1); }
}
@keyframes mdg-shadow {
  0% { transform: scaleX(1); opacity:0.4; }
  50% { transform: scaleX(1.3); opacity:0.7; }
  100% { transform: scaleX(1); opacity:0.4; }
}

.scn-lady-macbeth-displaces-mirth {
  background: linear-gradient(180deg, #6a4a3a 0%, #9a6a5a 50%, #6a4a3a 100%), radial-gradient(ellipse at 30% 40%, #ffd080 0%, transparent 70%);
}
.scn-lady-macbeth-displaces-mirth .ldm-lady {
  position:absolute; bottom:25%; left:45%; width:18px; height:42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldm-lady 2s ease-in-out infinite;
}
.scn-lady-macbeth-displaces-mirth .ldm-guests {
  position:absolute; bottom:25%; right:15%; width:30px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ldm-guests 3s ease-in-out infinite;
}
.scn-lady-macbeth-displaces-mirth .ldm-table {
  position:absolute; bottom:20%; left:10%; right:10%; height:7%;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-lady-macbeth-displaces-mirth .ldm-chair {
  position:absolute; bottom:20%; left:20%; width:16px; height:20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  animation: ldm-chair 5s ease-in-out infinite;
}
.scn-lady-macbeth-displaces-mirth .ldm-light {
  position:absolute; top:5%; left:40%; width:20%; height:40%;
  background: radial-gradient(ellipse at center, rgba(255,220,180,0.2) 0%, transparent 70%);
  animation: ldm-light 2.5s ease-in-out infinite;
}
.scn-lady-macbeth-displaces-mirth .ldm-shadow {
  position:absolute; bottom:20%; left:42%; width:30px; height:8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ldm-shadow 3.5s ease-in-out infinite;
}
.scn-lady-macbeth-displaces-mirth .ldm-goblet {
  position:absolute; bottom:26%; left:55%; width:10px; height:16px;
  background: radial-gradient(ellipse at 30% 30%, #c07040 0%, #a05030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px 2px #d08040;
  animation: ldm-goblet 1.8s ease-in-out infinite;
}
@keyframes ldm-lady {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ldm-guests {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ldm-chair {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes ldm-light {
  0% { opacity:0.2; box-shadow: 0 0 20px 5px rgba(255,220,180,0.3); }
  50% { opacity:0.4; box-shadow: 0 0 30px 8px rgba(255,220,180,0.5); }
  100% { opacity:0.2; box-shadow: 0 0 20px 5px rgba(255,220,180,0.3); }
}
@keyframes ldm-shadow {
  0% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(1.2); opacity:0.6; }
  100% { transform: scaleX(1); opacity:0.3; }
}
@keyframes ldm-goblet {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-macbeth-blood-will-have-blood {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 40%, #2a0a0a 70%, #0a0a0a 100%), radial-gradient(ellipse at 50% 20%, #3a1010 0%, transparent 60%);
}
.scn-macbeth-blood-will-have-blood .mbw-macbeth {
  position:absolute; bottom:25%; left:40%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbw-macbeth 2.5s ease-in-out infinite;
}
.scn-macbeth-blood-will-have-blood .mbw-lady {
  position:absolute; bottom:25%; right:35%; width:18px; height:42px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mbw-lady 3s ease-in-out infinite;
}
.scn-macbeth-blood-will-have-blood .mbw-candle {
  position:absolute; bottom:30%; left:50%; width:5px; height:12px;
  background: linear-gradient(180deg, #c04020 0%, #802010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 8px 3px #c04020, 0 0 16px 6px rgba(192,64,32,0.3);
  animation: mbw-candle 1.8s ease-in-out infinite;
}
.scn-macbeth-blood-will-have-blood .mbw-blood {
  position:absolute; bottom:20%; left:45%; width:20px; height:8px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mbw-blood 7s ease-in-out infinite;
}
.scn-macbeth-blood-will-have-blood .mbw-shadow {
  position:absolute; bottom:20%; left:35%; width:40px; height:10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: mbw-shadow 5s ease-in-out infinite;
}
.scn-macbeth-blood-will-have-blood .mbw-stone {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: repeating-linear-gradient(0deg, #2a1a1a 0px, #1a0a0a 2px, transparent 2px, transparent 4px);
  opacity:0.4;
}
@keyframes mbw-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg) scale(1.01); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mbw-lady {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mbw-candle {
  0% { box-shadow: 0 0 8px 3px #c04020, 0 0 16px 6px rgba(192,64,32,0.3); height:12px; }
  50% { box-shadow: 0 0 10px 4px #d05030, 0 0 20px 8px rgba(208,80,48,0.5); height:13px; }
  100% { box-shadow: 0 0 8px 3px #c04020, 0 0 16px 6px rgba(192,64,32,0.3); height:12px; }
}
@keyframes mbw-blood {
  0% { transform: scaleX(1) scaleY(1); opacity:0.3; }
  50% { transform: scaleX(1.3) scaleY(0.8); opacity:0.6; }
  100% { transform: scaleX(1) scaleY(1); opacity:0.3; }
}
@keyframes mbw-shadow {
  0% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(1.2); opacity:0.7; }
  100% { transform: scaleX(1); opacity:0.5; }
}

/* Scene: doctor-consultation */
.scn-doctor-consultation {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1a2e 100%),
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a1a2e 100%);
}
.scn-doctor-consultation .bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a1a 0%, transparent 100%); animation:dc-bg 20s ease infinite; }
.scn-doctor-consultation .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1a1a1a, #0a0a0a); }
.scn-doctor-consultation .bed { position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:60%; height:14%; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:8px; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-doctor-consultation .blanket { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:55%; height:10%; background:linear-gradient(180deg, #5e1a1d, #3a0a0c); border-radius:0 0 8px 8px; animation:dc-blanket 6s ease-in-out infinite; }
.scn-doctor-consultation .patient { position:absolute; bottom:24%; left:50%; transform:translateX(10%); width:6%; height:12%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:dc-patient 4s ease-in-out infinite; }
.scn-doctor-consultation .doctor { position:absolute; bottom:20%; left:30%; transform:translateX(-50%); width:4%; height:20%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:dc-doctor 5s ease-in-out infinite; }
.scn-doctor-consultation .candle { position:absolute; bottom:25%; left:45%; width:2%; height:5%; background:linear-gradient(180deg, #ffd080, #c08040); border-radius:2px 2px 0 0; box-shadow:0 2px 6px #ffd080; }
.scn-doctor-consultation .glow { position:absolute; bottom:25%; left:45%; width:15%; height:20%; background:radial-gradient(circle, rgba(255,208,128,.4) 0%, transparent 70%); transform:translate(-50%,50%); animation:dc-glow 3s ease-in-out infinite; }
.scn-doctor-consultation .window { position:absolute; top:15%; right:15%; width:8%; height:12%; background:linear-gradient(135deg, #2a3a5a, #1a2a4a); border:2px solid #4a3a2a; border-radius:4px; animation:dc-window 12s ease-in-out infinite alternate; }
@keyframes dc-bg { 0%,100% { opacity:.7; } 50% { opacity:.9; } }
@keyframes dc-blanket { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes dc-patient { 0% { transform:translateX(10%) scaleY(1); } 50% { transform:translateX(10%) scaleY(1.02); } 100% { transform:translateX(10%) scaleY(1); } }
@keyframes dc-doctor { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(1deg) translateX(2px); } 100% { transform:translateX(-50%) rotate(-.5deg) translateX(-1px); } }
@keyframes dc-glow { 0% { opacity:.6; transform:translate(-50%,50%) scale(1); } 50% { opacity:1; transform:translate(-50%,50%) scale(1.2); } 100% { opacity:.7; transform:translate(-50%,50%) scale(.9); } }
@keyframes dc-window { 0% { background:#2a3a5a; } 50% { background:#3a4a6a; } 100% { background:#2a3a5a; } }

/* Scene: birnam-wood-approach */
.scn-birnam-wood-approach {
  background: 
    linear-gradient(180deg, #6a7a6a 0%, #4a5a3a 50%, #3a4a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a5a3a 0%, transparent 70%);
}
.scn-birnam-wood-approach .sky { position:absolute; top:0; left:0; right:0; bottom:40%; background:linear-gradient(180deg, #6a7a6a 0%, #4a5a3a 100%); animation:bwa-sky 30s ease-in-out infinite alternate; }
.scn-birnam-wood-approach .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #3a4a2a, #2a3a1a); }
.scn-birnam-wood-approach .tree-left { position:absolute; bottom:40%; left:20%; width:10%; height:50%; background:#3a5a1a; clip-path:polygon(50% 0%, 0% 100%, 100% 100%); transform-origin:bottom center; animation:bwa-tree-sway 8s ease-in-out infinite; }
.scn-birnam-wood-approach .tree-right { position:absolute; bottom:40%; right:25%; width:8%; height:60%; background:#2a4a1a; clip-path:polygon(50% 0%, 0% 100%, 100% 100%); transform-origin:bottom center; animation:bwa-tree-sway 10s ease-in-out infinite reverse; }
.scn-birnam-wood-approach .soldier1 { position:absolute; bottom:40%; left:40%; width:3%; height:18%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation:bwa-march 4s ease-in-out infinite; }
.scn-birnam-wood-approach .soldier2 { position:absolute; bottom:40%; left:50%; width:3%; height:18%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation:bwa-march 4s ease-in-out infinite 1s; }
.scn-birnam-wood-approach .bough1 { position:absolute; bottom:68%; left:30%; width:12%; height:3%; background:#2a4a1a; border-radius:20% 20% 0 0; transform-origin:right center; animation:bwa-bough-sway 6s ease-in-out infinite; }
.scn-birnam-wood-approach .bough2 { position:absolute; bottom:65%; right:35%; width:10%; height:2.5%; background:#1a3a0a; border-radius:20% 20% 0 0; transform-origin:left center; animation:bwa-bough-sway 6s ease-in-out infinite 3s; }
@keyframes bwa-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes bwa-tree-sway { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes bwa-march { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(8px) rotate(2deg); } 50% { transform:translateX(16px) rotate(-2deg); } 75% { transform:translateX(24px) rotate(2deg); } 100% { transform:translateX(32px) rotate(-2deg); } }
@keyframes bwa-bough-sway { 0% { transform:rotate(-40deg) scaleY(1); } 50% { transform:rotate(-30deg) scaleY(1.1); } 100% { transform:rotate(-35deg) scaleY(1); } }

/* Scene: birnam-wood-strategy */
.scn-birnam-wood-strategy {
  background: 
    linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 50%, #5a6a4a 100%),
    radial-gradient(ellipse at 50% 100%, #6a7a5a 0%, transparent 70%);
}
.scn-birnam-wood-strategy .sky { position:absolute; top:0; left:0; right:0; bottom:45%; background:linear-gradient(180deg, #8a9a7a, #6a7a5a); animation:bws-sky 40s ease-in-out infinite alternate; }
.scn-birnam-wood-strategy .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #5a6a4a, #4a5a3a); }
.scn-birnam-wood-strategy .tree { position:absolute; bottom:45%; left:35%; width:12%; height:50%; background:#4a6a3a; clip-path:polygon(50% 0%, 0% 100%, 100% 100%); transform-origin:bottom center; animation:bws-tree-sway 12s ease-in-out infinite; }
.scn-birnam-wood-strategy .soldier { position:absolute; bottom:45%; left:25%; width:4%; height:20%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:bws-chopping 2s ease-in-out infinite; }
.scn-birnam-wood-strategy .bough-fallen { position:absolute; bottom:40%; left:20%; width:15%; height:2%; background:#3a5a2a; border-radius:20% 20% 0 0; transform:rotate(10deg); animation:bws-bough-fall 5s ease-out infinite; }
.scn-birnam-wood-strategy .stump { position:absolute; bottom:43%; left:33%; width:6%; height:8%; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:4px; }
.scn-birnam-wood-strategy .leaf { position:absolute; top:50%; left:45%; width:2%; height:2%; background:#6a7a3a; border-radius:50%; animation:bws-leaf-drift 8s ease-in-out infinite; }
@keyframes bws-sky { 0% { opacity:.7; } 50% { opacity:.95; } 100% { opacity:.8; } }
@keyframes bws-tree-sway { 0% { transform:rotate(-1deg); } 50% { transform:rotate(1deg); } 100% { transform:rotate(-.5deg); } }
@keyframes bws-chopping { 0% { transform:translate(0,0) rotate(-45deg); } 50% { transform:translate(8px,-8px) rotate(0deg); } 100% { transform:translate(0,0) rotate(-45deg); } }
@keyframes bws-bough-fall { 0% { transform:translateY(50px) rotate(45deg); opacity:0; } 50% { transform:translateY(10px) rotate(15deg); opacity:.5; } 100% { transform:translateY(0) rotate(10deg); opacity:1; } }
@keyframes bws-leaf-drift { 0% { transform:translate(0,0) rotate(0deg); } 50% { transform:translate(-15px,10px) rotate(180deg); } 100% { transform:translate(8px,-5px) rotate(360deg); } }

/* Scene: dunsinane-banners */
.scn-dunsinane-banners {
  background: 
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #1a1a2a 100%),
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-dunsinane-banners .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #2a2a3a, #1a1a2a); box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-dunsinane-banners .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1a1a1a, #0a0a0a); }
.scn-dunsinane-banners .banner-left { position:absolute; top:10%; left:20%; width:8%; height:45%; background:linear-gradient(180deg, #8a3a2a, #5a1a0a); border-radius:0 0 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.5); transform-origin:top center; animation:db-banner-wave 4s ease-in-out infinite; }
.scn-dunsinane-banners .banner-right { position:absolute; top:10%; right:20%; width:8%; height:45%; background:linear-gradient(180deg, #8a3a2a, #5a1a0a); border-radius:0 0 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.5); transform-origin:top center; animation:db-banner-wave 4s ease-in-out infinite 1s; }
.scn-dunsinane-banners .torch { position:absolute; bottom:25%; left:48%; width:3%; height:8%; background:linear-gradient(180deg, #c08040, #6a3a1a); border-radius:2px 2px 0 0; box-shadow:0 2px 6px #c08040; animation:db-torch-flicker 1s ease-in-out infinite; }
.scn-dunsinane-banners .guard-left { position:absolute; bottom:20%; left:30%; width:4%; height:25%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:db-guard-sway 3s ease-in-out infinite; }
.scn-dunsinane-banners .guard-right { position:absolute; bottom:20%; right:30%; width:4%; height:25%; background:linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:db-guard-sway 3s ease-in-out infinite 1.5s; }
.scn-dunsinane-banners .glow { position:absolute; bottom:23%; left:48%; width:20%; height:30%; background:radial-gradient(circle, rgba(255,160,80,.3) 0%, transparent 70%); transform:translate(-50%,50%); animation:db-glow-pulse 2s ease-in-out infinite; }
@keyframes db-banner-wave { 0% { transform:rotate(-3deg) translateX(0); } 50% { transform:rotate(3deg) translateX(2px); } 100% { transform:rotate(-2deg) translateX(-1px); } }
@keyframes db-torch-flicker { 0% { transform:scale(1) translateY(0); opacity:.9; } 50% { transform:scale(1.1) translateY(-2px); opacity:1; } 100% { transform:scale(.95) translateY(1px); opacity:.8; } }
@keyframes db-guard-sway { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(-1px) rotate(-1deg); } }
@keyframes db-glow-pulse { 0% { opacity:.6; transform:translate(-50%,50%) scale(1); } 50% { opacity:1; transform:translate(-50%,50%) scale(1.2); } 100% { opacity:.7; transform:translate(-50%,50%) scale(.9); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.branch { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: field-macbeth-final */
.scn-field-macbeth-final {
  background:
    radial-gradient(circle at 60% 20%, #ffe68d 0%, #d4943a 30%, transparent 60%),
    linear-gradient(180deg, #4a7bb5 0%, #9bb7d4 30%, #f0c060 55%, #a06830 100%);
  position: relative;
  overflow: hidden;
}
.scn-field-macbeth-final .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a9bd6 0%, #f4d88a 100%);
  animation: fmf-sky 12s ease-in-out infinite alternate;
}
.scn-field-macbeth-final .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #805a30 0%, #4a3018 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-field-macbeth-final .sun {
  position: absolute; top: 5%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8c0 0%, #f0c060 40%, #d09030 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,96,0.5), 0 0 120px 60px rgba(208,144,48,0.3);
  animation: fmf-sun 6s ease-in-out infinite alternate;
}
.scn-field-macbeth-final .dust-a {
  position: absolute; bottom: 35%; left: 10%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: fmf-dust 8s linear infinite;
}
.scn-field-macbeth-final .dust-b {
  position: absolute; bottom: 38%; right: 25%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: fmf-dust 10s linear infinite reverse;
}
.scn-field-macbeth-final .figure-macbeth {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 4px 8px rgba(255,200,100,0.15);
  animation: fmf-clash 2s ease-in-out infinite;
}
.scn-field-macbeth-final .figure-macduff {
  position: absolute; bottom: 20%; right: 35%; width: 38px; height: 82px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 35% 40% 25% 25% / 45% 55% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 4px 8px rgba(255,200,100,0.15);
  animation: fmf-clash 2s ease-in-out infinite reverse;
}
.scn-field-macbeth-final .sword-macbeth {
  position: absolute; bottom: 38%; left: 34%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(255,200,100,0.3);
  animation: fmf-sword 2s ease-in-out infinite;
}
.scn-field-macbeth-final .sword-macduff {
  position: absolute; bottom: 38%; right: 38%; width: 4px; height: 52px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px rgba(255,200,100,0.3);
  animation: fmf-sword 2s ease-in-out infinite reverse;
}
@keyframes fmf-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fmf-sun { 0% { transform: scale(0.95); opacity: 0.9 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.9 } }
@keyframes fmf-dust { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.2 } 50% { transform: translateX(30px) translateY(-10px) scale(1.2); opacity: 0.5 } 100% { transform: translateX(60px) translateY(0) scale(0.8); opacity: 0 } }
@keyframes fmf-clash { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fmf-sword { 0% { transform: rotate(28deg) translateY(0) } 25% { transform: rotate(34deg) translateY(-2px) } 50% { transform: rotate(28deg) translateY(0) } 75% { transform: rotate(30deg) translateY(-1px) } 100% { transform: rotate(28deg) translateY(0) } }

/* Scene: field-malcolm-king */
.scn-field-malcolm-king {
  background:
    radial-gradient(circle at 50% 10%, #fff5c0 0%, #f0d080 30%, transparent 60%),
    linear-gradient(180deg, #87bde0 0%, #d4e8f0 30%, #f4d080 55%, #c07030 100%);
  position: relative;
  overflow: hidden;
}
.scn-field-malcolm-king .sky-fmk {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #f8e8b0 100%);
  animation: fmk-sky 15s ease-in-out infinite alternate;
}
.scn-field-malcolm-king .sun-fmk {
  position: absolute; top: 2%; left: 50%; width: 90px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff7d0 0%, #f4d060 40%, #d0a040 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 40px rgba(244,208,96,0.5), 0 0 140px 80px rgba(208,160,64,0.3);
  animation: fmk-sun 8s ease-in-out infinite alternate;
}
.scn-field-malcolm-king .throne {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: fmk-throne 4s ease-in-out infinite;
}
.scn-field-malcolm-king .malcolm {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #c07030 0%, #804a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(255,215,0,0.3);
  animation: fmk-malcolm 3s ease-in-out infinite;
}
.scn-field-malcolm-king .banner-left {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 80px;
  background: #5a3a1a;
  transform-origin: bottom center;
  animation: fmk-banner 5s ease-in-out infinite;
}
.scn-field-malcolm-king .banner-left::before {
  content: '';
  position: absolute; top: 0; left: -10px; width: 50px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(10deg);
}
.scn-field-malcolm-king .banner-right {
  position: absolute; bottom: 30%; right: 20%; width: 6px; height: 80px;
  background: #5a3a1a;
  transform-origin: bottom center;
  animation: fmk-banner 5s ease-in-out infinite reverse;
}
.scn-field-malcolm-king .banner-right::before {
  content: '';
  position: absolute; top: 0; right: -10px; width: 50px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(-10deg);
}
.scn-field-malcolm-king .crowd-a {
  position: absolute; bottom: 15%; left: 5%; width: 120px; height: 40px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 16px);
  background-size: 16px 100%;
  opacity: 0.6;
  animation: fmk-crowd 20s linear infinite;
}
.scn-field-malcolm-king .crowd-b {
  position: absolute; bottom: 15%; right: 5%; width: 120px; height: 40px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 16px);
  background-size: 16px 100%;
  opacity: 0.5;
  animation: fmk-crowd 25s linear infinite reverse;
}
@keyframes fmk-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes fmk-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.9 } 50% { transform: translateX(-50%) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.9 } }
@keyframes fmk-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes fmk-malcolm { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes fmk-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes fmk-crowd { 0% { background-position: 0 0 } 100% { background-position: 32px 0 } }

/* heath-witches-thumb */
.scn-heath-witches-thumb {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%);
}
.scn-heath-witches-thumb .sky-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: hwt-sky 14s ease-in-out infinite alternate; }
.scn-heath-witches-thumb .heath-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-heath-witches-thumb .witches-huddle { position:absolute; bottom:18%; left:38%; width:24%; height:20%; background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); border-radius: 50%; animation: hwt-huddle 6s ease-in-out infinite; }
.scn-heath-witches-thumb .witch-fig-a { position:absolute; bottom:22%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(-8deg); animation: hwt-witch-a 10s ease-in-out infinite; }
.scn-heath-witches-thumb .witch-fig-b { position:absolute; bottom:24%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 60% 30% 30% / 60% 80% 30% 30%; transform: rotate(5deg); animation: hwt-witch-b 8s ease-in-out infinite reverse; }
.scn-heath-witches-thumb .witch-fig-c { position:absolute; bottom:20%; left:58%; width:24px; height:46px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 60% 40% 30% 30% / 80% 60% 30% 30%; transform: rotate(-3deg); animation: hwt-witch-c 12s ease-in-out infinite; }
.scn-heath-witches-thumb .thumb-hand { position:absolute; bottom:30%; left:44%; width:12px; height:18px; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 10px 2px rgba(74,58,42,0.5); animation: hwt-thumb 4s ease-in-out infinite; }
.scn-heath-witches-thumb .drum-shadow { position:absolute; bottom:10%; left:20%; width:30%; height:6%; background: radial-gradient(ellipse at 50% 50%, #0a0a0a 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: hwt-drum 7s ease-in-out infinite alternate; }
.scn-heath-witches-thumb .mist-low { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(60,60,70,0.6) 0%, transparent 100%); filter: blur(6px); animation: hwt-mist 20s ease-in-out infinite alternate; }

@keyframes hwt-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes hwt-huddle { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) } }
@keyframes hwt-witch-a { 0% { transform: rotate(-8deg) translateY(0) } 25% { transform: rotate(-6deg) translateY(-2px) } 50% { transform: rotate(-10deg) translateY(0) } 75% { transform: rotate(-7deg) translateY(-1px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes hwt-witch-b { 0% { transform: rotate(5deg) translateY(0) } 33% { transform: rotate(3deg) translateY(-1px) } 66% { transform: rotate(7deg) translateY(0) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes hwt-witch-c { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes hwt-thumb { 0%,100% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(-5deg) scale(1.1) } 50% { transform: rotate(5deg) scale(1) } 75% { transform: rotate(0deg) scale(0.95) } }
@keyframes hwt-drum { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.8) } }
@keyframes hwt-mist { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.2 } }

/* heath-macbeth-banquo-meet */
.scn-heath-macbeth-banquo-meet {
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 70%, #4a4a5e 0%, transparent 80%);
}
.scn-heath-macbeth-banquo-meet .sky-pale { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: hmb-sky 16s ease-in-out infinite alternate; }
.scn-heath-macbeth-banquo-meet .heath-horizon { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0e 100%); border-radius: 40% 60% 0 0 / 30% 70% 0 0; }
.scn-heath-macbeth-banquo-meet .macbeth-figure { position:absolute; bottom:28%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(2deg); animation: hmb-macbeth 9s ease-in-out infinite; }
.scn-heath-macbeth-banquo-meet .banquo-figure { position:absolute; bottom:28%; left:48%; width:22px; height:46px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-3deg); animation: hmb-banquo 11s ease-in-out infinite; }
.scn-heath-macbeth-banquo-meet .witches-silhouette { position:absolute; bottom:22%; left:60%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 100%); border-radius: 50% 50% 20% 20%; filter: blur(3px); animation: hmb-witches 8s ease-in-out infinite alternate; }
.scn-heath-macbeth-banquo-meet .mist-fore { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, rgba(60,60,70,0.5) 0%, transparent 100%); filter: blur(8px); animation: hmb-mist 22s ease-in-out infinite; }
.scn-heath-macbeth-banquo-meet .rock-shape { position:absolute; bottom:18%; left:12%; width:14%; height:8%; background: linear-gradient(180deg, #2a2a1e 0%, #0e0e08 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); }
.scn-heath-macbeth-banquo-meet .bush-shadow { position:absolute; bottom:16%; right:10%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 100%, #1a1a0e 0%, transparent 100%); border-radius: 50%; filter: blur(4px); }

@keyframes hmb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hmb-macbeth { 0% { transform: rotate(2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes hmb-banquo { 0% { transform: rotate(-3deg) translateY(0) } 33% { transform: rotate(-4deg) translateY(-2px) } 66% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes hmb-witches { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.3; transform: scale(0.95) } }
@keyframes hmb-mist { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.1 } }

/* heath-banquo-surprised */
.scn-heath-banquo-surprised {
  background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 40%, #1e1e2e 100%),
              radial-gradient(ellipse at 50% 60%, #3e3e4e 0%, transparent 80%);
}
.scn-heath-banquo-surprised .sky-dim { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4e4e5e 0%, #2e2e3e 100%); animation: hbs-sky 13s ease-in-out infinite alternate; }
.scn-heath-banquo-surprised .heath-roll { position:absolute; bottom:15%; left:0; right:0; height:55%; background: linear-gradient(180deg, #2e2e1e 0%, #1e1e0e 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; }
.scn-heath-banquo-surprised .banquo-start { position:absolute; bottom:30%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(-15deg) scaleX(0.9); animation: hbs-banquo 4s ease-in-out infinite; }
.scn-heath-banquo-surprised .macbeth-near { position:absolute; bottom:28%; left:52%; width:22px; height:46px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: hbs-macbeth 12s ease-in-out infinite; }
.scn-heath-banquo-surprised .witches-point { position:absolute; bottom:24%; left:60%; width:16%; height:28%; background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 100%); border-radius: 50% 50% 10% 10%; filter: blur(2px); animation: hbs-witches 7s ease-in-out infinite alternate; }
.scn-heath-banquo-surprised .wind-sweep { position:absolute; top:10%; left:-10%; width:120%; height:6%; background: linear-gradient(90deg, transparent, rgba(200,200,220,0.1), transparent); border-radius: 50%; filter: blur(4px); animation: hbs-wind 30s linear infinite; }
.scn-heath-banquo-surprised .stone-altar { position:absolute; bottom:12%; left:30%; width:14%; height:10%; background: linear-gradient(180deg, #2a2a1e 0%, #0e0e08 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); }
.scn-heath-banquo-surprised .grass-wave { position:absolute; bottom:14%; left:0; width:100%; height:8%; background: linear-gradient(90deg, transparent, #2a2a1a 10%, transparent 20%, #2a2a1a 30%, transparent 40%, #2a2a1a 50%, transparent 60%, #2a2a1a 70%, transparent 80%, #2a2a1a 90%, transparent); filter: blur(2px); animation: hbs-grass 5s ease-in-out infinite; }

@keyframes hbs-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes hbs-banquo { 0% { transform: rotate(-15deg) scaleX(0.9) translateY(0) } 25% { transform: rotate(-18deg) scaleX(0.85) translateY(-2px) } 50% { transform: rotate(-12deg) scaleX(0.95) translateY(0) } 75% { transform: rotate(-16deg) scaleX(0.88) translateY(-1px) } 100% { transform: rotate(-15deg) scaleX(0.9) translateY(0) } }
@keyframes hbs-macbeth { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes hbs-witches { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.08) } 100% { opacity:0.2; transform: scale(0.92) } }
@keyframes hbs-wind { 0% { transform: translateX(0) } 100% { transform: translateX(100%) } }
@keyframes hbs-grass { 0% { transform: translateX(0) } 50% { transform: translateX(-5%) } 100% { transform: translateX(0) } }

/* heath-macbeth-demand */
.scn-heath-macbeth-demand {
  background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 40%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 50%, #2e2e3e 0%, transparent 80%);
}
.scn-heath-macbeth-demand .sky-heavy { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3e3e4e 0%, #1e1e2e 100%); animation: hmd-sky 12s ease-in-out infinite alternate; }
.scn-heath-macbeth-demand .heath-flat { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1e1e0e 0%, #0e0e00 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-heath-macbeth-demand .macbeth-arm { position:absolute; bottom:32%; left:35%; width:10px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; transform: rotate(30deg); animation: hmd-arm 3s ease-in-out infinite; }
.scn-heath-macbeth-demand .macbeth-torso { position:absolute; bottom:28%; left:36%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: hmd-torso 8s ease-in-out infinite; }
.scn-heath-macbeth-demand .witches-crouch { position:absolute; bottom:22%; left:48%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 100%); border-radius: 50% 50% 10% 10%; filter: blur(2px); animation: hmd-witches 6s ease-in-out infinite alternate; }
.scn-heath-macbeth-demand .witches-halo { position:absolute; bottom:24%; left:50%; width:14%; height:14%; background: radial-gradient(circle, rgba(100,80,60,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: hmd-halo 5s ease-in-out infinite; }
.scn-heath-macbeth-demand .ground-fissure { position:absolute; bottom:0; left:40%; width:20%; height:6%; background: linear-gradient(180deg, #0a0a00 0%, #000000 100%); border-radius: 20% 20% 0 0; filter: blur(2px); }
.scn-heath-macbeth-demand .storm-light { position:absolute; top:5%; left:70%; width:8%; height:12%; background: radial-gradient(circle, rgba(200,200,220,0.15) 0%, transparent 100%); border-radius: 50%; filter: blur(15px); animation: hmd-storm 10s ease-in-out infinite alternate; }

@keyframes hmd-sky { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.4 } }
@keyframes hmd-arm { 0% { transform: rotate(30deg) translateY(0) } 25% { transform: rotate(40deg) translateY(-2px) } 50% { transform: rotate(25deg) translateY(0) } 75% { transform: rotate(35deg) translateY(-1px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes hmd-torso { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes hmd-witches { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.06) } 100% { opacity:0.3; transform: scale(0.94) } }
@keyframes hmd-halo { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.2; transform: scale(0.9) } }
@keyframes hmd-storm { 0% { opacity:0.1 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

/* same-macbeth-refuses (mr) */
.scn-same-macbeth-refuses {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1f30 40%, #14101a 100%), radial-gradient(ellipse at 50% 20%, #3d2a3e 0%, transparent 70%);
}
.scn-same-macbeth-refuses .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2035 0%, #1a1425 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-same-macbeth-refuses .floor {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #2a1a20 0%, #0d0a0e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-same-macbeth-refuses .figure {
  position: absolute; bottom:40%; left:35%; width:30%; height:50%;
  background: linear-gradient(180deg, #1a1520 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: mr-figure 8s ease-in-out infinite;
}
.scn-same-macbeth-refuses .dagger-left {
  position: absolute; bottom:30%; left:45%; width:8%; height:12%;
  background: linear-gradient(180deg, #8a7a70 0%, #5a4a42 100%);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(-30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mr-dagger 6s ease-in-out infinite alternate;
}
.scn-same-macbeth-refuses .dagger-right {
  position: absolute; bottom:32%; left:55%; width:8%; height:12%;
  background: linear-gradient(180deg, #8a7a70 0%, #5a4a42 100%);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mr-dagger 6s ease-in-out infinite alternate-reverse;
}
.scn-same-macbeth-refuses .blood-spot {
  position: absolute; bottom:28%; left:48%; width:6%; height:4%;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0e10 60%, transparent 100%);
  border-radius: 50%;
  animation: mr-blood 10s ease-in-out infinite;
  box-shadow: 0 0 12px 4px rgba(94,26,29,0.4);
}
.scn-same-macbeth-refuses .shadow {
  position: absolute; bottom:10%; left:30%; width:40%; height:20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: mr-shadow 8s ease-in-out infinite alternate;
}
@keyframes mr-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5%) translateY(-2%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mr-dagger {
  0% { transform: rotate(-30deg) translateY(0); opacity:0.8; }
  50% { transform: rotate(-25deg) translateY(-5%); opacity:1; }
  100% { transform: rotate(-30deg) translateY(0); opacity:0.8; }
}
@keyframes mr-blood {
  0% { transform: scale(0.9); opacity:0.7; }
  50% { transform: scale(1.1); opacity:1; }
  100% { transform: scale(0.9); opacity:0.7; }
}
@keyframes mr-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity:0.4; }
  100% { transform: scaleX(1.2) scaleY(1.5); opacity:0.6; }
}

/* same-macbeth-hands (mh) */
.scn-same-macbeth-hands {
  background: linear-gradient(180deg, #12101e 0%, #1c1628 40%, #0a0812 100%), radial-gradient(ellipse at 50% 60%, #2a2040 0%, transparent 80%);
}
.scn-same-macbeth-hands .bg-deep {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #0e0c18 0%, #1a1425 50%, #0e0c18 100%);
}
.scn-same-macbeth-hands .basin {
  position: absolute; bottom:20%; left:30%; width:40%; height:30%;
  background: linear-gradient(180deg, #3a3040 0%, #1a1420 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-same-macbeth-hands .water {
  position: absolute; bottom:23%; left:33%; width:34%; height:22%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50%;
  opacity:0.7;
  animation: mh-water 6s ease-in-out infinite alternate;
}
.scn-same-macbeth-hands .hand-left {
  position: absolute; bottom:35%; left:35%; width:14%; height:20%;
  background: linear-gradient(180deg, #c0a88a 0%, #8a7058 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: rotate(-20deg);
  animation: mh-hand 4s ease-in-out infinite alternate;
}
.scn-same-macbeth-hands .hand-right {
  position: absolute; bottom:35%; left:55%; width:14%; height:20%;
  background: linear-gradient(180deg, #c0a88a 0%, #8a7058 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: rotate(10deg) scaleX(-1);
  animation: mh-hand 4s ease-in-out infinite alternate-reverse;
}
.scn-same-macbeth-hands .blood-drip {
  position: absolute; bottom:30%; left:48%; width:4%; height:15%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 50% 50% 30% 30%;
  animation: mh-drip 8s ease-in-out infinite;
}
.scn-same-macbeth-hands .ripple {
  position: absolute; bottom:23%; left:45%; width:10%; height:5%;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: mh-ripple 3s ease-out infinite;
}
@keyframes mh-water {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(-2%); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes mh-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-5%); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes mh-drip {
  0% { transform: scaleX(1) scaleY(0.8); opacity:0.6; }
  50% { transform: scaleX(1.2) scaleY(1.2); opacity:1; }
  100% { transform: scaleX(1) scaleY(0.8); opacity:0.6; }
}
@keyframes mh-ripple {
  0% { transform: scale(0.5); opacity:1; }
  100% { transform: scale(2); opacity:0; }
}

/* gate-porter-comic (gp) */
.scn-gate-porter-comic {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0a0806 100%), radial-gradient(ellipse at 50% 30%, #4a3530 0%, transparent 70%);
}
.scn-gate-porter-comic .wall {
  position: absolute; inset:0;
  background: linear-gradient(90deg, #1a1412 0%, #2a201c 30%, #1a1412 70%, #0a0806 100%);
}
.scn-gate-porter-comic .gate {
  position: absolute; bottom:20%; left:30%; width:40%; height:60%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  border: 4px solid #3a2a22;
}
.scn-gate-porter-comic .porter {
  position: absolute; bottom:25%; left:42%; width:16%; height:45%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a120e 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: gp-porter 6s ease-in-out infinite;
}
.scn-gate-porter-comic .key {
  position: absolute; bottom:40%; left:52%; width:6%; height:15%;
  background: linear-gradient(180deg, #b8a880 0%, #7a6a52 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  animation: gp-key 4s ease-in-out infinite alternate;
}
.scn-gate-porter-comic .lantern {
  position: absolute; top:15%; left:20%; width:10%; height:12%;
  background: radial-gradient(circle, #ffb060 0%, #c07020 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,176,96,0.4);
  animation: gp-lantern 5s ease-in-out infinite alternate;
}
.scn-gate-porter-comic .sweat {
  position: absolute; bottom:50%; left:45%; width:4%; height:4%;
  background: radial-gradient(circle, #80b8d0 0%, transparent 70%);
  border-radius: 50%;
  animation: gp-sweat 3s ease-in-out infinite;
}
@keyframes gp-porter {
  0% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.02) rotate(-3deg); }
  50% { transform: scaleY(0.98) rotate(2deg); }
  75% { transform: scaleY(1.01) rotate(-1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes gp-key {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-10%); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes gp-lantern {
  0% { transform: rotate(-5deg) scale(1); opacity:0.8; }
  50% { transform: rotate(5deg) scale(1.1); opacity:1; }
  100% { transform: rotate(-5deg) scale(1); opacity:0.8; }
}
@keyframes gp-sweat {
  0%, 100% { transform: translateY(0) scale(1); opacity:0; }
  50% { transform: translateY(-10%) scale(1.5); opacity:0.6; }
}

/* gate-porter-drink (gd) */
.scn-gate-porter-drink {
  background: linear-gradient(135deg, #2a1a10 0%, #3a2a1a 30%, #1a1210 70%, #0a0806 100%), radial-gradient(ellipse at 50% 20%, #4a3520 0%, transparent 70%);
}
.scn-gate-porter-drink .bg-room {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 50%, #0a0806 100%);
}
.scn-gate-porter-drink .table {
  position: absolute; bottom:20%; left:25%; width:50%; height:15%;
  background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%);
  border-radius: 20% 20% 0% 0% / 40% 40% 0% 0%;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.5);
}
.scn-gate-porter-drink .porter {
  position: absolute; bottom:25%; left:40%; width:20%; height:45%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a120e 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: gd-porter 8s ease-in-out infinite;
}
.scn-gate-porter-drink .bottle {
  position: absolute; bottom:38%; left:48%; width:6%; height:18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: gd-bottle 4s ease-in-out infinite alternate;
}
.scn-gate-porter-drink .cup {
  position: absolute; bottom:36%; left:55%; width:8%; height:10%;
  background: linear-gradient(180deg, #a09070 0%, #6a5a42 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-10deg);
  animation: gd-cup 3s ease-in-out infinite alternate;
}
.scn-gate-porter-drink .nose {
  position: absolute; bottom:48%; left:46%; width:8%; height:6%;
  background: radial-gradient(circle, #8a4a3a 0%, #5a2a1a 100%);
  border-radius: 50%;
  animation: gd-nose 5s ease-in-out infinite;
}
.scn-gate-porter-drink .zzz {
  position: absolute; top:20%; right:25%; width:8%; height:8%;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: gd-zzz 6s ease-in-out infinite;
}
@keyframes gd-porter {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3%) rotate(-4deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2%) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gd-bottle {
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(25deg) scaleX(1.05); }
  100% { transform: rotate(15deg) scaleX(1); }
}
@keyframes gd-cup {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-5%); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes gd-nose {
  0%, 100% { transform: scale(1); opacity:0.7; }
  50% { transform: scale(1.3); opacity:1; }
}
@keyframes gd-zzz {
  0% { transform: translateY(0) scale(0.5); opacity:0; }
  50% { transform: translateY(-20%) scale(1.2); opacity:0.6; }
  100% { transform: translateY(-40%) scale(0.5); opacity:0; }
}

/* Scene: camp-forres-duncan-happiness */
.scn-camp-forres-duncan-happiness { 
  background: linear-gradient(180deg, #c9b68b 0%, #a68c5e 40%, #7a6240 100%), 
              radial-gradient(ellipse at 50% 0%, #d4c29e 0%, transparent 70%); 
}
.scn-camp-forres-duncan-happiness .sky-overcast { 
  position:absolute; inset:0 0 55% 0; 
  background: linear-gradient(180deg, #d4c29e 0%, #b8a27a 50%, #9a8658 100%); 
  animation: cfd-sky 12s ease-in-out infinite alternate; 
}
.scn-camp-forres-duncan-happiness .horizon-fog { 
  position:absolute; bottom:45%; left:0; right:0; height:15%; 
  background: linear-gradient(180deg, rgba(186,168,130,0.6) 0%, transparent 100%); 
  filter: blur(8px); 
}
.scn-camp-forres-duncan-happiness .tent-left { 
  position:absolute; bottom:30%; left:15%; width:100px; height:110px; 
  background: linear-gradient(135deg, #8c7a5a 0%, #5e4e30 100%); 
  border-radius: 20% 20% 0 0; transform: skewX(5deg); 
  animation: cfd-tent 8s ease-in-out infinite alternate; 
}
.scn-camp-forres-duncan-happiness .tent-right { 
  position:absolute; bottom:30%; right:20%; width:90px; height:100px; 
  background: linear-gradient(135deg, #7a6848 0%, #4a3c24 100%); 
  border-radius: 20% 20% 0 0; transform: skewX(-5deg); 
  animation: cfd-tent 8s ease-in-out infinite alternate-reverse; 
}
.scn-camp-forres-duncan-happiness .king-figure { 
  position:absolute; bottom:28%; left:45%; width:30px; height:60px; 
  background: linear-gradient(180deg, #c8553d 0%, #8a3a28 100%); /* terracotta */
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: cfd-king 6s ease-in-out infinite; 
}
.scn-camp-forres-duncan-happiness .banner { 
  position:absolute; bottom:80%; left:50%; width:40px; height:50px; 
  background: linear-gradient(180deg, #b87878 0%, #704040 100%); /* dusty rose */
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%); 
  animation: cfd-banner 4s ease-in-out infinite alternate; 
}
.scn-camp-forres-duncan-happiness .ground-grass { 
  position:absolute; bottom:0; left:0; right:0; height:30%; 
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); 
  border-radius: 30% 70% 0 0 / 50% 50% 0 0; 
}
.scn-camp-forres-duncan-happiness .light-ray { 
  position:absolute; bottom:40%; left:30%; width:15%; height:40%; 
  background: linear-gradient(180deg, rgba(255,230,160,0.3) 0%, transparent 100%); 
  transform: rotate(-20deg); filter: blur(6px); 
  animation: cfd-ray 10s ease-in-out infinite; 
}
@keyframes cfd-sky { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes cfd-tent { 0%{transform:skewX(5deg) translateY(0)} 50%{transform:skewX(5deg) translateY(-4px)} 100%{transform:skewX(5deg) translateY(2px)} }
@keyframes cfd-king { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes cfd-banner { 0%{transform:rotate(0)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-5deg)} }
@keyframes cfd-ray { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.3} }

/* Scene: camp-forres-ross-obey */
.scn-camp-forres-ross-obey { 
  background: linear-gradient(180deg, #b5a076 0%, #8c754c 50%, #5a4630 100%), 
              radial-gradient(ellipse at 30% 70%, #c8ae84 0%, transparent 60%); 
}
.scn-camp-forres-ross-obey .bg-camp { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); 
}
.scn-camp-forres-ross-obey .tent-mid { 
  position:absolute; bottom:25%; left:35%; width:120px; height:100px; 
  background: linear-gradient(135deg, #735f40 0%, #4a3820 100%); 
  border-radius: 30% 30% 0 0; transform: perspective(200px) rotateX(10deg); 
  animation: cfr-tent 12s ease-in-out infinite alternate; 
}
.scn-camp-forres-ross-obey .ross-figure { 
  position:absolute; bottom:20%; left:25%; width:28px; height:55px; 
  background: linear-gradient(180deg, #5e4e3a 0%, #2a2018 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: cfr-ross 5s ease-in-out infinite; 
}
.scn-camp-forres-ross-obey .messenger-shadow { 
  position:absolute; bottom:20%; left:55%; width:30px; height:50px; 
  background: linear-gradient(180deg, #4a3e2e 0%, #1e1610 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; opacity:0.7; 
  animation: cfr-ross 5s ease-in-out infinite reverse; 
}
.scn-camp-forres-ross-obey .dispatch-bag { 
  position:absolute; bottom:15%; left:40%; width:20px; height:25px; 
  background: #8a6a40; border-radius: 0 0 30% 30%; 
  animation: cfr-bag 3s ease-in-out infinite alternate; 
}
.scn-camp-forres-ross-obey .ground-mist { 
  position:absolute; bottom:0; left:0; right:0; height:20%; 
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2e 100%); 
  border-radius: 50% 50% 0 0 / 10% 10% 0 0; filter: blur(10px); 
}
.scn-camp-forres-ross-obey .campfire-glow { 
  position:absolute; bottom:10%; left:65%; width:40px; height:40px; 
  background: radial-gradient(circle, #e8b86a 0%, #c08040 50%, transparent 100%); 
  animation: cfr-fire 6s ease-in-out infinite; 
}
@keyframes cfr-tent { 0%{transform:perspective(200px) rotateX(10deg) translateY(0)} 50%{transform:perspective(200px) rotateX(10deg) translateY(-5px)} 100%{transform:perspective(200px) rotateX(10deg) translateY(3px)} }
@keyframes cfr-ross { 0%{transform:translateX(0) translateY(0)} 25%{transform:translateX(5px) translateY(-2px)} 50%{transform:translateX(10px) translateY(0)} 75%{transform:translateX(5px) translateY(-1px)} 100%{transform:translateX(0) translateY(0)} }
@keyframes cfr-bag { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.1)} 100%{transform:scaleY(0.95)} }
@keyframes cfr-fire { 0%{opacity:0.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.2)} 100%{opacity:0.8; transform:scale(0.9)} }

/* Scene: heath-witches-sailor */
.scn-heath-witches-sailor { 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a203a 40%, #121018 100%), 
              radial-gradient(ellipse at 20% 30%, #3a2a4e 0%, transparent 80%); 
}
.scn-heath-witches-sailor .heath-dark { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); 
}
.scn-heath-witches-sailor .cauldron { 
  position:absolute; bottom:20%; left:40%; width:60px; height:50px; 
  background: radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, #1a1a12 100%); 
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.8); 
  animation: hws-cauldron 7s ease-in-out infinite; 
}
.scn-heath-witches-sailor .witch-left { 
  position:absolute; bottom:20%; left:25%; width:25px; height:65px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); 
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform: rotate(10deg); 
  animation: hws-witch 5s ease-in-out infinite; 
}
.scn-heath-witches-sailor .witch-right { 
  position:absolute; bottom:20%; right:25%; width:25px; height:65px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); 
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform: rotate(-10deg); 
  animation: hws-witch 5s ease-in-out infinite reverse; 
}
.scn-heath-witches-sailor .sieve-boat { 
  position:absolute; bottom:45%; left:10%; width:80px; height:30px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); 
  border-radius: 0 0 50% 50%; animation: hws-sieve 15s linear infinite; 
}
.scn-heath-witches-sailor .rat-tail { 
  position:absolute; bottom:50%; left:15%; width:30px; height:6px; 
  background: #5e4e3e; border-radius: 50%; animation: hws-rat 4s ease-in-out infinite; 
}
.scn-heath-witches-sailor .chestnut-glint { 
  position:absolute; bottom:40%; left:35%; width:8px; height:8px; 
  background: #8a6a40; border-radius: 50%; box-shadow: 0 0 6px 2px #a08050; 
  animation: hws-glint 3s ease-in-out infinite; 
}
.scn-heath-witches-sailor .moon-smear { 
  position:absolute; top:15%; left:70%; width:50px; height:50px; 
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 100%); 
  filter: blur(15px); animation: hws-moon 20s ease-in-out infinite; 
}
@keyframes hws-cauldron { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-5px) scale(1.03)} 100%{transform:translateY(2px) scale(0.98)} }
@keyframes hws-witch { 0%{transform:rotate(10deg) translateY(0)} 50%{transform:rotate(10deg) translateY(-6px)} 100%{transform:rotate(10deg) translateY(3px)} }
@keyframes hws-sieve { 0%{transform:translateX(-80px)} 50%{transform:translateX(40vw)} 100%{transform:translateX(-80px)} }
@keyframes hws-rat { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-5px) rotate(30deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hws-glint { 0%{opacity:0.3} 50%{opacity:1} 100%{opacity:0.4} }
@keyframes hws-moon { 0%{opacity:0.2} 50%{opacity:0.5} 100%{opacity:0.2} }

/* Scene: heath-witches-wind */
.scn-heath-witches-wind { 
  background: linear-gradient(180deg, #151525 0%, #2a2030 50%, #0e0c18 100%), 
              radial-gradient(ellipse at 80% 20%, #3a2a4a 0%, transparent 70%); 
}
.scn-heath-witches-wind .storm-sky { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); 
}
.scn-heath-witches-wind .ship-mast { 
  position:absolute; bottom:10%; left:60%; width:6px; height:120px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); 
  border-radius: 2px; animation: hww-mast 8s ease-in-out infinite; 
}
.scn-heath-witches-wind .sail-ripped { 
  position:absolute; bottom:40%; left:58%; width:50px; height:60px; 
  background: linear-gradient(135deg, #4a4040 0%, #2a2222 100%); 
  clip-path: polygon(0 0, 100% 0, 80% 60%, 100% 100%, 20% 80%, 0 100%); 
  animation: hww-sail 6s ease-in-out infinite alternate; 
}
.scn-heath-witches-wind .wind-swirl-a { 
  position:absolute; top:10%; left:0; width:100px; height:80px; 
  background: radial-gradient(ellipse, rgba(180,200,220,0.1) 0%, transparent 100%); 
  filter: blur(10px); animation: hww-wind-a 12s linear infinite; 
}
.scn-heath-witches-wind .wind-swirl-b { 
  position:absolute; top:30%; left:100%; width:150px; height:100px; 
  background: radial-gradient(ellipse, rgba(180,200,220,0.08) 0%, transparent 100%); 
  filter: blur(15px); animation: hww-wind-b 18s linear infinite; 
}
.scn-heath-witches-wind .witch-hand { 
  position:absolute; bottom:35%; left:20%; width:15px; height:40px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); 
  border-radius: 60% 60% 40% 40% / 20% 20% 80% 80%; transform: rotate(30deg); 
  animation: hww-hand 4s ease-in-out infinite; 
}
.scn-heath-witches-wind .drain-line { 
  position:absolute; bottom:15%; left:35%; width:4px; height:80px; 
  background: linear-gradient(180deg, transparent 0%, #5e4e3e 30%, #1a1a1a 100%); 
  border-radius: 2px; animation: hww-drain 9s ease-in-out infinite; 
}
@keyframes hww-mast { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-1deg)} }
@keyframes hww-sail { 0%{transform:scaleX(1) translateX(0)} 50%{transform:scaleX(1.15) translateX(5px)} 100%{transform:scaleX(0.9) translateX(-3px)} }
@keyframes hww-wind-a { 0%{transform:translateX(-120px) scaleY(1)} 50%{transform:translateX(80vw) scaleY(1.2)} 100%{transform:translateX(-120px) scaleY(1)} }
@keyframes hww-wind-b { 0%{transform:translateX(0) scaleY(0.8)} 50%{transform:translateX(-100vw) scaleY(1.1)} 100%{transform:translateX(0) scaleY(0.8)} }
@keyframes hww-hand { 0%{transform:rotate(30deg) translateY(0)} 50%{transform:rotate(30deg) translateY(-10px)} 100%{transform:rotate(30deg) translateY(5px)} }
@keyframes hww-drain { 0%{opacity:0.3} 50%{opacity:0.8} 100%{opacity:0.4} }

/* gate-macduff-awakens */
.scn-gate-macduff-awakens {
  background: linear-gradient(135deg, #1a1a2e 0%, #2c1a1a 50%, #0d0d1a 100%),
              radial-gradient(ellipse at 30% 50%, #2a1a1a 0%, transparent 70%);
}
.scn-gate-macduff-awakens .wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a121a 0%, #0d0a0d 100%); }
.scn-gate-macduff-awakens .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #3a2a3a 0%, #1a101a 100%); border-radius:10%; box-shadow: inset 0 0 30px #0d0a0d; opacity:0.3; animation: gma-window 12s ease-in-out infinite alternate; }
.scn-gate-macduff-awakens .bell { position:absolute; top:10%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 20% 20%; transform-origin: top center; animation: gma-bell 0.8s ease-in-out infinite; }
.scn-gate-macduff-awakens .bed { position:absolute; bottom:15%; left:5%; width:40%; height:20%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-gate-macduff-awakens .figure { position:absolute; bottom:20%; left:55%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0d0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gma-figure 2s ease-in-out infinite; }
.scn-gate-macduff-awakens .sleeping { position:absolute; bottom:18%; left:12%; width:22px; height:28px; background: linear-gradient(180deg, #1a1212 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; animation: gma-sleep 4s ease-in-out infinite; }
.scn-gate-macduff-awakens .candle { position:absolute; bottom:25%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2px; }
.scn-gate-macduff-awakens .candle::after { content:''; position:absolute; top:-6px; left:50%; width:8px; height:10px; background: radial-gradient(circle, #f0a050 0%, #d07030 60%, transparent 100%); border-radius:50%; transform:translateX(-50%); animation: gma-flame 1.2s ease-in-out infinite alternate; }
@keyframes gma-window { 0% { opacity:0.2; transform:scale(1); } 50% { opacity:0.4; transform:scale(1.02); } 100% { opacity:0.25; transform:scale(0.98); } }
@keyframes gma-bell { 0% { transform: rotate(-10deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-8deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(-10deg); } }
@keyframes gma-figure { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(5px) scaleY(1.02); } 50% { transform: translateX(0) scaleY(1); } 75% { transform: translateX(-3px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes gma-sleep { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes gma-flame { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.3); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.8); opacity:0.8; } }

/* outside-castle-ross-old-man */
.scn-outside-castle-ross-old-man {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%),
              radial-gradient(ellipse at 80% 20%, #5a6a6a 0%, transparent 60%);
}
.scn-outside-castle-ross-old-man .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 100%); animation: ocr-sky 25s ease-in-out infinite alternate; }
.scn-outside-castle-ross-old-man .castle { position:absolute; bottom:25%; left:20%; width:50%; height:55%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-outside-castle-ross-old-man .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:40% 60% 0 0; }
.scn-outside-castle-ross-old-man .tree { position:absolute; bottom:28%; left:10%; width:20px; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:5px; transform-origin: bottom center; animation: ocr-tree 8s ease-in-out infinite; }
.scn-outside-castle-ross-old-man .tree::after { content:''; position:absolute; top:-30%; left:-15px; width:50px; height:40px; background: radial-gradient(ellipse at 50% 50%, #3a4a3a 0%, #2a3a2a 100%); border-radius:50%; }
.scn-outside-castle-ross-old-man .old-man { position:absolute; bottom:20%; left:35%; width:16px; height:35px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ocr-walk 6s ease-in-out infinite; }
.scn-outside-castle-ross-old-man .ross { position:absolute; bottom:20%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ocr-walk 6s ease-in-out infinite 0.5s; }
.scn-outside-castle-ross-old-man .crow { position:absolute; top:20%; left:60%; width:12px; height:8px; background: #1a1a1a; border-radius:50% 50% 40% 40%; animation: ocr-crow 30s linear infinite; }
@keyframes ocr-sky { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.75; } }
@keyframes ocr-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ocr-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-2px); } 50% { transform: translateX(8px) translateY(0); } 75% { transform: translateX(4px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ocr-crow { 0% { transform: translateX(-50px) scale(0.8); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateX(120vw) scale(1.2); opacity:0; } }

/* forres-palace-banquo-soliloquy */
.scn-forres-palace-banquo-soliloquy {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 50%, #0d0d1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-forres-palace-banquo-soliloquy .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:20% 20% 0 0; }
.scn-forres-palace-banquo-soliloquy .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); }
.scn-forres-palace-banquo-soliloquy .column-left { position:absolute; bottom:10%; left:10%; width:8%; height:80%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:5% 5% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,0.5); }
.scn-forres-palace-banquo-soliloquy .column-right { position:absolute; bottom:10%; right:10%; width:8%; height:80%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:5% 5% 0 0; box-shadow: 5px 0 15px rgba(0,0,0,0.5); }
.scn-forres-palace-banquo-soliloquy .torch { position:absolute; bottom:30%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); transform:translateX(-50%); }
.scn-forres-palace-banquo-soliloquy .torch::after { content:''; position:absolute; top:-20px; left:-8px; width:24px; height:30px; background: radial-gradient(circle, #f0a050 0%, #d07030 40%, transparent 70%); border-radius:50%; animation: fpb-flame 1.5s ease-in-out infinite alternate; }
.scn-forres-palace-banquo-soliloquy .banquo { position:absolute; bottom:18%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #2a1a2a 0%, #0d0a0d 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fpb-figure 4s ease-in-out infinite; }
.scn-forres-palace-banquo-soliloquy .shadow { position:absolute; bottom:3%; left:30%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%); animation: fpb-shadow 6s ease-in-out infinite; }
@keyframes fpb-flame { 0% { transform: scaleY(1) translateX(-50%); opacity:0.9; } 50% { transform: scaleY(1.4) translateX(-50%); opacity:1; } 100% { transform: scaleY(0.8) translateX(-50%); opacity:0.8; } }
@keyframes fpb-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fpb-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

/* forres-palace-macbeth-king */
.scn-forres-palace-macbeth-king {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 50%, #b09070 100%),
              radial-gradient(ellipse at 50% 50%, #e0c090 0%, transparent 70%);
}
.scn-forres-palace-macbeth-king .throne-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #c0a070 0%, #b09060 100%); }
.scn-forres-palace-macbeth-king .dais { position:absolute; bottom:15%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius:10% 10% 0 0; box-shadow: 0 5px 20px rgba(0,0,0,0.3); }
.scn-forres-palace-macbeth-king .window { position:absolute; top:10%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, #e0c090 0%, #c0a070 100%); border:4px solid #806040; border-radius:5%; box-shadow: 0 0 30px #d0b080; animation: fpmk-window 10s ease-in-out infinite alternate; }
.scn-forres-palace-macbeth-king .macbeth { position:absolute; bottom:32%; left:50%; width:25px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: fpmk-macbeth 8s ease-in-out infinite; }
.scn-forres-palace-macbeth-king .courtier { position:absolute; bottom:25%; left:65%; width:20px; height:45px; background: linear-gradient(180deg, #b09060 0%, #806040 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: fpmk-courtier 8s ease-in-out infinite 0.5s; }
.scn-forres-palace-macbeth-king .crown { position:absolute; bottom:55%; left:50%; width:16px; height:10px; background: linear-gradient(180deg, #d0a050 0%, #b08040 100%); border-radius:50% 50% 20% 20%; transform:translateX(-50%); animation: fpmk-crown 3s ease-in-out infinite alternate; }
.scn-forres-palace-macbeth-king .dust { position:absolute; top:20%; left:20%; width:100%; height:80%; background: radial-gradient(circle at 30% 40%, rgba(200,180,150,0.1) 0%, transparent 60%); animation: fpmk-dust 20s linear infinite; }
@keyframes fpmk-window { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes fpmk-macbeth { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fpmk-courtier { 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 fpmk-crown { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(2px) rotate(2deg); } }
@keyframes fpmk-dust { 0% { transform: translateY(0); opacity:0.3; } 50% { opacity:0.6; } 100% { transform: translateY(-30px); opacity:0.2; } }

/* castle-macbeth-fail */
.scn-castle-macbeth-fail { background: linear-gradient(180deg, #1a1210 0%, #2a1a18 40%, #3a2018 100%), radial-gradient(ellipse at 50% 100%, #3a2018 0%, transparent 60%); }
.scn-castle-macbeth-fail .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1210 0%, #2a1a18 50%, #1a1210 100%); animation: cmf-bg 15s ease-in-out infinite alternate; }
.scn-castle-macbeth-fail .curtain-left { position:absolute; top:0; left:0; width:35%; height:100%; background: linear-gradient(90deg, #3a1a1a 0%, #5a2a2a 50%, #3a1a1a 100%); border-radius:0 30% 30% 0; filter: blur(2px); animation: cmf-curtain 10s ease-in-out infinite alternate; }
.scn-castle-macbeth-fail .curtain-right { position:absolute; top:0; right:0; width:35%; height:100%; background: linear-gradient(90deg, #3a1a1a 0%, #5a2a2a 50%, #3a1a1a 100%); border-radius:30% 0 0 30%; filter: blur(2px); animation: cmf-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-castle-macbeth-fail .bed { position:absolute; bottom:10%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 20px; box-shadow: 0 -10px 30px rgba(0,0,0,.6); }
.scn-castle-macbeth-fail .sleeping-figure { position:absolute; bottom:15%; left:35%; width:30%; height:25%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmf-sleep 8s ease-in-out infinite alternate; }
.scn-castle-macbeth-fail .goblet { position:absolute; bottom:20%; right:30%; width:10px; height:16px; background: linear-gradient(180deg, #705030 0%, #503020 100%); border-radius: 0 0 30% 30%; box-shadow: 0 0 10px rgba(200,150,50,.3); animation: cmf-goblet 5s ease-in-out infinite; }
.scn-castle-macbeth-fail .dagger { position:absolute; bottom:25%; left:45%; width:4px; height:40px; background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%); border-radius: 2px; transform: rotate(-30deg); transform-origin: bottom center; box-shadow: 0 0 8px rgba(200,200,200,.4); animation: cmf-dagger 6s ease-in-out infinite; }
.scn-castle-macbeth-fail .shadow-figure { position:absolute; bottom:10%; left:50%; width:25%; height:60%; background: linear-gradient(180deg, rgba(10,8,8,.8) 0%, rgba(0,0,0,.95) 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: translateX(-50%); animation: cmf-shade 12s ease-in-out infinite alternate; }
@keyframes cmf-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes cmf-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes cmf-sleep { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cmf-goblet { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes cmf-dagger { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-3px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes cmf-shade { 0% { transform: translateX(-50%) scale(1); opacity:.6; } 50% { transform: translateX(-50%) scale(1.02); opacity:.9; } 100% { transform: translateX(-50%) scale(1); opacity:.7; } }

/* castle-macbeth-men-children */
.scn-castle-macbeth-men-children { background: linear-gradient(180deg, #1a1218 0%, #2a1a20 50%, #3a2028 100%), radial-gradient(ellipse at 50% 100%, #3a2028 0%, transparent 70%); }
.scn-castle-macbeth-men-children .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1218 0%, #2a1a20 50%, #1a1218 100%); animation: cmc-bg 14s ease-in-out infinite alternate; }
.scn-castle-macbeth-men-children .wall { position:absolute; top:0; left:10%; right:10%; height:85%; background: linear-gradient(180deg, #3a2020 0%, #2a1818 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-castle-macbeth-men-children .figure-mother { position:absolute; bottom:5%; left:30%; width:20%; height:60%; background: linear-gradient(180deg, #2a1818 0%, #1a1010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cmc-mother 8s ease-in-out infinite alternate; }
.scn-castle-macbeth-men-children .figure-child { position:absolute; bottom:5%; right:25%; width:12%; height:35%; background: linear-gradient(180deg, #2a1818 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmc-child 6s ease-in-out infinite alternate; }
.scn-castle-macbeth-men-children .crown { position:absolute; top:8%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #b08040 0%, #806030 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 0 15px rgba(200,150,50,.4); animation: cmc-crown 10s ease-in-out infinite; }
.scn-castle-macbeth-men-children .blood-drop { position:absolute; top:20%; left:48%; width:6px; height:10px; background: radial-gradient(circle, #5e1a1d 0%, #3a0a0c 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(94,26,29,.5); animation: cmc-blood 4s ease-in-out infinite; }
@keyframes cmc-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes cmc-mother { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes cmc-child { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes cmc-crown { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes cmc-blood { 0% { transform: translateY(0) scale(1); opacity:.7; } 50% { transform: translateY(5px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.7; } }

/* castle-macbeth-settled */
.scn-castle-macbeth-settled { background: linear-gradient(180deg, #0f0a0a 0%, #1a1010 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 60%); }
.scn-castle-macbeth-settled .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0a0a 0%, #1a1010 50%, #0f0a0a 100%); animation: cms-bg 16s ease-in-out infinite alternate; }
.scn-castle-macbeth-settled .throne { position:absolute; bottom:5%; left:50%; width:35%; height:50%; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); transform: translateX(-50%); border-radius: 20% 20% 5% 5%; box-shadow: 0 5px 20px rgba(0,0,0,.7); }
.scn-castle-macbeth-settled .figure-macbeth { position:absolute; bottom:5%; left:50%; width:22%; height:60%; background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: cms-figure 9s ease-in-out infinite alternate; }
.scn-castle-macbeth-settled .candlestick { position:absolute; bottom:25%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, #705030 0%, #503020 100%); border-radius: 2px 2px 30% 30%; }
.scn-castle-macbeth-settled .flame { position:absolute; bottom:52%; left:20%; width:10px; height:14px; background: radial-gradient(circle, #ffd060 0%, #b08030 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,208,96,.3); animation: cms-flame 2s ease-in-out infinite alternate; }
.scn-castle-macbeth-settled .shadow { position:absolute; bottom:0; left:20%; right:10%; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: cms-shadow 12s ease-in-out infinite alternate; }
.scn-castle-macbeth-settled .sword { position:absolute; bottom:10%; left:62%; width:5px; height:50px; background: linear-gradient(180deg, #808080 0%, #505050 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 0 6px rgba(200,200,200,.3); animation: cms-sword 7s ease-in-out infinite; }
@keyframes cms-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes cms-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cms-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.2) scaleX(0.8); opacity:1; } 100% { transform: scaleY(1) scaleX(1); opacity:.8; } }
@keyframes cms-shadow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes cms-sword { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* court-macbeth-banquo-night */
.scn-court-macbeth-banquo-night { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 70%); }
.scn-court-macbeth-banquo-night .sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); animation: cmn-sky 20s ease-in-out infinite alternate; }
.scn-court-macbeth-banquo-night .moon { position:absolute; top:8%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #e8e8f0 0%, #c0c0d0 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,200,230,.3), 0 0 80px 30px rgba(200,200,230,.1); animation: cmn-moon 30s ease-in-out infinite; }
.scn-court-macbeth-banquo-night .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-court-macbeth-banquo-night .figure-banquo { position:absolute; bottom:18%; left:30%; width:18%; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cmn-banquo 8s ease-in-out infinite alternate; }
.scn-court-macbeth-banquo-night .figure-fleance { position:absolute; bottom:18%; left:52%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmn-fleance 6s ease-in-out infinite alternate-reverse; }
.scn-court-macbeth-banquo-night .torch { position:absolute; bottom:18%; left:58%; width:6px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 2px 2px 10% 10%; }
.scn-court-macbeth-banquo-night .torch-flame { position:absolute; bottom:55%; left:58%; width:12px; height:16px; background: radial-gradient(circle, #ffd060 0%, #b08030 50%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px rgba(255,208,96,.4), 0 0 40px 16px rgba(255,208,96,.2); animation: cmn-torch 1.5s ease-in-out infinite alternate; }
.scn-court-macbeth-banquo-night .cloud-a { position:absolute; top:15%; left:20%; width:80px; height:16px; background: linear-gradient(180deg, rgba(200,200,230,.3) 0%, rgba(200,200,230,.05) 100%); border-radius: 50%; filter: blur(4px); animation: cmn-drift-a 45s linear infinite; }
.scn-court-macbeth-banquo-night .cloud-b { position:absolute; top:25%; right:10%; width:60px; height:12px; background: linear-gradient(180deg, rgba(200,200,230,.2) 0%, rgba(200,200,230,.02) 100%); border-radius: 50%; filter: blur(3px); animation: cmn-drift-b 55s linear infinite reverse; }
@keyframes cmn-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes cmn-moon { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes cmn-banquo { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes cmn-fleance { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes cmn-torch { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.3) scaleX(0.7); opacity:1; } 100% { transform: scaleY(1) scaleX(1); opacity:.8; } }
@keyframes cmn-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes cmn-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene: inverness-castle-raven */
.scn-inverness-castle-raven {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2c1a12 40%, #3d241a 70%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 30%, #6b3a20 0%, transparent 60%);
}
.scn-inverness-castle-raven .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0f0805 0%, #1a0e0a 50%, #0f0805 100%);
}
.scn-inverness-castle-raven .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.8);
}
.scn-inverness-castle-raven .sill {
  position: absolute; bottom: 45%; left: 32%; width: 36%; height: 8px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-inverness-castle-raven .raven {
  position: absolute; bottom: 48%; left: 48%; width: 60px; height: 50px;
  background: radial-gradient(ellipse 60% 50% at 40% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 40% 40%;
  transform-origin: 50% 80%;
  animation: scr-raven 3s ease-in-out infinite;
}
.scn-inverness-castle-raven .glow {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, #c87030 0%, #a05020 30%, transparent 70%);
  border-radius: 50%; mix-blend-mode: screen;
  animation: scr-glow 2s ease-in-out infinite alternate;
}
.scn-inverness-castle-raven .shadow {
  position: absolute; bottom: 0; left: 30%; width: 150px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  animation: scr-shadow 4s ease-in-out infinite alternate;
}
@keyframes scr-raven {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.02); }
  100% { transform: rotate(2deg) scale(1); }
}
@keyframes scr-glow {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(.95); }
}
@keyframes scr-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.2) translateX(20px); }
  100% { transform: scaleX(1) translateX(0); }
}

/* Scene: inverness-castle-macbeth-enters */
.scn-inverness-castle-macbeth-enters {
  background:
    linear-gradient(180deg, #1f1210 0%, #2e1e1a 40%, #4a2e24 100%),
    radial-gradient(ellipse at 70% 50%, #7a4a2a 0%, transparent 60%);
}
.scn-inverness-castle-macbeth-enters .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12100e 0%, #1f1814 50%, #2a1e18 100%);
}
.scn-inverness-castle-macbeth-enters .door-frame {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-inverness-castle-macbeth-enters .door {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  transform-origin: left center;
  animation: sme-door 5s ease-in-out infinite;
}
.scn-inverness-castle-macbeth-enters .figure {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1412 0%, #0f0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sme-figure 6s ease-in-out infinite;
}
.scn-inverness-castle-macbeth-enters .shadow {
  position: absolute; bottom: 5%; left: 35%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%);
  animation: sme-shadow 6s ease-in-out infinite;
}
.scn-inverness-castle-macbeth-enters .glow {
  position: absolute; top: 20%; left: 60%; width: 100px; height: 100px;
  background: radial-gradient(circle, #d08040 0%, #a06020 30%, transparent 70%);
  border-radius: 50%; mix-blend-mode: screen;
  animation: sme-glow 3s ease-in-out infinite alternate;
}
.scn-inverness-castle-macbeth-enters .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
@keyframes sme-door {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(-20deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(-10deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes sme-figure {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(10px) scaleY(1.01); }
  50% { transform: translateX(20px) scaleY(1); }
  75% { transform: translateX(30px) scaleY(.99); }
  100% { transform: translateX(40px) scaleY(1); }
}
@keyframes sme-shadow {
  0% { transform: scaleX(1) translateX(0); }
  25% { transform: scaleX(1.3) translateX(15px); }
  50% { transform: scaleX(1.5) translateX(30px); }
  75% { transform: scaleX(1.2) translateX(20px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes sme-glow {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: .6; transform: scale(.9); }
}

/* Scene: inverness-castle-plot */
.scn-inverness-castle-plot {
  background:
    linear-gradient(180deg, #1c0f0c 0%, #2e1c16 40%, #3d281e 100%),
    radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, transparent 60%);
}
.scn-inverness-castle-plot .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #120c0a 0%, #1a1410 50%, #120c0a 100%);
}
.scn-inverness-castle-plot .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 2% 2% / 20% 20% 5% 5%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
.scn-inverness-castle-plot .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #1a1412 0%, #0f0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spl-figure-l 7s ease-in-out infinite;
}
.scn-inverness-castle-plot .figure-right {
  position: absolute; bottom: 30%; right: 30%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #1a1412 0%, #0f0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spl-figure-r 7s ease-in-out infinite;
}
.scn-inverness-castle-plot .candle {
  position: absolute; bottom: 32%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #8a7030 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(-50%);
}
.scn-inverness-castle-plot .candle-glow {
  position: absolute; bottom: 32%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #e0b060 0%, #c08030 20%, transparent 60%);
  border-radius: 50%; mix-blend-mode: screen;
  transform: translate(-50%, 0);
  animation: spl-glow 2s ease-in-out infinite alternate;
}
.scn-inverness-castle-plot .book {
  position: absolute; bottom: 21%; left: 42%; width: 30px; height: 16px;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(-3deg);
  box-shadow: 0 1px 4px rgba(0,0,0,.4);
}
@keyframes spl-figure-l {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes spl-figure-r {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes spl-glow {
  0% { opacity: .6; transform: translate(-50%, 0) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -2px) scale(1.1); }
  100% { opacity: .7; transform: translate(-50%, 0) scale(.95); }
}

/* Scene: inverness-castle-macbeth-reluctant */
.scn-inverness-castle-macbeth-reluctant {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2c1a12 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-inverness-castle-macbeth-reluctant .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0f0805 0%, #1a0e0a 50%, #0f0805 100%);
}
.scn-inverness-castle-macbeth-reluctant .figure {
  position: absolute; bottom: 10%; left: 40%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1412 0%, #0f0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smr-figure 4s ease-in-out infinite;
}
.scn-inverness-castle-macbeth-reluctant .crown {
  position: absolute; top: 45%; left: 65%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: smr-crown 8s ease-in-out infinite;
}
.scn-inverness-castle-macbeth-reluctant .shadow {
  position: absolute; bottom: 0; left: 20%; width: 160px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%);
  animation: smr-shadow 5s ease-in-out infinite alternate;
}
.scn-inverness-castle-macbeth-reluctant .light-beam {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(200,120,60,.3) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-15deg);
  animation: smr-beam 3s ease-in-out infinite alternate;
}
.scn-inverness-castle-macbeth-reluctant .chain {
  position: absolute; bottom: 50%; left: 55%; width: 2px; height: 60px;
  background: repeating-linear-gradient(180deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  animation: smr-chain 6s ease-in-out infinite;
}
@keyframes smr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(1px) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes smr-crown {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes smr-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .6; }
  50% { transform: scaleX(1.3) translateX(10px); opacity: .9; }
  100% { transform: scaleX(1) translateX(0); opacity: .6; }
}
@keyframes smr-beam {
  0% { opacity: .3; transform: rotate(-15deg) scaleY(1); }
  50% { opacity: .6; transform: rotate(-12deg) scaleY(1.05); }
  100% { opacity: .4; transform: rotate(-15deg) scaleY(1); }
}
@keyframes smr-chain {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

/* Scene: heath-macbeth-aside-greater */
.scn-heath-macbeth-aside-greater {
  background: linear-gradient(180deg, #3b3b4e 0%, #2a2a3a 40%, #1f1f2e 100%), radial-gradient(ellipse at 50% 30%, #5a5a6e 0%, transparent 70%);
}
.scn-heath-macbeth-aside-greater .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5c 0%, transparent 100%);
  animation: hmag-sky 14s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-greater .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #2d2d35 0%, #1a1a1f 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-heath-macbeth-aside-greater .hill {
  position: absolute;
  bottom: 32%;
  left: 10%;
  width: 60%;
  height: 18%;
  background: linear-gradient(180deg, #333340 0%, #24242b 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  transform: scaleX(1.2);
  animation: hmag-hill 20s ease-in-out infinite;
}
.scn-heath-macbeth-aside-greater .figure {
  position: absolute;
  bottom: 26%;
  left: 45%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1e1e28 0%, #0e0e14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hmag-figure 6s ease-in-out infinite;
}
.scn-heath-macbeth-aside-greater .crown-glow {
  position: absolute;
  bottom: 48%;
  left: 48%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, rgba(180, 160, 100, 0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: hmag-crown-glow 4s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-greater .crown-shape {
  position: absolute;
  bottom: 49%;
  left: 49%;
  width: 14px;
  height: 10px;
  background: linear-gradient(135deg, #b8a050 0%, #8a7030 100%);
  clip-path: polygon(0% 100%, 20% 40%, 50% 70%, 80% 40%, 100% 100%, 50% 80%);
  animation: hmag-crown-bob 3s ease-in-out infinite;
}
.scn-heath-macbeth-aside-greater .cloud-a {
  position: absolute;
  top: 12%;
  left: 20%;
  width: 90px;
  height: 20px;
  background: linear-gradient(180deg, rgba(200,200,210,0.4) 0%, rgba(200,200,210,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hmag-cloud-a 40s linear infinite;
}
.scn-heath-macbeth-aside-greater .cloud-b {
  position: absolute;
  top: 20%;
  right: 15%;
  width: 70px;
  height: 16px;
  background: linear-gradient(180deg, rgba(200,200,210,0.3) 0%, rgba(200,200,210,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hmag-cloud-b 55s linear infinite reverse;
}
@keyframes hmag-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes hmag-hill { 0% { transform: translateY(0) scaleX(1.2); } 50% { transform: translateY(-2px) scaleX(1.18); } 100% { transform: translateY(0) scaleX(1.2); } }
@keyframes hmag-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hmag-crown-glow { 0% { opacity: .3; transform: scale(0.9); } 50% { opacity: .7; transform: scale(1.1); } 100% { opacity: .4; transform: scale(1); } }
@keyframes hmag-crown-bob { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes hmag-cloud-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes hmag-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }

/* Scene: heath-banquo-caution */
.scn-heath-banquo-caution {
  background: linear-gradient(180deg, #2f2f42 0%, #1f1f2e 40%, #141421 100%), radial-gradient(ellipse at 60% 40%, #4a4a5e 0%, transparent 70%);
}
.scn-heath-banquo-caution .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3d3d50 0%, transparent 100%);
  animation: hbc-sky 16s ease-in-out infinite alternate;
}
.scn-heath-banquo-caution .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #282835 0%, #15151c 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-heath-banquo-caution .tree-left {
  position: absolute;
  bottom: 30%;
  left: 5%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a24 100%);
  border-radius: 10% 10% 20% 20%;
  transform: skewX(-5deg);
  animation: hbc-tree 22s ease-in-out infinite;
}
.scn-heath-banquo-caution .figure-banquo {
  position: absolute;
  bottom: 24%;
  left: 35%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #1c1c26 0%, #0c0c12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hbc-banquo 8s ease-in-out infinite;
}
.scn-heath-banquo-caution .figure-macbeth {
  position: absolute;
  bottom: 24%;
  left: 52%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1c1c26 0%, #0c0c12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hbc-macbeth 7s ease-in-out infinite;
}
.scn-heath-banquo-caution .arm-warning {
  position: absolute;
  bottom: 38%;
  left: 38%;
  width: 12px;
  height: 24px;
  background: linear-gradient(180deg, #1c1c26 0%, #0c0c12 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-40deg);
  transform-origin: bottom left;
  animation: hbc-arm 5s ease-in-out infinite;
}
.scn-heath-banquo-caution .mist-1 {
  position: absolute;
  bottom: 28%;
  left: 0;
  width: 100%;
  height: 20%;
  background: linear-gradient(90deg, rgba(180,180,200,0.15) 0%, rgba(180,180,200,0.05) 100%);
  filter: blur(10px);
  animation: hbc-mist 30s ease-in-out infinite alternate;
}
.scn-heath-banquo-caution .mist-2 {
  position: absolute;
  bottom: 34%;
  left: 0;
  width: 100%;
  height: 15%;
  background: linear-gradient(90deg, rgba(180,180,200,0.1) 0%, rgba(180,180,200,0.02) 100%);
  filter: blur(8px);
  animation: hbc-mist 35s ease-in-out infinite alternate-reverse;
}
@keyframes hbc-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes hbc-tree { 0% { transform: skewX(-5deg) rotate(0deg); } 50% { transform: skewX(-7deg) rotate(2deg); } 100% { transform: skewX(-5deg) rotate(0deg); } }
@keyframes hbc-banquo { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(3deg); } 60% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hbc-macbeth { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-3deg); } 60% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hbc-arm { 0% { transform: rotate(-40deg) scaleY(1); } 50% { transform: rotate(-50deg) scaleY(1.1); } 100% { transform: rotate(-40deg) scaleY(1); } }
@keyframes hbc-mist { 0% { transform: translateX(-10%) scaleX(1); } 50% { transform: translateX(10%) scaleX(1.05); } 100% { transform: translateX(-10%) scaleX(1); } }

/* Scene: heath-macbeth-soliloquy */
.scn-heath-macbeth-soliloquy {
  background: linear-gradient(95deg, #1f1f2e 0%, #2a2a40 50%, #1f1f2e 100%), radial-gradient(ellipse at 50% 30%, #3b3b50 0%, transparent 70%);
}
.scn-heath-macbeth-soliloquy .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2f2f44 0%, transparent 100%);
  animation: hms-sky 12s ease-in-out infinite alternate;
}
.scn-heath-macbeth-soliloquy .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #24242e 0%, #121217 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-heath-macbeth-soliloquy .divide-line {
  position: absolute;
  top: 0; bottom: 40%;
  left: 50%;
  width: 2px;
  background: linear-gradient(180deg, rgba(220,220,220,0.3) 0%, transparent 100%);
  filter: blur(1px);
  animation: hms-divide 9s ease-in-out infinite alternate;
}
.scn-heath-macbeth-soliloquy .sky-light {
  position: absolute;
  top: 5%;
  left: 55%;
  width: 35%;
  height: 30%;
  background: radial-gradient(ellipse, rgba(210,210,230,0.2) 0%, transparent 70%);
  animation: hms-light 8s ease-in-out infinite alternate;
}
.scn-heath-macbeth-soliloquy .sky-dark {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 35%;
  height: 30%;
  background: radial-gradient(ellipse, rgba(20,20,30,0.4) 0%, transparent 70%);
  animation: hms-dark 8s ease-in-out infinite alternate-reverse;
}
.scn-heath-macbeth-soliloquy .figure {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 20px;
  height: 44px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hms-figure 5s ease-in-out infinite;
}
.scn-heath-macbeth-soliloquy .dagger-thought {
  position: absolute;
  bottom: 48%;
  left: 52%;
  width: 18px;
  height: 30px;
  background: linear-gradient(180deg, rgba(180,180,200,0.5) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  animation: hms-dagger 4s ease-in-out infinite;
}
.scn-heath-macbeth-soliloquy .shadows {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: hms-shadows 10s ease-in-out infinite alternate;
}
@keyframes hms-sky { 0% { opacity: .5; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes hms-divide { 0% { opacity: .2; transform: scaleY(0.8); } 50% { opacity: .6; transform: scaleY(1.2); } 100% { opacity: .2; transform: scaleY(0.8); } }
@keyframes hms-light { 0% { opacity: .1; } 50% { opacity: .4; } 100% { opacity: .15; } }
@keyframes hms-dark { 0% { opacity: .6; } 50% { opacity: .2; } 100% { opacity: .6; } }
@keyframes hms-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hms-dagger { 0% { transform: translateY(0) rotate(-10deg) scaleX(0.8); } 50% { transform: translateY(-5px) rotate(10deg) scaleX(1); } 100% { transform: translateY(0) rotate(-10deg) scaleX(0.8); } }
@keyframes hms-shadows { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .5; } }

/* Scene: heath-macbeth-chance */
.scn-heath-macbeth-chance {
  background: linear-gradient(180deg, #2e2e42 0%, #1c1c2a 45%, #101018 100%), radial-gradient(ellipse at 50% 40%, #4a4a60 0%, transparent 70%);
}
.scn-heath-macbeth-chance .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3b3b50 0%, transparent 100%);
  animation: hmc-sky 15s ease-in-out infinite alternate;
}
.scn-heath-macbeth-chance .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #252530 0%, #131318 100%);
  border-radius: 50% 50% 0 0 / 25% 25% 0 0;
}
.scn-heath-macbeth-chance .figure {
  position: absolute;
  bottom: 25%;
  left: 48%;
  width: 20px;
  height: 46px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hmc-figure 7s ease-in-out infinite;
}
.scn-heath-macbeth-chance .crown-falling {
  position: absolute;
  top: 10%;
  left: 48%;
  width: 16px;
  height: 12px;
  background: linear-gradient(135deg, #b8a050 0%, #806830 100%);
  clip-path: polygon(0% 100%, 20% 30%, 50% 70%, 80% 30%, 100% 100%, 50% 80%);
  animation: hmc-crown-fall 8s ease-in-out infinite;
}
.scn-heath-macbeth-chance .rays {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 25%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,200,150,0.3) 0%, transparent 70%);
  animation: hmc-rays 6s ease-in-out infinite alternate;
}
.scn-heath-macbeth-chance .crack {
  position: absolute;
  bottom: 38%;
  left: 44%;
  width: 2px;
  height: 20px;
  background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, transparent 100%);
  transform: rotate(15deg);
  animation: hmc-crack 4s ease-in-out infinite;
}
.scn-heath-macbeth-chance .dust-1 {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, rgba(180,180,200,0.2) 0%, transparent 100%);
  border-radius: 50%;
  animation: hmc-dust 5s ease-in-out infinite;
}
.scn-heath-macbeth-chance .dust-2 {
  position: absolute;
  bottom: 32%;
  left: 55%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, rgba(180,180,200,0.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: hmc-dust 6s ease-in-out infinite 1s;
}
@keyframes hmc-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes hmc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hmc-crown-fall { 0% { transform: translateY(-30px) rotate(-15deg); opacity: 0.2; } 25% { transform: translateY(-10px) rotate(-5deg); opacity: 0.6; } 50% { transform: translateY(10px) rotate(5deg); opacity: 0.8; } 75% { transform: translateY(30px) rotate(15deg); opacity: 0.4; } 100% { transform: translateY(-30px) rotate(-15deg); opacity: 0.2; } }
@keyframes hmc-rays { 0% { opacity: .1; } 50% { opacity: .4; } 100% { opacity: .2; } }
@keyframes hmc-crack { 0% { opacity: .2; transform: rotate(15deg) scaleY(0.8); } 50% { opacity: .6; transform: rotate(10deg) scaleY(1.2); } 100% { opacity: .2; transform: rotate(15deg) scaleY(0.8); } }
@keyframes hmc-dust { 0% { transform: translateY(0) scale(1); opacity: 0; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.5; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* desert-place-witches-meet */
.scn-desert-place-witches-meet {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2a 30%, #2a1a3a 60%, #1a0a2a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(80,40,120,0.3) 0%, transparent 60%);
}
.scn-desert-place-witches-meet .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, rgba(30,20,50,0.9) 0%, rgba(20,10,30,0.5) 100%);
  animation: dwm-sky 12s ease-in-out infinite alternate;
}
.scn-desert-place-witches-meet .lightning-a {
  position:absolute; top:5%; left:30%; width:4px; height:45%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,220,255,0.9) 10%, rgba(200,220,255,0.9) 12%, transparent 20%, transparent 25%, rgba(200,220,255,0.6) 35%, rgba(200,220,255,0.6) 37%, transparent 45%);
  transform: skewX(-8deg);
  animation: dwm-flash-a 4s ease-in-out infinite;
}
.scn-desert-place-witches-meet .lightning-b {
  position:absolute; top:8%; right:25%; width:3px; height:35%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,220,255,0.7) 8%, rgba(200,220,255,0.7) 10%, transparent 18%, transparent 22%, rgba(200,220,255,0.5) 30%, transparent 38%);
  transform: skewX(5deg);
  animation: dwm-flash-b 6s ease-in-out 2s infinite;
}
.scn-desert-place-witches-meet .ground {
  position:absolute; bottom:0; left:0; right:0; height:38%;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a0a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  animation: dwm-ground 20s ease-in-out infinite alternate;
}
.scn-desert-place-witches-meet .witch {
  position:absolute; bottom:35%; width:40px; height:80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-desert-place-witches-meet .witch-1 {
  left:20%; transform-origin: bottom center;
  animation: dwm-witch-1 8s ease-in-out infinite;
}
.scn-desert-place-witches-meet .witch-2 {
  left:45%; width:44px; height:85px;
  transform-origin: bottom center;
  animation: dwm-witch-2 9s ease-in-out 1s infinite;
}
.scn-desert-place-witches-meet .witch-3 {
  left:68%; width:38px; height:75px;
  transform-origin: bottom center;
  animation: dwm-witch-3 7s ease-in-out 0.5s infinite;
}
.scn-desert-place-witches-meet .stone {
  position:absolute; bottom:34%; left:55%; width:30px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 50% 50%;
  animation: dwm-stone 15s ease-in-out infinite alternate;
}
@keyframes dwm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes dwm-flash-a { 0%,90%,100% { opacity:0 } 5% { opacity:0.9 } 15% { opacity:0.3 } 35% { opacity:0.7 } 45% { opacity:0.1 } }
@keyframes dwm-flash-b { 0%,85%,100% { opacity:0 } 10% { opacity:0.8 } 20% { opacity:0.2 } 40% { opacity:0.5 } 50% { opacity:0 } }
@keyframes dwm-ground { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-4px) scale(1.01) } 100% { transform:translateY(2px) scale(0.99) } }
@keyframes dwm-witch-1 { 0% { transform:translateX(0) rotate(-2deg) } 30% { transform:translateX(5px) rotate(1deg) } 60% { transform:translateX(2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes dwm-witch-2 { 0% { transform:translateX(0) rotate(1deg) } 40% { transform:translateX(-4px) rotate(-2deg) } 70% { transform:translateX(3px) rotate(0) } 100% { transform:translateX(0) rotate(1deg) } }
@keyframes dwm-witch-3 { 0% { transform:translateX(0) rotate(0) } 35% { transform:translateX(6px) rotate(2deg) } 65% { transform:translateX(-3px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes dwm-stone { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }

/* camp-forres-duncan-may */
.scn-camp-forres-duncan-may {
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 30%, #3a3a4a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(120,120,140,0.3) 0%, transparent 70%);
}
.scn-camp-forres-duncan-may .sky-overcast {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 60%, transparent 100%);
  animation: cfd-sky 15s ease-in-out infinite alternate;
}
.scn-camp-forres-duncan-may .tent-left {
  position:absolute; bottom:20%; left:5%; width:120px; height:80px;
  background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: cfd-tent 12s ease-in-out infinite alternate;
}
.scn-camp-forres-duncan-may .tent-right {
  position:absolute; bottom:20%; right:8%; width:100px; height:70px;
  background: linear-gradient(225deg, #4a3a2a 0%, #1a0a00 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: cfd-tent 14s ease-in-out 1s infinite alternate;
}
.scn-camp-forres-duncan-may .banner {
  position:absolute; bottom:45%; left:45%; width:40px; height:30px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a2a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: cfd-banner 8s ease-in-out infinite;
}
.scn-camp-forres-duncan-may .king-group {
  position:absolute; bottom:22%; left:48%; width:100px; height:70px;
  background: linear-gradient(180deg, #3a2a5a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cfd-king 10s ease-in-out infinite alternate;
}
.scn-camp-forres-duncan-may .bleeding-sergeant {
  position:absolute; bottom:18%; left:35%; width:50px; height:60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: cfd-sergeant 6s ease-in-out infinite;
}
.scn-camp-forres-duncan-may .attendants {
  position:absolute; bottom:24%; left:55%; width:80px; height:60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity:0.8;
  animation: cfd-king 12s ease-in-out 2s infinite alternate;
}
.scn-camp-forres-duncan-may .ground-mud {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
@keyframes cfd-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.65 } }
@keyframes cfd-tent { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.02) translateY(-3px) } 100% { transform:scaleY(0.98) translateY(2px) } }
@keyframes cfd-banner { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } }
@keyframes cfd-king { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.01) } 100% { transform:translateY(1px) scale(0.99) } }
@keyframes cfd-sergeant { 0%,100% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(12deg) translateY(-4px) } }

/* camp-forres-sergeant-doubt */
.scn-camp-forres-sergeant-doubt {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 50%, rgba(60,60,80,0.2) 0%, transparent 80%);
}
.scn-camp-forres-sergeant-doubt .sky-doubt {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, transparent 100%);
  animation: cfs-sky 14s ease-in-out infinite alternate;
}
.scn-camp-forres-sergeant-doubt .fighter-a {
  position:absolute; bottom:20%; left:30%; width:60px; height:90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: cfs-fig-a 5s ease-in-out infinite;
}
.scn-camp-forres-sergeant-doubt .fighter-b {
  position:absolute; bottom:25%; left:45%; width:55px; height:85px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg) scaleX(-1);
  transform-origin: bottom center;
  animation: cfs-fig-b 5s ease-in-out 0.5s infinite;
}
.scn-camp-forres-sergeant-doubt .water-splash {
  position:absolute; bottom:22%; left:38%; width:20px; height:30px;
  background: radial-gradient(circle, rgba(150,180,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cfs-splash 3s ease-in-out infinite;
}
.scn-camp-forres-sergeant-doubt .sea-surface {
  position:absolute; bottom:10%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(80,100,120,0.3) 0%, rgba(40,60,80,0.1) 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cfs-sea 8s ease-in-out infinite alternate;
}
.scn-camp-forres-sergeant-doubt .choke-ripple {
  position:absolute; bottom:18%; left:42%; width:40px; height:4px;
  background: radial-gradient(ellipse, rgba(200,220,240,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cfs-ripple 4s ease-in-out infinite;
}
@keyframes cfs-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes cfs-fig-a { 0% { transform:rotate(-15deg) translateX(0) } 30% { transform:rotate(-18deg) translateX(4px) } 60% { transform:rotate(-12deg) translateX(-3px) } 100% { transform:rotate(-15deg) translateX(0) } }
@keyframes cfs-fig-b { 0% { transform:rotate(20deg) scaleX(-1) translateX(0) } 40% { transform:rotate(22deg) scaleX(-1) translateX(-5px) } 70% { transform:rotate(18deg) scaleX(-1) translateX(3px) } 100% { transform:rotate(20deg) scaleX(-1) translateX(0) } }
@keyframes cfs-splash { 0%,100% { opacity:0.2; transform:scale(0.8) } 50% { opacity:0.6; transform:scale(1.2) } }
@keyframes cfs-sea { 0% { transform:translateY(0) } 50% { transform:translateY(3px) } 100% { transform:translateY(-2px) } }
@keyframes cfs-ripple { 0% { transform:scaleX(0.6); opacity:0.1 } 50% { transform:scaleX(1.2); opacity:0.5 } 100% { transform:scaleX(0.8); opacity:0 } }

/* camp-forres-sergeant-carve */
.scn-camp-forres-sergeant-carve {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #4a3a2a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, rgba(120,80,40,0.1) 0%, transparent 70%);
}
.scn-camp-forres-sergeant-carve .sky-carve {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 60%, transparent 100%);
  animation: cfc-sky 12s ease-in-out infinite alternate;
}
.scn-camp-forres-sergeant-carve .macbeth {
  position:absolute; bottom:20%; left:35%; width:70px; height:110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfc-macbeth 6s ease-in-out infinite;
}
.scn-camp-forres-sergeant-carve .sword {
  position:absolute; bottom:55%; left:28%; width:8px; height:70px;
  background: linear-gradient(180deg, #a0a0b0 0%, #808090 40%, #606070 100%);
  transform: rotate(-40deg);
  transform-origin: bottom center;
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 12px 2px rgba(160,160,180,0.3);
  animation: cfc-sword 3s ease-in-out infinite alternate;
}
.scn-camp-forres-sergeant-carve .macdonwald {
  position:absolute; bottom:18%; left:50%; width:60px; height:80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg) scaleX(-1);
  transform-origin: bottom right;
  animation: cfc-macdonwald 5s ease-in-out infinite;
}
.scn-camp-forres-sergeant-carve .blood-burst {
  position:absolute; bottom:25%; left:48%; width:30px; height:40px;
  background: radial-gradient(circle, rgba(180,80,60,0.6) 0%, rgba(180,80,60,0.1) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: cfc-blood 4s ease-in-out infinite;
}
.scn-camp-forres-sergeant-carve .ground-blood {
  position:absolute; bottom:12%; left:0; right:0; height:14%;
  background: linear-gradient(180deg, rgba(180,80,60,0.2) 0%, rgba(40,20,10,0.5) 50%, transparent 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: cfc-ground 10s ease-in-out infinite alternate;
}
.scn-camp-forres-sergeant-carve .smoke-wisp {
  position:absolute; bottom:35%; left:30%; width:30px; height:50px;
  background: radial-gradient(ellipse, rgba(100,100,110,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: cfc-smoke 7s ease-in-out infinite;
}
@keyframes cfc-sky { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.65 } }
@keyframes cfc-macbeth { 0%,100% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(0deg) } }
@keyframes cfc-sword { 0% { transform:rotate(-40deg) } 50% { transform:rotate(-35deg) } 100% { transform:rotate(-42deg) } }
@keyframes cfc-macdonwald { 0%,100% { transform:rotate(-30deg) scaleX(-1) translateX(0) } 50% { transform:rotate(-28deg) scaleX(-1) translateX(-4px) } }
@keyframes cfc-blood { 0%,100% { opacity:0.3; transform:scale(0.8) } 50% { opacity:0.7; transform:scale(1.1) } }
@keyframes cfc-ground { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(2px) scaleX(1.02) } 100% { transform:translateY(-1px) scaleX(0.98) } }
@keyframes cfc-smoke { 0% { transform:translateX(0) translateY(0) scale(0.8); opacity:0.1 } 50% { transform:translateX(-8px) translateY(-10px) scale(1.2); opacity:0.4 } 100% { transform:translateX(4px) translateY(-5px) scale(0.9); opacity:0.1 } }

/* camp-forres-sergeant-fresh */
.scn-camp-forres-sergeant-fresh {
  background: linear-gradient(180deg, #3b4552 0%, #4a5560 40%, #2a323c 100%),
              radial-gradient(ellipse at 30% 40%, #5a6670 0%, transparent 60%);
}
.scn-camp-forres-sergeant-fresh .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #4d5a66 0%, #3d4752 100%); animation:sf-sky 12s ease-in-out infinite alternate; }
.scn-camp-forres-sergeant-fresh .mist { position:absolute; bottom:45%; left:0; right:0; height:20%; background:linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(200,210,220,0.3) 50%, transparent 100%); filter:blur(4px); animation:sf-mist 20s ease-in-out infinite; }
.scn-camp-forres-sergeant-fresh .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a4038 0%, #2d332b 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-camp-forres-sergeant-fresh .spring-flow { position:absolute; bottom:30%; left:20%; width:40%; height:8px; background:linear-gradient(90deg, #607080, #4a5a6a 60%, transparent); border-radius: 0 50% 50% 0; filter:blur(2px); animation:sf-spring 6s ease-in-out infinite; }
.scn-camp-forres-sergeant-fresh .soldier-body { position:absolute; bottom:18%; left:30%; width:28px; height:50px; background:linear-gradient(180deg, #3a3f42 0%, #1a1e22 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(10deg); transform-origin:bottom center; animation:sf-sway 4s ease-in-out infinite; }
.scn-camp-forres-sergeant-fresh .soldier-helmet { position:absolute; bottom:62%; left:29%; width:30px; height:16px; background:linear-gradient(180deg, #585e66 0%, #2f343b 100%); border-radius:50% 50% 40% 40%; box-shadow:0 -2px 4px rgba(0,0,0,0.6); transform:rotate(10deg); animation:sf-sway 4s ease-in-out infinite; }
.scn-camp-forres-sergeant-fresh .spear { position:absolute; bottom:25%; left:38%; width:2px; height:80px; background:linear-gradient(180deg, #6a7260 0%, #3a3e32 100%); border-radius:1px; transform:rotate(-15deg); transform-origin:bottom; animation:sf-spear 3s ease-in-out infinite alternate; }
.scn-camp-forres-sergeant-fresh .blood-pool { position:absolute; bottom:12%; left:28%; width:40px; height:10px; background:radial-gradient(ellipse, #5e2a2a 0%, #3e1a1a 50%, transparent 100%); border-radius:50%; filter:blur(2px); animation:sf-blood 8s ease-in-out infinite; }
@keyframes sf-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes sf-mist { 0%{transform:translateX(-10px) scaleY(1)} 25%{transform:translateX(5px) scaleY(1.2)} 50%{transform:translateX(-5px) scaleY(0.9)} 75%{transform:translateX(10px) scaleY(1.1)} 100%{transform:translateX(-10px) scaleY(1)} }
@keyframes sf-spring { 0%{opacity:0.3;transform:scaleX(0.8)} 50%{opacity:0.8;transform:scaleX(1.2)} 100%{opacity:0.4;transform:scaleX(0.9)} }
@keyframes sf-sway { 0%{transform:rotate(8deg)} 50%{transform:rotate(12deg)} 100%{transform:rotate(8deg)} }
@keyframes sf-spear { 0%{transform:rotate(-17deg)} 50%{transform:rotate(-13deg)} 100%{transform:rotate(-17deg)} }
@keyframes sf-blood { 0%{opacity:0.6;transform:scale(1)} 50%{opacity:0.9;transform:scale(1.1)} 100%{opacity:0.5;transform:scale(0.9)} }

/* camp-forres-sergeant-answer */
.scn-camp-forres-sergeant-answer {
  background: linear-gradient(180deg, #3b4552 0%, #4a5560 40%, #2a323c 100%),
              radial-gradient(ellipse at 70% 60%, #6a7a8a 0%, transparent 60%);
}
.scn-camp-forres-sergeant-answer .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #4d5a66 0%, #3d4752 100%); animation:sa-sky 20s ease-in-out infinite; }
.scn-camp-forres-sergeant-answer .smoke-left { position:absolute; bottom:40%; left:10%; width:100px; height:60px; background:radial-gradient(ellipse, rgba(180,190,200,0.4) 0%, transparent 70%); filter:blur(8px); animation:sa-smoke-l 15s linear infinite; }
.scn-camp-forres-sergeant-answer .smoke-right { position:absolute; bottom:35%; right:15%; width:120px; height:70px; background:radial-gradient(ellipse, rgba(180,190,200,0.3) 0%, transparent 70%); filter:blur(10px); animation:sa-smoke-r 18s linear infinite reverse; }
.scn-camp-forres-sergeant-answer .cannon { position:absolute; bottom:25%; left:15%; width:60px; height:18px; background:linear-gradient(180deg, #4a4e52 0%, #2c3035 100%); border-radius:40% 20% 20% 40% / 50% 30% 30% 50%; transform:rotate(-5deg); box-shadow:0 4px 8px rgba(0,0,0,0.6); animation:sa-cannon 6s ease-in-out infinite; }
.scn-camp-forres-sergeant-answer .soldier-charge { position:absolute; bottom:18%; left:45%; width:24px; height:44px; background:linear-gradient(180deg, #3a3f42 0%, #1a1e22 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:skewX(-10deg); animation:sa-charge 2.5s ease-in-out infinite; }
.scn-camp-forres-sergeant-answer .sword-strike { position:absolute; bottom:30%; left:52%; width:4px; height:60px; background:linear-gradient(180deg, #7a838a 0%, #4a525a 100%); border-radius:2px; transform:rotate(45deg); transform-origin:bottom; animation:sa-sword 1.8s ease-in-out infinite; }
.scn-camp-forres-sergeant-answer .ground-rubble { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #3a4038 0%, #2d332b 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-camp-forres-sergeant-answer .banner-torn { position:absolute; bottom:45%; right:20%; width:20px; height:40px; background:linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); transform-origin:top; animation:sa-banner 4s ease-in-out infinite; }
@keyframes sa-sky { 0%{opacity:0.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:0.75;transform:scale(1)} }
@keyframes sa-smoke-l { 0%{transform:translateY(0) translateX(0) scale(1); opacity:0.3} 50%{transform:translateY(-20px) translateX(15px) scale(1.5); opacity:0.1} 100%{transform:translateY(0) translateX(0) scale(1); opacity:0.3} }
@keyframes sa-smoke-r { 0%{transform:translateY(0) translateX(0) scale(1); opacity:0.2} 50%{transform:translateY(-30px) translateX(-10px) scale(1.8); opacity:0.05} 100%{transform:translateY(0) translateX(0) scale(1); opacity:0.2} }
@keyframes sa-cannon { 0%{transform:rotate(-7deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} 100%{transform:rotate(-7deg) translateY(0)} }
@keyframes sa-charge { 0%{transform:skewX(-15deg) translateX(0)} 25%{transform:skewX(-5deg) translateX(10px)} 50%{transform:skewX(-15deg) translateX(20px)} 75%{transform:skewX(-5deg) translateX(10px)} 100%{transform:skewX(-15deg) translateX(0)} }
@keyframes sa-sword { 0%{transform:rotate(30deg) scaleY(1)} 50%{transform:rotate(60deg) scaleY(1.1)} 100%{transform:rotate(30deg) scaleY(1)} }
@keyframes sa-banner { 0%{transform:rotate(-5deg)} 50%{transform:rotate(12deg)} 100%{transform:rotate(-5deg)} }

/* camp-forres-duncan-honour */
.scn-camp-forres-duncan-honour {
  background: linear-gradient(180deg, #3b4552 0%, #4a5560 40%, #2a323c 100%),
              radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 60%);
}
.scn-camp-forres-duncan-honour .tent-back { position:absolute; inset:0; background:linear-gradient(180deg, #4a5050 0%, #2a3030 100%); clip-path: polygon(20% 0, 80% 0, 95% 100%, 5% 100%); }
.scn-camp-forres-duncan-honour .tent-opening { position:absolute; bottom:0; left:30%; width:40%; height:60%; background:linear-gradient(180deg, #3a4040 0%, #1a2020 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.7); animation:dh-tent 10s ease-in-out infinite; }
.scn-camp-forres-duncan-honour .ground-tent { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #3a4038 0%, #2d332b 100%); }
.scn-camp-forres-duncan-honour .king-duncan { position:absolute; bottom:10%; left:35%; width:30px; height:60px; background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:scaleX(1.1); animation:dh-king 6s ease-in-out infinite; }
.scn-camp-forres-duncan-honour .crown { position:absolute; bottom:65%; left:34%; width:32px; height:12px; background:linear-gradient(180deg, #7a7258 0%, #4a4228 100%); border-radius:40% 40% 20% 20%; transform:rotate(2deg); animation:dh-crown 6s ease-in-out infinite; }
.scn-camp-forres-duncan-honour .sergeant-wounded { position:absolute; bottom:8%; left:52%; width:24px; height:50px; background:linear-gradient(180deg, #3a3f42 0%, #1a1e22 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:skewX(8deg); animation:dh-sergeant 8s ease-in-out infinite; }
.scn-camp-forres-duncan-honour .bandage { position:absolute; bottom:30%; left:54%; width:14px; height:8px; background:linear-gradient(180deg, #8a8272 0%, #6a6252 100%); border-radius:30%; transform:rotate(15deg); animation:dh-bandage 8s ease-in-out infinite; }
.scn-camp-forres-duncan-honour .torch { position:absolute; bottom:20%; left:25%; width:10px; height:20px; background:radial-gradient(ellipse at 50% 30%, #c88840 0%, #a06030 60%, transparent 100%); filter:blur(2px); box-shadow:0 0 20px 6px rgba(160,96,48,0.5); animation:dh-torch 3s ease-in-out infinite alternate; }
@keyframes dh-tent { 0%{opacity:0.9;transform:scaleX(1)} 50%{opacity:0.7;transform:scaleX(0.98)} 100%{opacity:0.9;transform:scaleX(1)} }
@keyframes dh-king { 0%{transform:scaleX(1.1) translateY(0)} 50%{transform:scaleX(1.08) translateY(-3px)} 100%{transform:scaleX(1.1) translateY(0)} }
@keyframes dh-crown { 0%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(4deg) translateY(-1px)} 100%{transform:rotate(0deg) translateY(0)} }
@keyframes dh-sergeant { 0%{transform:skewX(10deg) translateX(0)} 50%{transform:skewX(6deg) translateX(-5px)} 100%{transform:skewX(10deg) translateX(0)} }
@keyframes dh-bandage { 0%{opacity:0.7;transform:rotate(10deg)} 50%{opacity:1;transform:rotate(20deg)} 100%{opacity:0.8;transform:rotate(10deg)} }
@keyframes dh-torch { 0%{opacity:0.6;box-shadow:0 0 15px 4px rgba(160,96,48,0.4)} 50%{opacity:1;box-shadow:0 0 35px 10px rgba(200,136,64,0.7)} 100%{opacity:0.7;box-shadow:0 0 20px 6px rgba(160,96,48,0.5)} }

/* camp-forres-ross-battle */
.scn-camp-forres-ross-battle {
  background: linear-gradient(180deg, #3b4552 0%, #4a5560 40%, #2a323c 100%),
              radial-gradient(ellipse at 80% 50%, #6a7a8a 0%, transparent 60%);
}
.scn-camp-forres-ross-battle .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #4d5a66 0%, #3d4752 100%); animation:rb-sky 25s ease-in-out infinite; }
.scn-camp-forres-ross-battle .hill-far { position:absolute; bottom:30%; left:0; right:0; height:20%; background:linear-gradient(180deg, #4a5048 0%, #2a3028 100%); border-radius: 70% 30% 0 0 / 50% 50% 0 0; }
.scn-camp-forres-ross-battle .hill-near { position:absolute; bottom:15%; left:0; right:0; height:25%; background:linear-gradient(180deg, #3a4038 0%, #1a2018 100%); border-radius: 40% 60% 0 0 / 70% 30% 0 0; transform:scale(0.95); }
.scn-camp-forres-ross-battle .flagpole { position:absolute; bottom:50%; left:65%; width:4px; height:80px; background:linear-gradient(180deg, #5a5e62 0%, #2a2e32 100%); border-radius:2px; transform:rotate(3deg); animation:rb-pole 8s ease-in-out infinite; }
.scn-camp-forres-ross-battle .norway-banner { position:absolute; bottom:78%; left:66%; width:40px; height:25px; background:linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); transform-origin:left center; animation:rb-banner 6s ease-in-out infinite; }
.scn-camp-forres-ross-battle .soldier-scot { position:absolute; bottom:12%; left:25%; width:22px; height:48px; background:linear-gradient(180deg, #3a3f42 0%, #1a1e22 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:skewX(-5deg); animation:rb-scot 4s ease-in-out infinite; }
.scn-camp-forres-ross-battle .soldier-nor { position:absolute; bottom:10%; left:55%; width:22px; height:48px; background:linear-gradient(180deg, #3a3f42 0%, #1a1e22 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:skewX(8deg) scaleX(-1); animation:rb-nor 4.5s ease-in-out infinite; }
.scn-camp-forres-ross-battle .dust-cloud { position:absolute; bottom:25%; left:35%; width:80px; height:30px; background:radial-gradient(ellipse, rgba(180,190,200,0.3) 0%, transparent 70%); filter:blur(6px); animation:rb-dust 12s ease-in-out infinite; }
.scn-camp-forres-ross-battle .arrow-volley { position:absolute; top:10%; left:30%; width:2px; height:20px; background:linear-gradient(180deg, #7a7e82 0%, #4a4e52 100%); border-radius:1px; box-shadow: 15px 20px 0 #5a5e62, 30px 15px 0 #6a6e72, 45px 25px 0 #5a5e62; animation:rb-arrow 2s ease-in-out infinite; }
@keyframes rb-sky { 0%{opacity:0.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.01)} 100%{opacity:0.75;transform:scale(1)} }
@keyframes rb-pole { 0%{transform:rotate(1deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(1deg)} }
@keyframes rb-banner { 0%{transform:skewX(0deg)} 50%{transform:skewX(10deg)} 100%{transform:skewX(0deg)} }
@keyframes rb-scot { 0%{transform:skewX(-5deg) translateX(0)} 50%{transform:skewX(-10deg) translateX(-8px)} 100%{transform:skewX(-5deg) translateX(0)} }
@keyframes rb-nor { 0%{transform:skewX(8deg) scaleX(-1) translateX(0)} 50%{transform:skewX(5deg) scaleX(-1) translateX(6px)} 100%{transform:skewX(8deg) scaleX(-1) translateX(0)} }
@keyframes rb-dust { 0%{opacity:0.2;transform:scale(1) translateY(0)} 50%{opacity:0.5;transform:scale(1.5) translateY(-10px)} 100%{opacity:0.3;transform:scale(1) translateY(0)} }
@keyframes rb-arrow { 0%{transform:translateY(0) rotate(0deg); opacity:0} 50%{transform:translateY(-40px) rotate(-15deg); opacity:1} 100%{transform:translateY(-80px) rotate(-30deg); opacity:0} }

.scn-same-macbeth-voice {
  background:
    linear-gradient(180deg, #1b1622 0%, #2c2438 40%, #1a1420 100%),
    radial-gradient(ellipse at 70% 90%, #3a2a45 0%, transparent 60%);
}
.scn-same-macbeth-voice .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2240 0%, #1a1530 100%); }
.scn-same-macbeth-voice .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2035 0%, #1a1025 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.7); }
.scn-same-macbeth-voice .moonlight { position:absolute; top:5%; right:8%; width:40px; height:70px; background: linear-gradient(180deg, rgba(180,200,230,0.3) 0%, rgba(180,200,230,0.05) 100%); filter: blur(8px); transform: skewX(-10deg) rotate(5deg); animation: smv-moon 20s ease-in-out infinite alternate; }
.scn-same-macbeth-voice .bed { position:absolute; bottom:30%; left:10%; width:60%; height:30px; background: linear-gradient(180deg, #3a2a40 0%, #2a1a30 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-same-macbeth-voice .sleeper { position:absolute; bottom:32%; width:30px; height:22px; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; background: linear-gradient(180deg, #1a1230 0%, #0e0a20 100%); }
.scn-same-macbeth-voice .sleeper.left { left:15%; animation: smv-sleep 6s ease-in-out infinite; }
.scn-same-macbeth-voice .sleeper.right { left:50%; animation: smv-sleep 6s ease-in-out infinite 3s; }
.scn-same-macbeth-voice .figure { position:absolute; bottom:15%; left:60%; width:40px; height:80px; background: linear-gradient(180deg, #1a1230 0%, #0a0820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smv-figure 8s ease-in-out infinite; }
.scn-same-macbeth-voice .candle { position:absolute; bottom:18%; right:10%; width:6px; height:12px; background: linear-gradient(180deg, #c0a050 0%, #8a6a30 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(200,160,80,0.5), 0 0 40px 12px rgba(200,160,80,0.2); animation: smv-candle 3s ease-in-out infinite alternate; }
@keyframes smv-moon { 0% { opacity:0.5; transform: skewX(-10deg) rotate(3deg); } 50% { opacity:0.8; transform: skewX(-8deg) rotate(6deg); } 100% { opacity:0.6; transform: skewX(-12deg) rotate(4deg); } }
@keyframes smv-sleep { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes smv-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-4px) rotate(1deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes smv-candle { 0% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(200,160,80,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(200,160,80,0.7); } 100% { opacity:0.9; box-shadow: 0 0 18px 5px rgba(200,160,80,0.5); } }

.scn-same-lady-comforts {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2340 50%, #1e1835 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a50 0%, transparent 70%);
}
.scn-same-lady-comforts .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a234a 0%, #1a1430 100%); }
.scn-same-lady-comforts .window { position:absolute; top:10%; left:10%; width:60px; height:90px; background: linear-gradient(180deg, rgba(160,180,220,0.25) 0%, rgba(160,180,220,0.05) 100%); border: 2px solid #3a2a40; border-radius: 4px; filter: blur(3px); animation: slc-window 15s ease-in-out infinite alternate; }
.scn-same-lady-comforts .table { position:absolute; bottom:25%; left:25%; width:50%; height:20px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-same-lady-comforts .figure-lady { position:absolute; bottom:15%; left:40%; width:35px; height:75px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slc-lady 7s ease-in-out infinite; }
.scn-same-lady-comforts .figure-macbeth { position:absolute; bottom:15%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #1a1230 0%, #0a0820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slc-macbeth 9s ease-in-out infinite; }
.scn-same-lady-comforts .goblet { position:absolute; bottom:30%; left:48%; width:10px; height:14px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 0 4px 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: slc-goblet 5s ease-in-out infinite alternate; }
.scn-same-lady-comforts .candle { position:absolute; bottom:30%; left:38%; width:6px; height:14px; background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(200,128,64,0.5), 0 0 40px 12px rgba(200,128,64,0.2); animation: slc-candle 3s ease-in-out infinite alternate; }
.scn-same-lady-comforts .shadow { position:absolute; bottom:10%; left:45%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(10px); animation: slc-shadow 10s ease-in-out infinite; }
@keyframes slc-window { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.05); } 100% { opacity:0.4; transform: scaleY(0.95); } }
@keyframes slc-lady { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-3px) rotate(2deg); } 80% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes slc-macbeth { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes slc-goblet { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes slc-candle { 0% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(200,128,64,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(200,128,64,0.7); } 100% { opacity:0.9; box-shadow: 0 0 18px 5px rgba(200,128,64,0.5); } }
@keyframes slc-shadow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-same-macbeth-sleep-voice {
  background:
    linear-gradient(180deg, #120e1e 0%, #1c1530 50%, #0f0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a3a 0%, transparent 60%);
}
.scn-same-macbeth-sleep-voice .curtains { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-bottom: 2px solid #3a2a3a; }
.scn-same-macbeth-sleep-voice .mirror { position:absolute; top:15%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, rgba(200,200,240,0.15) 0%, rgba(200,200,240,0.02) 100%); border: 2px solid #4a3a4a; border-radius: 8px; filter: blur(2px); animation: msv-mirror 12s ease-in-out infinite alternate; }
.scn-same-macbeth-sleep-voice .figure-voice { position:absolute; bottom:20%; left:50%; width:45px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1230 0%, #0a0820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msv-figure 8s ease-in-out infinite; }
.scn-same-macbeth-sleep-voice .hands { position:absolute; bottom:30%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50%; animation: msv-hands 6s ease-in-out infinite alternate; }
.scn-same-macbeth-sleep-voice .dagger { position:absolute; bottom:45%; left:55%; width:8px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 2px 2px 4px 4px; transform: rotate(15deg); transform-origin: bottom center; animation: msv-dagger 4s ease-in-out infinite; }
.scn-same-macbeth-sleep-voice .glow { position:absolute; top:10%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,180,100,0.2) 0%, transparent 70%); filter: blur(12px); animation: msv-glow 5s ease-in-out infinite alternate; }
.scn-same-macbeth-sleep-voice .motes { position:absolute; top:20%; left:30%; width:100%; height:60%; background: radial-gradient(circle at 20% 30%, rgba(255,255,220,0.05) 2px, transparent 2px); background-size: 20px 20px; filter: blur(1px); animation: msv-motes 20s linear infinite; }
@keyframes msv-mirror { 0% { opacity:0.2; transform: perspective(400px) rotateY(0deg); } 50% { opacity:0.5; transform: perspective(400px) rotateY(5deg); } 100% { opacity:0.3; transform: perspective(400px) rotateY(-5deg); } }
@keyframes msv-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 70% { transform: translateX(-50%) translateY(2px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes msv-hands { 0% { transform: translateY(0) scaleY(1); } 40% { transform: translateY(-5px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes msv-dagger { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-3px); } 75% { transform: rotate(20deg) translateY(2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes msv-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes msv-motes { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-same-lady-urgent {
  background:
    linear-gradient(180deg, #1a1220 0%, #2a1a30 50%, #120a18 100%),
    radial-gradient(ellipse at 60% 70%, #3a2a3a 0%, transparent 70%);
}
.scn-same-lady-urgent .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%); }
.scn-same-lady-urgent .basin { position:absolute; bottom:20%; left:30%; width:50px; height:30px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 0 0 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-same-lady-urgent .water { position:absolute; bottom:24%; left:32%; width:40px; height:12px; background: linear-gradient(180deg, rgba(80,60,80,0.5) 0%, rgba(60,40,60,0.2) 100%); border-radius: 50%; filter: blur(2px); animation: slu-water 4s ease-in-out infinite alternate; }
.scn-same-lady-urgent .dagger-left { position:absolute; bottom:35%; left:20%; width:8px; height:45px; background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%); border-radius: 2px 2px 4px 4px; transform: rotate(-25deg); transform-origin: bottom center; animation: slu-dagger 5s ease-in-out infinite; }
.scn-same-lady-urgent .dagger-right { position:absolute; bottom:35%; left:50%; width:8px; height:45px; background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%); border-radius: 2px 2px 4px 4px; transform: rotate(20deg); transform-origin: bottom center; animation: slu-dagger 5s ease-in-out infinite 2.5s; }
.scn-same-lady-urgent .hand-blood { position:absolute; bottom:30%; left:35%; width:25px; height:30px; background: radial-gradient(ellipse, #5a2a2a 0%, #3a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); filter: blur(1px); animation: slu-hand 6s ease-in-out infinite alternate; }
.scn-same-lady-urgent .hand-lady { position:absolute; bottom:30%; left:50%; width:20px; height:28px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: slu-hand 6s ease-in-out infinite alternate-reverse; }
.scn-same-lady-urgent .candle { position:absolute; bottom:15%; right:10%; width:6px; height:16px; background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(200,128,64,0.5), 0 0 40px 12px rgba(200,128,64,0.2); animation: slu-candle 3s ease-in-out infinite alternate; }
.scn-same-lady-urgent .shadow-figure { position:absolute; bottom:5%; left:40%; width:60px; height:70px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); filter: blur(12px); animation: slu-shadow 8s ease-in-out infinite; }
@keyframes slu-water { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-2px); } 100% { opacity:0.4; transform: translateY(1px); } }
@keyframes slu-dagger { 0% { transform: rotate(-25deg) translateY(0); } 30% { transform: rotate(-30deg) translateY(-4px); } 70% { transform: rotate(-20deg) translateY(2px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes slu-hand { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(8deg) scale(0.95); } }
@keyframes slu-candle { 0% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(200,128,64,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(200,128,64,0.7); } 100% { opacity:0.9; box-shadow: 0 0 18px 5px rgba(200,128,64,0.5); } }
@keyframes slu-shadow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.06); } 100% { opacity:0.6; transform: scale(0.94); } }

.scn-england-malcolm-macduff-desolate { background: linear-gradient(180deg, #4a5a6b 0%, #2e3a44 40%, #1e262d 100%), radial-gradient(ellipse at 50% 0%, #5a6a7b 0%, transparent 60%); }
.scn-england-malcolm-macduff-desolate .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6b7b 0%, #3a4b5b 50%, #2a3a4a 100%); animation: emd-sky 15s ease-in-out infinite alternate; }
.scn-england-malcolm-macduff-desolate .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: emd-ground 10s ease-in-out infinite alternate; }
.scn-england-malcolm-macduff-desolate .tree { position:absolute; bottom:40%; left:30%; width:8px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom center; animation: emd-tree 6s ease-in-out infinite; }
.scn-england-malcolm-macduff-desolate .figure-a { position:absolute; bottom:35%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emd-figure-a 8s ease-in-out infinite; }
.scn-england-malcolm-macduff-desolate .figure-b { position:absolute; bottom:35%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emd-figure-b 8s ease-in-out 2s infinite; }
.scn-england-malcolm-macduff-desolate .cloud { position:absolute; top:15%; left:10%; width:80px; height:16px; background: linear-gradient(180deg, rgba(220,220,230,.3) 0%, rgba(220,220,230,.05) 100%); border-radius:50%; filter: blur(8px); animation: emd-cloud 40s linear infinite; }
.scn-england-malcolm-macduff-desolate .mist { position:absolute; bottom:30%; left:0%; right:0%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(180,190,200,.15) 30%, rgba(180,190,200,.25) 50%, transparent 100%); filter: blur(10px); animation: emd-mist 12s ease-in-out infinite alternate; }
@keyframes emd-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes emd-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes emd-tree { 0% { transform: rotate(-1deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes emd-figure-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(4px) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes emd-figure-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(-4px) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes emd-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes emd-mist { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.6; transform: translateY(2px); } 100% { opacity:.3; transform: translateY(0); } }

.scn-england-doctor-edward { background: linear-gradient(180deg, #f2e0b0 0%, #d6b884 40%, #a8824a 100%), radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%); }
.scn-england-doctor-edward .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c4a872 0%, #e8d4a0 30%, #dcc48a 70%, #b89a5e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-england-doctor-edward .window { position:absolute; right:10%; top:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8d0 0%, #ffeaa0 40%, transparent 80%); border:4px solid #8a6a3a; border-radius:4%; box-shadow: 0 0 40px 20px rgba(255,238,160,.3); animation: edw-window 4s ease-in-out infinite alternate; }
.scn-england-doctor-edward .throne { position:absolute; bottom:30%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-england-doctor-edward .king { position:absolute; bottom:32%; left:22%; width:16px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edw-king 6s ease-in-out 1s infinite; }
.scn-england-doctor-edward .doctor { position:absolute; bottom:30%; left:45%; width:14px; height:36px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edw-doctor 6s ease-in-out infinite; }
.scn-england-doctor-edward .light-beam { position:absolute; right:10%; top:10%; width:30%; height:80%; background: linear-gradient(180deg, rgba(255,248,208,.3) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: edw-beam 5s ease-in-out infinite alternate; }
@keyframes edw-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes edw-king { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-1px,-1px) rotate(1deg); } 66% { transform: translate(1px,0) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes edw-doctor { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(1px,-1px) rotate(-1deg); } 66% { transform: translate(-1px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes edw-beam { 0% { opacity:.2; transform: scaleX(.9); } 50% { opacity:.4; transform: scaleX(1.1); } 100% { opacity:.25; transform: scaleX(.95); } }

.scn-england-ross-arrives { background: linear-gradient(180deg, #4a5a6b 0%, #35454f 40%, #202a30 100%), radial-gradient(ellipse at 50% 0%, #5a6a7b 0%, transparent 60%); }
.scn-england-ross-arrives .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6b7b 0%, #3a4b5b 50%, #2a3a4a 100%); animation: era-sky 18s ease-in-out infinite alternate; }
.scn-england-ross-arrives .horizon { position:absolute; bottom:45%; left:0; right:0; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); }
.scn-england-ross-arrives .figure-left { position:absolute; bottom:35%; left:30%; width:14px; height:32px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: era-figure-left 7s ease-in-out infinite; }
.scn-england-ross-arrives .figure-center { position:absolute; bottom:35%; left:48%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: era-figure-center 7s ease-in-out 1.5s infinite; }
.scn-england-ross-arrives .figure-right { position:absolute; bottom:35%; left:60%; width:14px; height:32px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: era-figure-right 7s ease-in-out 3s infinite; }
.scn-england-ross-arrives .flagpole { position:absolute; bottom:40%; left:20%; width:4px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform-origin: bottom center; animation: era-flagpole 12s ease-in-out infinite; }
.scn-england-ross-arrives .wind { position:absolute; top:20%; left:0%; width:100%; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(200,210,220,.1) 30%, transparent 70%); filter: blur(6px); animation: era-wind 20s linear infinite; }
@keyframes era-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes era-figure-left { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes era-figure-center { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(1px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-1px,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes era-figure-right { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-2px,-1px) rotate(-2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes era-flagpole { 0% { transform: rotate(-2deg); } 33% { transform: rotate(4deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(-2deg); } }
@keyframes era-wind { 0% { transform: translateX(-20px); } 100% { transform: translateX(100vw); } }

.scn-dunsinane-ante-room-doctor { background: linear-gradient(180deg, #1a1822 0%, #2a2236 40%, #12101a 100%), radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%); }
.scn-dunsinane-ante-room-doctor .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2236 0%, #1a1822 50%, #12101a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-dunsinane-ante-room-doctor .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1622 0%, #0a0812 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-dunsinane-ante-room-doctor .candle { position:absolute; bottom:40%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #8a6830 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,160,96,.5), 0 0 40px 12px rgba(200,160,96,.2); animation: dad-candle 2s ease-in-out infinite alternate; }
.scn-dunsinane-ante-room-doctor .figure-a { position:absolute; bottom:25%; left:25%; width:14px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dad-figure-a 5s ease-in-out infinite; }
.scn-dunsinane-ante-room-doctor .figure-b { position:absolute; bottom:25%; left:55%; width:14px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dad-figure-b 5s ease-in-out 2s infinite; }
.scn-dunsinane-ante-room-doctor .shadow { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(10px); animation: dad-shadow 8s ease-in-out infinite; }
.scn-dunsinane-ante-room-doctor .door { position:absolute; right:10%; top:20%; width:20%; height:60%; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border:2px solid #5a425a; border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); animation: dad-door 15s ease-in-out infinite; }
@keyframes dad-candle { 0% { transform: scaleY(1) translateX(0); opacity:.9; } 30% { transform: scaleY(1.1) translateX(1px); opacity:1; } 60% { transform: scaleY(.95) translateX(-1px); opacity:.85; } 100% { transform: scaleY(1.05) translateX(0); opacity:.95; } }
@keyframes dad-figure-a { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(1px,-1px) rotate(1deg); } 40% { transform: translate(0,0) rotate(0deg); } 60% { transform: translate(-1px,-1px) rotate(-1deg); } 80% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dad-figure-b { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(-1px,-1px) rotate(-1deg); } 40% { transform: translate(0,0) rotate(0deg); } 60% { transform: translate(1px,-1px) rotate(1deg); } 80% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dad-shadow { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.2); } 100% { opacity:.5; transform: scaleY(1); } }
@keyframes dad-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

/* =========================== */
/* SCENE 1: forres-palace-macbeth-duty */
/* =========================== */
.scn-forres-palace-macbeth-duty {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b48a 30%, #b0825a 60%, #8a5e3a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,215,140,.35) 0%, transparent 60%);
  background-blend-mode: overlay, normal;
}
.scn-forres-palace-macbeth-duty .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #7a5a3a 0%, #9a7a5a 40%, #c8a878 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-forres-palace-macbeth-duty .column-left {
  position: absolute; bottom: 25%; left: 8%; width: 18px; height: 65%;
  background: linear-gradient(90deg, #c8a880 0%, #e8d0b0 50%, #c8a880 100%);
  border-radius: 4px; box-shadow: 0 0 12px rgba(0,0,0,.2);
  animation: fr1-column 12s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-duty .column-right {
  position: absolute; bottom: 25%; right: 8%; width: 18px; height: 65%;
  background: linear-gradient(90deg, #c8a880 0%, #e8d0b0 50%, #c8a880 100%);
  border-radius: 4px; box-shadow: 0 0 12px rgba(0,0,0,.2);
  animation: fr1-column 12s ease-in-out infinite alternate-reverse;
}
.scn-forres-palace-macbeth-duty .arch {
  position: absolute; bottom: 60%; left: 5%; right: 5%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,168,128,.5) 0%, transparent 70%);
  border: 4px solid #b09068; border-bottom: none; border-radius: 50% / 100% 100% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.15);
}
.scn-forres-palace-macbeth-duty .throne {
  position: absolute; bottom: 28%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background:
    linear-gradient(90deg, #8a6030 0%, #b08050 40%, #d0a060 50%, #b08050 60%, #8a6030 100%),
    radial-gradient(ellipse at 50% 20%, #c89860 0%, transparent 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: fr1-throne 6s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-duty .figure-kneeling {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #241a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fr1-kneel 4s ease-in-out infinite;
}
.scn-forres-palace-macbeth-duty .banner-left {
  position: absolute; top: 18%; left: 15%; width: 30px; height: 60px;
  background: linear-gradient(0deg, #b03920 0%, #c8553d 40%, #d07050 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 2px 0 8px rgba(0,0,0,.2);
  animation: fr1-banner 8s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-duty .banner-right {
  position: absolute; top: 18%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(0deg, #b03920 0%, #c8553d 40%, #d07050 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: -2px 0 8px rgba(0,0,0,.2);
  animation: fr1-banner 8s ease-in-out infinite alternate-reverse;
}
.scn-forres-palace-macbeth-duty .light-shaft {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(0deg, rgba(255,215,140,.35) 0%, rgba(255,230,180,.1) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 65% 100%, 35% 100%);
  filter: blur(6px);
  animation: fr1-shaft 10s ease-in-out infinite alternate;
}
@keyframes fr1-column {
  0% { box-shadow: 0 0 8px rgba(0,0,0,.15); }
  50% { box-shadow: 0 0 14px rgba(0,0,0,.3); }
  100% { box-shadow: 0 0 10px rgba(0,0,0,.2); }
}
@keyframes fr1-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes fr1-kneel {
  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 fr1-banner {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fr1-shaft {
  0% { opacity: 0.3; transform: translateY(0) scaleY(1); }
  50% { opacity: 0.7; transform: translateY(-5px) scaleY(1.1); }
  100% { opacity: 0.4; transform: translateY(2px) scaleY(0.95); }
}

/* =========================== */
/* SCENE 2: forres-palace-banquo-embrace */
/* =========================== */
.scn-forres-palace-banquo-embrace {
  background:
    linear-gradient(180deg, #e8d4b8 0%, #c8a880 40%, #a08060 70%, #705030 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255,210,150,.3) 0%, transparent 70%);
}
.scn-forres-palace-banquo-embrace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #5a3a20 0%, #8a6a48 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.4);
}
.scn-forres-palace-banquo-embrace .column-left {
  position: absolute; bottom: 20%; left: 10%; width: 14px; height: 70%;
  background: linear-gradient(90deg, #b09068 0%, #d8c0a0 50%, #b09068 100%);
  border-radius: 3px;
}
.scn-forres-palace-banquo-embrace .column-right {
  position: absolute; bottom: 20%; right: 10%; width: 14px; height: 70%;
  background: linear-gradient(90deg, #b09068 0%, #d8c0a0 50%, #b09068 100%);
  border-radius: 3px;
}
.scn-forres-palace-banquo-embrace .arch {
  position: absolute; bottom: 60%; left: 8%; right: 8%; height: 30%;
  border: 3px solid #a08050; border-bottom: none; border-radius: 50% / 100% 100% 0 0;
}
.scn-forres-palace-banquo-embrace .king {
  position: absolute; bottom: 22%; left: 43%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 50%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fr2-king 4s ease-in-out infinite altternate;
}
.scn-forres-palace-banquo-embrace .banquo {
  position: absolute; bottom: 22%; right: 43%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #1a0a00 0%, #3a2010 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fr2-banquo 4s ease-in-out infinite alternate-reverse;
}
.scn-forres-palace-banquo-embrace .sapling {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 40% 40% 10% 10%;
  animation: fr2-sapling 6s ease-in-out infinite;
}
.scn-forres-palace-banquo-embrace .rising-plant {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 14px;
  transform: translateX(-50%) translateY(8px);
  background: radial-gradient(circle at 50% 100%, #6a8a40 0%, #4a6a28 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fr2-plant 9s ease-in-out infinite alternate;
}
@keyframes fr2-king {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fr2-banquo {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes fr2-sapling {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(0deg) scaleY(1.05); }
  100% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes fr2-plant {
  0% { opacity: 0.6; transform: translateX(-50%) translateY(8px) scale(0.9); }
  50% { opacity: 1; transform: translateX(-50%) translateY(6px) scale(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) translateY(10px) scale(0.95); }
}

/* =========================== */
/* SCENE 3: forres-palace-duncan-sons */
/* =========================== */
.scn-forres-palace-duncan-sons {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d4b890 30%, #b09068 60%, #705030 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,230,180,.4) 0%, transparent 60%);
}
.scn-forres-palace-duncan-sons .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #5a4020 0%, #8a6a40 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.35);
}
.scn-forres-palace-duncan-sons .window-arch {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
  border: 6px solid #a08060; border-bottom: 0;
  border-radius: 50% / 100% 100% 0 0;
  box-shadow: inset 0 0 30px rgba(255,215,140,.2);
}
.scn-forres-palace-duncan-sons .duncan {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1808 0%, #4a3018 50%, #2a1808 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: fr3-duncan 5s ease-in-out infinite alternate;
}
.scn-forres-palace-duncan-sons .son-malcolm {
  position: absolute; bottom: 24%; left: 38%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fr3-son 6s ease-in-out infinite;
}
.scn-forres-palace-duncan-sons .son-younger {
  position: absolute; bottom: 24%; right: 38%; width: 16px; height: 46px;
  background: linear-gradient(180deg, #1a0a00 0%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fr3-son 6s ease-in-out infinite reverse;
}
.scn-forres-palace-duncan-sons .crown {
  position: absolute; bottom: 62%; left: 50%; width: 26px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #c89850 0%, #f0d080 40%, #f0d080 60%, #c89850 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: fr3-crown 5s ease-in-out infinite alternate;
}
.scn-forres-palace-duncan-sons .tear {
  position: absolute; bottom: 18%; left: 52%; width: 4px; height: 8px;
  background: radial-gradient(circle, rgba(120,180,220,.8) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: fr3-tear 3s ease-in-out infinite;
}
.scn-forres-palace-duncan-sons .joy-burst {
  position: absolute; top: 8%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,140,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fr3-joy 7s ease-in-out infinite alternate;
}
@keyframes fr3-duncan {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes fr3-son {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(4deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fr3-crown {
  0% { transform: translateX(-50%) scale(1) rotate(-3deg); }
  50% { transform: translateX(-50%) scale(1.05) rotate(0deg); }
  100% { transform: translateX(-50%) scale(1) rotate(3deg); }
}
@keyframes fr3-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-6px) scale(1.2); opacity: 0.9; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes fr3-joy {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* =========================== */
/* SCENE 4: forres-palace-macbeth-leave */
/* =========================== */
.scn-forres-palace-macbeth-leave {
  background:
    linear-gradient(180deg, #e0c8a8 0%, #c0a080 30%, #a08060 60%, #705040 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,200,120,.25) 0%, transparent 60%);
}
.scn-forres-palace-macbeth-leave .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(0deg, #5a3a20 0%, #8a6a40 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.4);
}
.scn-forres-palace-macbeth-leave .doorway {
  position: absolute; bottom: 18%; left: 20%; rise: right; width: 40%; height: 65%;
  background: radial-gradient(ellipse at 50% 100%, #1a0a00 0%, #3a2010 80%);
  border: 4px solid #a08050; border-bottom: 0;
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-forres-palace-macbeth-leave .figure-leaving {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: fr4-leave 6s ease-in-out infinite;
}
.scn-forres-palace-macbeth-leave .torch {
  position: absolute; bottom: 30%; right: 30%; width: 6px; height: 20px;
  background: linear-gradient(0deg, #a07040 0%, #c08850 60%, #e0a060 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 10px 2px #c08040;
}
.scn-forres-palace-macbeth-leave .torchlight {
  position: absolute; bottom: 10%; right: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fr4-light 3s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-leave .smoke {
  position: absolute; bottom: 45%; right: 28%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(120,100,80,.15) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fr4-smoke 7s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-leave .shadow {
  position: absolute; bottom: 18%; left: 33%; width: 70px; height: 30px;
  background: linear-gradient(0deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fr4-shadow 5s ease-in-out infinite alternate;
}
@keyframes fr4-leave {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(12px) rotate(-2deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes fr4-light {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes fr4-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-10px) scale(1.5); opacity: 0.6; }
  100% { transform: translateY(-5px) scale(1.2); opacity: 0.4; }
}
@keyframes fr4-shadow {
  0% { transform: translateX(-2px) scaleX(1); }
  50% { transform: translateX(2px) scaleX(1.05); }
  100% { transform: translateX(-1px) scaleX(0.95); }
}

/* Scene 1: heath-witches-vanish (calm, overcast) */
.scn-heath-witches-vanish {
  background: linear-gradient(180deg, #6b7a80 0%, #8a9a9e 30%, #a0aeae 100%),
              radial-gradient(ellipse at 50% 100%, #8a9a9e 0%, transparent 60%);
}
.scn-heath-witches-vanish .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a6a70 0%, #7a8a8e 50%, transparent 100%);
  animation: wv-sky 20s ease-in-out infinite alternate;
}
.scn-heath-witches-vanish .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5a4e 0%, #2a3a2e 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.25);
  animation: wv-ground 25s ease-in-out infinite alternate;
}
.scn-heath-witches-vanish .mist {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(180,195,190,0.4) 0%, rgba(200,210,205,0.1) 100%);
  filter: blur(12px);
  animation: wv-mist 30s linear infinite alternate;
}
.scn-heath-witches-vanish .witch {
  position: absolute; bottom: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.8;
}
.scn-heath-witches-vanish .witch-a { left: 22%; animation: wv-vanish-witch 8s ease-in-out infinite; }
.scn-heath-witches-vanish .witch-b { left: 45%; animation: wv-vanish-witch 9s ease-in-out infinite 2s; }
.scn-heath-witches-vanish .witch-c { left: 68%; animation: wv-vanish-witch 7s ease-in-out infinite 4s; }
.scn-heath-witches-vanish .smoke-puff {
  position: absolute; bottom: 40%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(220,220,210,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: wv-smoke 6s ease-in-out infinite;
}
@keyframes wv-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wv-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wv-mist { 0% { transform: translateX(-20px) scaleX(1); } 50% { transform: translateX(20px) scaleX(0.95); } 100% { transform: translateX(-10px) scaleX(1); } }
@keyframes wv-vanish-witch {
  0% { opacity: 0.9; transform: translateY(0) scale(1); }
  30% { opacity: 0.7; transform: translateY(-5px) scale(0.95); }
  60% { opacity: 0.4; transform: translateY(-15px) scale(0.8); }
  100% { opacity: 0; transform: translateY(-40px) scale(0.5); }
}
@keyframes wv-smoke {
  0% { transform: scale(0.5) translate(0,0); opacity: 0; }
  25% { transform: scale(1.2) translate(-10px,-10px); opacity: 0.6; }
  50% { transform: scale(1.8) translate(5px,-20px); opacity: 0.3; }
  75% { transform: scale(2.5) translate(-15px,-35px); opacity: 0.1; }
  100% { transform: scale(3) translate(0,-50px); opacity: 0; }
}

/* Scene 2: heath-macbeth-king-prophesy (tense, overcast) */
.scn-heath-macbeth-king-prophesy {
  background: linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 30%, #5a5a6e 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 70%);
}
.scn-heath-macbeth-king-prophesy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 50%, transparent 100%);
  animation: kp-sky 15s ease-in-out infinite alternate;
}
.scn-heath-macbeth-king-prophesy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4);
  animation: kp-ground 12s ease-in-out infinite alternate;
}
.scn-heath-macbeth-king-prophesy .fog {
  position: absolute; bottom: 40%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, rgba(100,110,120,0.3) 0%, transparent 100%);
  filter: blur(15px);
  animation: kp-fog 25s linear infinite alternate;
}
.scn-heath-macbeth-king-prophesy .macbeth {
  position: absolute; bottom: 28%; left: 42%; 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: kp-macbeth 6s ease-in-out infinite;
}
.scn-heath-macbeth-king-prophesy .crown {
  position: absolute; bottom: 68%; left: 43%; width: 24px; height: 12px;
  background: linear-gradient(180deg, #a0763a 0%, #6a4a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 15px 5px rgba(160,118,58,0.4);
  animation: kp-crown 4s ease-in-out infinite alternate;
}
.scn-heath-macbeth-king-prophesy .pointing-hand {
  position: absolute; bottom: 35%; left: 56%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-30deg);
  animation: kp-hand 7s ease-in-out infinite;
}
.scn-heath-macbeth-king-prophesy .standing-stone {
  position: absolute; bottom: 10%; right: 20%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
  animation: kp-stone 20s ease-in-out infinite alternate;
}
@keyframes kp-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes kp-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes kp-fog { 0% { transform: translateX(-30px) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.05); } 100% { transform: translateX(-10px) scaleX(1); } }
@keyframes kp-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kp-crown {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-8px) scale(1.1); opacity: 1; }
  100% { transform: translateY(2px) scale(0.95); opacity: 0.7; }
}
@keyframes kp-hand {
  0% { transform: rotate(-30deg) translateY(0); }
  30% { transform: rotate(-20deg) translateY(-3px); }
  60% { transform: rotate(-35deg) translateY(1px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes kp-stone { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }

/* Scene 3: heath-ross-angus (warm, overcast) */
.scn-heath-ross-angus {
  background: linear-gradient(180deg, #b8a680 0%, #c8b890 30%, #d8c8a0 100%),
              radial-gradient(ellipse at 50% 100%, #d8c8a0 0%, transparent 60%);
}
.scn-heath-ross-angus .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a89870 0%, #c8b890 50%, transparent 100%);
  animation: ra-sky 18s ease-in-out infinite alternate;
}
.scn-heath-ross-angus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
  animation: ra-ground 16s ease-in-out infinite alternate;
}
.scn-heath-ross-angus .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
  animation: ra-path 20s ease-in-out infinite alternate;
}
.scn-heath-ross-angus .ross {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-walk 6s ease-in-out infinite;
}
.scn-heath-ross-angus .angus {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-walk 6s ease-in-out infinite 2s;
}
.scn-heath-ross-angus .macbeth-receiving {
  position: absolute; bottom: 25%; left: 55%; width: 28px; 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: ra-macbeth 8s ease-in-out infinite;
}
.scn-heath-ross-angus .scroll {
  position: absolute; bottom: 38%; left: 35%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #b89860 0%, #8a6a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ra-scroll 5s ease-in-out infinite alternate;
}
@keyframes ra-sky { 0% { opacity: 0.7; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes ra-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ra-path { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes ra-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(24px) rotate(-2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes ra-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(3deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ra-scroll {
  0% { transform: scaleY(0.8) translateY(0); }
  50% { transform: scaleY(1.2) translateY(-2px); }
  100% { transform: scaleY(0.9) translateY(1px); }
}

/* Scene 4: heath-macbeth-aside-thruth (tense, overcast) */
.scn-heath-macbeth-aside-thruth {
  background: linear-gradient(180deg, #2c3036 0%, #3c4046 30%, #4c4e54 100%),
              radial-gradient(ellipse at 50% 0%, #1c2026 0%, transparent 70%);
}
.scn-heath-macbeth-aside-thruth .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1c2026 0%, #2c3036 50%, transparent 100%);
  animation: as-sky 12s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-thruth .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2e2a 0%, #1a1e1a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: as-ground 14s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-thruth .rocks {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a3e3a 0%, #1a1e1a 100%);
  border-radius: 30% 70% 20% 80% / 40% 50% 30% 60%;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: as-rocks 10s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-thruth .macbeth-alone {
  position: absolute; bottom: 30%; left: 45%; 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: as-macbeth 5s ease-in-out infinite;
}
.scn-heath-macbeth-aside-thruth .shadow-spread {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: as-shadow 7s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-thruth .faint-light {
  position: absolute; bottom: 65%; left: 43%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: as-light 4s ease-in-out infinite alternate;
}
.scn-heath-macbeth-aside-thruth .dagger {
  position: absolute; bottom: 40%; left: 52%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #5a5a5e 0%, #3a3a3e 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: rotate(15deg);
  box-shadow: 0 0 8px 2px rgba(200,180,160,0.3);
  animation: as-dagger 3s ease-in-out infinite alternate;
}
@keyframes as-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes as-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes as-rocks { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.98); } }
@keyframes as-macbeth {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(3deg); }
  40% { transform: translateY(1px) rotate(-2deg); }
  60% { transform: translateY(-4px) rotate(5deg); }
  80% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes as-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.2) translateX(10px); opacity: 0.6; }
  100% { transform: scaleX(0.9) translateX(-5px); opacity: 0.4; }
}
@keyframes as-light {
  0% { transform: scale(0.8); opacity: 0.2; }
  50% { transform: scale(1.3); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.3; }
}
@keyframes as-dagger {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-5px); }
  100% { transform: rotate(20deg) translateY(2px); }
}

/* heath-ross-urging — overcast warm heath, two figures */
.scn-heath-ross-urging {
  background: linear-gradient(180deg, #8a7a6a 0%, #6b5b4b 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #9a8a7a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-heath-ross-urging .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a09585 0%, #7a6a5a 60%, transparent 100%);
  animation: hr-sky 14s ease-in-out infinite alternate;
}
.scn-heath-ross-urging .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: hr-ground 20s ease-in-out infinite;
}
.scn-heath-ross-urging .hill-back {
  position: absolute; bottom: 40%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  transform-origin: bottom center;
  animation: hr-hill 25s ease-in-out infinite alternate;
}
.scn-heath-ross-urging .figure-macbeth {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure1 5s ease-in-out infinite;
}
.scn-heath-ross-urging .figure-ross {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure2 5s ease-in-out infinite 0.5s;
}
.scn-heath-ross-urging .path {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 8px;
  background: #5a4a3a;
  border-radius: 50%;
  filter: blur(2px);
  animation: hr-path 8s ease-in-out infinite alternate;
}
.scn-heath-ross-urging .bush {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 18px;
  background: #3a5a3a;
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: hr-bush 10s ease-in-out infinite;
}
@keyframes hr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hr-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes hr-hill { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hr-figure1 { 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 hr-figure2 { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hr-path { 0% { transform: translateX(-5px) scaleY(1); } 100% { transform: translateX(5px) scaleY(0.8); } }
@keyframes hr-bush { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

/* heath-banquo-glady — overcast warm, three figures + tree */
.scn-heath-banquo-glady {
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 50%, #3a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #6a6a5a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-heath-banquo-glady .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a09686 0%, #807060 60%, transparent 100%);
  animation: hb-sky 16s ease-in-out infinite alternate;
}
.scn-heath-banquo-glady .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 20% 80% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: hb-ground 22s ease-in-out infinite;
}
.scn-heath-banquo-glady .hill-front {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: hb-hill 18s ease-in-out infinite alternate;
}
.scn-heath-banquo-glady .figure-banquo {
  position: absolute; bottom: 28%; left: 45%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #221a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hb-fig1 6s ease-in-out infinite;
}
.scn-heath-banquo-glady .figure-ross {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #221a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hb-fig2 6s ease-in-out infinite 0.4s;
}
.scn-heath-banquo-glady .figure-friend {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #221a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hb-fig3 6s ease-in-out infinite 0.8s;
}
.scn-heath-banquo-glady .tree {
  position: absolute; bottom: 30%; right: 20%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: hb-tree 12s ease-in-out infinite alternate;
}
.scn-heath-banquo-glady .tree::after {
  content: ''; position: absolute; top: -20px; left: -10px; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a6a4a 0%, #2a4a2a 70%);
  border-radius: 50%;
  animation: hb-tree-leaf 12s ease-in-out infinite alternate;
}
@keyframes hb-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hb-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.008); } 100% { transform: scaleY(1); } }
@keyframes hb-hill { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hb-fig1 { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hb-fig2 { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(0deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hb-fig3 { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hb-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes hb-tree-leaf { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* forres-palace-confession — bright interior, throne room */
.scn-forres-palace-confession {
  background: linear-gradient(180deg, #d4c4a0 0%, #b09a7a 40%, #8a7050 100%),
              radial-gradient(ellipse at 60% 20%, #f0e0c0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-forres-palace-confession .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c4b49a 0%, #a09070 100%);
  border-bottom: 4px solid #7a6a5a;
  animation: fpc-wall 15s ease-in-out infinite alternate;
}
.scn-forres-palace-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #a08a6a 0px, #a08a6a 20px, #8a7a5a 20px, #8a7a5a 40px);
  transform: skewX(-5deg) scaleX(1.1);
  animation: fpc-floor 8s ease-in-out infinite alternate;
}
.scn-forres-palace-confession .pillar-left {
  position: absolute; bottom: 0; left: 10%; width: 18px; height: 80%;
  background: linear-gradient(90deg, #b0a080 0%, #c8b8a0 30%, #b0a080 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: fpc-pillar 20s ease-in-out infinite;
}
.scn-forres-palace-confession .pillar-right {
  position: absolute; bottom: 0; right: 10%; width: 18px; height: 80%;
  background: linear-gradient(90deg, #b0a080 0%, #c8b8a0 30%, #b0a080 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: fpc-pillar 20s ease-in-out infinite 0.5s;
}
.scn-forres-palace-confession .throne {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-forres-palace-confession .attendant {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpc-attendant 6s ease-in-out infinite;
}
.scn-forres-palace-confession .window {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #d4c090 70%);
  border: 4px solid #6a5a3a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 30px 8px rgba(255,248,224,0.6);
  animation: fpc-window 4s ease-in-out infinite alternate;
}
.scn-forres-palace-confession .light-beam {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 120px;
  background: radial-gradient(ellipse, rgba(255,248,224,0.4) 0%, transparent 70%);
  animation: fpc-beam 6s ease-in-out infinite alternate;
}
@keyframes fpc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fpc-floor { 0% { transform: skewX(-5deg) scaleX(1.1) translateY(0); } 100% { transform: skewX(-5deg) scaleX(1.1) translateY(-3px); } }
@keyframes fpc-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes fpc-attendant { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fpc-window { 0% { box-shadow: 0 0 20px 4px rgba(255,248,224,0.5); } 50% { box-shadow: 0 0 40px 12px rgba(255,248,224,0.8); } 100% { box-shadow: 0 0 25px 6px rgba(255,248,224,0.6); } }
@keyframes fpc-beam { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* forres-palace-duncan-trust — bright interior, three figures */
.scn-forres-palace-duncan-trust {
  background: linear-gradient(180deg, #d0c4a8 0%, #b8a888 40%, #9a8868 100%),
              radial-gradient(ellipse at 50% 30%, #f0e4c8 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-forres-palace-duncan-trust .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c0b49a 0%, #a09070 100%);
  border-bottom: 4px solid #7a6a5a;
  animation: fpd-wall 18s ease-in-out infinite alternate;
}
.scn-forres-palace-duncan-trust .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #a08a6a 0px, #a08a6a 25px, #8a7a5a 25px, #8a7a5a 50px);
  transform: skewX(-4deg) scaleX(1.15);
  animation: fpd-floor 10s ease-in-out infinite alternate;
}
.scn-forres-palace-duncan-trust .pillar-left {
  position: absolute; bottom: 0; left: 12%; width: 16px; height: 85%;
  background: linear-gradient(90deg, #b0a080 0%, #c8b8a0 30%, #b0a080 100%);
  border-radius: 4px;
  box-shadow: 3px 0 6px rgba(0,0,0,0.15);
}
.scn-forres-palace-duncan-trust .pillar-right {
  position: absolute; bottom: 0; right: 12%; width: 16px; height: 85%;
  background: linear-gradient(90deg, #b0a080 0%, #c8b8a0 30%, #b0a080 100%);
  border-radius: 4px;
  box-shadow: -3px 0 6px rgba(0,0,0,0.15);
}
.scn-forres-palace-duncan-trust .figure-duncan {
  position: absolute; bottom: 28%; left: 45%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpd-duncan 7s ease-in-out infinite;
}
.scn-forres-palace-duncan-trust .figure-macbeth {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpd-macbeth 7s ease-in-out infinite 0.3s;
}
.scn-forres-palace-duncan-trust .figure-banquo {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpd-banquo 7s ease-in-out infinite 0.6s;
}
.scn-forres-palace-duncan-trust .table {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3010 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fpd-table 12s ease-in-out infinite alternate;
}
@keyframes fpd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fpd-floor { 0% { transform: skewX(-4deg) scaleX(1.15) translateY(0); } 100% { transform: skewX(-4deg) scaleX(1.15) translateY(-2px); } }
@keyframes fpd-duncan { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fpd-macbeth { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(0deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes fpd-banquo { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fpd-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }

.scn-before-castle-duncan-arrives {
  background: linear-gradient(180deg, #f9e7b0 0%, #f6d98e 30%, #d4a86a 70%, #8c6a3e 100%),
              radial-gradient(ellipse at 20% 60%, rgba(255,230,160,0.3) 0%, transparent 60%);
}
.scn-before-castle-duncan-arrives .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #aac8e8 0%, #fceac0 70%, transparent 100%);
  animation: bc1-sky 12s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-arrives .castle {
  position: absolute; bottom: 20%; left: 10%; width: 55%; height: 50%;
  background: linear-gradient(135deg, #b8945e 0%, #8a6a3a 50%, #6a4e2e 100%);
  border-radius: 0% 0% 4% 4% / 0% 0% 8% 8%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3), 0 0 20px rgba(180,140,80,0.2);
  animation: bc1-castle 20s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-arrives .gate {
  position: absolute; bottom: 20%; left: 28%; width: 18%; height: 40%;
  background: #3a2a1a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-before-castle-duncan-arrives .window {
  position: absolute; bottom: 38%; right: 22%; width: 8%; height: 14%;
  background: radial-gradient(circle at 30% 30%, #fef0c0 0%, #dbb270 70%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 20px 4px #f0d68a, 0 0 40px 8px rgba(240,214,138,0.3);
  animation: bc1-window 4s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-arrives .banner {
  position: absolute; bottom: 50%; left: 35%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: bc1-banner 3s ease-in-out infinite;
}
.scn-before-castle-duncan-arrives .figure-duncan {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc1-figure-duncan 6s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-arrives .figure-attendant {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: bc1-figure-attendant 8s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-arrives .cloud {
  position: absolute; top: 18%; left: -20%; width: 40%; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bc1-cloud 40s linear infinite;
}
@keyframes bc1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bc1-castle {
  0% { transform: translateY(0); filter: brightness(1); }
  50% { transform: translateY(-2px); filter: brightness(1.05); }
  100% { transform: translateY(0); filter: brightness(0.98); }
}
@keyframes bc1-window {
  0% { box-shadow: 0 0 15px 2px #e0c070; opacity: 0.9; }
  50% { box-shadow: 0 0 30px 6px #f5d88a; opacity: 1; }
  100% { box-shadow: 0 0 20px 4px #dbb270; opacity: 0.95; }
}
@keyframes bc1-banner {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-3deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes bc1-figure-duncan {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(8%) translateY(-2%) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bc1-figure-attendant {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(5%) translateY(-1%); }
  66% { transform: translateX(10%) translateY(0); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes bc1-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(150vw); }
}

.scn-before-castle-lady-welcomes {
  background: linear-gradient(180deg, #f5e6c8 0%, #ecd4a8 40%, #c9a86c 90%, #a08440 100%),
              radial-gradient(ellipse at 30% 80%, rgba(255,220,150,0.4) 0%, transparent 70%);
}
.scn-before-castle-lady-welcomes .bg-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f8d8a0 60%, transparent 100%);
  animation: bc2-bg 10s ease-in-out infinite alternate;
}
.scn-before-castle-lady-welcomes .doorway {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #2a1a0a 0%, #140a04 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-before-castle-lady-welcomes .lady {
  position: absolute; bottom: 10%; left: 45%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5e3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc2-lady 5s ease-in-out infinite alternate;
}
.scn-before-castle-lady-welcomes .servant {
  position: absolute; bottom: 10%; left: 52%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3020 0%, #20150a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: bc2-servant 7s ease-in-out infinite alternate;
}
.scn-before-castle-lady-welcomes .torch {
  position: absolute; bottom: 30%; left: 40%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #ffd700 0%, #e8a020 50%, #7a3a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: 0 0 40px 8px #f0c040, 0 0 80px 20px rgba(240,192,64,0.3);
  animation: bc2-torch 1.5s ease-in-out infinite alternate;
}
.scn-before-castle-lady-welcomes .step {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(0deg, #8a6a3a 0%, #b8945e 100%);
  border-radius: 0% 0% 10% 10% / 0% 0% 30% 30%;
}
@keyframes bc2-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes bc2-lady {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3%) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bc2-servant {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(4%) translateY(-1%); }
  66% { transform: translateX(8%) translateY(0); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes bc2-torch {
  0% { opacity: 0.7; box-shadow: 0 0 20px 4px #c08030, 0 0 40px 8px rgba(192,128,48,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 12px #f0c040, 0 0 100px 25px rgba(240,192,64,0.4); }
  100% { opacity: 0.75; box-shadow: 0 0 25px 5px #c08030, 0 0 50px 10px rgba(192,128,48,0.25); }
}

.scn-before-castle-duncan-inquires {
  background: linear-gradient(180deg, #fce6b0 0%, #f0d090 30%, #c8a060 80%, #8c6a3e 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,230,150,0.5) 0%, transparent 70%);
}
.scn-before-castle-duncan-inquires .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b5d0e8 0%, #fcecc0 70%, transparent 100%);
  animation: bc3-sky 14s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-inquires .wall {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 45%;
  background: linear-gradient(135deg, #b8945e 0%, #8a6a3a 60%, #5e4220 100%);
  border-radius: 0% 0% 6% 6% / 0% 0% 12% 12%;
  box-shadow: inset 0 -8px 25px rgba(0,0,0,0.3);
}
.scn-before-castle-duncan-inquires .duncan-silhouette {
  position: absolute; bottom: 25%; left: 35%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc3-duncan-fig 8s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-inquires .duncan-arm {
  position: absolute; bottom: 38%; left: 44%; width: 12%; height: 8%;
  background: #1a0e05;
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: 0% 50%;
  animation: bc3-duncan-arm 3s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-inquires .cloud1 {
  position: absolute; top: 12%; left: -15%; width: 35%; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bc3-cloud1 45s linear infinite;
}
.scn-before-castle-duncan-inquires .cloud2 {
  position: absolute; top: 22%; right: -20%; width: 30%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.03) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: bc3-cloud2 55s linear infinite reverse;
}
@keyframes bc3-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bc3-duncan-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bc3-duncan-arm {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(5deg); }
}
@keyframes bc3-cloud1 {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes bc3-cloud2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-130vw); }
}

.scn-before-castle-duncan-hand {
  background: linear-gradient(135deg, #f5dca0 0%, #e8c080 50%, #c89850 100%),
              radial-gradient(ellipse at 60% 50%, rgba(255,215,140,0.4) 0%, transparent 70%);
}
.scn-before-castle-duncan-hand .bg-hand {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fceac0 0%, #e8c888 60%, #c8a060 100%);
  animation: bc4-bg 8s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-hand .hand-left {
  position: absolute; bottom: 25%; left: 28%; width: 18%; height: 22%;
  background: radial-gradient(ellipse at 40% 60%, #e8c090 0%, #b88a5a 100%);
  border-radius: 50% 40% 30% 50% / 40% 30% 50% 60%;
  transform: rotate(10deg);
  animation: bc4-hand-left 2s ease-in-out infinite alternate;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.2);
}
.scn-before-castle-duncan-hand .hand-right {
  position: absolute; bottom: 25%; left: 46%; width: 18%; height: 22%;
  background: radial-gradient(ellipse at 60% 40%, #dbb88a 0%, #a07840 100%);
  border-radius: 40% 50% 50% 30% / 30% 40% 60% 50%;
  transform: rotate(-10deg);
  animation: bc4-hand-right 2s ease-in-out infinite alternate;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.2);
}
.scn-before-castle-duncan-hand .sleeve-left {
  position: absolute; bottom: 30%; left: 16%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #8a6a3a 0%, #5e4220 100%);
  border-radius: 30% 10% 0 0 / 40% 20% 0 0;
  transform: rotate(15deg);
  animation: bc4-sleeve-left 4s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-hand .sleeve-right {
  position: absolute; bottom: 30%; right: 16%; width: 20%; height: 30%;
  background: linear-gradient(225deg, #6a4e2e 0%, #3a2a1a 100%);
  border-radius: 10% 30% 0 0 / 20% 40% 0 0;
  transform: rotate(-15deg);
  animation: bc4-sleeve-right 4s ease-in-out infinite alternate;
}
.scn-before-castle-duncan-hand .sparkle {
  position: absolute; bottom: 30%; left: 42%; width: 6%; height: 8%;
  background: radial-gradient(circle, #fff8e0 0%, #ffd700 50%, transparent 100%);
  box-shadow: 0 0 30px 10px #ffd700, 0 0 60px 20px rgba(255,215,0,0.2);
  border-radius: 50%;
  animation: bc4-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes bc4-bg {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes bc4-hand-left {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.02); }
  100% { transform: rotate(8deg) scale(1); }
}
@keyframes bc4-hand-right {
  0% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.02); }
  100% { transform: rotate(-8deg) scale(1); }
}
@keyframes bc4-sleeve-left {
  0% { transform: rotate(13deg) translateX(0); }
  50% { transform: rotate(17deg) translateX(2%); }
  100% { transform: rotate(13deg) translateX(0); }
}
@keyframes bc4-sleeve-right {
  0% { transform: rotate(-13deg) translateX(0); }
  50% { transform: rotate(-17deg) translateX(-2%); }
  100% { transform: rotate(-13deg) translateX(0); }
}
@keyframes bc4-sparkle {
  0% { opacity: 0.6; box-shadow: 0 0 20px 5px #ffd700, 0 0 40px 10px rgba(255,215,0,0.15); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffda60, 0 0 80px 30px rgba(255,218,96,0.3); }
  100% { opacity: 0.7; box-shadow: 0 0 25px 8px #ffd700, 0 0 50px 15px rgba(255,215,0,0.2); }
}

/* gate-lennox-banter – tavern banter, funny dim interior */
.scn-gate-lennox-banter {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 30%, #3a2510 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 35%, #3a2510 0%, transparent 70%);
}
.scn-gate-lennox-banter .backwall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg,#3a2a15 0%,#2a1a0a 60%,#1a0e05 100%); box-shadow:inset 0 0 60px rgba(0,0,0,.6); animation:glb-wall 20s ease-in-out infinite; }
.scn-gate-lennox-banter .table { position:absolute; bottom:10%; left:20%; right:20%; height:5%; background:linear-gradient(180deg,#5a3a1a 0%,#3a2510 100%); border-radius:20% 20% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-gate-lennox-banter .figure-left { position:absolute; bottom:15%; left:28%; width:22px; height:46px; background:linear-gradient(180deg,#3a2a1a 0%,#1a1008 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:glb-tilt-l 2.5s ease-in-out infinite; }
.scn-gate-lennox-banter .figure-right { position:absolute; bottom:15%; right:28%; width:24px; height:50px; background:linear-gradient(180deg,#4a3a2a 0%,#2a1a10 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:glb-tilt-r 3.2s ease-in-out infinite .5s; }
.scn-gate-lennox-banter .tankard { position:absolute; bottom:13%; left:48%; width:14px; height:20px; background:linear-gradient(180deg,#8a6a3a 0%,#5a4020 100%); border-radius:20% 20% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:glb-tankard 4s ease-in-out infinite; }
.scn-gate-lennox-banter .lantern { position:absolute; top:16%; left:46%; width:12px; height:18px; background:radial-gradient(circle at 50% 60%,#ffd060 0%,#c08030 60%,#5a3010 100%); border-radius:30% 30% 20% 20%; box-shadow:0 0 28px 10px rgba(192,128,48,.4); animation:glb-lantern 3s ease-in-out infinite alternate; }
.scn-gate-lennox-banter .stain { position:absolute; bottom:7%; left:40%; width:28px; height:10px; background:radial-gradient(ellipse,#3a2a1a 0%,transparent 70%); border-radius:50%; opacity:.35; animation:glb-stain 6s ease-in-out infinite; }
@keyframes glb-wall { 0%,100% { opacity:.9 } 50% { opacity:.7 } }
@keyframes glb-tilt-l { 0%,100% { transform:rotate(3deg) } 25% { transform:rotate(-4deg) translateX(-2px) } 50% { transform:rotate(5deg) translateX(2px) translateY(-3px) } 75% { transform:rotate(-3deg) translateX(1px) } }
@keyframes glb-tilt-r { 0%,100% { transform:rotate(-3deg) } 30% { transform:rotate(4deg) translateX(2px) } 60% { transform:rotate(-5deg) translateX(-2px) translateY(-2px) } 80% { transform:rotate(2deg) } }
@keyframes glb-tankard { 0%,100% { transform:rotate(0deg) translateY(0) } 20% { transform:rotate(-5deg) translateY(-1px) } 50% { transform:rotate(4deg) translateY(-3px) } 80% { transform:rotate(-2deg) translateY(-1px) } }
@keyframes glb-lantern { 0% { opacity:.7; box-shadow:0 0 18px 5px rgba(192,128,48,.3) } 50% { opacity:1; box-shadow:0 0 36px 12px rgba(255,208,96,.5) } 100% { opacity:.8; box-shadow:0 0 22px 6px rgba(192,128,48,.35) } }
@keyframes glb-stain { 0%,100% { opacity:.25; transform:scale(1) } 50% { opacity:.45; transform:scale(1.08) } }

/* gate-macbeth-emerges – Macbeth emerges from doorway, calm dawn */
.scn-gate-macbeth-emerges {
  background: linear-gradient(180deg, #1a1830 0%, #2a2050 30%, #3a3060 60%, #2a2040 100%), radial-gradient(ellipse at 50% 60%, #3a3060 0%, transparent 70%);
}
.scn-gate-macbeth-emerges .bg-arch { position:absolute; inset:0 0 10% 0; background:linear-gradient(180deg,#2a2040 0%,#1a1830 100%); box-shadow:inset 0 0 80px rgba(0,0,0,.5); animation:gme-arch 18s ease-in-out infinite; }
.scn-gate-macbeth-emerges .doorway { position:absolute; bottom:10%; left:35%; right:35%; height:70%; background:linear-gradient(180deg,#0a0818 0%,#1a1030 40%,#0a0818 100%); border-radius:40% 40% 0 0/30% 30% 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,.7); }
.scn-gate-macbeth-emerges .light-creep { position:absolute; bottom:10%; left:38%; right:38%; height:40%; background:linear-gradient(180deg,rgba(200,180,255,.08) 0%,rgba(200,180,255,.02) 100%); border-radius:50% 50% 0 0/40% 40% 0 0; animation:gme-light 8s ease-in-out infinite alternate; }
.scn-gate-macbeth-emerges .figure { position:absolute; bottom:18%; left:44%; width:20px; height:55px; background:linear-gradient(180deg,#1a1020 0%,#0a0810 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; box-shadow:2px 0 8px rgba(0,0,0,.4); animation:gme-fig 6s ease-in-out infinite; }
.scn-gate-macbeth-emerges .floor { position:absolute; bottom:0; left:0; right:0; height:12%; background:linear-gradient(180deg,#2a2040 0%,#1a1830 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,.5); }
.scn-gate-macbeth-emerges .candle { position:absolute; top:22%; left:52%; width:6px; height:14px; background:linear-gradient(180deg,#e0c080 0%,#8a6030 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 20px 6px rgba(200,160,80,.3); animation:gme-candle 4s ease-in-out infinite alternate; }
.scn-gate-macbeth-emerges .mist { position:absolute; bottom:12%; left:10%; right:10%; height:20%; background:linear-gradient(180deg,rgba(180,180,220,.08) 0%,transparent 100%); border-radius:50%; filter:blur(8px); animation:gme-mist 25s ease-in-out infinite; }
@keyframes gme-arch { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes gme-light { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes gme-fig { 0%,100% { transform:translateY(0) } 30% { transform:translateY(-4px) } 60% { transform:translateY(-1px) } 80% { transform:translateY(-2px) } }
@keyframes gme-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) rotate(-1deg) } 100% { opacity:.75; transform:scaleY(.95) rotate(1deg) } }
@keyframes gme-mist { 0% { opacity:.3; transform:translateX(-20px) } 50% { opacity:.6; transform:translateX(10px) } 100% { opacity:.2; transform:translateX(-30px) } }

/* gate-lennox-storms – stormy night, dark interior with window */
.scn-gate-lennox-storms {
  background: linear-gradient(180deg, #0a0812 0%, #1a1025 30%, #0e0a1a 60%, #080612 100%), radial-gradient(ellipse at 50% 20%, #1a1025 0%, transparent 80%);
}
.scn-gate-lennox-storms .bg-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg,#1a1025 0%,#0a0812 100%); box-shadow:inset 0 0 60px rgba(0,0,0,.6); }
.scn-gate-lennox-storms .window { position:absolute; top:12%; left:38%; right:38%; height:35%; background:linear-gradient(180deg,#0a0a1a 0%,#1a1a30 100%); border-radius:10% 10% 8% 8%; border:4px solid #2a1a10; box-shadow:inset 0 0 30px rgba(0,0,0,.5); animation:gls-window 14s ease-in-out infinite; }
.scn-gate-lennox-storms .lightning { position:absolute; top:8%; left:42%; width:4px; height:40%; background:linear-gradient(180deg,rgba(200,220,255,.6) 0%,rgba(200,220,255,.05) 100%); border-radius:2px; filter:blur(1px); animation:gls-lightning 7s ease-in-out infinite; }
.scn-gate-lennox-storms .chimney { position:absolute; top:0; left:55%; width:30px; height:20%; background:linear-gradient(180deg,#3a2a20 0%,#2a1a10 100%); border-radius:20% 20% 0 0; transform-origin:bottom center; animation:gls-chimney 12s ease-in-out infinite; }
.scn-gate-lennox-storms .curtain-left { position:absolute; top:10%; left:34%; width:8%; height:40%; background:linear-gradient(180deg,#3a2a30 0%,#1a1020 100%); border-radius:0 20% 20% 0; box-shadow:2px 0 10px rgba(0,0,0,.3); animation:gls-curl 6s ease-in-out infinite alternate; }
.scn-gate-lennox-storms .curtain-right { position:absolute; top:10%; right:34%; width:8%; height:40%; background:linear-gradient(180deg,#3a2a30 0%,#1a1020 100%); border-radius:20% 0 0 20%; box-shadow:-2px 0 10px rgba(0,0,0,.3); animation:gls-curr 6s ease-in-out infinite alternate .8s; }
.scn-gate-lennox-storms .figure { position:absolute; bottom:20%; left:28%; width:18px; height:40px; background:linear-gradient(180deg,#1a1020 0%,#0a0810 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:gls-fig 8s ease-in-out infinite; }
@keyframes gls-window { 0%,100% { opacity:.8; box-shadow:inset 0 0 30px rgba(0,0,0,.5) } 50% { opacity:.6; box-shadow:inset 0 0 50px rgba(0,0,0,.7) } }
@keyframes gls-lightning { 0%,90%,100% { opacity:0 } 45% { opacity:.6 } 50% { opacity:1 } 55% { opacity:.4 } 60% { opacity:.8 } }
@keyframes gls-chimney { 0%,100% { transform:rotate(0deg) } 25% { transform:rotate(2deg) translateX(4px) } 50% { transform:rotate(-3deg) translateX(-6px) } 75% { transform:rotate(1deg) translateX(2px) } }
@keyframes gls-curl { 0% { transform:translateX(0) } 50% { transform:translateX(-6px) } 100% { transform:translateX(3px) } }
@keyframes gls-curr { 0% { transform:translateX(0) } 50% { transform:translateX(6px) } 100% { transform:translateX(-3px) } }
@keyframes gls-fig { 0%,100% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-3px) rotate(-2deg) } 60% { transform:translateY(2px) rotate(1deg) } 80% { transform:translateY(-1px) rotate(-1deg) } }

/* gate-macbeth-rough – post-murder close-up, dark and tense */
.scn-gate-macbeth-rough {
  background: linear-gradient(180deg, #0c060c 0%, #1a0e14 25%, #0e0810 60%, #06040a 100%), radial-gradient(ellipse at 50% 40%, #1a0e14 0%, transparent 80%);
}
.scn-gate-macbeth-rough .bg-deep { position:absolute; inset:0 0 10% 0; background:linear-gradient(180deg,#1a0e14 0%,#0c060c 100%); box-shadow:inset 0 0 80px rgba(0,0,0,.7); animation:gmr-deep 22s ease-in-out infinite; }
.scn-gate-macbeth-rough .wall-left { position:absolute; top:0; left:0; width:15%; height:100%; background:linear-gradient(90deg,#1a0e0c 0%,transparent 100%); box-shadow:4px 0 20px rgba(0,0,0,.4); }
.scn-gate-macbeth-rough .wall-right { position:absolute; top:0; right:0; width:15%; height:100%; background:linear-gradient(270deg,#1a0e0c 0%,transparent 100%); box-shadow:-4px 0 20px rgba(0,0,0,.4); }
.scn-gate-macbeth-rough .figure { position:absolute; bottom:5%; left:35%; right:35%; height:70%; background:linear-gradient(180deg,#1a1018 0%,#0a060a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; box-shadow:0 -10px 30px rgba(0,0,0,.5); animation:gmr-fig 9s ease-in-out infinite; }
.scn-gate-macbeth-rough .arm { position:absolute; bottom:35%; left:42%; width:40px; height:14px; background:linear-gradient(180deg,#2a1820 0%,#1a0e14 100%); border-radius:40% 20% 20% 40%; transform-origin:right center; animation:gmr-arm 5s ease-in-out infinite; }
.scn-gate-macbeth-rough .hand-drip { position:absolute; bottom:33%; left:38%; width:10px; height:18px; background:radial-gradient(ellipse at 50% 30%,#2a1820 0%,#1a0e14 100%); border-radius:40% 40% 30% 30%; box-shadow:0 4px 12px rgba(60,20,20,.3); animation:gmr-hand 4s ease-in-out infinite; }
.scn-gate-macbeth-rough .dagger { position:absolute; top:40%; left:48%; width:6px; height:40px; background:linear-gradient(180deg,#4a3a3a 0%,#8a7070 50%,#2a1a1a 100%); border-radius:40% 40% 10% 10%; transform-origin:bottom center; box-shadow:0 0 8px rgba(80,50,50,.3); animation:gmr-dagger 6s ease-in-out infinite; }
@keyframes gmr-deep { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes gmr-fig { 0%,100% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-4px) rotate(-1deg) } 50% { transform:translateY(2px) rotate(1deg) } 75% { transform:translateY(-2px) rotate(0deg) } }
@keyframes gmr-arm { 0%,100% { transform:rotate(0deg) translateX(0) } 30% { transform:rotate(-8deg) translateX(-4px) } 60% { transform:rotate(5deg) translateX(2px) } 80% { transform:rotate(-3deg) translateX(-1px) } }
@keyframes gmr-hand { 0%,100% { opacity:.7; transform:scaleY(1) } 30% { opacity:1; transform:scaleY(1.1) } 60% { opacity:.8; transform:scaleY(.95) } 80% { opacity:.9; transform:scaleY(1.05) } }
@keyframes gmr-dagger { 0%,100% { transform:rotate(-2deg) translateY(0) } 25% { transform:rotate(3deg) translateY(-4px) } 50% { transform:rotate(-4deg) translateY(2px) } 75% { transform:rotate(1deg) translateY(-1px) } }

/* forres-palace-macbeth-aside */
.scn-forres-palace-macbeth-aside {
  background: linear-gradient(180deg, #3a2a1a 0%,#1a1a1a 40%,#0a0a0a 100%), radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 70%);
}
.scn-forres-palace-macbeth-aside .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1e1610 0%, #2a1e14 50%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-forres-palace-macbeth-aside .hall-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-forres-palace-macbeth-aside .hall-window {
  position: absolute; top: 10%; left: 55%; width: 110px; height: 160px;
  background: radial-gradient(ellipse at 50% 50%, #1a2a3a 0%, #0a0a1a 100%);
  border: 6px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,20,0.8), 0 0 30px rgba(0,0,20,0.3);
  animation: ma-window-glare 6s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-aside .night-stars {
  position: absolute; top: 10%; left: 55%; width: 110px; height: 160px;
  background: radial-gradient(2px 2px at 20% 30%, #fff, transparent),
              radial-gradient(2px 2px at 60% 40%, #fff, transparent),
              radial-gradient(2px 2px at 80% 70%, #fff, transparent),
              radial-gradient(2px 2px at 40% 80%, #fff, transparent);
  animation: ma-stars-twinkle 4s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-aside .candle-glow {
  position: absolute; bottom: 45%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffa050 0%, #ff8040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,128,64,0.4);
  animation: ma-candle-pulse 3s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-aside .macbeth-shadow {
  position: absolute; bottom: 38%; left: 35%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #000 0%, #111 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -20px 0 30px rgba(0,0,0,0.6);
  animation: ma-figure-tilt 5s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-aside .throne {
  position: absolute; bottom: 35%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 5px 5px 15px rgba(0,0,0,0.5);
}
@keyframes ma-window-glare {
  0% { opacity: 0.7; box-shadow: inset 0 0 40px rgba(0,0,20,0.8), 0 0 30px rgba(0,0,20,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 60px rgba(0,0,30,1), 0 0 50px rgba(0,0,30,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,0,15,0.6), 0 0 20px rgba(0,0,15,0.2); }
}
@keyframes ma-stars-twinkle {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ma-candle-pulse {
  0% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 40px 10px rgba(255,128,64,0.3); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 80px 30px rgba(255,128,64,0.5); }
  100% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 60px 20px rgba(255,128,64,0.4); }
}
@keyframes ma-figure-tilt {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(5px); }
  100% { transform: rotate(-1deg) translateX(-5px); }
}

/* forres-palace-duncan-praise */
.scn-forres-palace-duncan-praise {
  background: linear-gradient(180deg, #f0d090 0%, #d4a050 40%, #b08040 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-forres-palace-duncan-praise .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #5a3a20 0%, #7a4a2a 40%, #8a5a3a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-forres-palace-duncan-praise .wall-gold {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #d4a050 0%, #c09040 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
}
.scn-forres-palace-duncan-praise .banquet-table {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 40px;
  background: linear-gradient(180deg, #6a4020 0%, #4a2a10 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: dp-table-breathe 7s ease-in-out infinite;
}
.scn-forres-palace-duncan-praise .goblet-left {
  position: absolute; bottom: 36%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4a050 0%, #b08030 100%);
  border-radius: 5% 5% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dp-goblet-sway 4s ease-in-out infinite alternate;
}
.scn-forres-palace-duncan-praise .goblet-right {
  position: absolute; bottom: 36%; right: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4a050 0%, #b08030 100%);
  border-radius: 5% 5% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dp-goblet-sway 4s ease-in-out infinite alternate reverse;
}
.scn-forres-palace-duncan-praise .crown {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d040 0%, #d4a020 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 0 30px 10px rgba(212,160,32,0.5);
  animation: dp-crown-glow 3s ease-in-out infinite alternate;
}
.scn-forres-palace-duncan-praise .duncan-figure {
  position: absolute; bottom: 32%; left: 46%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dp-duncan-turn 8s ease-in-out infinite;
}
.scn-forres-palace-duncan-praise .chandelier {
  position: absolute; top: 5%; left: 35%; right: 35%; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,208,144,0.3);
  animation: dp-chandelier-sway 10s ease-in-out infinite alternate;
}
@keyframes dp-table-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dp-goblet-sway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes dp-crown-glow {
  0% { box-shadow: 0 0 20px 5px rgba(212,160,32,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 20px rgba(240,208,64,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(212,160,32,0.4); opacity: 0.9; }
}
@keyframes dp-duncan-turn {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(10px) scaleX(0.9); }
  50% { transform: translateX(0) scaleX(1); }
  75% { transform: translateX(-10px) scaleX(0.9); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes dp-chandelier-sway {
  0% { transform: rotate(-2deg) scaleX(0.95); }
  50% { transform: rotate(2deg) scaleX(1.05); }
  100% { transform: rotate(-1deg) scaleX(0.98); }
}

/* inverness-castle-letter */
.scn-inverness-castle-letter {
  background: linear-gradient(180deg, #1a1020 0%, #2a1828 30%, #3a2030 100%), radial-gradient(ellipse at 50% 90%, #4a2a3a 0%, transparent 70%);
}
.scn-inverness-castle-letter .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1020 0%, #2a1828 100%);
  animation: cl-room-pulse 12s ease-in-out infinite alternate;
}
.scn-inverness-castle-letter .table-dark {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(180deg, #3a2020 0%, #2a1010 100%);
  border-radius: 6px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.8);
}
.scn-inverness-castle-letter .letter-glow {
  position: absolute; bottom: 22%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%);
  border-radius: 2px;
  box-shadow: 0 0 40px 10px rgba(224,208,160,0.3);
  animation: cl-letter-light 5s ease-in-out infinite alternate;
}
.scn-inverness-castle-letter .candle-flame {
  position: absolute; bottom: 28%; left: 40%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #ffd060 0%, #ff8040 60%, #ff4010 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 50px 15px rgba(255,128,64,0.5);
  animation: cl-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-inverness-castle-letter .lady-macbeth-silhouette {
  position: absolute; bottom: 20%; left: 42%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -5px 0 20px rgba(0,0,0,0.7);
  animation: cl-lady-bend 6s ease-in-out infinite;
}
.scn-inverness-castle-letter .shadow-chair {
  position: absolute; bottom: 15%; right: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1820 0%, #1a0a10 100%);
  border-radius: 5px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.6);
}
@keyframes cl-room-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cl-letter-light {
  0% { box-shadow: 0 0 30px 5px rgba(224,208,160,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 20px rgba(224,208,160,0.5); opacity: 1; }
  100% { box-shadow: 0 0 40px 10px rgba(224,208,160,0.3); opacity: 0.9; }
}
@keyframes cl-candle-flicker {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; box-shadow: 0 0 30px 10px rgba(255,128,64,0.4); }
  50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; box-shadow: 0 0 60px 20px rgba(255,128,64,0.6); }
  100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.9; box-shadow: 0 0 40px 12px rgba(255,128,64,0.5); }
}
@keyframes cl-lady-bend {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}

/* inverness-castle-messenger */
.scn-inverness-castle-messenger {
  background: linear-gradient(180deg, #1a141a 0%, #2a1e2a 30%, #3a2828 100%), radial-gradient(ellipse at 50% 90%, #4a3030 0%, transparent 70%);
}
.scn-inverness-castle-messenger .corridor-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #3a2828 0%, #2a1a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 85% 100%, 15% 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-inverness-castle-messenger .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1e1414 0%, #2a1a1a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-inverness-castle-messenger .door-ajar {
  position: absolute; bottom: 20%; left: 15%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border: 4px solid #6a4030;
  border-radius: 4px;
  transform: skewY(4deg);
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: cm-door-swing 8s ease-in-out infinite alternate;
}
.scn-inverness-castle-messenger .messenger-figure {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 5px 0 20px rgba(0,0,0,0.6);
  animation: cm-messenger-rush 5s ease-in-out infinite;
}
.scn-inverness-castle-messenger .lady-stand {
  position: absolute; bottom: 22%; right: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 35% 35% 15% 15% / 55% 55% 15% 15%;
  transform-origin: bottom center;
  animation: cm-lady-tense 3s ease-in-out infinite alternate;
}
.scn-inverness-castle-messenger .torch-flicker {
  position: absolute; bottom: 50%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #ffa040 0%, #ff6020 60%, #c03010 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 0 70px 25px rgba(255,96,32,0.4);
  animation: cm-torch-flame 1.5s ease-in-out infinite alternate;
}
.scn-inverness-castle-messenger .shadow-spear {
  position: absolute; bottom: 25%; left: 55%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: cm-spear-tremble 2s ease-in-out infinite alternate;
}
@keyframes cm-door-swing {
  0% { transform: skewY(4deg) scaleX(0.95); }
  50% { transform: skewY(2deg) scaleX(1); }
  100% { transform: skewY(5deg) scaleX(0.9); }
}
@keyframes cm-messenger-rush {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(15px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(15px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cm-lady-tense {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cm-torch-flame {
  0% { transform: scaleY(0.9) rotate(-5deg); opacity: 0.8; box-shadow: 0 0 50px 15px rgba(255,96,32,0.3); }
  50% { transform: scaleY(1.2) rotate(5deg); opacity: 1; box-shadow: 0 0 90px 35px rgba(255,96,32,0.5); }
  100% { transform: scaleY(1) rotate(0); opacity: 0.9; box-shadow: 0 0 60px 20px rgba(255,96,32,0.4); }
}
@keyframes cm-spear-tremble {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(13deg) translateY(2px); }
  100% { transform: rotate(17deg) translateY(-2px); }
}

/* Scene 1: hall-banquet-macbeth-host – bright interior, calm */
.scn-hall-banquet-macbeth-host {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b882 40%, #b8966a 100%),
    radial-gradient(ellipse at 50% 70%, #ffe080 0%, transparent 60%);
}
.scn-hall-banquet-macbeth-host .banquet-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d6b0 0%, #c9ae7a 100%);
  animation: hb-wall 12s ease-in-out infinite alternate;
}
.scn-hall-banquet-macbeth-host .banquet-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8c6f45 0%, #6a5430 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: hb-floor 20s ease-in-out infinite alternate;
}
.scn-hall-banquet-macbeth-host .banquet-table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #b08850 0%, #8a6a3e 100%);
  border-radius: 2% 2% 6% 6%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform: perspective(200px) rotateX(8deg);
  animation: hb-table 15s ease-in-out infinite;
}
.scn-hall-banquet-macbeth-host .banquet-goblet.left {
  position: absolute; bottom: 34%; left: 30%; width: 10px; height: 16px;
  background: radial-gradient(ellipse at 50% 60%, #f0d080 0%, #b09850 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 6px #d0b060;
  animation: hb-goblet 4s ease-in-out infinite alternate;
}
.scn-hall-banquet-macbeth-host .banquet-goblet.right {
  position: absolute; bottom: 34%; left: 55%; width: 10px; height: 16px;
  background: radial-gradient(ellipse at 50% 60%, #f0d080 0%, #b09850 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 6px #d0b060;
  animation: hb-goblet 4s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-hall-banquet-macbeth-host .banquet-candle {
  position: absolute; bottom: 36%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #f5e0b0 0%, #d0a050 100%);
  border-radius: 40%;
  box-shadow: 0 0 24px 10px #ffd070;
  animation: hb-candle-glow 3s ease-in-out infinite alternate;
}
.scn-hall-banquet-macbeth-host .banquet-figure {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hb-figure 6s ease-in-out infinite;
}
.scn-hall-banquet-macbeth-host .banquet-arch-left {
  position: absolute; top: 0; left: 10%; width: 80px; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, transparent 50%, #8c6f45 50%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hb-arch 18s ease-in-out infinite alternate;
}
.scn-hall-banquet-macbeth-host .banquet-arch-right {
  position: absolute; top: 0; right: 10%; width: 80px; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, transparent 50%, #8c6f45 50%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hb-arch 18s ease-in-out infinite alternate-reverse;
  animation-delay: -9s;
}
@keyframes hb-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes hb-floor { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(.98); } }
@keyframes hb-table { 0%,100% { transform: perspective(200px) rotateX(8deg) translateY(0); } 50% { transform: perspective(200px) rotateX(8deg) translateY(-2px); } }
@keyframes hb-goblet { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(0); } }
@keyframes hb-candle-glow { 0% { box-shadow: 0 0 16px 6px #ffd070; } 50% { box-shadow: 0 0 32px 14px #ffe098; } 100% { box-shadow: 0 0 20px 8px #ffd070; } }
@keyframes hb-figure { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(0) translateY(-2px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(0) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes hb-arch { 0% { transform: scaleY(.95); } 50% { transform: scaleY(1); } 100% { transform: scaleY(.98); } }

/* Scene 2: hall-macbeth-aftermath – dark interior, dim */
.scn-hall-macbeth-aftermath {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1e24 50%, #141016 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a3a 0%, transparent 60%);
}
.scn-hall-macbeth-aftermath .aftermath-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2428 0%, #1c1418 100%);
  animation: hma-wall 15s ease-in-out infinite alternate;
}
.scn-hall-macbeth-aftermath .aftermath-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e161a 0%, #0e0a0c 100%);
  box-shadow: inset 0 8px 20px #0a0608;
  animation: hma-floor 20s ease-in-out infinite;
}
.scn-hall-macbeth-aftermath .aftermath-window {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a6a 0%, #1a1a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px #2a2a4a;
  animation: hma-window 12s ease-in-out infinite alternate;
}
.scn-hall-macbeth-aftermath .aftermath-stain {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 40% 60%, #5e1a1d 0%, #1c0a0c 80%);
  border-radius: 40% 60% 70% 30%;
  filter: blur(3px);
  animation: hma-stain 8s ease-in-out infinite;
}
.scn-hall-macbeth-aftermath .aftermath-candle {
  position: absolute; bottom: 28%; left: 30%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #d0a060 0%, #806040 100%);
  border-radius: 30%;
  box-shadow: 0 0 18px 6px #b07840, 0 0 30px 10px rgba(176,120,64,.3);
  animation: hma-candle 3s ease-in-out infinite alternate;
}
.scn-hall-macbeth-aftermath .aftermath-figure {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #0e0a0c 0%, #060408 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: hma-figure 5s ease-in-out infinite;
}
.scn-hall-macbeth-aftermath .aftermath-chair {
  position: absolute; bottom: 20%; right: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2c2020 0%, #161010 100%);
  border-radius: 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: hma-chair 7s ease-in-out infinite;
}
@keyframes hma-wall { 0%,100% { opacity: .7; } 50% { opacity: .85; } }
@keyframes hma-floor { 0% { filter: brightness(.9); } 50% { filter: brightness(1); } 100% { filter: brightness(.9); } }
@keyframes hma-window { 0% { box-shadow: inset 0 0 20px #2a2a4a; } 50% { box-shadow: inset 0 0 40px #4a4a6a; } 100% { box-shadow: inset 0 0 25px #2a2a4a; } }
@keyframes hma-stain { 0% { transform: scale(1) opacity(.6); } 50% { transform: scale(1.1) opacity(.8); } 100% { transform: scale(1) opacity(.6); } }
@keyframes hma-candle { 0% { box-shadow: 0 0 12px 4px #b07840; } 50% { box-shadow: 0 0 24px 10px #d09850; } 100% { box-shadow: 0 0 16px 6px #b07840; } }
@keyframes hma-figure { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0) translateY(0); } 75% { transform: translateX(-50%) rotate(-3deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes hma-chair { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(5deg) translateY(-3px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }

/* Scene 3: heath-hecate-angry – dark, stormy */
.scn-heath-hecate-angry {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #1e182a 40%, #2c2040 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 70%);
}
.scn-heath-hecate-angry .heath-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #141620 0%, #2a2438 100%);
  animation: hh-sky 10s ease-in-out infinite alternate;
}
.scn-heath-hecate-angry .heath-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1620 0%, #0e0c14 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px #0a0810;
  animation: hh-ground 18s ease-in-out infinite;
}
.scn-heath-hecate-angry .heath-cauldron {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #2a1a20 0%, #0e0a10 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: inset 0 -8px 12px #1a1218;
  animation: hh-cauldron 15s ease-in-out infinite alternate;
}
.scn-heath-hecate-angry .heath-steam {
  position: absolute; bottom: 40%; left: 46%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,200,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: hh-steam 4s ease-in-out infinite;
}
.scn-heath-hecate-angry .heath-witch.left {
  position: absolute; bottom: 18%; left: 15%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a141c 0%, #0a0810 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hh-witch 6s ease-in-out infinite;
}
.scn-heath-hecate-angry .heath-witch.center {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e1822 0%, #0e0a14 100%);
  border-radius: 40% 50% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hh-witch 6s ease-in-out infinite -2s;
}
.scn-heath-hecate-angry .heath-witch.right {
  position: absolute; bottom: 18%; right: 15%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #16101a 0%, #0a0810 100%);
  border-radius: 50% 40% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hh-witch 6s ease-in-out infinite -4s;
}
.scn-heath-hecate-angry .heath-lightning {
  position: absolute; top: 10%; left: 60%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #f0e8c0 0%, #c0b888 50%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 10px #e0d8a0;
  filter: blur(1px);
  animation: hh-lightning 5s ease-in-out infinite;
}
@keyframes hh-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes hh-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hh-cauldron { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1); } }
@keyframes hh-steam { 0% { transform: translateY(0) scale(1); opacity: .4; } 50% { transform: translateY(-10px) scale(1.5); opacity: .7; } 100% { transform: translateY(0) scale(1); opacity: .4; } }
@keyframes hh-witch { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(0) translateY(-3px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(0) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes hh-lightning { 0% { opacity: 0; } 10% { opacity: 1; transform: scaleY(1); } 20% { opacity: .3; } 30% { opacity: 1; transform: scaleY(1.1); } 40% { opacity: 0; } 100% { opacity: 0; } }

/* Scene 4: forres-palace-lennox-sarcastic – dim interior, palace */
.scn-forres-palace-lennox-sarcastic {
  background: 
    linear-gradient(180deg, #1c1824 0%, #2c2438 40%, #1e1a2a 100%),
    radial-gradient(ellipse at 80% 50%, #3a2e4a 0%, transparent 60%);
}
.scn-forres-palace-lennox-sarcastic .palace-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2434 0%, #1c1824 100%);
  box-shadow: inset 0 0 40px #10101a;
  animation: fp-wall 14s ease-in-out infinite alternate;
}
.scn-forres-palace-lennox-sarcastic .palace-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #2a2230 0%, #2a2230 20px, #1e1a28 20px, #1e1a28 40px);
  animation: fp-floor 22s ease-in-out infinite;
}
.scn-forres-palace-lennox-sarcastic .palace-column.left {
  position: absolute; top: 10%; left: 20%; width: 8px; height: 70%;
  background: linear-gradient(180deg, #3a3248 0%, #2a2438 100%);
  border-radius: 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: fp-column 18s ease-in-out infinite alternate;
}
.scn-forres-palace-lennox-sarcastic .palace-column.right {
  position: absolute; top: 10%; right: 20%; width: 8px; height: 70%;
  background: linear-gradient(180deg, #3a3248 0%, #2a2438 100%);
  border-radius: 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,.5);
  animation: fp-column 18s ease-in-out infinite alternate-reverse;
  animation-delay: -9s;
}
.scn-forres-palace-lennox-sarcastic .palace-arch {
  position: absolute; top: 5%; left: 35%; right: 35%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, transparent 40%, #3a2e44 40%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fp-arch 12s ease-in-out infinite;
}
.scn-forres-palace-lennox-sarcastic .palace-moon {
  position: absolute; top: 10%; right: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #d0d0e0 0%, #a0a0c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #b0b0d0, 0 0 60px 20px rgba(160,160,192,.3);
  animation: fp-moon 6s ease-in-out infinite alternate;
}
.scn-forres-palace-lennox-sarcastic .palace-figure {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0e0c12 0%, #060408 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fp-figure 7s ease-in-out infinite;
}
.scn-forres-palace-lennox-sarcastic .palace-shadow {
  position: absolute; bottom: 12%; left: 50%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #0a0810 0%, transparent 70%);
  filter: blur(10px);
  animation: fp-shadow 10s ease-in-out infinite;
}
@keyframes fp-wall { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes fp-floor { 0% { filter: brightness(.9); } 50% { filter: brightness(1.05); } 100% { filter: brightness(.9); } }
@keyframes fp-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fp-arch { 0% { transform: scaleY(.95); opacity: .6; } 50% { transform: scaleY(1); opacity: .8; } 100% { transform: scaleY(.95); opacity: .6; } }
@keyframes fp-moon { 0% { box-shadow: 0 0 20px 4px #b0b0d0; } 50% { box-shadow: 0 0 40px 12px #c0c0e0; } 100% { box-shadow: 0 0 25px 6px #b0b0d0; } }
@keyframes fp-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(-2deg) scale(1.02); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-5px) rotate(2deg) scale(1.02); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fp-shadow { 0% { transform: scaleX(1) opacity(.3); } 50% { transform: scaleX(1.2) opacity(.5); } 100% { transform: scaleX(1) opacity(.3); } }

/* Scene 1: before-dunsinane-malcolm-boughs (tense dawn) */
.scn-before-dunsinane-malcolm-boughs {
  background:
    linear-gradient(180deg, #5a6a7a 0%, #a8b8c8 40%, #d4c8a4 70%, #8a7a5a 100%),
    radial-gradient(ellipse at 30% 80%, #f0d8a0 0%, transparent 60%),
    radial-gradient(ellipse at 70% 50%, #6a7a8a 0%, transparent 50%);
}
.scn-before-dunsinane-malcolm-boughs .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #7a8a9a 50%, #c0a880 100%);
  animation: bdb-sky 20s ease-in-out infinite alternate;
}
.scn-before-dunsinane-malcolm-boughs .sun {
  position: absolute; top: 10%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe0a0 0%, #e0b060 60%, transparent 90%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,224,160,0.4);
  animation: bdb-sun 25s ease-in-out infinite alternate;
}
.scn-before-dunsinane-malcolm-boughs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 40%, #1a2a0a 100%);
  clip-path: polygon(0 20%, 10% 15%, 20% 25%, 30% 18%, 40% 22%, 50% 15%, 60% 20%, 70% 12%, 80% 18%, 90% 14%, 100% 20%, 100% 100%, 0 100%);
  animation: bdb-ground 30s ease-in-out infinite alternate;
}
.scn-before-dunsinane-malcolm-boughs .bough {
  position: absolute; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #2a4a1a 0%, #4a6a2a 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(2px);
}
.scn-before-dunsinane-malcolm-boughs .bough-1 {
  bottom: 50%; left: 15%; transform: rotate(-15deg);
  animation: bdb-bough1 8s ease-in-out infinite alternate;
}
.scn-before-dunsinane-malcolm-boughs .bough-2 {
  bottom: 48%; right: 20%; transform: rotate(10deg);
  animation: bdb-bough2 7s ease-in-out infinite alternate-reverse;
}
.scn-before-dunsinane-malcolm-boughs .soldier {
  position: absolute; bottom: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-before-dunsinane-malcolm-boughs .soldier-a { left: 30%; animation: bdb-swalk1 10s ease-in-out infinite; }
.scn-before-dunsinane-malcolm-boughs .soldier-b { left: 45%; animation: bdb-swalk2 11s ease-in-out infinite 1s; }
.scn-before-dunsinane-malcolm-boughs .spear {
  position: absolute; bottom: 50%; left: 35%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(-80deg);
  animation: bdb-spear 6s ease-in-out infinite alternate;
}
@keyframes bdb-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bdb-sun {
  0% { transform: translate(0, 0) scale(0.9); box-shadow: 0 0 40px 10px rgba(255,224,160,0.3); }
  50% { transform: translate(20px, -10px) scale(1.1); box-shadow: 0 0 80px 30px rgba(255,224,160,0.6); }
  100% { transform: translate(10px, 0) scale(1); box-shadow: 0 0 60px 20px rgba(255,224,160,0.4); }
}
@keyframes bdb-ground {
  0% { clip-path: polygon(0 20%, 10% 15%, 20% 25%, 30% 18%, 40% 22%, 50% 15%, 60% 20%, 70% 12%, 80% 18%, 90% 14%, 100% 20%, 100% 100%, 0 100%); }
  100% { clip-path: polygon(0 18%, 10% 22%, 20% 14%, 30% 20%, 40% 16%, 50% 24%, 60% 10%, 70% 18%, 80% 15%, 90% 20%, 100% 18%, 100% 100%, 0 100%); }
}
@keyframes bdb-bough1 {
  0% { transform: rotate(-15deg) translate(0, 0) scale(1); }
  100% { transform: rotate(-10deg) translate(5px, -3px) scaleX(0.95); }
}
@keyframes bdb-bough2 {
  0% { transform: rotate(10deg) translate(0, 0) scale(1); }
  100% { transform: rotate(5deg) translate(-5px, -2px) scaleX(0.95); }
}
@keyframes bdb-swalk1 {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(8px) rotate(-1deg); }
  50% { transform: translateX(16px) rotate(1deg); }
  75% { transform: translateX(24px) rotate(-2deg); }
  100% { transform: translateX(32px) rotate(0); }
}
@keyframes bdb-swalk2 {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(10px) rotate(2deg); }
  66% { transform: translateX(20px) rotate(-1deg); }
  100% { transform: translateX(30px) rotate(1deg); }
}
@keyframes bdb-spear {
  0% { transform: rotate(-80deg) translate(0, 0); }
  100% { transform: rotate(-75deg) translate(2px, -5px); }
}

/* Scene 2: field-macbeth-fight-bear (tense sunlit) */
.scn-field-macbeth-fight-bear {
  background:
    linear-gradient(180deg, #7a8a9a 0%, #b0c0d0 30%, #d0c0a0 60%, #5a6a4a 100%),
    radial-gradient(ellipse at 60% 40%, #fff0c0 0%, transparent 50%);
}
.scn-field-macbeth-fight-bear .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #90a0b0 40%, #c0b090 100%);
  animation: fbf-sky 15s ease-in-out infinite alternate;
}
.scn-field-macbeth-fight-bear .sun {
  position: absolute; top: 8%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffe8b0 0%, #e0b860 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,232,176,0.5);
  animation: fbf-sun 20s ease-in-out infinite alternate;
}
.scn-field-macbeth-fight-bear .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 50%, #1a2a0a 100%);
  clip-path: polygon(0 30%, 5% 25%, 10% 32%, 15% 28%, 20% 35%, 30% 20%, 40% 38%, 50% 15%, 60% 40%, 70% 10%, 80% 35%, 90% 18%, 100% 30%, 100% 100%, 0 100%);
  animation: fbf-ground 25s ease-in-out infinite alternate;
}
.scn-field-macbeth-fight-bear .stake {
  position: absolute; bottom: 20%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-field-macbeth-fight-bear .stake-left { left: 35%; transform: rotate(-5deg); animation: fbf-stake1 12s ease-in-out infinite; }
.scn-field-macbeth-fight-bear .stake-right { left: 55%; transform: rotate(5deg); animation: fbf-stake2 14s ease-in-out infinite 1s; }
.scn-field-macbeth-fight-bear .macbeth-fig {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbf-bear 5s ease-in-out infinite;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.3);
}
.scn-field-macbeth-fight-bear .chain {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 4px;
  background: #5a4a3a; border-radius: 2px;
  animation: fbf-chain 3s ease-in-out infinite;
}
.scn-field-macbeth-fight-bear .shield {
  position: absolute; bottom: 25%; left: 52%; width: 20px; height: 25px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: fbf-shield 6s ease-in-out infinite alternate;
}
@keyframes fbf-sky {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes fbf-sun {
  0% { transform: translate(0,0) scale(0.9); box-shadow: 0 0 60px 20px rgba(255,232,176,0.3); }
  50% { transform: translate(-10px, -5px) scale(1.1); box-shadow: 0 0 100px 40px rgba(255,232,176,0.6); }
  100% { transform: translate(5px, 0) scale(1); box-shadow: 0 0 80px 30px rgba(255,232,176,0.4); }
}
@keyframes fbf-ground {
  0% { clip-path: polygon(0 30%, 5% 25%, 10% 32%, 15% 28%, 20% 35%, 30% 20%, 40% 38%, 50% 15%, 60% 40%, 70% 10%, 80% 35%, 90% 18%, 100% 30%, 100% 100%, 0 100%); }
  100% { clip-path: polygon(0 28%, 5% 32%, 10% 26%, 15% 35%, 20% 30%, 30% 25%, 40% 32%, 50% 20%, 60% 35%, 70% 15%, 80% 30%, 90% 22%, 100% 25%, 100% 100%, 0 100%); }
}
@keyframes fbf-stake1 {
  0% { transform: rotate(-5deg) translate(0,0); }
  100% { transform: rotate(-2deg) translate(2px,-3px); }
}
@keyframes fbf-stake2 {
  0% { transform: rotate(5deg) translate(0,0); }
  100% { transform: rotate(3deg) translate(-2px,-2px); }
}
@keyframes fbf-bear {
  0% { transform: translate(0,0) rotate(-3deg) scaleY(1); }
  25% { transform: translate(5px,-2px) rotate(2deg) scaleY(1.02); }
  50% { transform: translate(-3px,-4px) rotate(-1deg) scaleY(0.98); }
  75% { transform: translate(6px,-1px) rotate(3deg) scaleY(1.01); }
  100% { transform: translate(0,0) rotate(0) scaleY(1); }
}
@keyframes fbf-chain {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fbf-shield {
  0% { transform: rotate(-20deg) translate(0,0); }
  100% { transform: rotate(-15deg) translate(3px,-2px); }
}

/* Scene 3: field-macduff-hunt (tense sunlit) */
.scn-field-macduff-hunt {
  background:
    linear-gradient(180deg, #7a8a9a 0%, #b0c0d0 30%, #d0c0a0 60%, #5a6a4a 100%),
    radial-gradient(ellipse at 40% 50%, #ffe8b0 0%, transparent 50%);
}
.scn-field-macduff-hunt .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #90a0b0 40%, #c0b090 100%);
  animation: mhf-sky 18s ease-in-out infinite alternate;
}
.scn-field-macduff-hunt .sun {
  position: absolute; top: 5%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8b0 0%, #e0b860 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 70px 25px rgba(255,232,176,0.5);
  animation: mhf-sun 22s ease-in-out infinite alternate;
}
.scn-field-macduff-hunt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 50%, #1a2a0a 100%);
  clip-path: polygon(0 20%, 10% 15%, 20% 25%, 30% 18%, 40% 22%, 50% 10%, 60% 28%, 70% 12%, 80% 20%, 90% 14%, 100% 18%, 100% 100%, 0 100%);
  animation: mhf-ground 20s ease-in-out infinite alternate;
}
.scn-field-macduff-hunt .macduff-fig {
  position: absolute; bottom: 15%; left: 35%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mhf-stride 4s ease-in-out infinite;
}
.scn-field-macduff-hunt .sword {
  position: absolute; bottom: 30%; left: 45%; width: 5px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 2px; transform: rotate(-60deg);
  box-shadow: 0 0 8px 2px rgba(255,255,200,0.3);
  animation: mhf-sword 6s ease-in-out infinite alternate;
}
.scn-field-macduff-hunt .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: mhf-shadow 5s ease-in-out infinite;
}
.scn-field-macduff-hunt .dust {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mhf-dust 8s linear infinite;
}
@keyframes mhf-sky {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes mhf-sun {
  0% { transform: translate(0,0) scale(0.9); box-shadow: 0 0 50px 15px rgba(255,232,176,0.3); }
  100% { transform: translate(10px, -5px) scale(1.1); box-shadow: 0 0 90px 35px rgba(255,232,176,0.6); }
}
@keyframes mhf-ground {
  0% { clip-path: polygon(0 20%, 10% 15%, 20% 25%, 30% 18%, 40% 22%, 50% 10%, 60% 28%, 70% 12%, 80% 20%, 90% 14%, 100% 18%, 100% 100%, 0 100%); }
  100% { clip-path: polygon(0 18%, 10% 22%, 20% 15%, 30% 25%, 40% 12%, 50% 18%, 60% 20%, 70% 15%, 80% 22%, 90% 10%, 100% 16%, 100% 100%, 0 100%); }
}
@keyframes mhf-stride {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  25% { transform: translateX(10px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(20px) rotate(-1deg) scaleY(0.98); }
  75% { transform: translateX(30px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(40px) rotate(0) scaleY(1); }
}
@keyframes mhf-sword {
  0% { transform: rotate(-60deg) translate(0,0); }
  100% { transform: rotate(-45deg) translate(5px,-10px); }
}
@keyframes mhf-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}
@keyframes mhf-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  50% { transform: translate(20px, -10px) scale(1.5); opacity: 0.5; }
  100% { transform: translate(40px, -20px) scale(2); opacity: 0; }
}

/* Scene 4: field-malcolm-victory (tense sunlit) */
.scn-field-malcolm-victory {
  background:
    linear-gradient(180deg, #7a8a9a 0%, #b0c0d0 30%, #d0c0a0 60%, #5a6a4a 100%),
    radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 50%);
}
.scn-field-malcolm-victory .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #90a0b0 40%, #c0b090 100%);
  animation: mvc-sky 16s ease-in-out infinite alternate;
}
.scn-field-malcolm-victory .sun {
  position: absolute; top: 12%; right: 25%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffe8b0 0%, #e0b860 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 90px 35px rgba(255,232,176,0.5);
  animation: mvc-sun 18s ease-in-out infinite alternate;
}
.scn-field-malcolm-victory .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 50%, #1a2a0a 100%);
  clip-path: polygon(0 10%, 5% 15%, 10% 8%, 15% 12%, 20% 5%, 30% 18%, 40% 8%, 50% 22%, 60% 5%, 70% 20%, 80% 10%, 90% 15%, 100% 12%, 100% 100%, 0 100%);
  animation: mvc-ground 30s ease-in-out infinite alternate;
}
.scn-field-malcolm-victory .castle {
  position: absolute; bottom: 25%; left: 60%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.3);
  animation: mvc-castle 12s ease-in-out infinite alternate;
}
.scn-field-malcolm-victory .castle::before {
  content: ''; position: absolute; top: -15px; left: 20px; width: 30px; height: 15px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
}
.scn-field-malcolm-victory .flag {
  position: absolute; bottom: 55%; left: 63%; width: 6px; height: 40px;
  background: #4a3a2a;
}
.scn-field-malcolm-victory .flag::after {
  content: ''; position: absolute; top: 0; left: 6px; width: 20px; height: 15px;
  background: linear-gradient(45deg, #5a3a2a 0%, #8a5a3a 100%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  animation: mvc-flag 4s ease-in-out infinite;
}
.scn-field-malcolm-victory .malcolm-fig {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mvc-hero1 7s ease-in-out infinite;
}
.scn-field-malcolm-victory .siward-fig {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mvc-hero2 8s ease-in-out infinite 0.5s;
}
.scn-field-malcolm-victory .crown {
  position: absolute; bottom: 55%; left: 30%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #c0a060 0%, #e0c080 50%, #a08040 100%);
  clip-path: polygon(0 100%, 25% 0, 50% 30%, 75% 0, 100% 100%);
  animation: mvc-crown 6s ease-in-out infinite alternate;
}
@keyframes mvc-sky {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes mvc-sun {
  0% { transform: translate(0,0) scale(0.9); box-shadow: 0 0 60px 20px rgba(255,232,176,0.3); }
  50% { transform: translate(-10px, -5px) scale(1.1); box-shadow: 0 0 100px 40px rgba(255,232,176,0.6); }
  100% { transform: translate(5px,0) scale(1); box-shadow: 0 0 80px 30px rgba(255,232,176,0.4); }
}
@keyframes mvc-ground {
  0% { clip-path: polygon(0 10%, 5% 15%, 10% 8%, 15% 12%, 20% 5%, 30% 18%, 40% 8%, 50% 22%, 60% 5%, 70% 20%, 80% 10%, 90% 15%, 100% 12%, 100% 100%, 0 100%); }
  100% { clip-path: polygon(0 12%, 5% 8%, 10% 15%, 15% 5%, 20% 10%, 30% 15%, 40% 12%, 50% 18%, 60% 8%, 70% 15%, 80% 5%, 90% 12%, 100% 8%, 100% 100%, 0 100%); }
}
@keyframes mvc-castle {
  0% { transform: scaleY(1) translate(0,0); }
  100% { transform: scaleY(0.98) translate(2px, -2px); }
}
@keyframes mvc-flag {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
}
@keyframes mvc-hero1 {
  0% { transform: translate(0,0) rotate(-1deg); }
  25% { transform: translate(3px, -2px) rotate(1deg); }
  50% { transform: translate(6px,0) rotate(-1deg); }
  75% { transform: translate(3px, -1px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes mvc-hero2 {
  0% { transform: translate(0,0) rotate(1deg); }
  33% { transform: translate(-2px, -1px) rotate(-1deg); }
  66% { transform: translate(2px,0) rotate(2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes mvc-crown {
  0% { transform: translate(0,0) rotate(-5deg); }
  100% { transform: translate(0, -2px) rotate(5deg); }
}

.scn-cavern-witch-cauldron {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 40%, #2a0a00 70%, #1a0500 100%), radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, transparent 80%);
  background-color: #0a0500;
}

.scn-cavern-witch-cauldron .cave {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #0a0a0a 40%, #050505 100%); border-radius: 60% 40% 0 0 / 50% 30% 0 0; animation: cwc-cave 20s ease-in-out infinite alternate;
}

.scn-cavern-witch-cauldron .cauldron {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 70px; height: 50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.8), inset 0 -4px 8px rgba(0,0,0,0.6); animation: cwc-cauldron 4s ease-in-out infinite;
}

.scn-cavern-witch-cauldron .flame {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%); width: 20px; height: 40px; background: linear-gradient(180deg, #ff8c00 0%, #ff4500 50%, #8b0000 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); box-shadow: 0 0 30px 10px rgba(255,69,0,0.6), 0 0 60px 20px rgba(255,140,0,0.3); animation: cwc-flame 0.8s ease-in-out infinite alternate;
}

.scn-cavern-witch-cauldron .witch-a {
  position: absolute; bottom: 12%; left: 30%; width: 22px; height: 60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cwc-witch-a 12s ease-in-out infinite;
}

.scn-cavern-witch-cauldron .witch-b {
  position: absolute; bottom: 12%; left: 50%; width: 22px; height: 62px; background: linear-gradient(180deg, #151515 0%, #050505 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cwc-witch-b 10s ease-in-out infinite reverse;
}

.scn-cavern-witch-cauldron .witch-c {
  position: absolute; bottom: 12%; left: 66%; width: 22px; height: 58px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cwc-witch-c 14s ease-in-out infinite;
}

.scn-cavern-witch-cauldron .sparks {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 4px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 70%); border-radius: 50%; box-shadow: 4px -6px 0 #ffd700, -3px -10px 0 #ffa500, 6px -14px 0 #ff8c00, -5px -18px 0 #ff4500; filter: blur(1px); animation: cwc-sparks 3s ease-in infinite;
}

@keyframes cwc-cave {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes cwc-cauldron {
  0%, 100% { transform: translateX(-50%) scale(1); }
  25% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  50% { transform: translateX(-50%) scale(0.98) translateY(2px); }
  75% { transform: translateX(-50%) scale(1.01) translateY(-1px); }
}

@keyframes cwc-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(0.9); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.3) scaleX(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(0.85); opacity: 0.7; }
}

@keyframes cwc-witch-a {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(8px) rotate(2deg); }
  66% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes cwc-witch-b {
  0% { transform: translateX(0) rotate(1deg); }
  33% { transform: translateX(-6px) rotate(-2deg); }
  66% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes cwc-witch-c {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(2deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes cwc-sparks {
  0% { transform: translate(0, 0); opacity: 1; }
  50% { transform: translate(-5px, -30px); opacity: 0.6; }
  100% { transform: translate(3px, -60px); opacity: 0; }
}

.scn-fife-macduff-castle-lady-macduff {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1e1e2e 70%, #0e0e1a 100%), radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 70%);
}

.scn-fife-macduff-castle-lady-macduff .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: fml-wall 15s ease-in-out infinite alternate;
}

.scn-fife-macduff-castle-lady-macduff .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2e2e28 0%, #1a1a14 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}

.scn-fife-macduff-castle-lady-macduff .window {
  position: absolute; top: 15%; left: 10%; width: 40px; height: 60px; background: linear-gradient(180deg, #3a5a6a 0%, #5a7a8a 50%, #4a6a7a 100%); border: 2px solid #2a2a3e; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 10px rgba(255,255,255,0.1); animation: fml-window 6s ease-in-out infinite alternate;
}

.scn-fife-macduff-castle-lady-macduff .lady {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fml-lady 8s ease-in-out infinite;
}

.scn-fife-macduff-castle-lady-macduff .child {
  position: absolute; bottom: 20%; left: 46%; width: 14px; height: 32px; background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fml-child 5s ease-in-out infinite;
}

.scn-fife-macduff-castle-lady-macduff .ross {
  position: absolute; bottom: 18%; left: 58%; width: 22px; height: 54px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 60%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fml-ross 10s ease-in-out infinite reverse;
}

.scn-fife-macduff-castle-lady-macduff .dagger {
  position: absolute; bottom: 22%; left: 52%; width: 4px; height: 12px; background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 50%, #3a3a4a 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 6px rgba(200,200,200,0.3), inset 0 0 4px rgba(255,255,255,0.2); transform: rotate(-15deg); animation: fml-dagger 3s ease-in-out infinite alternate;
}

@keyframes fml-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes fml-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 6px rgba(255,255,255,0.05); }
  50% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 12px rgba(255,255,255,0.15); }
  100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 8px rgba(255,255,255,0.1); }
}

@keyframes fml-lady {
  0%, 100% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(0deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
}

@keyframes fml-child {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(2deg); }
}

@keyframes fml-ross {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(-1deg); }
  66% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes fml-dagger {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

.scn-fife-macduff-son-banter {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a1a0a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%);
}

.scn-fife-macduff-son-banter .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; animation: fmb-wall 18s ease-in-out infinite alternate;
}

.scn-fife-macduff-son-banter .hearth {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
}

.scn-fife-macduff-son-banter .fire {
  position: absolute; bottom: 16%; left: 22%; width: 18px; height: 24px; background: linear-gradient(180deg, #ffb347 0%, #ff8c00 50%, #b85d19 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); box-shadow: 0 0 30px 10px rgba(255,140,0,0.5); animation: fmb-fire 1s ease-in-out infinite alternate;
}

.scn-fife-macduff-son-banter .lady {
  position: absolute; bottom: 18%; left: 42%; width: 18px; height: 46px; background: linear-gradient(180deg, #3e2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fmb-lady 6s ease-in-out infinite;
}

.scn-fife-macduff-son-banter .boy {
  position: absolute; bottom: 20%; left: 52%; width: 12px; height: 28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fmb-boy 2s ease-in-out infinite;
}

.scn-fife-macduff-son-banter .bird {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 8px; background: radial-gradient(circle at 50% 50%, #8a6a3a 0%, #5a4a2a 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: fmb-bird 3s ease-in-out infinite;
}

.scn-fife-macduff-son-banter .stool {
  position: absolute; bottom: 12%; left: 48%; width: 16px; height: 6px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}

@keyframes fmb-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

@keyframes fmb-fire {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.8; }
  50% { transform: scaleY(1.4) scaleX(1.1); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(0.85); opacity: 0.7; }
}

@keyframes fmb-lady {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(1px) rotate(2deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
}

@keyframes fmb-boy {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes fmb-bird {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(5px, -8px) rotate(10deg); }
  50% { transform: translate(10px, -2px) rotate(-5deg); }
  75% { transform: translate(5px, -6px) rotate(5deg); }
}

.scn-fife-macduff-messenger {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1e1e2e 70%, #0e0e1a 100%), radial-gradient(ellipse at 30% 70%, #3a3a5e 0%, transparent 80%);
}

.scn-fife-macduff-messenger .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: fmm-wall 15s ease-in-out infinite alternate;
}

.scn-fife-macduff-messenger .door {
  position: absolute; bottom: 10%; right: 10%; width: 40px; height: 70px; background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 50%, #1a1a0e 100%); border-radius: 10% 10% 0 0; border: 2px solid #1a1a2e; box-shadow: inset -4px 0 8px rgba(0,0,0,0.6), 0 0 8px rgba(0,0,0,0.4); transform-origin: right center; animation: fmm-door 8s ease-in-out infinite alternate;
}

.scn-fife-macduff-messenger .messenger {
  position: absolute; bottom: 18%; right: 18%; width: 20px; height: 52px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fmm-messenger 4s ease-in-out infinite;
}

.scn-fife-macduff-messenger .lady {
  position: absolute; bottom: 18%; left: 40%; width: 18px; height: 46px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fmm-lady 7s ease-in-out infinite;
}

.scn-fife-macduff-messenger .child {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 28px; background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fmm-child 5s ease-in-out infinite reverse;
}

.scn-fife-macduff-messenger .torch {
  position: absolute; bottom: 22%; left: 30%; width: 6px; height: 14px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 50%, #3a1a0a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 20px 6px rgba(255,180,60,0.4), 0 0 40px 12px rgba(255,180,60,0.2); animation: fmm-torch 2s ease-in-out infinite alternate;
}

@keyframes fmm-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes fmm-door {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.98) rotate(1deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}

@keyframes fmm-messenger {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
}

@keyframes fmm-lady {
  0%, 100% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(-2px) translateY(-1px); }
  50% { transform: translateX(1px) translateY(0); }
  75% { transform: translateX(-1px) translateY(1px); }
}

@keyframes fmm-child {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes fmm-torch {
  0% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(255,180,60,0.4), 0 0 40px 12px rgba(255,180,60,0.2); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(255,200,80,0.5), 0 0 50px 16px rgba(255,200,80,0.25); }
  100% { opacity: 0.8; box-shadow: 0 0 22px 6px rgba(255,180,60,0.45), 0 0 45px 14px rgba(255,180,60,0.22); }
}

/* Scene: forres-palace-macbeth-fears (dark interior, torchlit) */
.scn-forres-palace-macbeth-fears {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 40%, #1a0a1a 100%), radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 70%);
}
.scn-forres-palace-macbeth-fears .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a3e, #3a2a4e, #1a0a2a);
  opacity: 0.6;
  animation: fpmf-bg 12s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-fears .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a, #1a1a0a);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: fpmf-floor 10s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-fears .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #2a1a2e, #1a0a1a);
  border-bottom: 2px solid #4a3a4a;
  animation: fpmf-wall 8s ease-in-out infinite alternate;
}
.scn-forres-palace-macbeth-fears .crown-stand {
  position: absolute; bottom: 38%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 10% 10% 50% 50% / 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-forres-palace-macbeth-fears .crown {
  position: absolute; bottom: 52%; left: 28%; width: 44px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #c8a050, #8a6a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: fpmf-crown 4s ease-in-out infinite;
}
.scn-forres-palace-macbeth-fears .figure {
  position: absolute; bottom: 36%; left: 55%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpmf-figure 6s ease-in-out infinite;
}
.scn-forres-palace-macbeth-fears .torch {
  position: absolute; bottom: 55%; left: 65%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a);
  border-radius: 20%;
}
.scn-forres-palace-macbeth-fears .torch-glow {
  position: absolute; bottom: 55%; left: 62%; width: 24px; height: 40px;
  background: radial-gradient(circle, #ff8844 0%, #ffaa44 30%, transparent 70%);
  filter: blur(6px);
  animation: fpmf-glow 2s ease-in-out infinite alternate;
}
@keyframes fpmf-bg { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes fpmf-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpmf-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fpmf-crown { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 10px 2px rgba(200,160,80,0.5); } 50% { transform: scale(1.05) rotate(3deg); box-shadow: 0 0 18px 4px rgba(200,160,80,0.7); } 100% { transform: scale(0.98) rotate(0deg); box-shadow: 0 0 8px 2px rgba(200,160,80,0.4); } }
@keyframes fpmf-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fpmf-glow { 0% { opacity:0.8; transform: scale(0.9) translateY(0); } 50% { opacity:1; transform: scale(1.1) translateY(-2px); } 100% { opacity:0.7; transform: scale(0.95) translateY(0); } }

/* Scene: forres-palace-plot-with-murderers (dim interior, candlelit council) */
.scn-forres-palace-plot-with-murderers {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 40% 50%, #2a2a1a 0%, transparent 70%);
}
.scn-forres-palace-plot-with-murderers .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a1a, #2a1a1a, #0a0a0a);
  opacity: 0.5;
  animation: fppm-bg 15s ease-in-out infinite alternate;
}
.scn-forres-palace-plot-with-murderers .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1a, #1a1a0a);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.9);
}
.scn-forres-palace-plot-with-murderers .table {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 10% 10% 10% 10% / 40% 40% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: fppm-table 8s ease-in-out infinite alternate;
}
.scn-forres-palace-plot-with-murderers .figure-macbeth {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #1a0a0a, #0a0000);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fppm-macbeth 5s ease-in-out infinite;
}
.scn-forres-palace-plot-with-murderers .figure-murderer1 {
  position: absolute; bottom: 32%; left: 25%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fppm-murderer 7s ease-in-out infinite 0s;
}
.scn-forres-palace-plot-with-murderers .figure-murderer2 {
  position: absolute; bottom: 32%; left: 60%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fppm-murderer 7s ease-in-out infinite 1s;
}
.scn-forres-palace-plot-with-murderers .figure-murderer3 {
  position: absolute; bottom: 32%; left: 70%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fppm-murderer 7s ease-in-out infinite 2s;
}
.scn-forres-palace-plot-with-murderers .candle {
  position: absolute; bottom: 48%; left: 42%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #8a6a3a, #4a2a1a);
  border-radius: 10%;
}
.scn-forres-palace-plot-with-murderers .candle-glow {
  position: absolute; bottom: 48%; left: 39%; width: 30px; height: 50px;
  background: radial-gradient(circle, #ff9944 0%, #ffcc66 30%, transparent 70%);
  filter: blur(8px);
  animation: fppm-glow 2s ease-in-out infinite alternate;
}
@keyframes fppm-bg { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes fppm-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fppm-macbeth { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fppm-murderer { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fppm-glow { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:0.7; transform: scale(0.95); } }

/* Scene: palace-lady-macbeth-restless (moonlit interior, restless pacing) */
.scn-palace-lady-macbeth-restless {
  background: linear-gradient(180deg, #0e162a 0%, #1a2236 40%, #0a0e1a 100%), radial-gradient(ellipse at 80% 30%, #2a3a5a 0%, transparent 60%);
}
.scn-palace-lady-macbeth-restless .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e162a, #1a2236);
  opacity: 0.5;
  animation: plmr-bg 10s ease-in-out infinite alternate;
}
.scn-palace-lady-macbeth-restless .window {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a3a5a, #3a4a6a);
  border: 3px solid #4a5a6a;
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: inset 0 0 20px #5a6a8a;
  animation: plmr-window 6s ease-in-out infinite alternate;
}
.scn-palace-lady-macbeth-restless .moonlight {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #aabbff 0%, transparent 70%);
  opacity: 0.3;
  filter: blur(10px);
  animation: plmr-moonlight 4s ease-in-out infinite alternate;
}
.scn-palace-lady-macbeth-restless .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2030, #0a0e1a);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-palace-lady-macbeth-restless .figure {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plmr-figure 8s ease-in-out infinite;
}
.scn-palace-lady-macbeth-restless .candlestick {
  position: absolute; bottom: 36%; left: 30%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 10%;
}
.scn-palace-lady-macbeth-restless .chair {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: plmr-chair 6s ease-in-out infinite alternate;
}
@keyframes plmr-bg { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes plmr-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes plmr-moonlight { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.4; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes plmr-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(20px) rotate(2deg); } 50% { transform: translateX(40px) rotate(0deg); } 75% { transform: translateX(20px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes plmr-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene: park-murderers-wait (dusk, open park, three figures) */
.scn-park-murderers-wait {
  background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 30%, #1a0a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a5a 0%, transparent 70%);
}
.scn-park-murderers-wait .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a5a, #6a4a6a 30%, #2a1a3a 70%, #1a0a2a);
  animation: pmw-sky 20s ease-in-out infinite alternate;
}
.scn-park-murderers-wait .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a2a, #1a2a1a);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-park-murderers-wait .tree-left {
  position: absolute; bottom: 35%; left: 10%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 10% 10% 30% 30% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: pmw-tree 15s ease-in-out infinite alternate;
}
.scn-park-murderers-wait .tree-right {
  position: absolute; bottom: 35%; right: 15%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 10% 10% 30% 30% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: pmw-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-park-murderers-wait .figure1 {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #0a0a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmw-figure 6s ease-in-out infinite 0s;
}
.scn-park-murderers-wait .figure2 {
  position: absolute; bottom: 38%; left: 45%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #0a0a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmw-figure 6s ease-in-out infinite 1.5s;
}
.scn-park-murderers-wait .figure3 {
  position: absolute; bottom: 38%; left: 60%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #0a0a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmw-figure 6s ease-in-out infinite 3s;
}
.scn-park-murderers-wait .palace-silhouette {
  position: absolute; bottom: 38%; left: 70%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  clip-path: polygon(0% 100%, 0% 30%, 20% 30%, 20% 10%, 40% 10%, 40% 30%, 60% 30%, 60% 10%, 80% 10%, 80% 30%, 100% 30%, 100% 100%);
  opacity: 0.8;
  animation: pmw-palace 8s ease-in-out infinite alternate;
}
@keyframes pmw-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes pmw-tree { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes pmw-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pmw-palace { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:0.9; transform: translateY(-2px); } 100% { opacity:0.6; transform: translateY(0); } }

/* country-near-dunsinane-malcolm-army */
.scn-country-near-dunsinane-malcolm-army {
  background:
    linear-gradient(180deg, #87CEEB 0%, #87CEEB 30%, #F4A460 35%, #F4A460 40%, #4682B4 60%, #2E3B4E 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 50%);
}
.scn-country-near-dunsinane-malcolm-army .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6ca0e0 0%, #b0d0f0 40%);
  animation: cm-sky 40s linear infinite;
}
.scn-country-near-dunsinane-malcolm-army .sun {
  position: absolute; top: 8%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 60%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.6);
  animation: cm-sun 6s ease-in-out infinite alternate;
}
.scn-country-near-dunsinane-malcolm-army .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #556B2F 0%, #2F4F2F 100%);
  border-radius: 80% 50% 0 0 / 60% 70% 0 0;
  transform-origin: bottom center;
  animation: cm-hills 8s ease-in-out infinite alternate;
}
.scn-country-near-dunsinane-malcolm-army .banner-1 {
  position: absolute; bottom: 38%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #a0461a 0%, #6b2a0e 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top left;
  animation: cm-banner 4s ease-in-out infinite alternate;
}
.scn-country-near-dunsinane-malcolm-army .banner-2 {
  position: absolute; bottom: 38%; right: 25%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #a0461a 0%, #6b2a0e 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top left;
  animation: cm-banner 4s ease-in-out infinite alternate-reverse;
  animation-delay: 1s;
}
.scn-country-near-dunsinane-malcolm-army .soldier-1 {
  position: absolute; bottom: 32%; left: 10%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cm-soldier 3s ease-in-out infinite;
}
.scn-country-near-dunsinane-malcolm-army .soldier-2 {
  position: absolute; bottom: 32%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cm-soldier 3s ease-in-out infinite;
  animation-delay: 0.5s;
}
@keyframes cm-sky { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes cm-sun { 0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 40px 15px rgba(255,215,0,0.5); } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 70px 25px rgba(255,215,0,0.8); } 100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 40px 15px rgba(255,215,0,0.5); } }
@keyframes cm-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cm-banner { 0% { transform: skewX(-5deg) rotate(-5deg); } 50% { transform: skewX(5deg) rotate(5deg); } 100% { transform: skewX(-5deg) rotate(-5deg); } }
@keyframes cm-soldier { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(15px) rotate(0deg); } 100% { transform: translateX(20px) rotate(-2deg); } }

/* dunsinane-room-macbeth-brave */
.scn-dunsinane-room-macbeth-brave {
  background:
    linear-gradient(180deg, #2c1e1e 0%, #1a1212 40%, #0d0808 100%),
    radial-gradient(ellipse at 50% 30%, #5c3a2a 0%, transparent 60%);
}
.scn-dunsinane-room-macbeth-brave .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a2a 0%, #1e1414 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-dunsinane-room-macbeth-brave .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%);
}
.scn-dunsinane-room-macbeth-brave .fireplace {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px #8b4513, 0 0 40px #8b4513;
  animation: dr-fireplace 4s ease-in-out infinite alternate;
}
.scn-dunsinane-room-macbeth-brave .figure {
  position: absolute; bottom: 28%; 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: dr-figure 5s ease-in-out infinite alternate;
}
.scn-dunsinane-room-macbeth-brave .sword {
  position: absolute; bottom: 40%; left: 32%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 60% 60%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  box-shadow: 0 0 8px 2px #8b7355;
  animation: dr-sword 3s ease-in-out infinite alternate;
}
.scn-dunsinane-room-macbeth-brave .torch {
  position: absolute; bottom: 35%; left: 65%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #4a2208 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #ff8c00;
  animation: dr-torch 2s ease-in-out infinite alternate;
}
.scn-dunsinane-room-macbeth-brave .tapestry {
  position: absolute; top: 10%; right: 10%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: top center;
  animation: dr-tapestry 6s ease-in-out infinite alternate;
}
@keyframes dr-fireplace { 0% { box-shadow: inset 0 0 20px #8b4513, 0 0 30px #8b4513; } 50% { box-shadow: inset 0 0 30px #ff8c00, 0 0 50px #ff8c00; } 100% { box-shadow: inset 0 0 20px #8b4513, 0 0 30px #8b4513; } }
@keyframes dr-figure { 0% { transform: translateY(0) rotate(-0.5deg) scaleY(1); } 50% { transform: translateY(-2px) rotate(0.5deg) scaleY(1.01); } 100% { transform: translateY(0) rotate(-0.5deg) scaleY(1); } }
@keyframes dr-sword { 0% { transform: rotate(-20deg) translateX(0); opacity: 0.8; } 50% { transform: rotate(-15deg) translateX(2px); opacity: 1; } 100% { transform: rotate(-20deg) translateX(0); opacity: 0.8; } }
@keyframes dr-torch { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px #ff8c00; } 50% { transform: translateY(-1px) scale(1.02); box-shadow: 0 0 35px #ffa500; } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 20px #ff8c00; } }
@keyframes dr-tapestry { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.01); } 100% { transform: rotate(-2deg) scaleX(1); } }

/* birnam-wood-malcolm-strategy */
.scn-birnam-wood-malcolm-strategy {
  background:
    linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 40%, #2a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a8a 0%, transparent 60%);
}
.scn-birnam-wood-malcolm-strategy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #5a6a5a 100%);
  animation: bw-sky 60s linear infinite;
}
.scn-birnam-wood-malcolm-strategy .forest-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(90deg, #3a4a3a 0px, #3a4a3a 20px, #4a5a4a 20px, #4a5a4a 40px);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  opacity: 0.6;
}
.scn-birnam-wood-malcolm-strategy .trees-1 {
  position: absolute; bottom: 35%; left: 10%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: bw-trees 7s ease-in-out infinite alternate;
}
.scn-birnam-wood-malcolm-strategy .trees-2 {
  position: absolute; bottom: 35%; left: 25%; width: 16px; height: 130px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: bw-trees 7s ease-in-out infinite alternate-reverse;
  animation-delay: 1s;
}
.scn-birnam-wood-malcolm-strategy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
}
.scn-birnam-wood-malcolm-strategy .soldier-1 {
  position: absolute; bottom: 25%; left: 40%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bw-soldier 4s ease-in-out infinite alternate;
}
.scn-birnam-wood-malcolm-strategy .soldier-2 {
  position: absolute; bottom: 25%; left: 48%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bw-soldier 4s ease-in-out infinite alternate-reverse;
  animation-delay: 0.7s;
}
.scn-birnam-wood-malcolm-strategy .banner {
  position: absolute; bottom: 35%; left: 60%; width: 24px; height: 40px;
  background: linear-gradient(135deg, #a0461a 0%, #6b2a0e 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top left;
  animation: bw-banner 5s ease-in-out infinite alternate;
}
@keyframes bw-sky { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes bw-trees { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes bw-soldier { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bw-banner { 0% { transform: skewX(-3deg) rotate(-4deg); } 50% { transform: skewX(3deg) rotate(4deg); } 100% { transform: skewX(-3deg) rotate(-4deg); } }

/* dunsinane-walls-macbeth-news */
.scn-dunsinane-walls-macbeth-news {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%);
}
.scn-dunsinane-walls-macbeth-news .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: dw-sky 50s linear infinite;
}
.scn-dunsinane-walls-macbeth-news .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-dunsinane-walls-macbeth-news .battlements {
  position: absolute; top: 36%; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 15px, transparent 15px, transparent 25px);
  animation: dw-battlements 8s ease-in-out infinite alternate;
}
.scn-dunsinane-walls-macbeth-news .figure {
  position: absolute; bottom: 30%; left: 30%; width: 18px; 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: dw-figure 5s ease-in-out infinite alternate;
}
.scn-dunsinane-walls-macbeth-news .banner-1 {
  position: absolute; bottom: 50%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #a0461a 0%, #6b2a0e 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top left;
  animation: dw-banner 4s ease-in-out infinite alternate;
}
.scn-dunsinane-walls-macbeth-news .banner-2 {
  position: absolute; bottom: 50%; right: 20%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #a0461a 0%, #6b2a0e 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top left;
  animation: dw-banner 4s ease-in-out infinite alternate-reverse;
  animation-delay: 0.5s;
}
.scn-dunsinane-walls-macbeth-news .soldier-1 {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dw-soldier 3s ease-in-out infinite alternate;
}
.scn-dunsinane-walls-macbeth-news .soldier-2 {
  position: absolute; bottom: 25%; left: 55%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dw-soldier 3s ease-in-out infinite alternate-reverse;
  animation-delay: 0.3s;
}
@keyframes dw-sky { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes dw-battlements { 0% { transform: translateY(0); opacity: 0.7; } 50% { transform: translateY(-2px); opacity: 0.9; } 100% { transform: translateY(0); opacity: 0.7; } }
@keyframes dw-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes dw-banner { 0% { transform: skewX(-5deg) rotate(-5deg); } 50% { transform: skewX(5deg) rotate(5deg); } 100% { transform: skewX(-5deg) rotate(-5deg); } }
@keyframes dw-soldier { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

.scn-castle-macbeth-soliloquy-dagger {
  background:
    linear-gradient(180deg, #0d0504 0%, #1f0b06 30%, #2a120a 70%, #1a0a05 100%),
    radial-gradient(ellipse at 50% 70%, #3a1a10 0%, transparent 60%);
}
.scn-castle-macbeth-soliloquy-dagger .bg-vault { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #0a0504 0%, #1a0d08 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; box-shadow:inset 0 12px 30px rgba(0,0,0,.7); }
.scn-castle-macbeth-soliloquy-dagger .wall-sconce { position:absolute; bottom:40%; left:50%; width:8px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, #2a1510 0%, #0d0504 100%); border-radius:2px; }
.scn-castle-macbeth-soliloquy-dagger .table-heavy { position:absolute; bottom:20%; left:50%; width:180px; height:65px; transform:translateX(-50%); background:linear-gradient(180deg, #2a1a10 0%, #150a05 100%); border-radius:6px 6px 2px 2px; box-shadow:0 12px 24px rgba(0,0,0,.8), inset 0 2px 0 #3a2218; }
.scn-castle-macbeth-soliloquy-dagger .goblet-wine { position:absolute; bottom:32%; left:50%; width:18px; height:22px; transform:translateX(-40%); background:radial-gradient(ellipse at 50% 30%, #6a2a1a 0%, #3a1008 100%); border-radius:0 0 30% 30% / 0 0 50% 50%; box-shadow:inset 0 -4px 8px #1a0502; animation:cm-goblet 8s ease-in-out infinite; }
.scn-castle-macbeth-soliloquy-dagger .dagger-float { position:absolute; bottom:45%; left:50%; width:8px; height:55px; transform:translateX(-70%); background:linear-gradient(180deg, #8a7a6a 0%, #c8b8a8 40%, #8a7a6a 100%); border-radius:2px 2px 40% 40%; box-shadow:0 0 8px rgba(200,180,160,.4); animation:cm-float 5s ease-in-out infinite, cm-glow 3s ease-in-out infinite alternate; }
.scn-castle-macbeth-soliloquy-dagger .dagger-halo { position:absolute; bottom:45%; left:50%; width:30px; height:60px; transform:translateX(-70%); background:radial-gradient(ellipse at 50% 40%, rgba(200,160,120,.15) 0%, transparent 70%); border-radius:50%; opacity:0; animation:cm-halo 5s ease-in-out infinite; }
.scn-castle-macbeth-soliloquy-dagger .ember-glow { position:absolute; bottom:15%; left:20%; width:40px; height:40px; background:radial-gradient(circle, #b85f3a 0%, #7a3a1a 40%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(184,95,58,.3); animation:cm-ember 4s ease-in-out infinite alternate; }
@keyframes cm-float {
  0% { transform: translateX(-70%) translateY(0) rotate(-2deg); }
  45% { transform: translateX(-70%) translateY(-12px) rotate(1deg); }
  60% { transform: translateX(-70%) translateY(-6px) rotate(-1deg); }
  100% { transform: translateX(-70%) translateY(0) rotate(0); }
}
@keyframes cm-glow {
  0% { box-shadow: 0 0 10px 2px rgba(200,180,160,.2); opacity:.7; }
  50% { box-shadow: 0 0 25px 8px rgba(200,180,160,.5); opacity:1; }
  100% { box-shadow: 0 0 8px 2px rgba(200,180,160,.15); opacity:.6; }
}
@keyframes cm-halo {
  0%, 100% { opacity: 0; transform: translateX(-70%) scale(0.8); }
  50% { opacity: 1; transform: translateX(-70%) scale(1.2); }
}
@keyframes cm-goblet {
  0%, 100% { box-shadow: inset 0 -4px 8px #1a0502; }
  50% { box-shadow: inset 0 -2px 12px #8a3020, 0 0 12px rgba(138,48,32,.3); }
}
@keyframes cm-ember {
  0% { transform: scale(1) translateX(0); opacity:.6; }
  50% { transform: scale(1.15) translateX(5px); opacity:1; }
  100% { transform: scale(0.95) translateX(-3px); opacity:.7; }
}

.scn-castle-lady-enter {
  background:
    linear-gradient(180deg, #0a0605 0%, #150c08 30%, #2a1610 60%, #1a0c08 100%),
    radial-gradient(ellipse at 50% 30%, #3a1a12 0%, transparent 70%);
}
.scn-castle-lady-enter .floor-stone { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a0e0a 0%, #0d0805 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,.6); }
.scn-castle-lady-enter .arch-l { position:absolute; bottom:20%; left:0; width:45%; height:80%; background:linear-gradient(90deg, #150c08 0%, #0a0605 100%); border-radius:0 40% 0 0 / 0 80% 0 0; box-shadow:inset -10px 0 20px rgba(0,0,0,.5); }
.scn-castle-lady-enter .arch-r { position:absolute; bottom:20%; right:0; width:45%; height:80%; background:linear-gradient(90deg, #0a0605 0%, #150c08 100%); border-radius:40% 0 0 0 / 80% 0 0 0; box-shadow:inset 10px 0 20px rgba(0,0,0,.5); }
.scn-castle-lady-enter .torch-left { position:absolute; bottom:35%; left:20%; width:6px; height:35px; background:linear-gradient(180deg, #3a1a10 0%, #0a0504 100%); border-radius:2px; }
.scn-castle-lady-enter .torch-left::before { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:14px; height:14px; background:radial-gradient(circle, #b85f3a 0%, #7a2a12 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 8px rgba(184,95,58,.4); animation:cl-flicker 3s ease-in-out infinite alternate; }
.scn-castle-lady-enter .torch-right { position:absolute; bottom:35%; right:20%; width:6px; height:35px; background:linear-gradient(180deg, #3a1a10 0%, #0a0504 100%); border-radius:2px; }
.scn-castle-lady-enter .torch-right::before { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:14px; height:14px; background:radial-gradient(circle, #b85f3a 0%, #7a2a12 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 8px rgba(184,95,58,.4); animation:cl-flicker 3.5s ease-in-out infinite alternate; }
.scn-castle-lady-enter .lady-glide { position:absolute; bottom:15%; left:-10%; width:35px; height:100px; background:linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow:0 0 20px rgba(0,0,0,.5); animation:cl-glide 14s ease-in-out infinite; }
.scn-castle-lady-enter .train-drag { position:absolute; bottom:10%; left:-15%; width:60px; height:15px; background:linear-gradient(180deg, #1a1210 0%, #0d0605 100%); border-radius:0 0 50% 50% / 0 0 100% 100%; animation:cl-train 14s ease-in-out infinite; }
.scn-castle-lady-enter .shadow-sweep { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.6) 70%, transparent 100%); animation:cl-sweep 14s ease-in-out infinite; }
@keyframes cl-glide {
  0% { transform: translateX(0) scaleY(0.9); opacity:0; }
  15% { transform: translateX(40px) scaleY(1); opacity:1; }
  75% { transform: translateX(180px) scaleY(1); opacity:1; }
  100% { transform: translateX(280px) scaleY(0.95); opacity:0; }
}
@keyframes cl-train {
  0% { transform: translateX(0) scaleX(0.8); opacity:0; }
  15% { transform: translateX(40px) scaleX(1); opacity:0.8; }
  75% { transform: translateX(180px) scaleX(1); opacity:0.8; }
  100% { transform: translateX(280px) scaleX(0.9); opacity:0; }
}
@keyframes cl-sweep {
  0% { opacity: 0; transform: scaleY(0.5); }
  20% { opacity: 1; transform: scaleY(1); }
  80% { opacity: 1; transform: scaleY(1); }
  100% { opacity: 0; transform: scaleY(0.6); }
}
@keyframes cl-flicker {
  0% { box-shadow: 0 0 15px 5px rgba(184,95,58,.4); opacity:.8; transform:translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 25px 10px rgba(184,95,58,.6); opacity:1; transform:translateX(-50%) scale(1.1); }
  100% { box-shadow: 0 0 10px 3px rgba(184,95,58,.3); opacity:.7; transform:translateX(-50%) scale(0.95); }
}

.scn-castle-lady-taunt {
  background:
    linear-gradient(180deg, #0a0504 0%, #1c0c08 30%, #2a1410 70%, #150a06 100%),
    radial-gradient(ellipse at 30% 60%, #3a1a12 0%, transparent 60%);
}
.scn-castle-lady-taunt .wall-back { position:absolute; inset:0; background:linear-gradient(135deg, #1a0c0a 0%, #0d0806 100%); box-shadow:inset 0 0 40px rgba(0,0,0,.5); }
.scn-castle-lady-taunt .pillar-mass { position:absolute; bottom:0; left:65%; width:80px; height:90%; background:linear-gradient(90deg, #1a0e0c 0%, #0d0806 100%); border-radius:10px 10px 0 0; box-shadow:-10px 0 30px rgba(0,0,0,.6); }
.scn-castle-lady-taunt .brazier-fire { position:absolute; bottom:10%; left:25%; width:40px; height:50px; background:radial-gradient(ellipse at 50% 60%, #b85f3a 0%, #7a2a12 50%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 30px rgba(184,95,58,.4); animation:ct-burn 4s ease-in-out infinite alternate; }
.scn-castle-lady-taunt .macbeth-cower { position:absolute; bottom:10%; left:55%; width:40px; height:85px; background:linear-gradient(180deg, #150e0c 0%, #0a0605 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow:-5px 0 15px rgba(0,0,0,.5); animation:ct-cower 6s ease-in-out infinite; }
.scn-castle-lady-taunt .lady-taunt-body { position:absolute; bottom:10%; left:15%; width:45px; height:110px; background:linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); border-radius:50% 50% 40% 40% / 80% 80% 30% 30%; box-shadow:5px 0 20px rgba(0,0,0,.5); animation:ct-taunt-body 6s ease-in-out infinite; }
.scn-castle-lady-taunt .lady-taunt-arm { position:absolute; bottom:45%; left:32%; width:12px; height:40px; transform-origin:bottom center; background:linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow:2px 0 8px rgba(0,0,0,.4); animation:ct-jab 3s ease-in-out infinite; }
.scn-castle-lady-taunt .sparks-rise { position:absolute; bottom:25%; left:28%; width:5px; height:5px; background:#e8a060; border-radius:50%; box-shadow:0 0 6px 2px rgba(232,160,96,.8); animation:ct-spark 2.5s ease-out infinite; }
@keyframes ct-burn {
  0% { transform: scale(1) translateY(0); opacity:.8; box-shadow: 0 0 40px 20px rgba(184,95,58,.3); }
  50% { transform: scale(1.1) translateY(-5px); opacity:1; box-shadow: 0 0 70px 35px rgba(184,95,58,.5); }
  100% { transform: scale(0.95) translateY(2px); opacity:.9; box-shadow: 0 0 30px 15px rgba(184,95,58,.25); }
}
@keyframes ct-cower {
  0% { transform: translateX(0) scale(1); }
  30% { transform: translateX(-8px) scale(0.95); }
  60% { transform: translateX(-3px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes ct-taunt-body {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ct-jab {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-20deg) translateX(-8px); }
  50% { transform: rotate(-5deg) translateX(-2px); }
  75% { transform: rotate(-25deg) translateX(-10px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ct-spark {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-60px) scale(0); opacity: 0; }
}

.scn-castle-lady-challenges {
  background:
    linear-gradient(180deg, #050203 0%, #12080a 40%, #1c0c0a 80%, #0d0504 100%),
    radial-gradient(ellipse at 50% 20%, #2a1410 0%, transparent 70%);
}
.scn-castle-lady-challenges .ceiling-low { position:absolute; top:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #0a0405 0%, #12080a 100%); border-radius:0 0 60% 60% / 0 0 40% 40%; box-shadow:inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-castle-lady-challenges .wall-close { position:absolute; inset:20% 0 0 0; background:linear-gradient(180deg, #1a0c0a 0%, #0d0605 100%); }
.scn-castle-lady-challenges .macbeth-shadow { position:absolute; bottom:0; left:40%; width:60px; height:80px; background:radial-gradient(ellipse at 50% 100%, #050203 0%, transparent 80%); border-radius:50%; transform:translateX(-50%); animation:ch-squirm 8s ease-in-out infinite; }
.scn-castle-lady-challenges .lady-tower { position:absolute; bottom:10%; left:50%; width:90px; height:180px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius:50% 50% 40% 40% / 80% 80% 30% 30%; box-shadow:0 10px 40px rgba(0,0,0,.7); animation:ch-loom 10s ease-in-out infinite; }
.scn-castle-lady-challenges .lady-gaze { position:absolute; bottom:65%; left:50%; width:8px; height:4px; transform:translateX(-50%); background:radial-gradient(ellipse, #b85f3a 0%, transparent 100%); border-radius:50%; box-shadow:0 0 15px 5px rgba(184,95,58,.4); animation:ch-gaze 4s ease-in-out infinite alternate; }
.scn-castle-lady-challenges .torch-halo { position:absolute; bottom:20%; left:20%; width:30px; height:30px; background:radial-gradient(circle, #b85f3a 0%, #7a2a12 40%, transparent 70%); border-radius:50%; box-shadow:0 0 80px 40px rgba(184,95,58,.3); animation:ch-pulse 3s ease-in-out infinite alternate; }
.scn-castle-lady-challenges .torch-gutter { position:absolute; bottom:20%; right:20%; width:30px; height:30px; background:radial-gradient(circle, #b85f3a 0%, #7a2a12 40%, transparent 70%); border-radius:50%; box-shadow:0 0 80px 40px rgba(184,95,58,.3); animation:ch-pulse 4s ease-in-out infinite alternate; }
@keyframes ch-loom {
  0% { transform: translateX(-50%) scale(1) translateY(0); }
  50% { transform: translateX(-50%) scale(1.04) translateY(-8px); }
  100% { transform: translateX(-50%) scale(1) translateY(0); }
}
@keyframes ch-gaze {
  0% { box-shadow: 0 0 10px 2px rgba(184,95,58,.3); opacity:.6; }
  50% { box-shadow: 0 0 25px 8px rgba(184,95,58,.6); opacity:1; }
  100% { box-shadow: 0 0 8px 2px rgba(184,95,58,.2); opacity:.5; }
}
@keyframes ch-pulse {
  0% { transform: scale(1); opacity:.6; box-shadow: 0 0 50px 20px rgba(184,95,58,.2); }
  50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 90px 50px rgba(184,95,58,.4); }
  100% { transform: scale(0.95); opacity:.7; box-shadow: 0 0 40px 15px rgba(184,95,58,.15); }
}
@keyframes ch-squirm {
  0% { transform: translateX(-50%) scaleX(1); }
  40% { transform: translateX(-50%) scaleX(1.1) scaleY(0.9); }
  80% { transform: translateX(-50%) scaleX(0.95) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleX(1); }
}

.scn-court-macbeth-dagger-vision {
  background: linear-gradient(180deg, #0f0c1e 0%, #1a1633 30%, #241f42 60%, #0a0815 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a5e 0%, transparent 60%);
}
.scn-court-macbeth-dagger-vision .vault {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, #2a2255 0%, #0f0c1e 80%);
  animation: sc1-vault 20s ease-in-out infinite alternate;
}
.scn-court-macbeth-dagger-vision .pillar-left {
  position: absolute; left: 8%; top: 0; bottom: 20%; width: 6%;
  background: linear-gradient(90deg, #1a1a30 0%, #2c2a4a 50%, #1a1a30 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,.6);
  animation: sc1-pillar 15s ease-in-out infinite;
}
.scn-court-macbeth-dagger-vision .pillar-right {
  position: absolute; right: 8%; top: 0; bottom: 20%; width: 6%;
  background: linear-gradient(90deg, #1a1a30 0%, #2c2a4a 50%, #1a1a30 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,.6);
  animation: sc1-pillar 15s ease-in-out infinite 2s;
}
.scn-court-macbeth-dagger-vision .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a30 0%, #0f0c1e 100%);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
}
.scn-court-macbeth-dagger-vision .dagger {
  position: absolute; left: 50%; top: 35%; width: 8%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0c0d0 0%, #808090 40%, #606070 100%);
  clip-path: polygon(50% 0%, 55% 15%, 55% 80%, 50% 100%, 45% 80%, 45% 15%);
  box-shadow: 0 0 30px 10px rgba(180,180,220,.4);
  animation: sc1-dagger 4s ease-in-out infinite alternate;
}
.scn-court-macbeth-dagger-vision .vision-glow {
  position: absolute; left: 50%; top: 35%; width: 20%; height: 30%;
  transform: translate(-50%, -10%);
  background: radial-gradient(circle, rgba(200,180,255,.3) 0%, transparent 70%);
  animation: sc1-glow 3s ease-in-out infinite alternate;
}
.scn-court-macbeth-dagger-vision .figure-reach {
  position: absolute; left: 25%; bottom: 25%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0c1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-reach 5s ease-in-out infinite;
}
@keyframes sc1-vault { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sc1-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes sc1-dagger { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); opacity: 0.7 } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) rotate(0deg) scale(1); opacity: 0.8 } }
@keyframes sc1-glow { 0% { opacity: 0.4; transform: translate(-50%, -10%) scale(0.9) } 50% { opacity: 0.7; transform: translate(-50%, -10%) scale(1.1) } 100% { opacity: 0.5; transform: translate(-50%, -10%) scale(0.95) } }
@keyframes sc1-reach { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-10deg) translateX(20px) } 50% { transform: rotate(-5deg) translateX(40px) } 75% { transform: rotate(-10deg) translateX(20px) } 100% { transform: rotate(-5deg) translateX(0) } }

.scn-same-lady-macbeth-brave {
  background: linear-gradient(180deg, #3a1010 0%, #5e1a1d 30%, #2a0a0a 100%),
              radial-gradient(ellipse at 50% 40%, #6a2a2a 0%, transparent 70%);
}
.scn-same-lady-macbeth-brave .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a0a0a 0%, transparent 100%);
  animation: sc2-wall 12s ease-in-out infinite alternate;
}
.scn-same-lady-macbeth-brave .door {
  position: absolute; left: 30%; top: 10%; width: 40%; height: 60%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: sc2-door 8s ease-in-out infinite;
}
.scn-same-lady-macbeth-brave .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
}
.scn-same-lady-macbeth-brave .candle {
  position: absolute; bottom: 20%; left: 45%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 4% 4%;
}
.scn-same-lady-macbeth-brave .flame {
  position: absolute; bottom: 29%; left: 45.5%; width: 3%; height: 8%;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 40%, transparent 70%);
  border-radius: 50%;
  animation: sc2-flame 0.4s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.6);
}
.scn-same-lady-macbeth-brave .owl {
  position: absolute; right: 15%; top: 15%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc2-owl 6s ease-in-out infinite;
}
.scn-same-lady-macbeth-brave .lady-figure {
  position: absolute; left: 10%; bottom: 15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0c1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-lady 4s ease-in-out infinite;
}
@keyframes sc2-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sc2-door { 0% { transform: rotateY(0deg) } 25% { transform: rotateY(5deg) } 50% { transform: rotateY(0deg) } 75% { transform: rotateY(-5deg) } 100% { transform: rotateY(0deg) } }
@keyframes sc2-flame { 0% { transform: scaleY(0.9) translateY(2px); opacity: 0.8 } 50% { transform: scaleY(1.1) translateY(-1px); opacity: 1 } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.9 } }
@keyframes sc2-owl { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes sc2-lady { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(2deg) translateX(5px) } 50% { transform: rotate(-1deg) translateX(10px) } 75% { transform: rotate(2deg) translateX(5px) } 100% { transform: rotate(0deg) translateX(0) } }

.scn-same-lady-afraid {
  background: linear-gradient(180deg, #0f0f1e 0%, #1a1a2e 40%, #2a2a3e 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, transparent 70%);
}
.scn-same-lady-afraid .curtain-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  animation: sc3-curtain 10s ease-in-out infinite;
}
.scn-same-lady-afraid .curtain-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  animation: sc3-curtain 10s ease-in-out infinite 2s;
}
.scn-same-lady-afraid .bed {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-same-lady-afraid .sleeping-form {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc3-sleep 6s ease-in-out infinite;
}
.scn-same-lady-afraid .daggers {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 10%;
  background: repeating-linear-gradient(45deg, #b0a0a0 0px, #b0a0a0 2px, #808080 2px, #808080 4px);
  clip-path: polygon(0% 0%, 25% 0%, 25% 100%, 0% 100%, 100% 100%, 75% 100%, 75% 0%, 100% 0%);
  animation: sc3-daggers 4s ease-in-out infinite alternate;
  box-shadow: 0 0 10px 2px rgba(200,180,180,.2);
}
.scn-same-lady-afraid .shadow-lady {
  position: absolute; right: 5%; top: 40%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc3-shadow 3s ease-in-out infinite alternate;
}
@keyframes sc3-curtain { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.05) translateX(5px) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes sc3-sleep { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sc3-daggers { 0% { opacity: 0.6; transform: rotate(-5deg) } 50% { opacity: 1; transform: rotate(5deg) } 100% { opacity: 0.7; transform: rotate(0deg) } }
@keyframes sc3-shadow { 0% { opacity: 0.3; transform: translateY(0) } 100% { opacity: 0.7; transform: translateY(-10px) } }

.scn-same-macbeth-deed-done {
  background: linear-gradient(180deg, #0a0815 0%, #1a1628 30%, #0f0c1e 100%),
              radial-gradient(ellipse at 50% 20%, #1a1628 0%, transparent 60%);
}
.scn-same-macbeth-deed-done .stairs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 10px, #1a1a2a 10px, #1a1a2a 12px);
  transform: perspective(400px) rotateX(30deg);
  transform-origin: bottom;
  animation: sc4-stairs 15s ease-in-out infinite alternate;
}
.scn-same-macbeth-deed-done .wall-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, #0a0815 100%);
}
.scn-same-macbeth-deed-done .figure-macbeth {
  position: absolute; left: 50%; bottom: 55%; width: 15%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0f0c1e 0%, #1a1628 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc4-figure 5s ease-in-out infinite;
}
.scn-same-macbeth-deed-done .hands {
  position: absolute; left: 45%; bottom: 68%; width: 10%; height: 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc4-hands 3s ease-in-out infinite alternate;
  box-shadow: 0 0 12px 4px rgba(100,30,20,.3);
}
.scn-same-macbeth-deed-done .blood-drip {
  position: absolute; left: 49%; bottom: 62%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 50%;
  animation: sc4-drip 2s ease-in-out infinite;
}
.scn-same-macbeth-deed-done .cricket-glow {
  position: absolute; left: 70%; bottom: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, #a0c060 0%, #608030 50%, transparent 100%);
  border-radius: 50%;
  animation: sc4-cricket 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 10px 2px rgba(160,192,96,.4);
}
@keyframes sc4-stairs { 0% { transform: perspective(400px) rotateX(30deg) } 50% { transform: perspective(400px) rotateX(32deg) } 100% { transform: perspective(400px) rotateX(28deg) } }
@keyframes sc4-figure { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-5px) } 100% { transform: translateX(-50%) } }
@keyframes sc4-hands { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes sc4-drip { 0% { transform: scaleY(0.5); opacity: 0.8 } 50% { transform: scaleY(1.5); opacity: 1 } 100% { transform: scaleY(0.5); opacity: 0.6 } }
@keyframes sc4-cricket { 0% { opacity: 0.3; transform: scale(0.5) } 50% { opacity: 0.8; transform: scale(1.2) } 100% { opacity: 0.2; transform: scale(0.5) } }

.scn-court-macbeth-enters {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b263b 60%, #0d1b2a 100%), radial-gradient(ellipse at 30% 10%, rgba(224,225,221,0.2) 0%, transparent 50%);
}
.scn-court-macbeth-enters .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1b263b 0%, #0d1b2a 100%); animation: cme-sky 12s ease-in-out infinite alternate;
}
.scn-court-macbeth-enters .moon {
  position: absolute; top: 8%; left: 25%; width: 50px; height: 50px; background: radial-gradient(circle, #e0e1dd 0%, #c0c5ce 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(224,225,221,0.5); animation: cme-moon 8s ease-in-out infinite alternate;
}
.scn-court-macbeth-enters .wall {
  position: absolute; bottom: 0; left: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #2c3e50 0%, #0d1b2a 100%); border-right: 3px solid #415a77; box-shadow: 5px 0 15px rgba(0,0,0,0.6); animation: cme-wall 10s ease-in-out infinite alternate;
}
.scn-court-macbeth-enters .floor {
  position: absolute; bottom: 0; left: 20%; right: 0; height: 30%; background: linear-gradient(180deg, #0d1b2a 0%, #050a12 100%);
}
.scn-court-macbeth-enters .macbeth {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 70px; background: linear-gradient(180deg, #1b263b 0%, #0d1b2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: cme-macbeth 4s ease-in-out infinite;
}
.scn-court-macbeth-enters .servant {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 55px; background: linear-gradient(180deg, #2c3e50 0%, #1b263b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: cme-servant 4s ease-in-out infinite;
}
.scn-court-macbeth-enters .torch-glow {
  position: absolute; bottom: 55%; left: 38%; width: 15px; height: 15px; background: radial-gradient(circle, #ffd680 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,214,128,0.7); animation: cme-torch 1s ease-in-out infinite alternate;
}
.scn-court-macbeth-enters .shadow {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 10px; background: rgba(0,0,0,0.6); border-radius: 50%; transform: scaleX(0.8); animation: cme-shadow 4s ease-in-out infinite;
}
@keyframes cme-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cme-moon { 0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(224,225,221,0.3) } 50% { transform: scale(1.05); box-shadow: 0 0 40px 15px rgba(224,225,221,0.5) } 100% { transform: scale(0.98); box-shadow: 0 0 35px 12px rgba(224,225,221,0.4) } }
@keyframes cme-wall { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes cme-macbeth { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cme-servant { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cme-torch { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.9; transform: scale(0.9); } }
@keyframes cme-shadow { 0% { transform: scaleX(0.8) translateX(0); } 50% { transform: scaleX(0.8) translateX(2px); } 100% { transform: scaleX(0.8) translateX(0); } }

.scn-court-macbeth-apology {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b263b 50%, #0d1b2a 100%), radial-gradient(ellipse at 50% 20%, rgba(224,225,221,0.15) 0%, transparent 50%);
}
.scn-court-macbeth-apology .sky {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #1b263b 0%, transparent 100%); animation: cma-sky 15s ease-in-out infinite alternate;
}
.scn-court-macbeth-apology .window {
  position: absolute; top: 10%; left: 35%; width: 80px; height: 60px; background: linear-gradient(180deg, #778da9 0%, #415a77 100%); border: 4px solid #1b263b; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: cma-window 12s ease-in-out infinite alternate;
}
.scn-court-macbeth-apology .table {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 20px; background: linear-gradient(180deg, #2c3e50 0%, #1b263b 100%); border-radius: 4px; box-shadow: 0 5px 10px rgba(0,0,0,0.5); animation: cma-table 8s ease-in-out infinite alternate;
}
.scn-court-macbeth-apology .diamond {
  position: absolute; bottom: 37%; left: 46%; width: 20px; height: 20px; background: linear-gradient(135deg, #e0e1dd 0%, #c0c5ce 50%, #a0a5aa 100%); transform: rotate(45deg); box-shadow: 0 0 15px 5px rgba(224,225,221,0.4); animation: cma-diamond 6s ease-in-out infinite alternate;
}
.scn-court-macbeth-apology .figure-a {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 65px; background: linear-gradient(180deg, #1b263b 0%, #0d1b2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: cma-figure-a 5s ease-in-out infinite;
}
.scn-court-macbeth-apology .figure-b {
  position: absolute; bottom: 28%; right: 35%; width: 28px; height: 65px; background: linear-gradient(180deg, #2c3e50 0%, #1b263b 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: cma-figure-b 5s ease-in-out infinite;
}
.scn-court-macbeth-apology .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(180deg, #0d1b2a 0%, #050a12 100%);
}
@keyframes cma-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cma-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cma-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cma-diamond { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(1.1); } 100% { transform: rotate(45deg) scale(0.9); } }
@keyframes cma-figure-a { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cma-figure-b { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-court-banquo-agrees {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b263b 60%, #0d1b2a 100%), radial-gradient(ellipse at 20% 15%, rgba(224,225,221,0.1) 0%, transparent 40%);
}
.scn-court-banquo-agrees .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #1b263b 0%, transparent 100%); animation: cba-sky 14s ease-in-out infinite alternate;
}
.scn-court-banquo-agrees .arch {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, #2c3e50 0%, #1b263b 100%); border-radius: 40% 40% 0 0; border: 3px solid #415a77; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: cba-arch 10s ease-in-out infinite alternate;
}
.scn-court-banquo-agrees .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #0d1b2a 0%, #050a12 100%);
}
.scn-court-banquo-agrees .banquo {
  position: absolute; bottom: 28%; left: 40%; width: 28px; height: 65px; background: linear-gradient(180deg, #2c3e50 0%, #1b263b 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: cba-banquo 4s ease-in-out infinite;
}
.scn-court-banquo-agrees .macbeth {
  position: absolute; bottom: 28%; right: 35%; width: 28px; height: 65px; background: linear-gradient(180deg, #1b263b 0%, #0d1b2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: cba-macbeth 4s ease-in-out infinite;
}
.scn-court-banquo-agrees .lantern {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 18px; background: radial-gradient(circle, #ffd680 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 25px 8px rgba(255,214,128,0.6); animation: cba-lantern 3s ease-in-out infinite alternate;
}
.scn-court-banquo-agrees .shadow-banquo {
  position: absolute; bottom: 28%; left: 38%; width: 35px; height: 8px; background: rgba(0,0,0,0.5); border-radius: 50%; animation: cba-shadow-banquo 4s ease-in-out infinite;
}
.scn-court-banquo-agrees .shadow-macbeth {
  position: absolute; bottom: 28%; right: 33%; width: 35px; height: 8px; background: rgba(0,0,0,0.5); border-radius: 50%; animation: cba-shadow-macbeth 4s ease-in-out infinite;
}
@keyframes cba-sky { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes cba-arch { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cba-banquo { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cba-macbeth { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cba-lantern { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes cba-shadow-banquo { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1) translateX(-2px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes cba-shadow-macbeth { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }

.scn-court-macbeth-bell {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f0f1a 100%), radial-gradient(ellipse at 50% 60%, rgba(255,214,128,0.08) 0%, transparent 60%);
}
.scn-court-macbeth-bell .wall {
  position: absolute; inset: 0 0 0 0; background: linear-gradient(180deg, #16213e 0%, #0f0f1a 100%); animation: cmb-wall 12s ease-in-out infinite alternate;
}
.scn-court-macbeth-bell .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #0f0f1a 0%, #05050a 100%);
}
.scn-court-macbeth-bell .table {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 15px; background: linear-gradient(180deg, #2c3e50 0%, #1b263b 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cmb-table 9s ease-in-out infinite alternate;
}
.scn-court-macbeth-bell .bell {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 30px; background: radial-gradient(circle, #b08040 0%, #5e3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 10px 2px rgba(176,128,64,0.5); animation: cmb-bell 5s ease-in-out infinite alternate; transform-origin: top center;
}
.scn-court-macbeth-bell .candle {
  position: absolute; bottom: 28%; left: 55%; width: 10px; height: 25px; background: linear-gradient(180deg, #e0c088 0%, #a08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 15px 5px rgba(255,214,128,0.4); animation: cmb-candle 4s ease-in-out infinite alternate;
}
.scn-court-macbeth-bell .figure {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #1b263b 0%, #0d1b2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: cmb-figure 6s ease-in-out infinite alternate;
}
.scn-court-macbeth-bell .shadow {
  position: absolute; bottom: 25%; left: 28%; width: 50px; height: 10px; background: rgba(0,0,0,0.6); border-radius: 50%; animation: cmb-shadow 6s ease-in-out infinite alternate;
}
@keyframes cmb-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cmb-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cmb-bell { 0% { transform: rotate(0); } 25% { transform: rotate(8deg); } 75% { transform: rotate(-8deg); } 100% { transform: rotate(0); } }
@keyframes cmb-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.9; } }
@keyframes cmb-figure { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes cmb-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.flash-1 { position: absolute; pointer-events: none; }
.htt-cloud { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-macduff-reveals-birth {
  background: 
    linear-gradient(180deg, #4a5a5f 0%, #3a4a4f 30%, #2c3a3e 70%, #1e2a2e 100%),
    radial-gradient(ellipse at 50% 30%, #5a6a6f 0%, transparent 70%);
}

.scn-macduff-reveals-birth .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a6f 0%, #4a5a5f 40%, transparent 100%);
  animation: mdrb-sky 18s ease-in-out infinite alternate;
}

.scn-macduff-reveals-birth .flash {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 30%, rgba(200,210,220,0.4) 0%, transparent 60%);
  opacity: 0;
  animation: mdrb-flash 4s ease-in-out infinite;
  animation-delay: 0.5s;
  pointer-events: none;
}

.scn-macduff-reveals-birth .wall-left {
  position: absolute;
  bottom: 20%;
  left: 0;
  width: 35%;
  height: 70%;
  background: linear-gradient(180deg, #3a3e40 0%, #2a2e30 100%);
  border-radius: 0 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: mdrb-wall 22s ease-in-out infinite alternate;
}

.scn-macduff-reveals-birth .wall-right {
  position: absolute;
  bottom: 20%;
  right: 0;
  width: 35%;
  height: 70%;
  background: linear-gradient(180deg, #3a3e40 0%, #2a2e30 100%);
  border-radius: 4% 0 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: mdrb-wall 22s ease-in-out infinite alternate-reverse;
}

.scn-macduff-reveals-birth .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a3028 0%, #1a1e18 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}

.scn-macduff-reveals-birth .macbeth {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #1a1e20 0%, #0a0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdrb-tremble 3s ease-in-out infinite;
}

.scn-macduff-reveals-birth .macduff {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 42px;
  height: 84px;
  background: linear-gradient(180deg, #1a1e20 0%, #0a0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdrb-lunge 6s ease-in-out infinite;
}

.scn-macduff-reveals-birth .sword-macbeth {
  position: absolute;
  bottom: 56%;
  left: 24%;
  width: 4px;
  height: 50px;
  background: linear-gradient(180deg, #8a8e90 0%, #5a5e60 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px #c0c4c8;
  transform-origin: bottom center;
  transform: rotate(-25deg);
  animation: mdrb-flicker 1.5s ease-in-out infinite alternate;
}

.scn-macduff-reveals-birth .sword-macduff {
  position: absolute;
  bottom: 58%;
  right: 22%;
  width: 4px;
  height: 55px;
  background: linear-gradient(180deg, #8a8e90 0%, #5a5e60 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px #c0c4c8;
  transform-origin: bottom center;
  transform: rotate(30deg);
  animation: mdrb-flicker 1.8s ease-in-out infinite alternate;
  animation-delay: 0.3s;
}

@keyframes mdrb-sky {
  0% { background-position: 0% 100%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 0%; }
}

@keyframes mdrb-flash {
  0%, 100% { opacity: 0; }
  10% { opacity: 0.6; }
  20% { opacity: 0; }
  30% { opacity: 0.4; }
  50% { opacity: 0; }
}

@keyframes mdrb-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}

@keyframes mdrb-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes mdrb-lunge {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-8px) translateY(-3px) rotate(-2deg); }
  40% { transform: translateX(0) translateY(0) rotate(0deg); }
  60% { transform: translateX(-10px) translateY(-4px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes mdrb-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 4px #a0a4a8; }
  50% { opacity: 1; box-shadow: 0 0 12px #d0d4d8; }
  100% { opacity: 0.6; box-shadow: 0 0 6px #a0a4a8; }
}

.scn-macbeth-hires-murderers {
  background: radial-gradient(ellipse at 40% 60%, #2a1b0e 0%, #140a04 60%, #080400 100%), linear-gradient(180deg, #0d0804 0%, #1a1008 50%, #2a1b0e 100%);
}
.scn-macbeth-hires-murderers .wall-l {
  position: absolute; left:0; top:0; width:45%; height:100%;
  background: linear-gradient(180deg, #2a1b0e 0%, #1a0f07 100%);
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.6);
}
.scn-macbeth-hires-murderers .wall-r {
  position: absolute; right:0; top:0; width:45%; height:100%;
  background: linear-gradient(180deg, #2a1b0e 0%, #1a0f07 100%);
  box-shadow: inset 6px 0 12px rgba(0,0,0,0.6);
}
.scn-macbeth-hires-murderers .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a0f07 0%, #0d0704 100%);
  border-radius: 0 0 8% 8%;
}
.scn-macbeth-hires-murderers .table {
  position: absolute; bottom:20%; left:50%; width:60%; height:8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2210 0%, #5a3a1a 50%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
}
.scn-macbeth-hires-murderers .candle {
  position: absolute; bottom:28%; left:50%; width:6px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08040 0%, #e0b060 60%, #f0d080 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px #c09040, 0 0 40px 16px rgba(192,144,64,0.4);
  animation: candle-flick-mhm 2s ease-in-out infinite alternate;
}
.scn-macbeth-hires-murderers .fig-left {
  position: absolute; bottom:30%; left:28%; width:20px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1008 80%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: breathe-mhm 4s ease-in-out infinite, tilt-mhm 6s ease-in-out infinite;
}
.scn-macbeth-hires-murderers .fig-right {
  position: absolute; bottom:30%; right:28%; width:22px; height:42px;
  background: radial-gradient(ellipse at 50% 30%, #2a1b0e 0%, #0d0704 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 50% 60%;
  transform-origin: bottom center;
  animation: breathe-mhm 4.5s ease-in-out infinite, tilt-mhm 7s ease-in-out infinite reverse;
}
.scn-macbeth-hires-murderers .shadow-fig {
  position: absolute; bottom:18%; left:30%; width:80px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: shadow-pulse-mhm 3s ease-in-out infinite alternate;
}
@keyframes candle-flick-mhm {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
  25% { transform: translateX(-50%) scaleY(1.05); opacity:1; }
  50% { transform: translateX(-50%) scaleY(0.95); opacity:0.85; }
  75% { transform: translateX(-50%) scaleY(1.02); opacity:0.95; }
  100% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
}
@keyframes breathe-mhm {
  0%,100% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.02) scaleX(1.01); }
}
@keyframes tilt-mhm {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  75% { transform: rotate(-2deg); }
}
@keyframes shadow-pulse-mhm {
  0% { opacity:0.6; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.1); }
  100% { opacity:0.7; transform: scaleX(0.9); }
}

.scn-banquet-ghost-banquo {
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 40%, #a08860 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-banquet-ghost-banquo .bg-wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-banquet-ghost-banquo .floor-b {
  position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 0 0 6% 6%;
}
.scn-banquet-ghost-banquo .table-b {
  position: absolute; bottom:25%; left:20%; right:20%; height:12px; background: linear-gradient(90deg, #705030 0%, #906040 50%, #705030 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-banquet-ghost-banquo .chair-b {
  position: absolute; bottom:32%; left:40%; width:50px; height:55px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 10% 10% 15% 15% / 20% 20% 30% 30%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-banquet-ghost-banquo .macbeth {
  position: absolute; bottom:30%; left:30%; width:28px; height:55px; background: radial-gradient(ellipse at 50% 30%, #b08060 0%, #7a5a40 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: start-mac-bgb 2s ease-in-out infinite alternate, sway-bgb 4s ease-in-out infinite;
}
.scn-banquet-ghost-banquo .ghost-banquo {
  position: absolute; bottom:30%; right:35%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 30%, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.2) 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; filter: blur(1px); opacity:0.7; animation: appear-ghost-bgb 4s ease-in-out infinite, float-bgb 6s ease-in-out infinite;
}
.scn-banquet-ghost-banquo .wine-cup {
  position: absolute; bottom:28%; left:50%; width:14px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #c0a080 0%, #906040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: tip-bgb 3s ease-in-out infinite alternate;
}
.scn-banquet-ghost-banquo .candle-b {
  position: absolute; bottom:33%; left:15%; width:5px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #f0d090 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #c09040; animation: candle-b-bgb 1.5s ease-in-out infinite alternate;
}
@keyframes start-mac-bgb {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.08) rotate(3deg); }
  100% { transform: scaleY(0.95) rotate(-3deg); }
}
@keyframes sway-bgb {
  0%,100% { transform: rotate(0); }
  25% { transform: rotate(5deg) translateX(2px); }
  75% { transform: rotate(-5deg) translateX(-2px); }
}
@keyframes appear-ghost-bgb {
  0%,100% { opacity:0.3; transform: scaleX(0.8); }
  50% { opacity:0.9; transform: scaleX(1.1) translateY(-4px); }
}
@keyframes float-bgb {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes tip-bgb {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(8deg); }
  100% { transform: translateX(-50%) rotate(-8deg); }
}
@keyframes candle-b-bgb {
  0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 10px 2px #c09040; }
  50% { transform: scaleY(1.12); opacity:1; box-shadow: 0 0 18px 6px #e0b060; }
  100% { transform: scaleY(0.9); opacity:0.8; box-shadow: 0 0 8px 2px #a07030; }
}

.scn-item-cauldron {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2a 40%, #2a0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a0a1a 0%, transparent 70%);
}
.scn-item-cauldron .night-sky {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2a 100%); animation: twinkle-ic 12s ease-in-out infinite alternate;
}
.scn-item-cauldron .ground {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0a1a 0%, #0d050d 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-item-cauldron .cauldron {
  position: absolute; bottom:30%; left:50%; width:70px; height:50px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.8), 0 6px 12px rgba(0,0,0,0.5);
}
.scn-item-cauldron .fire {
  position: absolute; bottom:40%; left:50%; width:30px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #e06020 40%, #802010 80%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: flame-ic 1.5s ease-in-out infinite alternate;
}
.scn-item-cauldron .smoke-1, .scn-item-cauldron .smoke-2 {
  position: absolute; bottom:70%; left:50%; width:60px; height:30px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(100,80,60,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: rise-ic 20s ease-in-out infinite;
}
.scn-item-cauldron .smoke-2 { animation-delay: -10s; width:45px; height:25px; }
.scn-item-cauldron .witch-1 {
  position: absolute; bottom:28%; left:25%; width:24px; height:50px; background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #0d0505 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: lean-ic 5s ease-in-out infinite;
}
.scn-item-cauldron .witch-2 {
  position: absolute; bottom:28%; right:25%; width:22px; height:48px; background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #0d0505 100%); border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%; transform-origin: bottom center; animation: lean-ic 5.5s ease-in-out infinite reverse;
}
@keyframes twinkle-ic {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes flame-ic {
  0% { transform: translateX(-50%) scaleY(0.8); opacity:0.9; }
  25% { transform: translateX(-50%) scaleY(1.2) scaleX(0.9); opacity:1; }
  50% { transform: translateX(-50%) scaleY(1.0) scaleX(1.1); opacity:0.95; }
  75% { transform: translateX(-50%) scaleY(1.3) scaleX(0.8); opacity:1; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity:0.85; }
}
@keyframes rise-ic {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity:0.4; }
  50% { transform: translateX(-50%) translateY(-20px) scale(1.5); opacity:0.1; }
  100% { transform: translateX(-50%) translateY(-40px) scale(2); opacity:0; }
}
@keyframes lean-ic {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg) translateX(2px); }
  75% { transform: rotate(-5deg) translateX(-2px); }
}

.scn-item-mirror-vision {
  background: linear-gradient(180deg, #f0e0d0 0%, #d0c0a0 40%, #b0a080 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-item-mirror-vision .hall-bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a0 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.05);
}
.scn-item-mirror-vision .pillar-l {
  position: absolute; left:8%; top:0; bottom:0; width:6%; background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 50%, #b0a080 100%);
}
.scn-item-mirror-vision .pillar-r {
  position: absolute; right:8%; top:0; bottom:0; width:6%; background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 50%, #b0a080 100%);
}
.scn-item-mirror-vision .macbeth-stand {
  position: absolute; bottom:30%; left:30%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 30%, #b08060 0%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: start-mac-imv 2s ease-in-out infinite alternate, sway-imv 4s ease-in-out infinite;
}
.scn-item-mirror-vision .mirror {
  position: absolute; bottom:25%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 0 20px rgba(200,180,160,0.5), inset 0 0 10px rgba(0,0,0,0.1); animation: glow-mirror-imv 4s ease-in-out infinite alternate;
}
.scn-item-mirror-vision .king-crown {
  position: absolute; bottom:55%; right:30%; width:15px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 6px rgba(200,160,80,0.6); animation: fade-seq-imv 6s ease-in-out infinite;
}
.scn-item-mirror-vision .ghost-banquo-vision {
  position: absolute; bottom:25%; right:20%; width:35px; height:65px; background: radial-gradient(ellipse at 50% 30%, rgba(200,200,200,0.4) 0%, rgba(150,150,150,0.1) 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; filter: blur(2px); opacity:0.5; animation: appear-ghost-imv 5s ease-in-out infinite, float-imv 7s ease-in-out infinite;
}
.scn-item-mirror-vision .glow-vision {
  position: absolute; bottom:20%; right:15%; width:80px; height:100px; background: radial-gradient(ellipse, rgba(255,240,220,0.3) 0%, transparent 70%); animation: pulse-glow-imv 4s ease-in-out infinite alternate;
}
@keyframes start-mac-imv {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.06) rotate(2deg); }
  100% { transform: scaleY(0.96) rotate(-2deg); }
}
@keyframes sway-imv {
  0%,100% { transform: rotate(0); }
  25% { transform: rotate(4deg) translateX(2px); }
  75% { transform: rotate(-4deg) translateX(-2px); }
}
@keyframes glow-mirror-imv {
  0% { box-shadow: 0 0 10px rgba(200,180,160,0.3); }
  50% { box-shadow: 0 0 30px rgba(255,240,220,0.8); }
  100% { box-shadow: 0 0 15px rgba(200,180,160,0.4); }
}
@keyframes fade-seq-imv {
  0%,100% { opacity:0.2; transform: scale(0.8); }
  25% { opacity:0.8; transform: scale(1); }
  50% { opacity:0.5; transform: scale(0.9); }
  75% { opacity:1; transform: scale(1.05); }
}
@keyframes appear-ghost-imv {
  0%,100% { opacity:0.2; transform: scaleX(0.7); }
  50% { opacity:0.8; transform: scaleX(1.1) translateY(-3px); }
}
@keyframes float-imv {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@keyframes pulse-glow-imv {
  0% { opacity:0.2; transform: scale(0.8); }
  50% { opacity:0.6; transform: scale(1.1); }
  100% { opacity:0.3; transform: scale(0.9); }
}

.scn-macduff-loyalty-test {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 60%);
}
.scn-macduff-loyalty-test .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 60%, #3a4a4a 100%);
  animation: ml1-sky 12s ease-in-out infinite alternate;
}
.scn-macduff-loyalty-test .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ml1-ground 18s ease-in-out infinite alternate;
}
.scn-macduff-loyalty-test .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml1-moveleft 4s ease-in-out infinite;
}
.scn-macduff-loyalty-test .figure-right {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml1-moveright 4s ease-in-out infinite reverse;
}
.scn-macduff-loyalty-test .banner {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 30px;
  background: #3a2a1a;
  transform: translateX(-50%);
}
.scn-macduff-loyalty-test .banner::after {
  content: '';
  position: absolute; top: 0; left: 8px; width: 20px; height: 14px;
  background: #a0461a; /* desaturated red */
  border-radius: 0 50% 50% 0;
  animation: ml1-flag 2s ease-in-out infinite;
}
.scn-macduff-loyalty-test .cloud-1 {
  position: absolute; top: 15%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(180,190,190,0.5) 0%, rgba(160,170,170,0.2) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ml1-drift 35s linear infinite;
}
.scn-macduff-loyalty-test .cloud-2 {
  position: absolute; top: 25%; right: 15%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(180,190,190,0.4) 0%, rgba(160,170,170,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ml1-drift 50s linear infinite reverse;
  animation-delay: -15s;
}
@keyframes ml1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ml1-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ml1-moveleft { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ml1-moveright { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(-8px) rotate(1deg) } 75% { transform: translateX(-12px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0) } }
@keyframes ml1-flag { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } }
@keyframes ml1-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-lady-macbeth-sleepwalking {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #0e0e1e 100%), radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-lady-macbeth-sleepwalking .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  animation: lms-wall 10s ease-in-out infinite alternate;
}
.scn-lady-macbeth-sleepwalking .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-lady-macbeth-sleepwalking .window-moon {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%);
  border-radius: 4px;
  box-shadow: inset 2px 2px 8px rgba(0,0,0,0.5), 0 0 20px 4px rgba(100,130,200,0.3);
  animation: lms-moon 8s ease-in-out infinite;
}
.scn-lady-macbeth-sleepwalking .lady-macbeth {
  position: absolute; bottom: 25%; left: 40%; 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;
  animation: lms-wash 3s ease-in-out infinite;
}
.scn-lady-macbeth-sleepwalking .lady-macbeth::before {
  content: '';
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 16px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #8a5a5a 70%); /* dusty rose */
  border-radius: 50%;
}
.scn-lady-macbeth-sleepwalking .candle {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 12px;
  background: #3a2a1a;
  border-radius: 2px;
}
.scn-lady-macbeth-sleepwalking .candle::after {
  content: '';
  position: absolute; top: -8px; left: -3px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd680, 0 0 32px 8px rgba(255,214,128,0.4);
  animation: lms-flame 2s ease-in-out infinite alternate;
}
.scn-lady-macbeth-sleepwalking .doctor {
  position: absolute; bottom: 25%; right: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lms-watch 6s ease-in-out infinite;
}
.scn-lady-macbeth-sleepwalking .gentlewoman {
  position: absolute; bottom: 25%; right: 40%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lms-watch 6s ease-in-out infinite reverse;
  animation-delay: -3s;
}
.scn-lady-macbeth-sleepwalking .shadow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 0%, rgba(0,0,0,0.4) 70%);
  pointer-events: none;
}
@keyframes lms-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lms-moon { 0%,100% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } }
@keyframes lms-wash { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(0) } 50% { transform: translateY(-8px) rotate(2deg) } 75% { transform: translateY(-4px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes lms-flame { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.9 } }
@keyframes lms-watch { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }

.scn-macbeth-defiant-prepares {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a12 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-macbeth-defiant-prepares .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0a06 100%);
}
.scn-macbeth-defiant-prepares .table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-macbeth-defiant-prepares .map {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 4px;
  transform: perspective(400px) rotateX(10deg);
  animation: mdp-map 6s ease-in-out infinite;
}
.scn-macbeth-defiant-prepares .macbeth-figure {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdp-stance 4s ease-in-out infinite;
}
.scn-macbeth-defiant-prepares .macbeth-figure::after {
  content: '';
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 14px; height: 14px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 70%); /* terracotta */
  border-radius: 50%;
}
.scn-macbeth-defiant-prepares .candle-flame {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffd680, 0 0 40px 12px rgba(255,214,128,0.3);
  animation: mdp-flicker 2s ease-in-out infinite alternate;
}
.scn-macbeth-defiant-prepares .shield {
  position: absolute; bottom: 25%; right: 20%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: mdp-shield 3s ease-in-out infinite;
}
.scn-macbeth-defiant-prepares .spear {
  position: absolute; bottom: 35%; right: 30%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: mdp-spear 5s ease-in-out infinite;
}
.scn-macbeth-defiant-prepares .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 60%, rgba(255,214,128,0.05) 0%, transparent 50%);
  animation: mdp-dust 8s ease-in-out infinite;
}
@keyframes mdp-map { 0%,100% { transform: perspective(400px) rotateX(10deg); } 50% { transform: perspective(400px) rotateX(14deg); } }
@keyframes mdp-stance { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mdp-flicker { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.9; } }
@keyframes mdp-shield { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.05); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes mdp-spear { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(15deg); } }
@keyframes mdp-dust { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-birnam-wood-advances {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #3a3a4a 0%, transparent 70%);
}
.scn-birnam-wood-advances .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: bwa-sky 15s ease-in-out infinite alternate;
}
.scn-birnam-wood-advances .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-birnam-wood-advances .wood-line {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 25%;
  background: repeating-linear-gradient(90deg,
    #1a2a1a 0px, #2a3a2a 6px, #1a2a1a 12px);
  border-radius: 30% 30% 0 0;
  animation: bwa-wood 20s linear infinite;
}
.scn-birnam-wood-advances .soldiers {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 20%;
  background: transparent;
  filter: blur(1px);
}
.scn-birnam-wood-advances .soldiers::before {
  content: '';
  position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(90deg,
    #2a3a2a 0px, #1a2a1a 4px, transparent 4px, transparent 8px);
  animation: bwa-march 6s ease-in-out infinite;
}
.scn-birnam-wood-advances .branch-1 {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 0 0 50%;
  transform: rotate(20deg);
  transform-origin: right center;
  animation: bwa-branch 8s ease-in-out infinite;
}
.scn-birnam-wood-advances .branch-2 {
  position: absolute; bottom: 38%; right: 25%; width: 50px; height: 10px;
  background: linear-gradient(270deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 0 50% 50% 0;
  transform: rotate(-15deg);
  transform-origin: left center;
  animation: bwa-branch 9s ease-in-out infinite reverse;
}
.scn-birnam-wood-advances .messenger-silhouette {
  position: absolute; bottom: 25%; right: 15%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bwa-run 2s ease-in-out infinite;
}
.scn-birnam-wood-advances .mist {
  position: absolute; inset: 20% 0 0 0;
  background: linear-gradient(180deg, rgba(200,210,200,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: bwa-mist 12s ease-in-out infinite alternate;
}
@keyframes bwa-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes bwa-wood { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes bwa-march { 0% { transform: translateX(0) } 25% { transform: translateX(4px) } 50% { transform: translateX(0) } 75% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes bwa-branch { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } }
@keyframes bwa-run { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(6px) rotate(3deg) } 50% { transform: translateX(12px) rotate(-3deg) } 75% { transform: translateX(18px) rotate(3deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes bwa-mist { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

/* duncan-arrives-castle */
.scn-duncan-arrives-castle {
  background: radial-gradient(ellipse at 20% 70%, rgba(180,100,40,0.25) 0%, transparent 60%),
              linear-gradient(180deg, #2a2018 0%, #0d0a08 100%);
}
.scn-duncan-arrives-castle .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px #0a0806;
}
.scn-duncan-arrives-castle .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}
.scn-duncan-arrives-castle .pillar {
  position:absolute; bottom:30%; width:5%; height:60%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 30%, #4a3a2a 100%);
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
}
.scn-duncan-arrives-castle .pillar.left { left:10%; }
.scn-duncan-arrives-castle .pillar.right { right:10%; }
.scn-duncan-arrives-castle .torch {
  position:absolute; bottom:50%; left:50%; margin-left:-8px; width:16px; height:24px;
  background: radial-gradient(circle, #ffb060 0%, #c07030 60%, transparent 100%);
  border-radius:50% 50% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,160,60,0.5);
  animation: dca-torch 2s ease-in-out infinite alternate;
}
.scn-duncan-arrives-castle .duncan {
  position:absolute; bottom:30%; left:25%;
  width:20px; 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: dca-bow 6s ease-in-out infinite;
}
.scn-duncan-arrives-castle .lady-macbeth {
  position:absolute; bottom:30%; right:30%;
  width:18px; height:48px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dca-curtsey 5s ease-in-out infinite 1s;
}
@keyframes dca-torch {
  0% { transform: scaleY(1) rotate(-1deg); opacity:0.8; }
  50% { transform: scaleY(1.08) rotate(1deg); opacity:1; }
  100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.9; }
}
@keyframes dca-bow {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-15deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dca-curtsey {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* item-dagger */
.scn-item-dagger {
  background: radial-gradient(ellipse at 50% 60%, rgba(20,20,40,0.3) 0%, transparent 70%),
              linear-gradient(180deg, #0e0e18 0%, #040408 100%);
}
.scn-item-dagger .chamber-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #16161e 0%, #1a1a24 50%, #16161e 100%);
}
.scn-item-dagger .chamber-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #101018 0%, #08080c 100%);
}
.scn-item-dagger .dagger {
  position:absolute; top:30%; left:50%; margin-left:-4px; width:8px; height:40px;
  background: linear-gradient(180deg, #e0d0c0 0%, #a09080 50%, #706050 100%);
  border-radius: 2px 2px 40% 40% / 10% 10% 60% 60%;
  box-shadow: 0 0 20px 6px rgba(255,220,180,0.4), 0 0 40px 12px rgba(200,160,120,0.2);
  transform-origin: bottom center;
  animation: ida-dagger 5s ease-in-out infinite alternate;
}
.scn-item-dagger .hand {
  position:absolute; top:55%; left:50%; margin-left:-15px; width:30px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: center top;
  animation: ida-hand 3s ease-in-out infinite;
}
.scn-item-dagger .macbeth-silhouette {
  position:absolute; bottom:20%; left:20%;
  width:30px; height:60px;
  background: #06060a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity:0.6;
  animation: ida-shift 8s ease-in-out infinite;
}
.scn-item-dagger .glow-ring {
  position:absolute; top:28%; left:50%; margin-left:-30px; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,220,180,0.1) 0%, transparent 70%);
  border-radius:50%;
  animation: ida-pulse 4s ease-in-out infinite alternate;
}
@keyframes ida-dagger {
  0% { transform: translateY(0) rotate(-2deg) scale(1); opacity:0.8; }
  50% { transform: translateY(-8px) rotate(3deg) scale(1.05); opacity:1; }
  100% { transform: translateY(-4px) rotate(-1deg) scale(0.98); opacity:0.9; }
}
@keyframes ida-hand {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(10deg) translateX(4px); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(-8deg) translateX(-3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ida-shift {
  0% { transform: translateY(0) scale(1); opacity:0.5; }
  50% { transform: translateY(-4px) scale(1.02); opacity:0.7; }
  100% { transform: translateY(0) scale(0.98); opacity:0.5; }
}
@keyframes ida-pulse {
  0% { transform: scale(1); opacity:0.3; }
  50% { transform: scale(1.3); opacity:0.6; }
  100% { transform: scale(0.9); opacity:0.2; }
}

/* duncan-murder-discovery */
.scn-duncan-murder-discovery {
  background: radial-gradient(ellipse at 50% 80%, rgba(160,40,20,0.2) 0%, transparent 60%),
              linear-gradient(180deg, #1a0a0a 0%, #2a0e0e 30%, #0d0404 100%);
}
.scn-duncan-murder-discovery .gate-left {
  position:absolute; top:10%; left:10%; width:35%; height:60%;
  background: linear-gradient(90deg, #3a1a0a 0%, #5a3a1a 50%, #3a1a0a 100%);
  border-radius: 10% 0 0 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 4px 0 10px rgba(0,0,0,0.6);
  transform-origin: left center;
  animation: dmd-gate 12s ease-in-out infinite alternate;
}
.scn-duncan-murder-discovery .gate-right {
  position:absolute; top:10%; right:10%; width:35%; height:60%;
  background: linear-gradient(270deg, #3a1a0a 0%, #5a3a1a 50%, #3a1a0a 100%);
  border-radius: 0 10% 10% 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), -4px 0 10px rgba(0,0,0,0.6);
  transform-origin: right center;
  animation: dmd-gate 12s ease-in-out infinite alternate-reverse;
}
.scn-duncan-murder-discovery .porter {
  position:absolute; bottom:30%; left:40%;
  width:20px; height:45px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmd-bow 6s ease-in-out infinite;
}
.scn-duncan-murder-discovery .macduff {
  position:absolute; bottom:30%; left:25%;
  width:22px; height:50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmd-enter 8s ease-in-out infinite;
}
.scn-duncan-murder-discovery .lennox {
  position:absolute; bottom:30%; left:15%;
  width:18px; height:46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmd-enter 8s ease-in-out infinite 0.5s;
}
.scn-duncan-murder-discovery .hell-torch {
  position:absolute; top:15%; left:50%; margin-left:-10px; width:20px; height:30px;
  background: radial-gradient(circle, #ff8040 0%, #c04020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 50px 12px rgba(255,100,40,0.4), 0 0 100px 20px rgba(200,50,20,0.2);
  animation: dmd-flame 2s ease-in-out infinite alternate;
}
@keyframes dmd-gate {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-15deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes dmd-bow {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(-20deg) scaleY(0.95); }
  50% { transform: rotate(0deg) scaleY(1); }
  75% { transform: rotate(-15deg) scaleY(0.97); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes dmd-enter {
  0% { transform: translateX(0) scale(1); opacity:0.6; }
  25% { transform: translateX(8px) scale(1.02); opacity:0.8; }
  50% { transform: translateX(0) scale(1); opacity:0.7; }
  75% { transform: translateX(-5px) scale(0.98); opacity:0.6; }
  100% { transform: translateX(0) scale(1); opacity:0.6; }
}
@keyframes dmd-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; }
  50% { transform: scaleY(1.15) rotate(2deg); opacity:1; }
  100% { transform: scaleY(0.9) rotate(-1deg); opacity:0.7; }
}

/* unnatural-events-reported */
.scn-unnatural-events-reported {
  background: radial-gradient(ellipse at 50% 30%, rgba(180,180,200,0.1) 0%, transparent 60%),
              linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%);
}
.scn-unnatural-events-reported .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  box-shadow: inset 0 -40px 40px rgba(0,0,0,0.3);
  animation: uer-skyshift 20s ease-in-out infinite alternate;
}
.scn-unnatural-events-reported .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-unnatural-events-reported .ross {
  position:absolute; bottom:40%; left:30%;
  width:20px; height:48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uer-gesture 10s ease-in-out infinite;
}
.scn-unnatural-events-reported .old-man {
  position:absolute; bottom:40%; left:45%;
  width:22px; height:44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uer-listen 12s ease-in-out infinite 1s;
}
.scn-unnatural-events-reported .dead-tree {
  position:absolute; bottom:40%; left:10%;
  width:8px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: uer-sway 10s ease-in-out infinite;
}
.scn-unnatural-events-reported .omen-bird {
  position:absolute; top:15%; left:60%;
  width:12px; height:8px;
  background: radial-gradient(circle, #2a2a3a 0%, #0a0a12 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: uer-circle 15s linear infinite;
}
@keyframes uer-skyshift {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.6; }
}
@keyframes uer-gesture {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-10deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes uer-listen {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(5deg) scale(1.02); }
  50% { transform: rotate(0deg) scale(1); }
  75% { transform: rotate(-5deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes uer-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes uer-circle {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(20px) translateY(-10px); }
  50% { transform: translateX(40px) translateY(0); }
  75% { transform: translateX(20px) translateY(10px); }
  100% { transform: translateX(0) translateY(0); }
}

.scn-witches-arrange-meeting {
  background: linear-gradient(180deg, #87CEEB 0%, #E0F0FF 40%, #F0E68C 70%, #D2B48C 100%),
              radial-gradient(ellipse at 50% 30%, #FFE4B5 0%, transparent 60%);
}
.scn-witches-arrange-meeting .si1-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #B0E0FF 0%, #E0F0FF 100%);
  animation: si1-sky 20s ease-in-out infinite alternate;
}
.scn-witches-arrange-meeting .si1-sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, #FFA500 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #FFD700, 0 0 120px 40px rgba(255, 215, 0, 0.3);
  animation: si1-sun 8s ease-in-out infinite alternate;
}
.scn-witches-arrange-meeting .si1-mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8B7D6B 0%, #6B5B4A 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  filter: blur(2px);
  animation: si1-mountains 30s ease-in-out infinite alternate;
}
.scn-witches-arrange-meeting .si1-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 30%, #B8956A 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: si1-ground 15s ease-in-out infinite alternate;
}
.scn-witches-arrange-meeting .si1-rock-a {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #8B7355 0%, #6B5B4A 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: si1-rock 12s ease-in-out infinite;
}
.scn-witches-arrange-meeting .si1-rock-b {
  position: absolute; bottom: 28%; right: 25%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #7B6B5A 0%, #5A4A3A 100%);
  border-radius: 40% 60% 50% 50% / 50% 70% 30% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: si1-rock 14s ease-in-out infinite reverse;
}
.scn-witches-arrange-meeting .si1-witch1 {
  position: absolute; bottom: 18%; left: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3A2A1A 0%, #1A0A00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-witch 6s ease-in-out infinite;
}
.scn-witches-arrange-meeting .si1-witch2 {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4A3A2A 0%, #2A1A0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-witch 7s ease-in-out infinite 0.5s;
}
.scn-witches-arrange-meeting .si1-witch3 {
  position: absolute; bottom: 18%; left: 40%; width: 15px; height: 32px;
  background: linear-gradient(180deg, #2A1A1A 0%, #0A0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-witch 8s ease-in-out infinite 1s;
}
@keyframes si1-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si1-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 60px 20px #FFD700; } 50% { transform: scale(1.02) translate(2px, -2px); box-shadow: 0 0 80px 30px #FFC125; } 100% { transform: scale(0.98) translate(-1px, 0); box-shadow: 0 0 50px 15px #FFD700; } }
@keyframes si1-mountains { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes si1-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si1-rock { 0%,100% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(1px,-1px) rotate(0deg) } 50% { transform: translate(0,-2px) rotate(2deg) } 75% { transform: translate(-1px,-1px) rotate(0deg) } }
@keyframes si1-witch { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }

.scn-witches-greet-macbeth {
  background: linear-gradient(180deg, #4A4A5A 0%, #5A5A6A 30%, #3A3A4A 60%, #2A2A3A 100%),
              radial-gradient(ellipse at 50% 40%, #6A6A7A 0%, transparent 70%);
}
.scn-witches-greet-macbeth .si2-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5A5A6A 0%, #4A4A5A 40%, #3A3A4A 100%);
  animation: si2-sky 15s ease-in-out infinite alternate;
}
.scn-witches-greet-macbeth .si2-clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(80,80,90,0.8) 0%, rgba(70,70,80,0.3) 100%);
  filter: blur(8px);
  border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
  animation: si2-clouds 25s linear infinite;
}
.scn-witches-greet-macbeth .si2-tree {
  position: absolute; bottom: 25%; left: 15%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #2A2A1A 0%, #1A1A0A 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 6px rgba(0,0,0,0.1);
  transform: rotate(-5deg);
  animation: si2-tree 10s ease-in-out infinite alternate;
}
.scn-witches-greet-macbeth .si2-witch1 {
  position: absolute; bottom: 18%; left: 28%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2A2A3A 0%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-witch 2s ease-in-out infinite;
}
.scn-witches-greet-macbeth .si2-witch2 {
  position: absolute; bottom: 18%; left: 33%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3A3A4A 0%, #1A1A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-witch 2.5s ease-in-out infinite 0.3s;
}
.scn-witches-greet-macbeth .si2-witch3 {
  position: absolute; bottom: 18%; left: 38%; width: 17px; height: 35px;
  background: linear-gradient(180deg, #1A1A2A 0%, #000010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-witch 3s ease-in-out infinite 0.6s;
}
.scn-witches-greet-macbeth .si2-macbeth {
  position: absolute; bottom: 18%; left: 55%; 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: si2-macbeth 3s ease-in-out infinite;
}
.scn-witches-greet-macbeth .si2-banquo {
  position: absolute; bottom: 18%; left: 62%; width: 19px; height: 38px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-banquo 3.5s ease-in-out infinite 0.2s;
}
@keyframes si2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes si2-clouds { 0% { transform: translateX(-20px) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(-20px) scaleX(1) } }
@keyframes si2-tree { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes si2-witch { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(-3px) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes si2-macbeth { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-4px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes si2-banquo { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-3px) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }

.scn-macbeth-prophecy-ambition {
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 50%, #000010 100%),
              radial-gradient(ellipse at 50% 80%, #2A2A3A 0%, transparent 70%);
}
.scn-macbeth-prophecy-ambition .si3-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  animation: si3-wall 12s ease-in-out infinite alternate;
}
.scn-macbeth-prophecy-ambition .si3-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: si3-floor 15s ease-in-out infinite alternate;
}
.scn-macbeth-prophecy-ambition .si3-window {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3A3A5A 0%, #2A2A4A 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(100,100,150,0.2);
  animation: si3-window 18s ease-in-out infinite alternate;
}
.scn-macbeth-prophecy-ambition .si3-candle {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #FFD700 0%, #FFA500 50%, #8B4513 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 -10px 30px 10px #FFD700, 0 -20px 60px 20px rgba(255, 215, 0, 0.3);
  animation: si3-candle 3s ease-in-out infinite alternate;
}
.scn-macbeth-prophecy-ambition .si3-figure {
  position: absolute; bottom: 10%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0A0A1A 0%, #000010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si3-figure 5s ease-in-out infinite;
}
.scn-macbeth-prophecy-ambition .si3-shadow {
  position: absolute; bottom: 0; left: 25%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: si3-shadow 8s ease-in-out infinite alternate;
}
.scn-macbeth-prophecy-ambition .si3-dagger {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #708090 0%, #A0A0B0 50%, #708090 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  box-shadow: 0 0 10px 2px rgba(100,100,150,0.4);
  animation: si3-dagger 4s ease-in-out infinite alternate;
}
@keyframes si3-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes si3-floor { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes si3-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(100,100,150,0.2); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px rgba(100,100,150,0.4); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(100,100,150,0.2); } }
@keyframes si3-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 -10px 30px 10px #FFD700; } 50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 -15px 40px 15px #FFC125; } 100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 -10px 30px 10px #FFD700; } }
@keyframes si3-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-5px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes si3-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(5px) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes si3-dagger { 0% { transform: rotate(-30deg) translateY(0) opacity(0.8) } 50% { transform: rotate(-25deg) translateY(-2px) opacity(1) } 100% { transform: rotate(-30deg) translateY(0) opacity(0.8) } }

.scn-item-letter {
  background: linear-gradient(180deg, #0A0A1A 0%, #1A1A2A 50%, #000010 100%),
              radial-gradient(ellipse at 50% 30%, #2A2A3A 0%, transparent 70%);
}
.scn-item-letter .si4-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0A0A1A 0%, #1A1A2A 100%);
  animation: si4-wall 20s ease-in-out infinite alternate;
}
.scn-item-letter .si4-candle {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #FFD700 0%, #FFA500 50%, #8B4513 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 -10px 30px 10px #FFD700, 0 -20px 60px 20px rgba(255, 215, 0, 0.3);
  animation: si4-candle 3s ease-in-out infinite alternate;
}
.scn-item-letter .si4-flame {
  position: absolute; bottom: 45%; left: 60%; width: 6px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #FFE4B5 0%, #FFD700 40%, #FFA500 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 8px #FFD700;
  animation: si4-flame 2s ease-in-out infinite alternate;
}
.scn-item-letter .si4-table {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2A1A0A 0%, #1A0A00 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: si4-table 12s ease-in-out infinite alternate;
}
.scn-item-letter .si4-letter {
  position: absolute; bottom: 22%; left: 25%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), 0 0 15px 5px rgba(255, 215, 0, 0.2);
  animation: si4-letter 6s ease-in-out infinite alternate;
}
.scn-item-letter .si4-face {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 0 10px 5px rgba(255, 215, 0, 0.3);
  animation: si4-face 4s ease-in-out infinite alternate;
}
.scn-item-letter .si4-hand {
  position: absolute; bottom: 20%; left: 30%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(20deg);
  box-shadow: 0 0 8px 3px rgba(255, 215, 0, 0.2);
  animation: si4-hand 5s ease-in-out infinite alternate;
}
@keyframes si4-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si4-candle { 0% { transform: scaleY(1); box-shadow: 0 -10px 30px 10px #FFD700; } 50% { transform: scaleY(1.05); box-shadow: 0 -15px 40px 15px #FFC125; } 100% { transform: scaleY(0.95); box-shadow: 0 -10px 30px 10px #FFD700; } }
@keyframes si4-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); } 25% { transform: translateX(-50%) scaleY(1.2) scaleX(0.9); } 50% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); } 75% { transform: translateX(-50%) scaleY(1.1) scaleX(0.95); } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); } }
@keyframes si4-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes si4-letter { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes si4-face { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes si4-hand { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(2px) } 100% { transform: rotate(20deg) translateX(0) } }
/* end per-scene blocks */
