/* 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-murderers-conscience-argument {
  background:
    linear-gradient(180deg, #0c0c1a 0%, #16162a 40%, #1e1e32 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a44 0%, transparent 50%);
}
.scn-murderers-conscience-argument .bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #12121e 0%, #0a0a16 100%);
}
.scn-murderers-conscience-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 0 0 8% 8%;
}
.scn-murderers-conscience-argument .murderer1 {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-figure 6s ease-in-out infinite;
}
.scn-murderers-conscience-argument .murderer2 {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1c1c30 0%, #0c0c18 100%);
  border-radius: 45% 45% 38% 38% / 55% 55% 38% 38%;
  transform-origin: bottom center;
  animation: mc-figure 7s ease-in-out infinite 0.8s;
}
.scn-murderers-conscience-argument .coin-purse {
  position: absolute; bottom: 28%; left: 38%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: mc-purse 5s ease-in-out infinite;
}
.scn-murderers-conscience-argument .conscience-hand {
  position: absolute; bottom: 35%; left: 42%; width: 16px; height: 22px;
  background: radial-gradient(circle, #a0a0b0 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  opacity: 0.5;
  animation: mc-hand 8s ease-in-out infinite alternate;
}
.scn-murderers-conscience-argument .shadow {
  position: absolute; bottom: 0; left: 25%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: mc-shadow 10s ease-in-out infinite alternate;
}
@keyframes mc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1.5deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mc-purse {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes mc-hand {
  0% { opacity: 0.3; transform: scale(0.9) translateY(0); }
  50% { opacity: 0.7; transform: scale(1.1) translateY(-5px); }
  100% { opacity: 0.4; transform: scale(0.95) translateY(2px); }
}
@keyframes mc-shadow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

.scn-richard-accepts-crown {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 60%);
}
.scn-richard-accepts-crown .throne-room {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-richard-accepts-crown .crown-cushion {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #604030 70%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rac-cushion 6s ease-in-out infinite;
}
.scn-richard-accepts-crown .richard {
  position: absolute; bottom: 18%; left: 45%; width: 20px; 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: rac-richard 4s ease-in-out infinite;
}
.scn-richard-accepts-crown .buckingham {
  position: absolute; bottom: 20%; left: 38%; width: 16px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rac-buckingham 4.5s ease-in-out infinite 0.2s;
}
.scn-richard-accepts-crown .mayor {
  position: absolute; bottom: 20%; left: 58%; width: 18px; height: 56px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rac-mayor 5s ease-in-out infinite 0.4s;
}
.scn-richard-accepts-crown .torch {
  position: absolute; bottom: 25%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffd060 0%, #b08030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 16px rgba(255,208,96,0.2);
  animation: rac-torch 3s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .shadow {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: rac-shadow 6s ease-in-out infinite;
}
@keyframes rac-cushion { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } }
@keyframes rac-richard { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes rac-buckingham { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes rac-mayor { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes rac-torch { 0% { opacity: 0.8; transform: scaleY(1) rotate(-2deg); } 50% { opacity: 1; transform: scaleY(1.1) rotate(2deg); } 100% { opacity: 0.9; transform: scaleY(1) rotate(0); } }
@keyframes rac-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* Scene: court-shocked-clarence-death */

/* aftermath-names */
.scn-aftermath-names {
  background:
    linear-gradient(180deg, #1f2633 0%, #2f3847 50%, #3f4a59 100%),
    radial-gradient(ellipse at 50% 80%, #3f4a59 0%, transparent 70%);
}
.scn-aftermath-names .vault {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2f3847 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: an-vault 20s ease-in-out infinite alternate;
}
.scn-aftermath-names .altar {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4f50 0%, #2a2f30 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: an-altar 12s ease-in-out infinite;
}
.scn-aftermath-names .window {
  position: absolute; top: 12%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #6a7a8a 0%, #3a4a5a 70%, #1a2a3a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 0 20px rgba(180,200,220,0.2);
  animation: an-window 30s ease-in-out infinite alternate;
}
.scn-aftermath-names .candle-left,
.scn-aftermath-names .candle-right {
  position: absolute; bottom: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d4b08a 0%, #8a6a4a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 10px 2px #c08040;
}
.scn-aftermath-names .candle-left { left: 38%; animation: an-candle 3s ease-in-out infinite; }
.scn-aftermath-names .candle-right { left: 55%; animation: an-candle 3.8s ease-in-out infinite; }
.scn-aftermath-names .figure-a,
.scn-aftermath-names .figure-b {
  position: absolute; bottom: 14%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-aftermath-names .figure-a { left: 40%; animation: an-kneel-a 8s ease-in-out infinite; }
.scn-aftermath-names .figure-b { left: 52%; animation: an-kneel-b 8s ease-in-out infinite 1s; }
.scn-aftermath-names .cross {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2px; box-shadow: 0 0 8px rgba(200,180,140,0.3);
  animation: an-cross 15s ease-in-out infinite alternate;
}
@keyframes an-vault { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.02); } 100% { opacity: 0.6; transform: scaleY(1); } }
@keyframes an-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes an-window { 0% { opacity: 0.5; filter: brightness(1); } 50% { opacity: 0.7; filter: brightness(1.1); } 100% { opacity: 0.5; filter: brightness(0.9); } }
@keyframes an-candle { 0% { box-shadow: 0 0 8px 2px #c08040; transform: scaleY(0.95); } 50% { box-shadow: 0 0 14px 4px #e0a060; transform: scaleY(1); } 100% { box-shadow: 0 0 8px 2px #c08040; transform: scaleY(0.95); } }
@keyframes an-kneel-a { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes an-kneel-b { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes an-cross { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

/* peace-declaration */
.scn-peace-declaration {
  background:
    linear-gradient(180deg, #c4b4a0 0%, #d8c8b4 50%, #e2d2c0 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0d0 0%, transparent 60%);
}
.scn-peace-declaration .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d8c8b4 0%, #c4b4a0 100%);
  animation: pd-sky 30s ease-in-out infinite alternate;
}
.scn-peace-declaration .cloud-light,
.scn-peace-declaration .cloud-dark {
  position: absolute; top: 15%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-peace-declaration .cloud-light { left: -20%; animation: pd-cloud 40s linear infinite; }
.scn-peace-declaration .cloud-dark { top: 25%; width: 80px; height: 16px; left: 30%; background: linear-gradient(180deg, rgba(180,170,150,0.5) 0%, rgba(180,170,150,0.1) 100%); animation: pd-cloud 55s linear infinite reverse; }
.scn-peace-declaration .sun-disc {
  position: absolute; top: 20%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #f0e0b0 0%, #d8c8a0 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,180,140,0.3);
  animation: pd-sun 12s ease-in-out infinite alternate;
}
.scn-peace-declaration .banner {
  position: absolute; top: 28%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #b0a090 0%, #908070 50%, #706050 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: pd-banner 8s ease-in-out infinite;
}
.scn-peace-declaration .figure-left,
.scn-peace-declaration .figure-right {
  position: absolute; bottom: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-peace-declaration .figure-left { left: 40%; animation: pd-figure 6s ease-in-out infinite; }
.scn-peace-declaration .figure-right { left: 50%; animation: pd-figure 6s ease-in-out infinite 0.5s; }
.scn-peace-declaration .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: pd-ground 20s ease-in-out infinite alternate;
}
@keyframes pd-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pd-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes pd-sun { 0% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.6; } 50% { transform: translate(-50%, -50%) scale(1.05); opacity: 0.8; } 100% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.6; } }
@keyframes pd-banner { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes pd-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pd-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-acclamation { background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 40%, #a67c4e 100%), radial-gradient(ellipse at 50% 30%, #fce4b0 0%, transparent 70%); }
.scn-acclamation .bg-inner { position:absolute; inset:0; background: linear-gradient(135deg, #8b5e3c 0%, #5e3a1f 100%); opacity:.6; }
.scn-acclamation .throne { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:120px; height:140px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 60%, #5e1a1d 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,.5); animation: acj-throne 8s ease-in-out infinite alternate; }
.scn-acclamation .banner { position:absolute; top:5%; width:40px; height:80px; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius:5px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: acj-banner 6s ease-in-out infinite; }
.scn-acclamation .banner-left { left:15%; transform-origin: top left; }
.scn-acclamation .banner-right { right:15%; transform-origin: top right; }
.scn-acclamation .crowd { position:absolute; bottom:10%; height:60px; background: linear-gradient(90deg, #4a3520 0%, #3a2a1a 50%, #4a3520 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(2px); }
.scn-acclamation .crowd-back { left:5%; right:5%; bottom:12%; height:40px; opacity:.6; animation: acj-crowd 10s ease-in-out infinite alternate; }
.scn-acclamation .crowd-front { left:0; right:0; bottom:8%; height:50px; animation: acj-crowd 14s ease-in-out infinite alternate-reverse; }
.scn-acclamation .light-beam { position:absolute; top:0; left:45%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,230,150,.6) 0%, transparent 100%); transform: skewX(-10deg); animation: acj-beam 4s ease-in-out infinite alternate; }
.scn-acclamation .confetti { position:absolute; width:8px; height:8px; border-radius:50%; }
.scn-acclamation .confetti-a { top:20%; left:30%; background:#e8b84a; box-shadow: 0 0 6px #e8b84a; animation: acj-confetti 5s linear infinite; }
.scn-acclamation .confetti-b { top:40%; left:70%; background:#b87878; box-shadow: 0 0 6px #b87878; animation: acj-confetti 7s linear infinite 2s; }
@keyframes acj-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) rotate(.5deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes acj-banner { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes acj-crowd { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes acj-beam { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes acj-confetti { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(-30px) rotate(180deg); opacity:.8; } 100% { transform: translateY(-60px) rotate(360deg); opacity:0; } }

.scn-final-exit { background: linear-gradient(180deg, #dcd0c0 0%, #b8a08a 40%, #8a7460 100%), radial-gradient(ellipse at 50% 80%, #e0d0c0 0%, transparent 60%); }
.scn-final-exit .bg-vault { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #2a2018 0%, transparent 80%); opacity:.4; }
.scn-final-exit .arch-left { position:absolute; left:0; bottom:0; width:30%; height:90%; background: linear-gradient(90deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; }
.scn-final-exit .arch-right { position:absolute; right:0; bottom:0; width:30%; height:90%; background: linear-gradient(90deg, #4a3a2a 0%, #6b5a4a 100%); border-radius: 60% 0 0 0 / 80% 0 0 0; }
.scn-final-exit .figure { position:absolute; bottom:10%; height:80px; width:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-final-exit .figure-one { left:35%; animation: fex-walk 6s ease-in-out infinite; }
.scn-final-exit .figure-two { right:35%; animation: fex-walk 8s ease-in-out infinite 1s; }
.scn-final-exit .door { position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:50px; height:100px; background: linear-gradient(180deg, #5e3a1f 0%, #3a2010 100%); border:2px solid #2a1a0a; border-radius:3px; box-shadow: inset 0 0 10px #2a1a0a; animation: fex-door 12s ease-in-out infinite alternate; }
.scn-final-exit .shadow-stripe { position:absolute; top:20%; left:40%; width:20%; height:5%; background: rgba(0,0,0,.3); filter: blur(4px); animation: fex-stripe 9s ease-in-out infinite alternate; }
@keyframes fex-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fex-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(.8); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes fex-stripe { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.2); } 100% { opacity:.2; transform: scaleX(1); } }

.scn-greeting-niece { background: linear-gradient(180deg, #fde8c0 0%, #e0be8a 50%, #b88a5a 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%); }
.scn-greeting-niece .bg-sunlight { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,240,200,.4) 0%, rgba(200,160,100,.1) 100%); }
.scn-greeting-niece .path { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #c8a880 0%, #a0805a 100%); border-radius: 20% 20% 0 0; }
.scn-greeting-niece .figure { position:absolute; bottom:15%; height:100px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-greeting-niece .adult { left:35%; width:35px; animation: grn-bow 12s ease-in-out infinite; }
.scn-greeting-niece .child { left:55%; width:22px; height:70px; animation: grn-curtsey 10s ease-in-out infinite 2s; }
.scn-greeting-niece .tower-bg { position:absolute; right:10%; bottom:10%; width:80px; height:150px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: -10px 0 20px rgba(0,0,0,.3); }
.scn-greeting-niece .tree { position:absolute; bottom:10%; width:60px; height:120px; background: radial-gradient(circle at 50% 60%, #6a8a5a 0%, #3a5a2a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; filter: blur(1px); }
.scn-greeting-niece .tree-left { left:5%; animation: grn-sway 15s ease-in-out infinite; }
.scn-greeting-niece .tree-right { right:25%; animation: grn-sway 18s ease-in-out infinite 3s; }
.scn-greeting-niece .dust { position:absolute; top:30%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,240,200,.3) 0%, transparent 70%); animation: grn-dust 20s linear infinite; }
@keyframes grn-bow { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-5deg); } 60% { transform: translateX(0) rotate(0deg); } 80% { transform: translateX(3px) rotate(3deg); } }
@keyframes grn-curtsey { 0%,100% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-4px) rotate(4deg); } 70% { transform: translateY(0) rotate(0deg); } }
@keyframes grn-sway { 0% { transform-origin: bottom center; transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes grn-dust { 0% { transform: translate(0,0) scale(1); opacity:.6; } 50% { transform: translate(10px,-10px) scale(1.2); opacity:.8; } 100% { transform: translate(20px,-20px) scale(1.5); opacity:0; } }

.scn-anne-to-tower { background: linear-gradient(180deg, #ffe8d0 0%, #d4b88a 40%, #a67c5a 100%), radial-gradient(ellipse at 70% 20%, #fff0d0 0%, transparent 50%); }
.scn-anne-to-tower .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,200,150,.2) 0%, transparent 100%); }
.scn-anne-to-tower .tower-wall { position:absolute; right:5%; bottom:0; width:25%; height:100%; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%); border-radius: 5% 5% 0 0; }
.scn-anne-to-tower .gate { position:absolute; right:12%; bottom:5%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border:3px solid #2a1a0a; border-radius: 50% 50% 0 0; }
.scn-anne-to-tower .figure { position:absolute; bottom:12%; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-anne-to-tower .figure.group-a { left:30%; width:30px; animation: antt-walk 8s ease-in-out infinite; }
.scn-anne-to-tower .figure.group-b { left:45%; width:28px; height:80px; animation: antt-walk 9s ease-in-out infinite 1s; }
.scn-anne-to-tower .figure.group-c { left:58%; width:32px; height:85px; animation: antt-walk 10s ease-in-out infinite 2s; }
.scn-anne-to-tower .shadow-marker { position:absolute; bottom:8%; left:30%; right:20%; height:5%; background: rgba(0,0,0,.2); filter: blur(6px); animation: antt-shadow 12s ease-in-out infinite alternate; }
.scn-anne-to-tower .grass { position:absolute; bottom:0; left:0; right:30%; height:8%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 40% 40% 0 0; }
.scn-anne-to-tower .light-rays { position:absolute; top:10%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse at 30% 50%, rgba(255,240,200,.5) 0%, transparent 70%); animation: antt-rays 6s ease-in-out infinite alternate; }
@keyframes antt-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes antt-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.3; transform: scaleX(1); } }
@keyframes antt-rays { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.4; } }

.scn-sheriff-answers {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 40%, #2a1a1e 70%, #1a0c0c 100%);
}
.scn-sheriff-answers .cell-wall {
  position: absolute; inset: 30% 10% 25% 10%; background: linear-gradient(135deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: sa-wall 8s ease-in-out infinite;
}
.scn-sheriff-answers .cell-floor {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 8%; background: linear-gradient(0deg, #4a4a5e, #2a2a3e); border-radius: 2px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-sheriff-answers .bars {
  position: absolute; inset: 30% 10% 25% 10%; background: repeating-linear-gradient(90deg, #5a5a6e 0px, #5a5a6e 6px, transparent 6px, transparent 20px); opacity: .6; filter: blur(1px); animation: sa-bars 4s ease-in-out infinite alternate;
}
.scn-sheriff-answers .figure-sheriff {
  position: absolute; bottom: 24%; left: 55%; width: 24px; height: 60px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-fig-sheriff 6s ease-in-out infinite;
}
.scn-sheriff-answers .figure-prisoner {
  position: absolute; bottom: 24%; left: 25%; width: 22px; height: 58px; background: linear-gradient(180deg, #3e3e3e 0%, #1e1e1e 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: sa-fig-prisoner 7s ease-in-out infinite;
}
.scn-sheriff-answers .torch {
  position: absolute; top: 20%; left: 20%; width: 10px; height: 30px; background: linear-gradient(180deg, #8a6a2a 0%, #4a3a1a 100%); border-radius: 4px; box-shadow: 0 0 12px 6px #8a6a2a; animation: sa-torch 2s ease-in-out infinite alternate;
}
.scn-sheriff-answers .torch-glow {
  position: absolute; top: 10%; left: 15%; width: 60px; height: 80px; background: radial-gradient(circle, rgba(200,150,50,0.4) 0%, transparent 70%); filter: blur(12px); animation: sa-torch-glow 3s ease-in-out infinite alternate;
}
@keyframes sa-wall { 0% { transform: scaleY(1); opacity: .9 } 50% { transform: scaleY(1.02); opacity: 1 } 100% { transform: scaleY(1); opacity: .9 } }
@keyframes sa-bars { 0% { opacity: .5; filter: blur(2px) } 50% { opacity: .7; filter: blur(1px) } 100% { opacity: .6; filter: blur(1.5px) } }
@keyframes sa-fig-sheriff { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sa-fig-prisoner { 0% { transform: translateY(0) scaleY(1) } 33% { transform: translateY(-2px) scaleY(1.02) } 66% { transform: translateY(1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sa-torch { 0% { opacity: .7; transform: scaleY(0.9) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(0.95) } }
@keyframes sa-torch-glow { 0% { opacity: .6; transform: scale(0.95) } 50% { opacity: .9; transform: scale(1.05) } 100% { opacity: .7; transform: scale(1) } }

.scn-sheriff-confirms {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 50%, #2a2030 100%), radial-gradient(ellipse at 50% 0%, #1a1a30 0%, transparent 60%);
}
.scn-sheriff-confirms .sky-night {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0c0c1e 0%, transparent 100%); animation: sc-sky 15s ease-in-out infinite;
}
.scn-sheriff-confirms .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 80% 80% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: sc-ground 12s ease-in-out infinite alternate;
}
.scn-sheriff-confirms .gallows {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3e3e 0%, #2a1e1e 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: sc-gallows 5s ease-in-out infinite;
}
.scn-sheriff-confirms .figure-condemned {
  position: absolute; bottom: 34%; left: 50%; width: 24px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: top center; animation: sc-condemned 8s ease-in-out infinite;
}
.scn-sheriff-confirms .figure-guard {
  position: absolute; bottom: 26%; left: 35%; width: 22px; height: 58px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc-guard 4s ease-in-out infinite;
}
.scn-sheriff-confirms .crow {
  position: absolute; top: 40%; left: 70%; width: 14px; height: 10px; background: #2a2a3e; border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: sc-crow 6s ease-in-out infinite;
}
.scn-sheriff-confirms .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #c0c0d0 0%, #8a8a9a 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(192,192,208,0.3); animation: sc-moon 20s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes sc-ground { 0% { transform: translateY(0) scaleY(1); opacity: .9 } 50% { transform: translateY(-4px) scaleY(1.02); opacity: 1 } 100% { transform: translateY(0) scaleY(1); opacity: .95 } }
@keyframes sc-gallows { 0% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-50%) rotate(0.5deg) } 66% { transform: translateX(-50%) rotate(-0.5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes sc-condemned { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-52%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-48%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes sc-guard { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sc-crow { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-8px) rotate(10deg) } 66% { transform: translateY(-4px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc-moon { 0% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.02); opacity: 1 } 100% { transform: scale(0.98); opacity: .9 } }

.scn-buckingham-acknowledges-justice {
  background: linear-gradient(180deg, #0a0a14 0%, #10102a 30%, #1a1a30 60%, #0e0e1e 100%);
}
.scn-buckingham-acknowledges-justice .shaft-wall {
  position: absolute; inset: 10% 5% 10% 5%; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: ba-wall 10s ease-in-out infinite;
}
.scn-buckingham-acknowledges-justice .shaft-floor {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 6%; background: linear-gradient(0deg, #3a3a4e, #2a2a3e); border-radius: 2px; box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
}
.scn-buckingham-acknowledges-justice .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%; width: 28px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ba-kneel 7s ease-in-out infinite;
}
.scn-buckingham-acknowledges-justice .beam-light {
  position: absolute; top: 2%; left: 40%; width: 20%; height: 60%; background: linear-gradient(180deg, rgba(200,180,100,0.3) 0%, transparent 100%); filter: blur(8px); animation: ba-beam 5s ease-in-out infinite alternate;
}
.scn-buckingham-acknowledges-justice .dust-motes {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%; background: radial-gradient(circle, rgba(220,200,180,0.2) 0%, transparent 70%); filter: blur(4px); animation: ba-dust 8s ease-in-out infinite;
}
.scn-buckingham-acknowledges-justice .chain {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 30px; background: linear-gradient(180deg, #6a6a7e, #3a3a4e); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ba-chain 3s ease-in-out infinite alternate;
}
@keyframes ba-wall { 0% { transform: scaleX(1); opacity: .9 } 33% { transform: scaleX(1.01); opacity: 1 } 66% { transform: scaleX(0.99); opacity: .95 } 100% { transform: scaleX(1); opacity: .9 } }
@keyframes ba-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes ba-beam { 0% { opacity: .3; transform: scaleY(0.95) } 50% { opacity: .6; transform: scaleY(1.05) } 100% { opacity: .4; transform: scaleY(1) } }
@keyframes ba-dust { 0% { opacity: .2; transform: translateY(0) scale(1) } 50% { opacity: .5; transform: translateY(-10px) scale(1.1) } 100% { opacity: .3; transform: translateY(-5px) scale(0.95) } }
@keyframes ba-chain { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

.scn-buckingham-faces-death {
  background: linear-gradient(180deg, #0a0a14 0%, #14142a 40%, #2a2020 70%, #1a0c0c 100%);
}
.scn-buckingham-faces-death .block-base {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: bf-block 10s ease-in-out infinite;
}
.scn-buckingham-faces-death .axe {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 50px; transform: translateX(-50%) rotate(-10deg); background: linear-gradient(180deg, #6a6a7e 0%, #3a3a4e 100%); border-radius: 2px; transform-origin: bottom center; animation: bf-axe 4s ease-in-out infinite alternate;
}
.scn-buckingham-faces-death .figure-buckingham {
  position: absolute; bottom: 22%; left: 40%; width: 26px; height: 60px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: bf-fig 8s ease-in-out infinite;
}
.scn-buckingham-faces-death .figure-executioner {
  position: absolute; bottom: 22%; left: 58%; width: 30px; height: 68px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bf-executioner 6s ease-in-out infinite;
}
.scn-buckingham-faces-death .drum {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 24px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bf-drum 3s ease-in-out infinite;
}
.scn-buckingham-faces-death .drummer {
  position: absolute; bottom: 28%; left: 22%; width: 20px; height: 50px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bf-drummer 3s ease-in-out infinite;
}
.scn-buckingham-faces-death .flag {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 20px; background: linear-gradient(180deg, #5e3a2a 0%, #3e1a1a 100%); border-radius: 2px; filter: blur(1px); animation: bf-flag 6s ease-in-out infinite alternate;
}
@keyframes bf-block { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes bf-axe { 0% { transform: translateX(-50%) rotate(-15deg) } 25% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-10deg) } 100% { transform: translateX(-50%) rotate(-15deg) } }
@keyframes bf-fig { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(-2px) rotate(-1deg) } 66% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bf-executioner { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bf-drum { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes bf-drummer { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bf-flag { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* scene: prince-expected */
.scn-prince-expected {
  background: linear-gradient(180deg, #1f1a14 0%, #2a221c 40%, #1f1a14 100%), radial-gradient(ellipse at 50% 20%, #3a2e24 0%, transparent 70%);
}
.scn-prince-expected .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2e24 0%, #2a221c 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,0.6); }
.scn-prince-expected .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-prince-expected .throne { position:absolute; bottom:32%; left:55%; width:80px; height:100px; background: linear-gradient(180deg, #5a3a28 0%, #3a2214 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.7); animation: pe-throne 12s ease-in-out infinite; }
.scn-prince-expected .curtain-cur { position:absolute; top:0; right:0; width:45%; height:70%; background: linear-gradient(270deg, #8a3a2a 0%, #5a221a 60%, transparent 100%); border-radius: 0 0 30% 10%; animation: pe-curtain 8s ease-in-out infinite alternate; }
.scn-prince-expected .curtain-l { position:absolute; top:0; left:0; width:40%; height:65%; background: linear-gradient(90deg, #7a2a1a 0%, #4a1a10 60%, transparent 100%); border-radius: 0 0 10% 30%; animation: pe-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-prince-expected .figure-w { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-walk 6s ease-in-out infinite; }
.scn-prince-expected .candle { position:absolute; bottom:40%; left:60%; width:6px; height:18px; background: linear-gradient(180deg, #d4a050 0%, #8a6020 100%); border-radius: 50% 50% 20% 20%; }
.scn-prince-expected .candle-flicker { position:absolute; bottom:58%; left:60%; width:10px; height:14px; transform: translate(-50%, -100%); background: radial-gradient(circle, #ffd080 0%, #e08020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #e08020, 0 0 40px 12px rgba(224,128,32,0.4); animation: pe-flicker 1.5s ease-in-out infinite alternate; }
@keyframes pe-throne { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pe-curtain { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pe-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes pe-flicker { 0% { opacity:0.6; transform: translate(-50%, -100%) scale(0.8); } 100% { opacity:1; transform: translate(-50%, -100%) scale(1.1); } }

/* scene: news-of-arrest */
.scn-news-of-arrest {
  background: linear-gradient(180deg, #1a1a24 0%, #12121a 40%, #1a1a24 100%), radial-gradient(ellipse at 50% 50%, #1a1a24 0%, transparent 70%);
}
.scn-news-of-arrest .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e14 0%, #1a1a24 50%, #0e0e14 100%); filter: blur(2px); }
.scn-news-of-arrest .table { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-news-of-arrest .figure-a { position:absolute; bottom:32%; left:42%; width:22px; height:56px; background: linear-gradient(180deg, #1a1618 0%, #0c0a0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-figure-a 5s ease-in-out infinite; }
.scn-news-of-arrest .figure-b { position:absolute; bottom:30%; left:25%; width:18px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-figure-b 4s ease-in-out infinite; }
.scn-news-of-arrest .lamp { position:absolute; bottom:45%; left:20%; width:14px; height:20px; background: radial-gradient(circle at 50% 60%, #b08040 0%, #603020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 4px #b08040; }
.scn-news-of-arrest .lamp-glow { position:absolute; bottom:40%; left:20%; width:40px; height:40px; transform: translate(-30%, -30%); background: radial-gradient(circle, rgba(176,128,64,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: na-glow 3s ease-in-out infinite alternate; }
.scn-news-of-arrest .scroll { position:absolute; bottom:28%; left:28%; width:24px; height:10px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 0 0 20% 20%; transform: rotate(-15deg); animation: na-scroll 6s ease-in-out infinite; }
@keyframes na-figure-a { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-3deg); } }
@keyframes na-figure-b { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(6px) translateY(-1px); } 50% { transform: translateX(12px) translateY(0); } 75% { transform: translateX(6px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes na-glow { 0% { opacity:0.5; transform: translate(-30%, -30%) scale(0.8); } 100% { opacity:1; transform: translate(-30%, -30%) scale(1.2); } }
@keyframes na-scroll { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }

/* scene: prince-arrives-london */
.scn-prince-arrives-london {
  background: linear-gradient(180deg, #7a8a8a 0%, #9a9a8a 30%, #6a7a7a 60%), radial-gradient(ellipse at 50% 100%, #4a5a5a 0%, transparent 80%);
}
.scn-prince-arrives-london .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9a9a 0%, #b0b0a0 50%, #7a8a8a 100%); animation: pa-sky 15s ease-in-out infinite alternate; }
.scn-prince-arrives-london .buildings { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); }
.scn-prince-arrives-london .street { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.5); }
.scn-prince-arrives-london .prince-fig { position:absolute; bottom:30%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pa-prince 4s ease-in-out infinite; }
.scn-prince-arrives-london .horse { position:absolute; bottom:25%; left:32%; width:60px; height:40px; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 40% 20% 30% 30%; transform: rotate(-5deg); animation: pa-horse 6s ease-in-out infinite; }
.scn-prince-arrives-london .crowd { position:absolute; bottom:30%; right:10%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 100%, #3a3a3a 0%, transparent 100%); filter: blur(2px); animation: pa-crowd 10s ease-in-out infinite; }
.scn-prince-arrives-london .flag { position:absolute; bottom:55%; left:45%; width:8px; height:30px; background: #5a3a2a; transform-origin: bottom; animation: pa-flag 3s ease-in-out infinite alternate; }
.scn-prince-arrives-london .shadow { position:absolute; bottom:20%; left:30%; width:80px; height:12px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: pa-shadow 4s ease-in-out infinite; }
@keyframes pa-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pa-prince { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(2deg); } }
@keyframes pa-horse { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } }
@keyframes pa-crowd { 0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.98); } }
@keyframes pa-flag { 0% { transform: translateY(0) rotate(-8deg); } 100% { transform: translateY(-2px) rotate(8deg); } }
@keyframes pa-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.25; } }

/* scene: prince-and-uncles */
.scn-prince-and-uncles {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-prince-and-uncles .wall-tower { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-prince-and-uncles .floor-tower { 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-prince-and-uncles .prince { position:absolute; bottom:30%; left:55%; width:22px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pu-prince 5s ease-in-out infinite; }
.scn-prince-and-uncles .uncle-g { position:absolute; bottom:32%; left:25%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pu-uncle-g 7s ease-in-out infinite; }
.scn-prince-and-uncles .uncle-b { position:absolute; bottom:30%; left:40%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pu-uncle-b 6s ease-in-out infinite; }
.scn-prince-and-uncles .arch { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 100%, transparent 50%, #1a1a2a 50%); border-radius: 0 0 50% 50%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-prince-and-uncles .light-beam { position:absolute; top:5%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(200,200,180,0.15) 0%, transparent 100%); transform: skewX(-10deg); animation: pu-beam 8s ease-in-out infinite alternate; }
.scn-prince-and-uncles .dust { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,240,0.15) 0%, transparent 100%); filter: blur(4px); animation: pu-dust 12s linear infinite; }
@keyframes pu-prince { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes pu-uncle-g { 0% { transform: translateX(0) translateY(0); } 33% { transform: translateX(5px) translateY(-2px); } 66% { transform: translateX(-3px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pu-uncle-b { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pu-beam { 0% { opacity:0.3; transform: skewX(-10deg) scaleY(0.9); } 100% { opacity:0.6; transform: skewX(-10deg) scaleY(1.1); } }
@keyframes pu-dust { 0% { transform: translate(0,0) scale(0.8); opacity:0; } 10% { opacity:0.3; } 90% { opacity:0.2; } 100% { transform: translate(30px,-20px) scale(1.2); opacity:0; } }

/* ===== richmond-prayer ===== */
.scn-richmond-prayer {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2d2018 30%, #1a1410 70%),
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 80%);
  overflow: hidden;
}
.scn-richmond-prayer .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
}
.scn-richmond-prayer .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
}
.scn-richmond-prayer .window-framed {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 80px;
  background: #0a0a1a; border: 6px solid #3a2a18; border-radius: 4px;
  box-shadow: inset 0 0 20px #0a0a1a, 0 0 10px #6a5a3a;
}
.scn-richmond-prayer .moonlight-beam {
  position: absolute; top: 12%; left: 61%; width: 70px; height: 200px;
  background: linear-gradient(135deg, rgba(180,190,220,0.25) 0%, transparent 100%);
  transform: rotate(-5deg); animation: rp-moon 8s ease-in-out infinite alternate;
}
.scn-richmond-prayer .table-altar {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-richmond-prayer .candle-glow {
  position: absolute; bottom: 44%; left: 44%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #ffa030;
  animation: rp-candle 2s ease-in-out infinite alternate;
}
.scn-richmond-prayer .figure-kneeling {
  position: absolute; bottom: 24%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1414 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: rp-kneel 4s ease-in-out infinite;
}
.scn-richmond-prayer .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px); animation: rp-shadow 6s ease-in-out infinite;
}
@keyframes rp-moon { 0% { opacity:0.3; transform: rotate(-5deg); } 50% { opacity:0.5; transform: rotate(-3deg); } 100% { opacity:0.2; transform: rotate(-6deg); } }
@keyframes rp-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.15); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.7; } }
@keyframes rp-kneel { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rp-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.95); } }

/* ===== ghost-visitation-1 ===== */
.scn-ghost-visitation-1 {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1020 40%, #0a0a1a 70%),
    radial-gradient(ellipse at 40% 40%, #201030 0%, transparent 80%);
  overflow: hidden;
}
.scn-ghost-visitation-1 .tent-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #0a0a12 0%, #1a1420 50%, #0a0a12 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
}
.scn-ghost-visitation-1 .tent-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 0 0 20% 20%;
}
.scn-ghost-visitation-1 .sleeping-figure {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: gv1-sleep 6s ease-in-out infinite;
}
.scn-ghost-visitation-1 .ghost-prince {
  position: absolute; top: 15%; right: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, rgba(200,210,230,0.6) 0%, rgba(200,210,230,0.1) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(2px); animation: gv1-float 4s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px rgba(200,210,230,0.3);
}
.scn-ghost-visitation-1 .ghost-glare {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,220,255,0.15) 0%, transparent 100%);
  animation: gv1-glare 5s ease-in-out infinite alternate;
}
.scn-ghost-visitation-1 .weapon-stack {
  position: absolute; bottom: 12%; left: 55%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-ghost-visitation-1 .drapes-left {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a1018 100%);
  filter: blur(8px); animation: gv1-drape 12s ease-in-out infinite alternate;
}
.scn-ghost-visitation-1 .drapes-right {
  position: absolute; top: 0; right: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a1018 100%);
  filter: blur(8px); animation: gv1-drape 12s ease-in-out infinite alternate-reverse;
}
@keyframes gv1-sleep { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gv1-float { 0% { transform: translateY(0) scale(0.95); opacity:0.5; } 50% { transform: translateY(-8px) scale(1.05); opacity:0.8; } 100% { transform: translateY(0) scale(0.95); opacity:0.5; } }
@keyframes gv1-glare { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.1; transform: scale(0.9); } }
@keyframes gv1-drape { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* ===== ghost-visitation-2 ===== */
.scn-ghost-visitation-2 {
  background: 
    linear-gradient(180deg, #0c0c1e 0%, #1a1030 50%, #0c0c1e 100%),
    radial-gradient(ellipse at 60% 30%, #2a1a4a 0%, transparent 70%);
  overflow: hidden;
}
.scn-ghost-visitation-2 .bg-night-sky {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a20 0%, #1a1330 50%, #0a0a20 100%);
}
.scn-ghost-visitation-2 .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, rgba(180,180,220,0.1) 0%, transparent 100%);
  filter: blur(10px); animation: gv2-mist 15s ease-in-out infinite alternate;
}
.scn-ghost-visitation-2 .richmond-standing {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: gv2-standing 6s ease-in-out infinite;
}
.scn-ghost-visitation-2 .ghost-henry {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, rgba(200,180,220,0.6) 0%, rgba(200,180,220,0.1) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(1px); box-shadow: 0 0 40px 15px rgba(180,160,200,0.3);
  animation: gv2-float 5s ease-in-out infinite alternate;
}
.scn-ghost-visitation-2 .crown-ethereal {
  position: absolute; top: 10%; left: 68%; width: 20px; height: 12px;
  background: radial-gradient(ellipse, rgba(220,200,180,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px); animation: gv2-crown 8s ease-in-out infinite;
}
.scn-ghost-visitation-2 .sword-memory {
  position: absolute; bottom: 28%; left: 50%; width: 5px; height: 40px;
  background: linear-gradient(180deg, rgba(150,150,200,0.5) 0%, transparent 100%);
  transform: rotate(15deg); box-shadow: 0 0 10px 2px rgba(150,150,200,0.3);
  animation: gv2-sword 7s ease-in-out infinite alternate;
}
.scn-ghost-visitation-2 .sparkles {
  position: absolute; top: 30%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle at 30% 40%, rgba(220,200,255,0.15) 0%, transparent 60%);
  animation: gv2-sparkle 12s ease-in-out infinite;
}
@keyframes gv2-mist { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes gv2-standing { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gv2-float { 0% { transform: translateY(0) scale(0.95); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.05); opacity:0.8; } 100% { transform: translateY(0) scale(0.95); opacity:0.5; } }
@keyframes gv2-crown { 0% { opacity:0.2; transform: rotate(0); } 50% { opacity:0.6; transform: rotate(10deg); } 100% { opacity:0.2; transform: rotate(-5deg); } }
@keyframes gv2-sword { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.1); } 100% { transform: rotate(15deg) scaleX(0.9); } }
@keyframes gv2-sparkle { 0% { opacity:0; transform: scale(0.8); } 50% { opacity:0.4; transform: scale(1.2); } 100% { opacity:0; transform: scale(0.6); } }

/* ===== ghost-visitation-3 ===== */
.scn-ghost-visitation-3 {
  background: 
    linear-gradient(180deg, #0e0e1e 0%, #1a1220 40%, #0e0e1e 70%),
    radial-gradient(ellipse at 30% 60%, #2a1a2a 0%, transparent 80%);
  overflow: hidden;
}
.scn-ghost-visitation-3 .bg-dark-tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a12 0%, #1a1428 50%, #0a0a12 100%);
}
.scn-ghost-visitation-3 .table-lamp {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 4px; box-shadow: 0 -2px 10px #4a3020;
}
.scn-ghost-visitation-3 .richard-seated {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: gv3-sit 5s ease-in-out infinite;
}
.scn-ghost-visitation-3 .ghost-clarence {
  position: absolute; top: 20%; right: 20%; width: 32px; height: 55px;
  background: linear-gradient(180deg, rgba(210,190,200,0.5) 0%, rgba(210,190,200,0.05) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(1px); box-shadow: 0 0 30px 10px rgba(210,190,200,0.3);
  animation: gv3-float 4s ease-in-out infinite alternate;
}
.scn-ghost-visitation-3 .wine-stain {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 8px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px); animation: gv3-stain 10s ease-in-out infinite;
}
.scn-ghost-visitation-3 .ghostly-chain {
  position: absolute; top: 40%; left: 65%; width: 1px; height: 80px;
  background: linear-gradient(180deg, rgba(200,190,200,0.4) 0%, transparent 100%);
  box-shadow: 0 0 6px rgba(200,190,200,0.3); transform: rotate(8deg);
  animation: gv3-chain 6s ease-in-out infinite alternate;
}
.scn-ghost-visitation-3 .shadow-creep {
  position: absolute; bottom: 0; left: 10%; width: 150px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(5px); animation: gv3-creep 7s ease-in-out infinite;
}
@keyframes gv3-sit { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gv3-float { 0% { transform: translateY(0) scale(0.95); opacity:0.4; } 50% { transform: translateY(-12px) scale(1.05); opacity:0.7; } 100% { transform: translateY(0) scale(0.95); opacity:0.4; } }
@keyframes gv3-stain { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.3); } 100% { opacity:0.2; transform: scale(0.8); } }
@keyframes gv3-chain { 0% { opacity:0.2; transform: rotate(8deg); } 50% { opacity:0.6; transform: rotate(12deg); } 100% { opacity:0.2; transform: rotate(5deg); } }
@keyframes gv3-creep { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(0.9); opacity:0.4; } }

.scn-stanley-cant-guess { background: linear-gradient(180deg, #d4c7a0 0%, #b5a480 50%, #8a7a5a 100%), radial-gradient(ellipse at 40% 30%, #fff3d0 0%, transparent 70%); }
.scn-stanley-cant-guess .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #cbb99a 0%, #9a8a6a 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: stcg-wall 12s ease-in-out infinite alternate; }
.scn-stanley-cant-guess .window { position:absolute; top:10%; left:65%; width:60px; height:80px; background: linear-gradient(180deg, #e0d8b0 0%, #b0a080 100%); border:4px solid #6a5a3a; border-radius:6px; box-shadow: inset 0 0 20px #fff3c0; animation: stcg-win 8s ease-in-out infinite; }
.scn-stanley-cant-guess .throne { position:absolute; bottom:20%; left:30%; width:70px; height:90px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: stcg-throne 6s ease-in-out infinite; }
.scn-stanley-cant-guess .king { position:absolute; bottom:18%; left:32%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: stcg-king 5s ease-in-out infinite alternate; }
.scn-stanley-cant-guess .stanley { position:absolute; bottom:18%; left:45%; width:26px; height:58px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: stcg-stan 7s ease-in-out infinite alternate; }
.scn-stanley-cant-guess .candle { position:absolute; bottom:30%; left:22%; width:4px; height:12px; background: #c0a080; border-radius:20% 20% 10% 10%; box-shadow: 0 0 10px 4px #ffd070; animation: stcg-candle 3s ease-in-out infinite; }
.scn-stanley-cant-guess .shadow { position:absolute; bottom:18%; left:36%; width:80px; height:20px; background: linear-gradient(90deg, transparent, rgba(0,0,0,.2), transparent); border-radius:50%; filter: blur(4px); animation: stcg-shadow 9s ease-in-out infinite alternate; }
@keyframes stcg-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes stcg-win { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.97) translateY(-1px) } }
@keyframes stcg-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes stcg-king { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes stcg-stan { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes stcg-candle { 0%,100% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } }
@keyframes stcg-shadow { 0% { transform: scaleX(.8) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.9) } }

.scn-stanley-friends-north { background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 50%, #8a7a5a 100%), radial-gradient(ellipse at 60% 40%, #ffeecc 0%, transparent 60%); }
.scn-stanley-friends-north .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; }
.scn-stanley-friends-north .wall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #cbb99a 0%, #9a8a6a 100%); animation: stfn-wall 14s ease-in-out infinite alternate; }
.scn-stanley-friends-north .map-stand { position:absolute; bottom:25%; left:25%; width:50px; height:60px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius:10% 10% 50% 50% / 10% 10% 20% 20%; }
.scn-stanley-friends-north .map { position:absolute; bottom:38%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: stfn-map 20s ease-in-out infinite alternate; }
.scn-stanley-friends-north .stanley-hand { position:absolute; bottom:30%; left:32%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: stfn-hand 5s ease-in-out infinite; }
.scn-stanley-friends-north .richard-figure { position:absolute; bottom:25%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: stfn-richard 6s ease-in-out infinite alternate; }
.scn-stanley-friends-north .lantern { position:absolute; bottom:45%; left:55%; width:8px; height:12px; background: #ffd080; border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px #ffc060; animation: stfn-lantern 4s ease-in-out infinite; }
@keyframes stfn-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes stfn-map { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes stfn-hand { 0%,100% { transform: rotate(0) } 50% { transform: rotate(8deg) translateX(4px) } }
@keyframes stfn-richard { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) } }
@keyframes stfn-lantern { 0%,100% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } }

.scn-richard-distrusts { background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 50%, #6a5a3a 100%), radial-gradient(ellipse at 30% 50%, #ffeecc 0%, transparent 60%); }
.scn-richard-distrusts .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); opacity:.6; animation: rdis-bg 10s ease-in-out infinite alternate; }
.scn-richard-distrusts .column { position:absolute; top:10%; left:40%; width:20px; height:80%; background: linear-gradient(90deg, #7a6a4a 0%, #9a8a6a 30%, #7a6a4a 100%); border-radius:10% 10% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: rdis-col 8s ease-in-out infinite; }
.scn-richard-distrusts .richard-peek { position:absolute; top:20%; left:38%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: top center; animation: rdis-peek 4s ease-in-out infinite alternate; }
.scn-richard-distrusts .glint { position:absolute; top:22%; left:45%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 16px 4px #ffc060, 0 0 32px 8px rgba(255,192,96,.3); animation: rdis-glint 2s ease-in-out infinite; }
.scn-richard-distrusts .stanley-shadow { position:absolute; bottom:20%; left:50%; width:50px; height:70px; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50% 50% 0 0; transform: skewX(-10deg); animation: rdis-shadow 7s ease-in-out infinite alternate; }
.scn-richard-distrusts .floor-edge { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:20% 20% 0 0 / 50% 50% 0 0; }
@keyframes rdis-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes rdis-col { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.98) translateY(-2px) } }
@keyframes rdis-peek { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rdis-glint { 0%,100% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } }
@keyframes rdis-shadow { 0% { transform: skewX(-10deg) scaleY(.9) } 50% { transform: skewX(-15deg) scaleY(1) } 100% { transform: skewX(-8deg) scaleY(.95) } }

.scn-stanley-accepts { background: linear-gradient(180deg, #d4c7a0 0%, #b5a480 50%, #8a7a5a 100%), radial-gradient(ellipse at 50% 30%, #fff3d0 0%, transparent 70%); }
.scn-stanley-accepts .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; }
.scn-stanley-accepts .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #cbb99a 0%, #9a8a6a 100%); animation: stac-wall 12s ease-in-out infinite alternate; }
.scn-stanley-accepts .throne { position:absolute; bottom:20%; left:25%; width:60px; height:80px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: stac-throne 7s ease-in-out infinite; }
.scn-stanley-accepts .richard-seated { position:absolute; bottom:18%; left:27%; width:28px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: stac-richard 4s ease-in-out infinite alternate; }
.scn-stanley-accepts .stanley-bowing { position:absolute; bottom:18%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: stac-bow 6s ease-in-out infinite; }
.scn-stanley-accepts .goblet { position:absolute; bottom:28%; left:35%; width:10px; height:16px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: stac-goblet 5s ease-in-out infinite; }
.scn-stanley-accepts .halo { position:absolute; top:5%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(255,243,208,.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: stac-halo 15s ease-in-out infinite alternate; }
@keyframes stac-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes stac-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes stac-richard { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes stac-bow { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-10deg) translateY(2px) } }
@keyframes stac-goblet { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) translateX(1px) } }
@keyframes stac-halo { 0% { opacity:.4; transform: scaleX(.9) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.45; transform: scaleX(.95) } }

/* elizabeth-laments */
.scn-elizabeth-laments { background: linear-gradient(180deg, #f7e8c8 0%, #d9c3a0 40%, #a08060 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%); }
.scn-elizabeth-laments .sky-el { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffeac2 0%, #f0d4a0 60%, transparent 100%); animation: el-sky 20s ease-in-out infinite alternate; }
.scn-elizabeth-laments .ground-el { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a6040 0%, #4a3a2a 100%); border-radius: 60% 40% 0 0 / 30% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-elizabeth-laments .figure-el { position:absolute; bottom:30%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #d4b896 0%, #b89878 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: el-figure 5s ease-in-out infinite; }
.scn-elizabeth-laments .serpent-el { position:absolute; bottom:38%; left:52%; width:60px; height:20px; background: radial-gradient(ellipse at 20% 50%, #5a3a2a 0%, #3a2a1a 80%); border-radius: 50%; transform: rotate(-10deg); animation: el-serpent 4s ease-in-out infinite; }
.scn-elizabeth-laments .egg-el { position:absolute; bottom:36%; left:38%; width:14px; height:18px; background: radial-gradient(circle, #b08050 0%, #6a4a2a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 8px 2px rgba(0,0,0,.3); }
.scn-elizabeth-laments .cloud-a-el { position:absolute; top:10%; left:10%; width:100px; height:20px; background: rgba(255,235,200,.5); border-radius:50%; filter: blur(8px); animation: el-drift-a 30s linear infinite; }
.scn-elizabeth-laments .cloud-b-el { position:absolute; top:18%; right:5%; width:70px; height:14px; background: rgba(255,240,210,.4); border-radius:50%; filter: blur(6px); animation: el-drift-b 40s linear infinite reverse; }
@keyframes el-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes el-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes el-serpent { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(8px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes el-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes el-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* anne-resigned */
.scn-anne-resigned { background: linear-gradient(180deg, #fde4b6 0%, #ebc98f 40%, #c8a06a 100%), radial-gradient(ellipse at 50% 15%, #fff3d0 0%, transparent 70%); }
.scn-anne-resigned .sky-ar { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffeac2 0%, #f2d6a0 50%, transparent 100%); animation: ar-aurora 15s ease-in-out infinite alternate; }
.scn-anne-resigned .horizon-ar { position:absolute; bottom:40%; left:0; right:0; height:10%; background: linear-gradient(180deg, #b8925e 0%, #8a6e44 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 4px 12px rgba(0,0,0,.2); }
.scn-anne-resigned .figure-ar { position:absolute; bottom:30%; left:48%; width:36px; height:72px; background: linear-gradient(180deg, #f0e0c8 0%, #d0b898 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-figure 6s ease-in-out infinite; }
.scn-anne-resigned .crown-ar { position:absolute; bottom:50%; left:48%; width:24px; height:12px; background: radial-gradient(ellipse, #ffd060 0%, #b89030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,208,96,.5); animation: ar-crown 3s ease-in-out infinite; }
.scn-anne-resigned .veil-ar { position:absolute; bottom:28%; left:44%; width:50px; height:40px; background: rgba(255,240,220,.3); border-radius: 50% 50% 10% 10%; filter: blur(2px); transform: rotate(-5deg); animation: ar-veil 8s ease-in-out infinite alternate; }
.scn-anne-resigned .light-ray-ar { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,245,200,.4) 0%, transparent 100%); filter: blur(10px); animation: ar-ray 7s ease-in-out infinite; }
@keyframes ar-aurora { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ar-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes ar-crown { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px rgba(255,208,96,.5) } 50% { transform: scale(1.1) translateY(-2px); box-shadow: 0 0 30px 10px rgba(255,208,96,.7) } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px rgba(255,208,96,.5) } }
@keyframes ar-veil { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes ar-ray { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* anne-questions */
.scn-anne-questions { background: linear-gradient(180deg, #d9c3a0 0%, #b08e6a 40%, #7a5e3e 100%), radial-gradient(ellipse at 50% 30%, #f5dfc0 0%, transparent 60%); }
.scn-anne-questions .bg-aq { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0b898 0%, #a08060 70%); animation: aq-bg 20s ease-in-out infinite alternate; }
.scn-anne-questions .coffin-aq { position:absolute; bottom:25%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.4); transform: rotate(-2deg); }
.scn-anne-questions .figure-aq { position:absolute; bottom:30%; left:46%; width:34px; height:70px; background: linear-gradient(180deg, #c8a888 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aq-figure 5s ease-in-out infinite; }
.scn-anne-questions .hand-aq { position:absolute; bottom:38%; left:52%; width:16px; height:20px; background: linear-gradient(180deg, #a0461a 0%, #602a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); animation: aq-hand 4s ease-in-out infinite; }
.scn-anne-questions .shadow-aq { position:absolute; bottom:30%; left:58%; width:30px; height:60px; background: rgba(30,20,10,.4); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(4px); animation: aq-shadow 5s ease-in-out infinite; }
.scn-anne-questions .drop-aq { position:absolute; width:6px; height:8px; background: linear-gradient(180deg, #a0461a 0%, #5e2a0e 100%); border-radius: 50%; opacity:.6; }
.scn-anne-questions .drop1-aq { top:40%; left:54%; animation: aq-drop1 2s ease-in-out infinite; }
.scn-anne-questions .drop2-aq { top:45%; left:56%; animation: aq-drop2 3s ease-in-out infinite 1s; }
@keyframes aq-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes aq-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes aq-hand { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-4px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes aq-shadow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(1) } }
@keyframes aq-drop1 { 0% { transform: translateY(0); opacity:.6 } 50% { transform: translateY(20px); opacity:.3 } 100% { transform: translateY(40px); opacity:0 } }
@keyframes aq-drop2 { 0% { transform: translateY(0); opacity:.6 } 50% { transform: translateY(15px); opacity:.4 } 100% { transform: translateY(30px); opacity:0 } }

/* anne-curses-herself */
.scn-anne-curses-herself { background: linear-gradient(180deg, #c8a06a 0%, #a08060 40%, #60482a 100%), radial-gradient(ellipse at 40% 20%, #ffd080 0%, transparent 70%); }
.scn-anne-curses-herself .sky-ac { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f0c880 0%, #c8a060 80%); animation: ac-sky 18s ease-in-out infinite alternate; }
.scn-anne-curses-herself .ground-ac { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.5); }
.scn-anne-curses-herself .figure-ac { position:absolute; bottom:30%; left:45%; width:38px; height:76px; background: linear-gradient(180deg, #d4b896 0%, #b89878 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-figure-shake 0.8s ease-in-out infinite; }
.scn-anne-curses-herself .shadow-richard-ac { position:absolute; bottom:28%; left:54%; width:44px; height:80px; background: rgba(30,15,5,.6); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(6px); animation: ac-shadow 3s ease-in-out infinite; }
.scn-anne-curses-herself .crack-ac { position:absolute; width:4px; background: linear-gradient(180deg, #f0c880 0%, #a08040 100%); border-radius: 2px; opacity:.7; }
.scn-anne-curses-herself .crack1-ac { bottom:20%; left:30%; height:50px; transform: rotate(30deg); animation: ac-crack1 5s linear infinite; }
.scn-anne-curses-herself .crack2-ac { bottom:15%; left:55%; height:60px; transform: rotate(-20deg); animation: ac-crack2 4s linear infinite 2s; }
.scn-anne-curses-herself .flare-ac { position:absolute; top:10%; left:20%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,80,.3) 0%, transparent 70%); filter: blur(20px); animation: ac-flare 6s ease-in-out infinite alternate; }
@keyframes ac-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ac-figure-shake { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ac-shadow { 0% { transform: scale(1) translateX(0); opacity:.6 } 50% { transform: scale(1.05) translateX(5px); opacity:.8 } 100% { transform: scale(1) translateX(0); opacity:.6 } }
@keyframes ac-crack1 { 0% { height:50px; opacity:.7 } 50% { height:70px; opacity:1 } 100% { height:50px; opacity:.7 } }
@keyframes ac-crack2 { 0% { height:60px; opacity:.7 } 50% { height:80px; opacity:1 } 100% { height:60px; opacity:.7 } }
@keyframes ac-flare { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(30px) scale(1.2); opacity:.6 } 100% { transform: translateX(0) scale(1); opacity:.3 } }

.scn-margaret-curses-all {
  background:
    linear-gradient(180deg, #4a3828 0%, #2a1a0e 50%, #1a0e04 100%),
    radial-gradient(ellipse at 50% 20%, #6a4a30 0%, transparent 70%);
}
.scn-margaret-curses-all .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #5a4238 0%, #3a2a1e 100%);
  animation: mca-wall 9s ease-in-out infinite alternate;
}
.scn-margaret-curses-all .window {
  position:absolute; top:10%; left:60%; width:80px; height:100px;
  background: linear-gradient(135deg, #c8b08a 0%, #907858 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,176,138,.5), 0 0 30px rgba(200,176,138,.3);
  animation: mca-window 5s ease-in-out infinite alternate;
}
.scn-margaret-curses-all .figure.margaret {
  position:absolute; bottom:30%; left:40%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mca-figure 4s ease-in-out infinite;
}
.scn-margaret-curses-all .hand {
  position:absolute; bottom:65%; left:37%; width:40px; height:20px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 80% 20% 40% 60% / 60% 40% 40% 60%;
  transform-origin: bottom right;
  animation: mca-hand 2s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-margaret-curses-all .shadow {
  position:absolute; bottom:22%; left:35%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mca-shadow 3s ease-in-out infinite alternate;
}
.scn-margaret-curses-all .dust {
  position:absolute; top:20%; left:20%; width:10px; height:10px;
  background: rgba(240,220,200,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: mca-dust 15s linear infinite;
}
@keyframes mca-wall {
  0% { opacity:.9; }
  50% { opacity:1; }
  100% { opacity:.85; }
}
@keyframes mca-window {
  0% { box-shadow: inset 0 0 20px rgba(200,176,138,.5), 0 0 30px rgba(200,176,138,.3); }
  50% { box-shadow: inset 0 0 40px rgba(220,200,160,.8), 0 0 50px rgba(220,200,160,.5); }
  100% { box-shadow: inset 0 0 25px rgba(200,176,138,.6), 0 0 35px rgba(200,176,138,.4); }
}
@keyframes mca-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mca-hand {
  0% { transform: rotate(0deg) scale(1); }
  100% { transform: rotate(30deg) scale(1.1); }
}
@keyframes mca-shadow {
  0% { transform: scaleX(1); opacity:.6; }
  50% { transform: scaleX(1.2); opacity:.8; }
  100% { transform: scaleX(1); opacity:.6; }
}
@keyframes mca-dust {
  0% { transform: translate(0,0) scale(1); opacity:.3; }
  50% { transform: translate(20px,-30px) scale(1.5); opacity:.1; }
  100% { transform: translate(40px,-60px) scale(2); opacity:0; }
}

.scn-rivers-defends-loyalty {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 50%, #1a120a 100%),
    radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, transparent 60%);
}
.scn-rivers-defends-loyalty .column {
  position:absolute; top:10%; left:10%; width:20px; height:80%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: rdl-column 12s ease-in-out infinite alternate;
}
.scn-rivers-defends-loyalty .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 0 0 0 0;
  z-index: 0;
}
.scn-rivers-defends-loyalty .figure.rivers {
  position:absolute; bottom:18%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #4a3a2e 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdl-figure1 5s ease-in-out infinite;
}
.scn-rivers-defends-loyalty .figure.gloucester {
  position:absolute; bottom:20%; left:55%; width:32px; height:68px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdl-figure2 5s ease-in-out infinite alternate;
}
.scn-rivers-defends-loyalty .light-beam {
  position:absolute; top:0; left:40%; width:40px; height:100%;
  background: linear-gradient(180deg, rgba(255,230,200,.3) 0%, transparent 80%);
  filter: blur(10px);
  animation: rdl-beam 4s ease-in-out infinite alternate;
}
.scn-rivers-defends-loyalty .curtain {
  position:absolute; top:0; right:0; width:80px; height:100%;
  background: linear-gradient(180deg, #6a4a3a 80%, #3a2a1e 100%);
  border-left: 2px solid rgba(0,0,0,.3);
  animation: rdl-curtain 8s ease-in-out infinite alternate;
}
@keyframes rdl-column {
  0% { transform: scaleY(1); opacity:.9; }
  50% { transform: scaleY(1.02); opacity:1; }
  100% { transform: scaleY(1); opacity:.9; }
}
@keyframes rdl-figure1 {
  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 rdl-figure2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rdl-beam {
  0% { opacity:.2; transform: scaleX(1); }
  50% { opacity:.5; transform: scaleX(1.2); }
  100% { opacity:.2; transform: scaleX(1); }
}
@keyframes rdl-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

.scn-margaret-advances-curse {
  background:
    linear-gradient(180deg, #4a3828 0%, #2a1a0e 30%, #1a0e04 100%),
    radial-gradient(ellipse at 50% 15%, #6a4a30 0%, transparent 80%);
}
.scn-margaret-advances-curse .throne {
  position:absolute; bottom:15%; left:45%; width:60px; height:40px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 5px 15px rgba(0,0,0,.7);
  animation: mac-throne 6s ease-in-out infinite alternate;
}
.scn-margaret-advances-curse .figure.margaret-adv {
  position:absolute; bottom:20%; left:20%; width:35px; height:75px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mac-figure-adv 4s ease-in-out infinite;
  z-index: 2;
}
.scn-margaret-advances-curse .fan {
  position:absolute; bottom:50%; left:10%; width:20px; height:30px;
  background: linear-gradient(135deg, #6a4a3a 0%, #2a1a0e 100%);
  border-radius: 0 80% 80% 0;
  transform-origin: left bottom;
  animation: mac-fan 2s ease-in-out infinite alternate;
}
.scn-margaret-advances-curse .crowd {
  position:absolute; bottom:10%; left:0; right:0; height:40%;
  background: repeating-linear-gradient(
    90deg,
    #2a1a0e 0px,
    #3a2a1e 20px,
    #2a1a0e 40px
  );
  opacity:.5;
  clip-path: polygon(0% 50%, 10% 30%, 20% 50%, 30% 25%, 40% 55%, 50% 35%, 60% 50%, 70% 20%, 80% 45%, 90% 30%, 100% 50%, 100% 100%, 0% 100%);
  animation: mac-crowd 8s ease-in-out infinite alternate;
}
.scn-margaret-advances-curse .shadow-adv {
  position:absolute; bottom:15%; left:15%; width:80px; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: mac-shadow 3s ease-in-out infinite alternate;
}
.scn-margaret-advances-curse .glow-adv {
  position:absolute; top:10%; left:30%; width:100px; height:100px;
  background: radial-gradient(circle, rgba(200,180,150,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: mac-glow 7s ease-in-out infinite alternate;
}
@keyframes mac-throne {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes mac-figure-adv {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(15px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mac-fan {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mac-crowd {
  0% { opacity:.4; clip-path: polygon(0% 50%, 10% 30%, 20% 50%, 30% 25%, 40% 55%, 50% 35%, 60% 50%, 70% 20%, 80% 45%, 90% 30%, 100% 50%, 100% 100%, 0% 100%); }
  50% { opacity:.6; clip-path: polygon(0% 40%, 10% 20%, 20% 45%, 30% 30%, 40% 50%, 50% 40%, 60% 55%, 70% 25%, 80% 50%, 90% 35%, 100% 45%, 100% 100%, 0% 100%); }
  100% { opacity:.4; clip-path: polygon(0% 50%, 10% 30%, 20% 50%, 30% 25%, 40% 55%, 50% 35%, 60% 50%, 70% 20%, 80% 45%, 90% 30%, 100% 50%, 100% 100%, 0% 100%); }
}
@keyframes mac-shadow {
  0% { transform: scaleX(1); opacity:.7; }
  50% { transform: scaleX(1.3); opacity:.9; }
  100% { transform: scaleX(1); opacity:.7; }
}
@keyframes mac-glow {
  0% { opacity:.15; transform: scale(1); }
  50% { opacity:.3; transform: scale(1.2); }
  100% { opacity:.15; transform: scale(1); }
}

.scn-margaret-past-grievances {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #1a120a 50%, #0a0604 100%),
    radial-gradient(ellipse at 30% 20%, #5a3a2a 0%, transparent 60%);
}
.scn-margaret-past-grievances .arch {
  position:absolute; top:0; left:20%; width:60%; height:60%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
  animation: mpg-arch 10s ease-in-out infinite alternate;
}
.scn-margaret-past-grievances .figure.margaret-past {
  position:absolute; bottom:10%; left:25%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpg-figure1 5s ease-in-out infinite;
}
.scn-margaret-past-grievances .figure.other {
  position:absolute; bottom:12%; left:55%; width:28px; height:65px;
  background: linear-gradient(180deg, #4a3a2e 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpg-figure2 4.5s ease-in-out infinite alternate;
}
.scn-margaret-past-grievances .ghost {
  position:absolute; top:20%; left:40%; width:40px; height:60px;
  background: linear-gradient(180deg, rgba(200,180,160,.15) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: mpg-ghost 7s ease-in-out infinite alternate;
}
.scn-margaret-past-grievances .floor-past {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  box-shadow: inset 0 5px 10px rgba(0,0,0,.5);
}
.scn-margaret-past-grievances .glow-past {
  position:absolute; top:30%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(180,140,100,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(25px);
  animation: mpg-glow 12s ease-in-out infinite alternate;
}
@keyframes mpg-arch {
  0% { transform: scaleY(1); opacity:.8; }
  50% { transform: scaleY(1.03); opacity:1; }
  100% { transform: scaleY(1); opacity:.8; }
}
@keyframes mpg-figure1 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mpg-figure2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mpg-ghost {
  0% { opacity:.1; transform: translateY(0) scale(1); }
  50% { opacity:.2; transform: translateY(-10px) scale(1.05); }
  100% { opacity:.1; transform: translateY(0) scale(1); }
}
@keyframes mpg-glow {
  0% { opacity:.15; transform: scale(1); }
  50% { opacity:.3; transform: scale(1.2); }
  100% { opacity:.15; transform: scale(1); }
}

/* one block per scene id. Append to style.css. */
.scn-margaret-curse-end { background: linear-gradient(180deg, #1a0e1e 0%, #140a18 40%, #1f121a 100%), radial-gradient(ellipse at 30% 70%, #2a1828 0%, transparent 60%); }
.scn-margaret-curse-end .dark-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0d0710 0%, #1f0e1a 100%); animation: mce-sky 14s ease-in-out infinite alternate; }
.scn-margaret-curse-end .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a181a 0%, #0d090a 100%); border-radius: 100% 100% 0 0 / 40% 40% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); animation: mce-ground 20s ease-in-out infinite; }
.scn-margaret-curse-end .grave { position:absolute; bottom:20%; left:40%; width:80px; height:20px; background: linear-gradient(180deg, #3a2020 0%, #1f0f0f 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 4px 10px rgba(0,0,0,.5); transform: rotate(-2deg); animation: mce-grave 10s ease-in-out infinite; }
.scn-margaret-curse-end .fig-silhouette { position:absolute; bottom:28%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #1a0f0f 0%, #0a0505 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: mce-figure 6s ease-in-out infinite; }
.scn-margaret-curse-end .curse-glow { position:absolute; bottom:30%; left:58%; width:30px; height:30px; background: radial-gradient(circle, #6a2a32 0%, #3a1a1e 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 12px #4a2025, 0 0 80px 25px rgba(74,32,37,.3); animation: mce-glow 4s ease-in-out infinite alternate; }
.scn-margaret-curse-end .ghost-mist { position:absolute; bottom:30%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(120,60,65,.15) 0%, transparent 70%); filter: blur(12px); animation: mce-mist 15s ease-in-out infinite; }
@keyframes mce-sky   { 0%,100% { opacity:.5 } 50% { opacity:.8 } }
@keyframes mce-ground{ 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } }
@keyframes mce-grave { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-3px) } }
@keyframes mce-figure{ 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mce-glow  { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes mce-mist  { 0%,100% { opacity:.3; transform: translateX(-10px) translateY(0) } 50% { opacity:.7; transform: translateX(10px) translateY(-5px) } }

.scn-margaret-hungry { background: linear-gradient(90deg, #0d0708 0%, #1f1316 50%, #0d0708 100%), radial-gradient(ellipse at 50% 20%, #2a181b 0%, transparent 70%); }
.scn-margaret-hungry .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #10080a 0%, #1a0e10 50%, #0e0507 100%); animation: mhu-bg 18s ease-in-out infinite alternate; }
.scn-margaret-hungry .hand-reach { position:absolute; bottom:20%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #1a0f10 0%, #0d0708 100%); border-radius: 60% 40% 30% 40% / 70% 50% 40% 50%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: mhu-hand 7s ease-in-out infinite; }
.scn-margaret-hungry .held-crown { position:absolute; bottom:42%; left:38%; width:20px; height:12px; background: linear-gradient(180deg, #4a2828 0%, #2a1414 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); transform: rotate(10deg); animation: mhu-crown 7s ease-in-out infinite; }
.scn-margaret-hungry .drip { position:absolute; width:3px; height:6px; background: #3a1a1a; border-radius: 50% 50% 20% 20%; opacity:0.8; }
.scn-margaret-hungry .drop1 { bottom:18%; left:37%; animation: mhu-drip1 3s ease-in-out infinite; }
.scn-margaret-hungry .drop2 { bottom:15%; left:40%; animation: mhu-drip2 3.5s ease-in-out infinite 0.5s; }
.scn-margaret-hungry .obsidian-gleam { position:absolute; bottom:35%; left:32%; width:8px; height:8px; background: radial-gradient(circle, #3a2a2a 0%, #1a1010 60%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(30,15,15,.3); animation: mhu-gleam 5s ease-in-out infinite alternate; }
@keyframes mhu-bg    { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes mhu-hand  { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-3px) rotate(-2deg) } 75% { transform: translateY(2px) rotate(-8deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes mhu-crown { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes mhu-drip1 { 0% { transform: translateY(0) scaleX(1); opacity:.8 } 80% { transform: translateY(20px) scaleX(.5); opacity:.3 } 100% { transform: translateY(24px) scaleX(.2); opacity:0 } }
@keyframes mhu-drip2 { 0% { transform: translateY(0) scaleX(1); opacity:.8 } 80% { transform: translateY(20px) scaleX(.5); opacity:.3 } 100% { transform: translateY(24px) scaleX(.2); opacity:0 } }
@keyframes mhu-gleam { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:.9; transform: scale(1.2) } 100% { opacity:.5; transform: scale(1) } }

.scn-margaret-lists-dead { background: linear-gradient(180deg, #0f0b12 0%, #1c141c 50%, #120e14 100%), radial-gradient(ellipse at 50% 80%, #2a1e28 0%, transparent 70%); }
.scn-margaret-lists-dead .sky-dark { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0710 0%, #1a1420 100%); animation: mld-sky 16s ease-in-out infinite alternate; }
.scn-margaret-lists-dead .graveyard-z { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #261e24 0%, #120e12 100%); border-radius: 30% 70% 0 0 / 50% 90% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: mld-ground 24s ease-in-out infinite; }
.scn-margaret-lists-dead .stone { position:absolute; bottom:15%; width:14px; height:26px; background: linear-gradient(180deg, #2e2628 0%, #1a1618 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 5px 8px rgba(0,0,0,.4); }
.scn-margaret-lists-dead .stone1 { left:22%; animation: mld-stone1 8s ease-in-out infinite; }
.scn-margaret-lists-dead .stone2 { left:38%; animation: mld-stone2 10s ease-in-out infinite 1s; }
.scn-margaret-lists-dead .stone3 { left:54%; animation: mld-stone3 12s ease-in-out infinite 2s; }
.scn-margaret-lists-dead .stone4 { left:70%; animation: mld-stone4 9s ease-in-out infinite 0.5s; }
.scn-margaret-lists-dead .miasma { position:absolute; bottom:25%; left:10%; width:80%; height:30%; background: radial-gradient(ellipse, rgba(50,30,35,.12) 0%, transparent 60%); filter: blur(14px); animation: mld-mist 20s ease-in-out infinite; }
@keyframes mld-sky    { 0%,100% { opacity:.6 } 50% { opacity:.9 } }
@keyframes mld-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mld-stone1 { 0%,100% { transform: translateY(0) rotate(0); opacity:.8 } 50% { transform: translateY(-4px) rotate(3deg); opacity:1 } }
@keyframes mld-stone2 { 0%,100% { transform: translateY(0) rotate(0); opacity:.7 } 50% { transform: translateY(-2px) rotate(-2deg); opacity:1 } }
@keyframes mld-stone3 { 0%,100% { transform: translateY(0) rotate(0); opacity:.9 } 50% { transform: translateY(-5px) rotate(4deg); opacity:1 } }
@keyframes mld-stone4 { 0%,100% { transform: translateY(0) rotate(0); opacity:.8 } 50% { transform: translateY(-3px) rotate(-3deg); opacity:1 } }
@keyframes mld-mist  { 0%,100% { opacity:.2; transform: translateX(-10%) } 50% { opacity:.5; transform: translateX(10%) } }

.scn-margaret-predicts-end { background: linear-gradient(180deg, #0d0508 0%, #1a0c12 40%, #12060a 100%), radial-gradient(ellipse at 50% 20%, #2a1418 0%, transparent 70%); }
.scn-margaret-predicts-end .hell-ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a141a 0%, #0d0608 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; box-shadow: inset 0 15px 40px rgba(0,0,0,.6); animation: mpe-ground 18s ease-in-out infinite; }
.scn-margaret-predicts-end .crack { position:absolute; bottom:30%; width:15px; height:4px; background: #4a1e1e; border-radius: 20% 20% 0 0; box-shadow: 0 2px 10px #4a1e1e; transform-origin: bottom; }
.scn-margaret-predicts-end .crack1 { left:32%; animation: mpe-crack1 6s ease-in-out infinite; }
.scn-margaret-predicts-end .crack2 { left:58%; animation: mpe-crack2 7s ease-in-out infinite 1s; }
.scn-margaret-predicts-end .flame { position:absolute; bottom:28%; width:12px; height:20px; background: radial-gradient(ellipse, #6a302a 0%, #3a181a 50%, transparent 100%); border-radius: 50%; filter: blur(4px); }
.scn-margaret-predicts-end .flame-a { left:35%; animation: mpe-flame 4s ease-in-out infinite; }
.scn-margaret-predicts-end .flame-b { left:60%; animation: mpe-flame 4.5s ease-in-out infinite 1.2s; }
.scn-margaret-predicts-end .fig-prophet { position:absolute; bottom:25%; left:47%; width:18px; height:42px; background: linear-gradient(180deg, #1a0e0e 0%, #0a0505 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: mpe-fig 5s ease-in-out infinite; }
.scn-margaret-predicts-end .ember { position:absolute; bottom:40%; left:52%; width:4px; height:4px; background: #6a3030; border-radius:50%; box-shadow: 0 0 8px 2px rgba(100,40,40,.5); animation: mpe-ember 3s ease-in-out infinite alternate; }
@keyframes mpe-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes mpe-crack1 { 0%,100% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(2) translateY(-4px); opacity:1 } }
@keyframes mpe-crack2 { 0%,100% { transform: scaleY(1) translateY(0); opacity:.7 } 50% { transform: scaleY(1.8) translateY(-3px); opacity:1 } }
@keyframes mpe-flame  { 0%,100% { opacity:.6; transform: scaleY(1) translateY(0) } 50% { opacity:1; transform: scaleY(1.4) translateY(-6px) } }
@keyframes mpe-fig   { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mpe-ember { 0% { opacity:.2; transform: translateY(0) scale(.8) } 100% { opacity:1; transform: translateY(-12px) scale(1.5) } }

.scn-richard-swears-intent {
  background: linear-gradient(180deg, #ffe4b5 0%, #f5c990 40%, #d4a76a 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-richard-swears-intent .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 100%); opacity:.6; animation: rsi-sky 20s ease-in-out infinite alternate; }
.scn-richard-swears-intent .sun { position:absolute; top:8%; left:55%; width:70px; height:70px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); box-shadow: 0 0 80px 30px rgba(255,215,0,.4); animation: rsi-sun 12s ease-in-out infinite; }
.scn-richard-swears-intent .castle { position:absolute; bottom:30%; left:20%; width:120px; height:90px; background: linear-gradient(180deg, #c0a060 0%, #8b7355 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: rsi-castle 8s ease-in-out infinite; }
.scn-richard-swears-intent .figure-swearing { position:absolute; bottom:20%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rsi-figure 4s ease-in-out infinite; }
.scn-richard-swears-intent .window-arch { position:absolute; bottom:35%; left:23%; width:16px; height:24px; background: radial-gradient(circle at 50% 30%, #ffe4b5 0%, #8b7355 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-richard-swears-intent .cloud-slow { position:absolute; top:12%; left:5%; width:100px; height:20px; background: rgba(255,255,240,.5); border-radius:50%; filter: blur(8px); animation: rsi-cloud 40s linear infinite; }
@keyframes rsi-sky { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes rsi-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,215,0,.5) } }
@keyframes rsi-castle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes rsi-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(2deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes rsi-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(110vw) } }

.scn-elizabeth-fears-scaffold {
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #a0522d 100%), radial-gradient(ellipse at 50% 30%, #fff5ee 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-elizabeth-fears-scaffold .sky-fierce { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87cefa 0%, #f5deb3 100%); opacity:.7; animation: efs-sky 15s ease-in-out infinite alternate; }
.scn-elizabeth-fears-scaffold .sun-harsh { position:absolute; top:5%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fffafa 0%, #ffd700 30%, transparent 60%); box-shadow: 0 0 60px 20px rgba(255,215,0,.6); animation: efs-sun 6s ease-in-out infinite; }
.scn-elizabeth-fears-scaffold .scaffold { position:absolute; bottom:20%; left:30%; width:100px; height:80px; background: linear-gradient(180deg, #6b4226 0%, #4a2a1a 100%); border-radius: 4%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: efs-scaffold 10s ease-in-out infinite; }
.scn-elizabeth-fears-scaffold .figure-queen { position:absolute; bottom:25%; left:45%; width:24px; height:48px; background: linear-gradient(180deg, #2c1a0e 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: efs-queen 5s ease-in-out infinite; }
.scn-elizabeth-fears-scaffold .shadow-blade { position:absolute; bottom:18%; left:35%; width:80px; height:4px; background: linear-gradient(90deg, transparent, #1a1008 50%, transparent); filter: blur(2px); animation: efs-blade 4s ease-in-out infinite; }
.scn-elizabeth-fears-scaffold .block-stone { position:absolute; bottom:15%; left:42%; width:30px; height:15px; background: #5a4030; border-radius: 10%; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-elizabeth-fears-scaffold .rope { position:absolute; bottom:40%; left:47%; width:2px; height:30px; background: #3a2a1a; border-radius: 1px; animation: efs-rope 3s ease-in-out infinite; }
@keyframes efs-sky { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes efs-sun { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(10deg) } }
@keyframes efs-scaffold { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes efs-queen { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-3px) translateY(-2px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes efs-blade { 0%,100% { opacity:.3 } 50% { opacity:.8 } }
@keyframes efs-rope { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }

.scn-richard-offers-all {
  background: linear-gradient(180deg, #fffacd 0%, #ffd700 30%, #daa520 100%), radial-gradient(ellipse at 40% 20%, #fff8dc 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-richard-offers-all .sky-generous { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #fffacd 100%); opacity:.5; animation: roa-sky 18s ease-in-out infinite alternate; }
.scn-richard-offers-all .sun-glow { position:absolute; top:5%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 30%, transparent 70%); box-shadow: 0 0 120px 40px rgba(255,215,0,.5); animation: roa-sun 9s ease-in-out infinite; }
.scn-richard-offers-all .figure-king { position:absolute; bottom:25%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%; transform-origin: bottom center; animation: roa-king 4s ease-in-out infinite; }
.scn-richard-offers-all .offering-crown { position:absolute; bottom:40%; left:45%; width:20px; height:12px; background: linear-gradient(90deg, #b8860b, #ffd700, #b8860b); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,215,0,.6); animation: roa-crown 3s ease-in-out infinite; }
.scn-richard-offers-all .light-rays { position:absolute; top:0; left:30%; width:120px; height:70%; background: repeating-linear-gradient(135deg, transparent, transparent 10px, rgba(255,255,200,.2) 10px, rgba(255,255,200,.2) 12px); animation: roa-rays 20s linear infinite; }
.scn-richard-offers-all .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-richard-offers-all .aura { position:absolute; bottom:30%; left:30%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,215,0,.3) 0%, transparent 70%); filter: blur(10px); animation: roa-aura 6s ease-in-out infinite; }
@keyframes roa-sky { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes roa-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes roa-king { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(2deg) } 75% { transform: translateX(-5px) translateY(-3px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes roa-crown { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-10px) rotate(5deg) } }
@keyframes roa-rays { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes roa-aura { 0%,100% { opacity:.4 } 50% { opacity:.8 } }

.scn-richard-declares-love {
  background: linear-gradient(180deg, #ffe4e1 0%, #ffdab9 30%, #deb887 100%), radial-gradient(ellipse at 60% 40%, #fff5ee 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-richard-declares-love .sky-soft { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e68c 0%, #ffe4e1 100%); opacity:.6; animation: rdl-sky 20s ease-in-out infinite alternate; }
.scn-richard-declares-love .sun-warm { position:absolute; top:10%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #ffb6c1 40%, transparent 70%); box-shadow: 0 0 90px 30px rgba(255,182,193,.4); animation: rdl-sun 10s ease-in-out infinite; }
.scn-richard-declares-love .figure-knight { position:absolute; bottom:25%; left:40%; width:26px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rdl-knight 5s ease-in-out infinite; }
.scn-richard-declares-love .figure-lady { position:absolute; bottom:25%; right:35%; width:24px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rdl-lady 5s ease-in-out infinite reverse; }
.scn-richard-declares-love .tree-heart { position:absolute; bottom:20%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #8b4513 0%, #5a3010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.3); animation: rdl-tree 12s ease-in-out infinite; }
.scn-richard-declares-love .grass { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-richard-declares-love .petals { position:absolute; top:20%; left:30%; width:40px; height:30px; background: radial-gradient(circle, #ffb6c1 0%, transparent 70%); filter: blur(3px); animation: rdl-petals 8s linear infinite; }
@keyframes rdl-sky { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes rdl-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.08) } }
@keyframes rdl-knight { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(3deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes rdl-lady { 0% { transform: translateX(0) translateY(0) rotate(3deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(-3deg) } 75% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(3deg) } }
@keyframes rdl-tree { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.02) } }
@keyframes rdl-petals { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:.6 } 50% { transform: translateX(20px) translateY(-30px) rotate(20deg); opacity:.3 } 100% { transform: translateX(40px) translateY(-60px) rotate(40deg); opacity:0 } }

.scn-king-binds-family-peace {
  background:
    linear-gradient(180deg, #c89464 0%, #b07a4a 30%, #8a5a30 70%, #5a3a1a 100%),
    radial-gradient(ellipse at 50% 30%, #e0b080 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-king-binds-family-peace .scene-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #d4a070 0%, #a0683a 100%);
  animation: kbf-bg-pulse 12s ease-in-out infinite alternate;
}
.scn-king-binds-family-peace .throne {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 180px;
  background: linear-gradient(135deg, #b0804a 0%, #6a4020 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.5);
}
.scn-king-binds-family-peace .king {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 160px;
  background: linear-gradient(180deg, #d4a074 0%, #8a5a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kbf-king 4s ease-in-out infinite;
}
.scn-king-binds-family-peace .hastings {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40px;
  height: 140px;
  background: linear-gradient(180deg, #b0805a 0%, #6a4020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: kbf-subject 5s ease-in-out infinite alternate;
}
.scn-king-binds-family-peace .queen {
  position: absolute;
  bottom: 10%;
  right: 30%;
  width: 40px;
  height: 130px;
  background: linear-gradient(180deg, #c0905a 0%, #784828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: kbf-subject 5s ease-in-out infinite alternate-reverse;
}
.scn-king-binds-family-peace .window-right {
  position: absolute;
  top: 8%;
  right: 5%;
  width: 60px;
  height: 90px;
  background: linear-gradient(180deg, #ffe0b0 0%, #d4a070 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(255, 200, 80, 0.8);
  animation: kbf-window 8s ease-in-out infinite alternate;
}
.scn-king-binds-family-peace .floor-glow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, transparent 0%, #8a5a30 50%, #5a3a1a 100%);
  animation: kbf-floor 6s ease-in-out infinite;
}
@keyframes kbf-bg-pulse { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes kbf-king { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } }
@keyframes kbf-subject { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes kbf-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(255,200,80,0.5) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,200,80,0.9) } 100% { opacity:0.8; box-shadow: inset 0 0 30px rgba(255,200,80,0.6) } }
@keyframes kbf-floor { 0%,100% { opacity:0.9 } 50% { opacity:1 } }

.scn-buckingham-swears-loyalty {
  background:
    linear-gradient(180deg, #c89860 0%, #b07840 40%, #7a4a20 100%),
    radial-gradient(ellipse at 30% 20%, #e0b080 0%, transparent 50%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-buckingham-swears-loyalty .chamber-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #d4a878 0%, #9a6030 100%);
  animation: bsl-bg 15s ease-in-out infinite alternate;
}
.scn-buckingham-swears-loyalty .pillar-left {
  position: absolute;
  top: 0;
  left: 8%;
  width: 20px;
  height: 100%;
  background: linear-gradient(180deg, #b08050 0%, #704020 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
  animation: bsl-pillar 10s ease-in-out infinite;
}
.scn-buckingham-swears-loyalty .pillar-right {
  position: absolute;
  top: 0;
  right: 8%;
  width: 20px;
  height: 100%;
  background: linear-gradient(180deg, #b08050 0%, #704020 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: bsl-pillar 10s ease-in-out infinite reverse;
}
.scn-buckingham-swears-loyalty .king-standing {
  position: absolute;
  bottom: 10%;
  left: 55%;
  width: 50px;
  height: 160px;
  background: linear-gradient(180deg, #d4a074 0%, #8a5a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsl-king-stand 6s ease-in-out infinite;
}
.scn-buckingham-swears-loyalty .buckingham-kneeling {
  position: absolute;
  bottom: 10%;
  left: 32%;
  width: 40px;
  height: 120px;
  background: linear-gradient(180deg, #c0905a 0%, #784828 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bsl-kneel 5s ease-in-out infinite alternate;
}
.scn-buckingham-swears-loyalty .buckingham-hand {
  position: absolute;
  bottom: 30%;
  left: 39%;
  width: 12px;
  height: 16px;
  background: #c0905a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: bsl-hand 4s ease-in-out infinite;
}
.scn-buckingham-swears-loyalty .vow-light {
  position: absolute;
  top: 25%;
  left: 35%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(255,200,80,0.6) 0%, transparent 70%);
  animation: bsl-vow-glow 3s ease-in-out infinite alternate;
}
.scn-buckingham-swears-loyalty .tapestry {
  position: absolute;
  top: 5%;
  left: 20%;
  width: 60%;
  height: 20%;
  background: linear-gradient(135deg, #8a5a3a 0%, #5a3a1a 50%, #8a5a3a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bsl-tapestry 20s linear infinite;
}
@keyframes bsl-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bsl-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes bsl-king-stand { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes bsl-kneel { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bsl-hand { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-2px) } }
@keyframes bsl-vow-glow { 0% { opacity:0.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes bsl-tapestry { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }

.scn-king-edward-seeks-peace {
  background:
    linear-gradient(180deg, #c89a60 0%, #a86a38 40%, #6a3a18 100%),
    radial-gradient(ellipse at 50% 30%, #e0b080 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-king-edward-seeks-peace .table-top {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 30%;
  background: linear-gradient(135deg, #a07040 0%, #6a4020 100%);
  border-radius: 20% 20% 6% 6% / 40% 40% 10% 10%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
  animation: kes-table 8s ease-in-out infinite;
}
.scn-king-edward-seeks-peace .king-edward {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 50px;
  height: 130px;
  background: linear-gradient(180deg, #d4a074 0%, #8a5a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  z-index: 2;
  animation: kes-fig 5s ease-in-out infinite;
}
.scn-king-edward-seeks-peace .peer-left {
  position: absolute;
  bottom: 30%;
  left: 18%;
  width: 40px;
  height: 120px;
  background: linear-gradient(180deg, #c0905a 0%, #784828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: kes-fig 5s ease-in-out infinite alternate;
}
.scn-king-edward-seeks-peace .peer-right {
  position: absolute;
  bottom: 30%;
  right: 18%;
  width: 40px;
  height: 120px;
  background: linear-gradient(180deg, #b0805a 0%, #6a4020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: kes-fig 5s ease-in-out infinite alternate-reverse;
}
.scn-king-edward-seeks-peace .candle {
  position: absolute;
  bottom: 40%;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c88840 100%);
  border-radius: 4% 4% 20% 20%;
  z-index: 3;
}
.scn-king-edward-seeks-peace .candle-flame {
  position: absolute;
  bottom: 58%;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #e08020 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  animation: kes-flame 2s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-king-edward-seeks-peace .table-shadow {
  position: absolute;
  bottom: 18%;
  left: 10%;
  right: 10%;
  height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: kes-shadow 6s ease-in-out infinite;
}
@keyframes kes-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes kes-fig { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes kes-flame { 0% { transform: translateX(-50%) scale(1) rotate(-3deg) } 100% { transform: translateX(-50%) scale(1.1) rotate(3deg) } }
@keyframes kes-shadow { 0%,100% { opacity:0.7 } 50% { opacity:1 } }

.scn-clarence-death-revealed {
  background:
    linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 20%, #c08050 0%, transparent 50%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-clarence-death-revealed .dark-hall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  animation: cdr-hall 10s ease-in-out infinite alternate;
}
.scn-clarence-death-revealed .window-bright {
  position: absolute;
  top: 10%;
  left: 5%;
  width: 80px;
  height: 100px;
  background: linear-gradient(180deg, #ffe0b0 0%, #e0a060 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 40px rgba(255,200,80,0.8), 0 0 60px rgba(255,200,80,0.3);
  animation: cdr-window 4s ease-in-out infinite alternate;
}
.scn-clarence-death-revealed .group-figures {
  position: absolute;
  bottom: 15%;
  left: 20%;
  right: 20%;
  height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,10,0,0.7) 60%, rgba(10,5,0,0.9) 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  animation: cdr-group 3s ease-in-out infinite;
}
.scn-clarence-death-revealed .messenger {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 40px;
  height: 140px;
  background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cdr-messenger 0.6s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-clarence-death-revealed .shock-wave {
  position: absolute;
  top: 30%;
  left: 30%;
  right: 30%;
  height: 40%;
  background: radial-gradient(ellipse, rgba(255,200,80,0.15) 0%, transparent 70%);
  animation: cdr-shock 2s ease-in-out infinite;
}
.scn-clarence-death-revealed .startled-arm {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 10px;
  height: 60px;
  background: #5a3a1a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-40deg);
  transform-origin: top center;
  animation: cdr-arm 0.8s ease-in-out infinite alternate;
}
.scn-clarence-death-revealed .shadow-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, #1a0e06 100%);
  animation: cdr-floor 5s ease-in-out infinite;
}
@keyframes cdr-hall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cdr-window { 0% { opacity:0.5; box-shadow: inset 0 0 20px rgba(255,200,80,0.5) } 100% { opacity:1; box-shadow: inset 0 0 60px rgba(255,200,80,1), 0 0 80px rgba(255,200,80,0.5) } }
@keyframes cdr-group { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes cdr-messenger { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-2px) rotate(2deg) } }
@keyframes cdr-shock { 0% { transform: scale(0.8); opacity:0 } 30% { opacity:0.3 } 100% { transform: scale(1.2); opacity:0 } }
@keyframes cdr-arm { 0% { transform: rotate(-40deg) } 100% { transform: rotate(-30deg) } }
@keyframes cdr-floor { 0%,100% { opacity:0.8 } 50% { opacity:1 } }

.scn-richard-plots-alone {
  background:
    linear-gradient(180deg, #d4b88c 0%, #c4a070 40%, #b08858 100%),
    radial-gradient(ellipse at 70% 30%, #e0c898 0%, transparent 70%);
}
.scn-richard-plots-alone .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.1);
}
.scn-richard-plots-alone .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4% 4% 0 0;
}
.scn-richard-plots-alone .window {
  position: absolute; top: 10%; right: 15%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #a0c0e0 0%, #80a0c0 100%);
  border: 6px solid #8a7050; box-shadow: inset 0 0 20px rgba(200,200,220,0.3);
  animation: rpa-window 8s ease-in-out infinite alternate;
}
.scn-richard-plots-alone .desk {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px 4px 8px 8px;
  transform: perspective(300px) rotateX(5deg);
}
.scn-richard-plots-alone .candle {
  position: absolute; bottom: 32%; left: 35%; width: 6px; height: 18px;
  background: #d0b070; border-radius: 2px 2px 0 0;
  box-shadow: 0 0 24px 8px rgba(240,200,150,0.6);
  animation: rpa-candle 2s ease-in-out infinite;
}
.scn-richard-plots-alone .figure-sit {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #302818 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpa-sit 6s ease-in-out infinite;
}
.scn-richard-plots-alone .scroll {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 12px;
  background: #e8d0a0; border-radius: 4px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-richard-plots-alone .shadow-desk {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 8%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(6px);
}

@keyframes rpa-window {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rpa-candle {
  0%,100% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 20px 6px rgba(240,200,150,0.5); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 30px 10px rgba(240,200,150,0.7); }
}
@keyframes rpa-sit {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}

.scn-richard-asks-name {
  background:
    linear-gradient(180deg, #e0d0b0 0%, #c8b898 40%, #a89878 100%),
    radial-gradient(ellipse at 60% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-richard-asks-name .wall-light {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e4cc 0%, #d8c8a8 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.05);
}
.scn-richard-asks-name .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #806040 0%, #604828 100%);
  border-radius: 6% 6% 0 0;
}
.scn-richard-asks-name .archway {
  position: absolute; top: 8%; left: 12%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #b09878 0%, #908060 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-richard-asks-name .figure-richard {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ran-richard 5s ease-in-out infinite;
}
.scn-richard-asks-name .figure-page {
  position: absolute; bottom: 22%; left: 40%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ran-page 5s ease-in-out infinite reverse;
}
.scn-richard-asks-name .chandelier {
  position: absolute; top: 2%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08860 0%, #806040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 18px 40px 15px rgba(220,190,140,0.5);
  animation: ran-chandelier 4s ease-in-out infinite alternate;
}
.scn-richard-asks-name .light-shaft {
  position: absolute; top: 0; left: 28%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,220,0.3) 0%, transparent 100%);
  filter: blur(20px);
  animation: ran-shaft 10s ease-in-out infinite alternate;
}

@keyframes ran-richard {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(1deg); }
}
@keyframes ran-page {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes ran-chandelier {
  0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.9; }
  50% { transform: translateX(-50%) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-1deg); opacity: 0.95; }
}
@keyframes ran-shaft {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

.scn-stanley-reports-dorset-fled {
  background:
    linear-gradient(180deg, #d8c8a8 0%, #c0b090 40%, #a09070 100%),
    radial-gradient(ellipse at 30% 50%, #e8dcc0 0%, transparent 60%);
}
.scn-stanley-reports-dorset-fled .back-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d4b8 0%, #c8bca0 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.08);
}
.scn-stanley-reports-dorset-fled .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #8a7050 0px, #8a7050 20px, #9a8060 20px, #9a8060 40px);
  border-radius: 4% 4% 0 0;
}
.scn-stanley-reports-dorset-fled .table {
  position: absolute; bottom: 18%; left: 55%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #a08868 0%, #806848 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(3deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
.scn-stanley-reports-dorset-fled .figure-stanley {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srd-stanley 7s ease-in-out infinite;
}
.scn-stanley-reports-dorset-fled .figure-richard {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srd-richard 7s ease-in-out infinite reverse;
}
.scn-stanley-reports-dorset-fled .figure-catesby {
  position: absolute; bottom: 22%; right: 12%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srd-catesby 9s ease-in-out infinite 3s;
}
.scn-stanley-reports-dorset-fled .candlestick {
  position: absolute; bottom: 28%; left: 52%; width: 4px; height: 16px;
  background: #c0a070; border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(240,210,160,0.4);
  animation: srd-candle 3s ease-in-out infinite alternate;
}
.scn-stanley-reports-dorset-fled .wall-tapestry {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  border: 2px solid #8a6040;
  animation: srd-tapestry 12s ease-in-out infinite;
}

@keyframes srd-stanley {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0.5deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes srd-richard {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(0) rotate(0); }
}
@keyframes srd-catesby {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes srd-candle {
  0% { box-shadow: 0 0 12px 2px rgba(240,210,160,0.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 20px 6px rgba(240,210,160,0.6); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 14px 3px rgba(240,210,160,0.4); transform: scaleY(1); }
}
@keyframes srd-tapestry {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
}

.scn-richard-plans-anne-death {
  background:
    linear-gradient(180deg, #d0bc9c 0%, #b8a484 40%, #a08868 100%),
    radial-gradient(ellipse at 50% 40%, #e8d8bc 0%, transparent 60%);
}
.scn-richard-plans-anne-death .bg-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e4d4b8 0%, #c8b8a0 100%);
  box-shadow: inset 0 -6px 18px rgba(0,0,0,0.06);
}
.scn-richard-plans-anne-death .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #6a5030 0px, #6a5030 10px, #7a6040 10px, #7a6040 12px);
  border-radius: 2% 2% 0 0;
}
.scn-richard-plans-anne-death .window-narrow {
  position: absolute; top: 8%; left: 8%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #90b0d0 0%, #7090b0 100%);
  border: 6px solid #7a6040;
  box-shadow: inset 0 0 20px rgba(150,180,210,0.2);
  animation: rpd-window 10s ease-in-out infinite alternate;
}
.scn-richard-plans-anne-death .desk-slant {
  position: absolute; bottom: 18%; left: 30%; width: 45%; height: 16%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  transform: perspective(250px) rotateX(6deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-richard-plans-anne-death .figure-king {
  position: absolute; bottom: 16%; left: 35%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #4a3828 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpd-king 6s ease-in-out infinite;
}
.scn-richard-plans-anne-death .mirror {
  position: absolute; top: 12%; right: 18%; width: 22%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #c8d0e0 0%, #a0a8b8 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 30px rgba(200,200,220,0.3);
  border: 6px solid #8a7050;
  animation: rpd-mirror 8s ease-in-out infinite;
}
.scn-richard-plans-anne-death .inkwell {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 10px;
  background: #1a1a1a; border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
}
.scn-richard-plans-anne-death .letter {
  position: absolute; bottom: 26%; left: 38%; width: 28px; height: 16px;
  background: #e8d4b0; border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rpd-letter 4s ease-in-out infinite alternate;
}

@keyframes rpd-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rpd-king {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0.5deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes rpd-mirror {
  0%,100% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.02); opacity: 1; }
}
@keyframes rpd-letter {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(-8deg) translateY(-3px); }
}

/* rivers-challenges-richard */
.scn-rivers-challenges-richard {
  background: linear-gradient(180deg, #c8a96e 0%, #8b6f3a 40%, #5a442a 100%), radial-gradient(ellipse at 50% 30%, #e8d4a0 0%, transparent 60%);
}
.scn-rivers-challenges-richard .floor {
  position: absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(0deg, #4a3520 0%, #6b5030 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-rivers-challenges-richard .wall {
  position: absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #c0a070 0%, #9a7a4a 100%);
}
.scn-rivers-challenges-richard .pillar-left {
  position: absolute; bottom:18%; left:10%; width:6%; height:70%; background: linear-gradient(90deg, #8a6a3a 0%, #b09060 30%, #8a6a3a 100%); box-shadow: 6px 0 20px rgba(0,0,0,.4); animation: rrc-pillar 6s ease-in-out infinite alternate;
}
.scn-rivers-challenges-richard .pillar-right {
  position: absolute; bottom:18%; right:10%; width:6%; height:70%; background: linear-gradient(90deg, #8a6a3a 0%, #b09060 30%, #8a6a3a 100%); box-shadow: -6px 0 20px rgba(0,0,0,.4); animation: rrc-pillar 6s ease-in-out infinite alternate-reverse;
}
.scn-rivers-challenges-richard .figure-richard {
  position: absolute; bottom:18%; left:32%; width:12%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rrc-figure-richard 4s ease-in-out infinite;
}
.scn-rivers-challenges-richard .figure-rivers {
  position: absolute; bottom:18%; right:30%; width:11%; height:48%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rrc-figure-rivers 3.5s ease-in-out infinite;
}
.scn-rivers-challenges-richard .light-beam {
  position: absolute; top:0%; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,230,180,.4) 0%, transparent 80%); filter: blur(8px); animation: rrc-beam 8s ease-in-out infinite alternate;
}
.scn-rivers-challenges-richard .shadow-sharp {
  position: absolute; bottom:18%; left:35%; width:30%; height:20%; background: rgba(0,0,0,.3); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: rrc-shadow 5s ease-in-out infinite;
}
@keyframes rrc-pillar { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } 100% { transform: scaleY(0.99) translateY(1px); } }
@keyframes rrc-figure-richard { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rrc-figure-rivers { 0% { transform: translateX(0) translateY(0); } 40% { transform: translateX(-3px) translateY(-2px) rotate(1deg); } 80% { transform: translateX(2px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes rrc-beam { 0% { opacity: 0.6; filter: blur(10px); transform: scaleY(0.95); } 50% { opacity: 1; filter: blur(6px); transform: scaleY(1); } 100% { opacity: 0.7; filter: blur(12px); transform: scaleY(0.98); } }
@keyframes rrc-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* richard-scoffs-nobility */
.scn-richard-scoffs-nobility {
  background: linear-gradient(180deg, #d4b87a 0%, #a08040 50%, #6a5030 100%), radial-gradient(ellipse at 50% 40%, #f0d8a0 0%, transparent 70%);
}
.scn-richard-scoffs-nobility .throne-back {
  position: absolute; bottom:20%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: rsn-throne 12s ease-in-out infinite alternate;
}
.scn-richard-scoffs-nobility .throne-seat {
  position: absolute; bottom:20%; left:40%; width:20%; height:10%; background: linear-gradient(0deg, #7a5a2a 0%, #9a7a4a 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-richard-scoffs-nobility .king-robes {
  position: absolute; bottom:20%; left:42%; width:16%; height:45%; background: linear-gradient(180deg, #5a1a1d 0%, #3a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: rsn-robes 4s ease-in-out infinite;
}
.scn-richard-scoffs-nobility .king-figure {
  position: absolute; bottom:30%; left:45%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rsn-king 3s ease-in-out infinite;
}
.scn-richard-scoffs-nobility .courtier-left {
  position: absolute; bottom:20%; left:12%; width:10%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: rsn-courtier-l 5s ease-in-out infinite;
}
.scn-richard-scoffs-nobility .courtier-right {
  position: absolute; bottom:20%; right:12%; width:10%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rsn-courtier-r 5s ease-in-out infinite reverse;
}
.scn-richard-scoffs-nobility .sceptre {
  position: absolute; bottom:45%; left:49%; width:2%; height:30%; background: linear-gradient(0deg, #c8a050 0%, #e8c060 100%); border-radius: 2px; transform-origin: bottom center; box-shadow: 0 0 8px #e8c060; animation: rsn-sceptre 2s ease-in-out infinite alternate;
}
.scn-richard-scoffs-nobility .lantern {
  position: absolute; top:10%; left:30%; width:8%; height:12%; background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius: 10px; box-shadow: 0 0 30px 10px rgba(255,208,128,.5); animation: rsn-lantern 6s ease-in-out infinite alternate;
}
@keyframes rsn-throne { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-3px); } 100% { transform: scaleX(0.98) translateY(2px); } }
@keyframes rsn-robes { 0% { transform: rotate(0deg) scaleY(1); } 30% { transform: rotate(2deg) scaleY(1.02); } 70% { transform: rotate(-1deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes rsn-king { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rsn-courtier-l { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(2px) rotate(1deg); } 80% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rsn-courtier-r { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 80% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rsn-sceptre { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes rsn-lantern { 0% { opacity: 0.8; filter: blur(2px); } 50% { opacity: 1; filter: blur(0); } 100% { opacity: 0.9; filter: blur(1px); } }

/* elizabeth-defends-position */
.scn-elizabeth-defends-position {
  background: linear-gradient(180deg, #c8b08a 0%, #9a7a5a 40%, #6a5030 100%), radial-gradient(ellipse at 50% 30%, #e8d4b0 0%, transparent 60%);
}
.scn-elizabeth-defends-position .bg-arch {
  position: absolute; top:0%; left:20%; width:60%; height:90%; background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: edp-arch 10s ease-in-out infinite alternate;
}
.scn-elizabeth-defends-position .column-left {
  position: absolute; bottom:0%; left:22%; width:4%; height:80%; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 40%, #5a3a1a 100%); box-shadow: 4px 0 12px rgba(0,0,0,.3); animation: edp-column 8s ease-in-out infinite alternate;
}
.scn-elizabeth-defends-position .column-right {
  position: absolute; bottom:0%; right:22%; width:4%; height:80%; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 40%, #5a3a1a 100%); box-shadow: -4px 0 12px rgba(0,0,0,.3); animation: edp-column 8s ease-in-out infinite alternate-reverse;
}
.scn-elizabeth-defends-position .queen-figure {
  position: absolute; bottom:18%; left:40%; width:20%; height:55%; background: linear-gradient(180deg, #5a2a3a 0%, #2a1018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edp-queen 4s ease-in-out infinite;
}
.scn-elizabeth-defends-position .crown-halo {
  position: absolute; bottom:60%; left:44%; width:12%; height:8%; background: radial-gradient(circle, #e8c860 0%, transparent 60%); border-radius: 50%; filter: blur(4px); animation: edp-halo 5s ease-in-out infinite alternate;
}
.scn-elizabeth-defends-position .child-silhouette {
  position: absolute; bottom:18%; left:30%; width:8%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: edp-child 3s ease-in-out infinite;
}
.scn-elizabeth-defends-position .shield {
  position: absolute; bottom:30%; left:52%; width:10%; height:20%; background: linear-gradient(135deg, #a0461a 0%, #c8553d 50%, #a0461a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: edp-shield 2s ease-in-out infinite alternate;
}
.scn-elizabeth-defends-position .motes {
  position: absolute; top:25%; left:30%; width:40%; height:30%; background: radial-gradient(circle, rgba(255,230,180,.15) 0%, transparent 70%); filter: blur(15px); animation: edp-motes 20s linear infinite;
}
@keyframes edp-arch { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes edp-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes edp-queen { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes edp-halo { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes edp-child { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-3px) rotate(2deg); } 80% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes edp-shield { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-2px); } }
@keyframes edp-motes { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(20px,-10px) scale(1.05); } 100% { transform: translate(-10px,10px) scale(0.95); } }

/* rivers-denies-accusations */
.scn-rivers-denies-accusations {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 40% 60%, #b08060 0%, transparent 70%);
}
.scn-rivers-denies-accusations .dungeon-wall {
  position: absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 100%);
}
.scn-rivers-denies-accusations .floor-slab {
  position: absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0a00 0%, #3a2a1a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-rivers-denies-accusations .chain-left {
  position: absolute; bottom:25%; left:15%; width:15%; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: rda-chain 3s ease-in-out infinite alternate;
}
.scn-rivers-denies-accusations .chain-right {
  position: absolute; bottom:25%; right:15%; width:15%; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: rda-chain 3s ease-in-out infinite alternate-reverse;
}
.scn-rivers-denies-accusations .rivers-figure {
  position: absolute; bottom:20%; left:40%; width:14%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rda-figure 4s ease-in-out infinite;
}
.scn-rivers-denies-accusations .raised-hand {
  position: absolute; bottom:55%; left:52%; width:4%; height:12%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: rda-hand 2s ease-in-out infinite alternate;
}
.scn-rivers-denies-accusations .torch-glow {
  position: absolute; bottom:40%; left:70%; width:20%; height:30%; background: radial-gradient(circle, rgba(255,160,80,.4) 0%, transparent 60%); filter: blur(10px); animation: rda-torch 2s ease-in-out infinite alternate;
}
.scn-rivers-denies-accusations .shadow-bar {
  position: absolute; top:30%; left:0; width:100%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.4) 100%); animation: rda-bar 5s ease-in-out infinite;
}
@keyframes rda-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes rda-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rda-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes rda-torch { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes rda-bar { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-richard-mocks-anne {
  background: 
    linear-gradient(180deg, #f9d9a3 0%, #e5b77d 30%, #c48e4f 60%, #8a5e32 100%),
    radial-gradient(ellipse at 30% 20%, #fff4d6 0%, transparent 60%);
}
.scn-richard-mocks-anne .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fde8c4 0%, #f2cd9a 100%); }
.scn-richard-mocks-anne .sun { position:absolute; top:8%; left:65%; width:40px; height:40px; background: radial-gradient(circle, #fff7e0 0%, #ffd78a 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,138,0.3); animation: rm-sun 8s ease-in-out infinite alternate; }
.scn-richard-mocks-anne .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #9a7a4a 0%, #6b5533 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-richard-mocks-anne .richard { position:absolute; bottom:18%; left:25%; width:35px; height:65px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-richard 3s ease-in-out infinite; }
.scn-richard-mocks-anne .richard::before { content:''; position:absolute; top:-10px; left:5px; width:12px; height:16px; background: #2a1e12; border-radius: 50% 50% 0 0; transform: rotate(15deg); } /* hunch/hump */
.scn-richard-mocks-anne .anne { position:absolute; bottom:20%; left:55%; width:30px; height:55px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rm-anne 4s ease-in-out infinite alternate; }
.scn-richard-mocks-anne .mirror { position:absolute; bottom:28%; left:40%; width:20px; height:28px; background: linear-gradient(135deg, #e0dcd8 0%, #c0b8b0 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(-10deg); animation: rm-mirror 5s ease-in-out infinite alternate; }
.scn-richard-mocks-anne .shadow-richard { position:absolute; bottom:10%; left:22%; width:40px; height:8px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(2px); animation: rm-shadow 3s ease-in-out infinite; }
.scn-richard-mocks-anne .sparkle { position:absolute; top:12%; left:35%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 6px 2px #fff, 0 0 12px 4px rgba(255,255,255,0.5); animation: rm-sparkle 2s ease-in-out infinite; }
@keyframes rm-sun { 0% { transform: scale(0.9); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }
@keyframes rm-richard { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-8px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rm-anne { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes rm-mirror { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes rm-shadow { 0% { transform: scaleX(1); opacity:0.2 } 50% { transform: scaleX(1.2); opacity:0.3 } 100% { transform: scaleX(1); opacity:0.2 } }
@keyframes rm-sparkle { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0.8) } }

.scn-item-richards-looking-glass {
  background: 
    linear-gradient(180deg, #f7eadd 0%, #e5cfb0 40%, #c8a67a 70%, #a47d50 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 50%);
}
.scn-item-richards-looking-glass .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d6c0 0%, #d4bc9e 100%); }
.scn-item-richards-looking-glass .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a07e5a 0%, #7a5f3f 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-item-richards-looking-glass .mirror-frame { position:absolute; top:15%; left:50%; width:80px; height:110px; transform: translateX(-50%); background: linear-gradient(135deg, #b09070 0%, #8a6e50 50%, #6a5036 100%); border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-item-richards-looking-glass .glass { position:absolute; top:17%; left:50%; width:68px; height:96px; transform: translateX(-50%); background: linear-gradient(180deg, #f0ece8 0%, #dad5d0 30%, #b8b0a8 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: im-glass 12s ease-in-out infinite alternate; }
.scn-item-richards-looking-glass .richard-left { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-pose 4s ease-in-out infinite; }
.scn-item-richards-looking-glass .richard-right { position:absolute; bottom:20%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-pose 4s ease-in-out infinite 0.2s; } /* mirror image */
.scn-item-richards-looking-glass .tailor-tape { position:absolute; top:35%; left:5%; width:50px; height:6px; background: #d4a373; border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: im-tape 6s ease-in-out infinite alternate; }
@keyframes im-glass { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); } 100% { opacity:0.9; box-shadow: inset 0 0 15px rgba(0,0,0,0.05); } }
@keyframes im-pose { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes im-tape { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(10deg) translateX(10px); } 100% { transform: rotate(-20deg) translateX(0); } }

.scn-queen-elizabeth-anxious {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e3ccb0 40%, #c8a67a 70%, #8a6e50 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-queen-elizabeth-anxious .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e0ce 0%, #dcc4aa 100%); }
.scn-queen-elizabeth-anxious .window { position:absolute; top:10%; right:8%; width:50px; height:70px; background: linear-gradient(180deg, #b8d4e8 0%, #8cb4d4 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,255,0.5), 0 0 20px rgba(140,180,212,0.3); }
.scn-queen-elizabeth-anxious .floor-plan { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b09070 0%, #806044 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-queen-elizabeth-anxious .queen { position:absolute; bottom:20%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #5e3a2a 0%, #2a1c12 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: qe-queen 5s ease-in-out infinite; }
.scn-queen-elizabeth-anxious .queen::after { content:''; position:absolute; top:-8px; left:2px; width:20px; height:20px; background: #5e3a2a; border-radius: 50%; } /* head, no face */
.scn-queen-elizabeth-anxious .hands-clasped { position:absolute; bottom:30%; left:45%; width:12px; height:16px; background: #6a4a3a; border-radius: 40% 40% 30% 30%; animation: qe-hands 2s ease-in-out infinite alternate; }
.scn-queen-elizabeth-anxious .shadow-queen { position:absolute; bottom:12%; left:42%; width:50px; height:10px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px); animation: qe-shadow 5s ease-in-out infinite; }
.scn-queen-elizabeth-anxious .candle-glow { position:absolute; top:20%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #ffe0a0 0%, #ffb040 50%, transparent 70%); border-radius:50%; animation: qe-glow 3s ease-in-out infinite alternate; }
.scn-queen-elizabeth-anxious .candle { position:absolute; top:22%; left:20%; width:4px; height:15px; background: linear-gradient(180deg, #ffe0a0 0%, #c08040 100%); border-radius: 2px; transform: translateX(-50%); }
@keyframes qe-queen { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes qe-hands { 0% { transform: scale(1); } 50% { transform: scale(1.1) rotate(-5deg); } 100% { transform: scale(1); } }
@keyframes qe-shadow { 0% { transform: scaleX(1); opacity:0.15; } 50% { transform: scaleX(1.3); opacity:0.25; } 100% { transform: scaleX(1); opacity:0.15; } }
@keyframes qe-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }

.scn-rivers-comforts-queen {
  background: 
    linear-gradient(180deg, #f2e6d8 0%, #dfccb0 40%, #c0a484 70%, #8a6e50 100%),
    radial-gradient(ellipse at 50% 60%, #fff5e6 0%, transparent 70%);
}
.scn-rivers-comforts-queen .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ecdcc8 0%, #d4bc9e 100%); }
.scn-rivers-comforts-queen .pillar { position:absolute; top:5%; left:15%; width:20px; height:80%; background: linear-gradient(180deg, #c8b098 0%, #a0826a 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1); }
.scn-rivers-comforts-queen .queen-seated { position:absolute; bottom:15%; left:30%; width:45px; height:50px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2216 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rc-queen 8s ease-in-out infinite; }
.scn-rivers-comforts-queen .rivers { position:absolute; bottom:15%; left:55%; width:35px; height:58px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1c12 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rc-rivers 8s ease-in-out infinite 0.5s; }
.scn-rivers-comforts-queen .hand-comfort { position:absolute; bottom:24%; left:48%; width:14px; height:10px; background: #6a4a3a; border-radius: 40% 60% 20% 80% / 60% 40% 80% 20%; transform: rotate(-10deg); animation: rc-hand 4s ease-in-out infinite alternate; }
.scn-rivers-comforts-queen .soft-shadow { position:absolute; bottom:8%; left:25%; width:60px; height:6px; background: rgba(0,0,0,0.08); border-radius: 50%; filter: blur(4px); animation: rc-shadow 8s ease-in-out infinite; }
.scn-rivers-comforts-queen .fireplace-glow { position:absolute; bottom:20%; left:5%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ffb040 0%, #d08020 40%, transparent 70%); border-radius: 50% 50% 30% 30%; animation: rc-fire 6s ease-in-out infinite alternate; }
.scn-rivers-comforts-queen .window-light { position:absolute; top:10%; left:80%; width:40px; height:50px; background: linear-gradient(180deg, #b8d4e8 0%, #8cb4d4 100%); border-radius: 4px; box-shadow: 0 0 15px rgba(140,180,212,0.3); animation: rc-window 10s ease-in-out infinite alternate; }
@keyframes rc-queen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rc-rivers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rc-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes rc-shadow { 0% { opacity:0.08; transform: scaleX(1); } 50% { opacity:0.12; transform: scaleX(1.1); } 100% { opacity:0.08; transform: scaleX(1); } }
@keyframes rc-fire { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes rc-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

.scn-richard-court-gossip {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #ffd700 70%, #fff8dc 100%),
    radial-gradient(ellipse at 30% 20%, #fff4b0 0%, transparent 60%);
}
.scn-richard-court-gossip .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #f5deb3 100%);
  animation: rg-sky 12s ease-in-out infinite alternate;
}
.scn-richard-court-gossip .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #d2b48c 0%, #c19a6b 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-richard-court-gossip .column {
  position:absolute; bottom:20%; left:25%; width:20px; height:60%;
  background: linear-gradient(90deg, #f5f5dc 0%, #e3dac9 50%, #f5f5dc 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.1);
  animation: rg-column 15s ease-in-out infinite alternate;
}
.scn-richard-court-gossip .figure-a {
  position:absolute; bottom:20%; left:35%; width:28px; height:60px;
  background: linear-gradient(180deg, #4a3c31 0%, #2e241c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-gossip-a 3s ease-in-out infinite;
}
.scn-richard-court-gossip .figure-b {
  position:absolute; bottom:20%; left:50%; width:30px; height:62px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e24 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-gossip-b 3.5s ease-in-out infinite 0.5s;
}
.scn-richard-court-gossip .sun-ray {
  position:absolute; top:10%; left:60%; width:120px; height:200px;
  background: linear-gradient(180deg, rgba(255,215,0,0.25) 0%, rgba(255,215,0,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rg-ray 8s ease-in-out infinite alternate;
}
.scn-richard-court-gossip .crown {
  position:absolute; top:15%; left:42%; width:40px; height:15px;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 100%);
  clip-path: polygon(0 100%, 20% 0%, 40% 60%, 60% 0%, 80% 40%, 100% 0%, 100% 100%);
  transform: rotate(5deg);
  animation: rg-crown 4s ease-in-out infinite alternate;
}
@keyframes rg-sky {
  0% { opacity:0.7; filter:brightness(0.9) }
  50% { opacity:1; filter:brightness(1.1) }
  100% { opacity:0.8; filter:brightness(1) }
}
@keyframes rg-column {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.02) }
  100% { transform: scaleY(0.98) }
}
@keyframes rg-gossip-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg) }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg) }
  50% { transform: translateX(6px) translateY(0) rotate(2deg) }
  75% { transform: translateX(3px) translateY(-1px) rotate(-1deg) }
  100% { transform: translateX(0) translateY(0) rotate(-2deg) }
}
@keyframes rg-gossip-b {
  0% { transform: translateX(0) translateY(0) rotate(3deg) }
  50% { transform: translateX(-4px) translateY(-3px) rotate(-2deg) }
  100% { transform: translateX(0) translateY(0) rotate(3deg) }
}
@keyframes rg-ray {
  0% { transform: rotate(0deg) scaleX(1); opacity:0.6 }
  50% { transform: rotate(5deg) scaleX(1.2); opacity:0.9 }
  100% { transform: rotate(-3deg) scaleX(0.9); opacity:0.7 }
}
@keyframes rg-crown {
  0% { transform: rotate(3deg) scale(0.95) }
  50% { transform: rotate(-4deg) scale(1.05) }
  100% { transform: rotate(3deg) scale(0.95) }
}

.scn-richard-ribald-banter {
  background: 
    linear-gradient(180deg, #ffd700 0%, #f5deb3 40%, #fff8dc 100%),
    radial-gradient(ellipse at 70% 30%, #fffacd 0%, transparent 50%);
}
.scn-richard-ribald-banter .sky-banter {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: rb-sky 10s ease-in-out infinite alternate;
}
.scn-richard-ribald-banter .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
}
.scn-richard-ribald-banter .table {
  position:absolute; bottom:25%; left:25%; width:50%; height:10px;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #8b4513 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rb-table 6s ease-in-out infinite;
}
.scn-richard-ribald-banter .figure-left {
  position:absolute; bottom:20%; left:20%; width:30px; height:55px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-fig-l 3s ease-in-out infinite;
}
.scn-richard-ribald-banter .figure-right {
  position:absolute; bottom:18%; left:55%; width:32px; height:58px;
  background: linear-gradient(180deg, #4a3c31 0%, #2e241c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-fig-r 3.2s ease-in-out infinite 0.4s;
}
.scn-richard-ribald-banter .jug {
  position:absolute; bottom:24%; left:45%; width:14px; height:18px;
  background: linear-gradient(180deg, #d2691e 0%, #a0522d 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: rb-jug 5s ease-in-out infinite alternate;
}
.scn-richard-ribald-banter .mug {
  position:absolute; bottom:22%; left:65%; width:12px; height:14px;
  background: linear-gradient(180deg, #cd853f 0%, #b8860b 100%);
  border-radius: 10% 10% 50% 50% / 30% 30% 40% 40%;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.2);
  animation: rb-mug 4s ease-in-out infinite 1s;
}
@keyframes rb-sky {
  0% { opacity:0.8 }
  50% { opacity:1 }
  100% { opacity:0.75 }
}
@keyframes rb-table {
  0% { transform: translateY(0) scaleX(1) }
  50% { transform: translateY(-3px) scaleX(1.02) }
  100% { transform: translateY(0) scaleX(1) }
}
@keyframes rb-fig-l {
  0% { transform: translateX(0) rotate(-3deg) }
  30% { transform: translateX(5px) rotate(2deg) }
  60% { transform: translateX(2px) rotate(-1deg) }
  100% { transform: translateX(0) rotate(-3deg) }
}
@keyframes rb-fig-r {
  0% { transform: translateX(0) rotate(4deg) }
  40% { transform: translateX(-4px) rotate(-2deg) }
  80% { transform: translateX(-1px) rotate(1deg) }
  100% { transform: translateX(0) rotate(4deg) }
}
@keyframes rb-jug {
  0% { transform: rotate(8deg) translateY(0) }
  50% { transform: rotate(-5deg) translateY(-2px) }
  100% { transform: rotate(8deg) translateY(0) }
}
@keyframes rb-mug {
  0% { transform: rotate(0deg) scale(1) }
  50% { transform: rotate(-15deg) scale(1.1) }
  100% { transform: rotate(0deg) scale(1) }
}

.scn-brakenbury-refuses {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #fff8dc 100%),
    radial-gradient(ellipse at 40% 60%, #f5deb3 0%, transparent 70%);
}
.scn-brakenbury-refuses .sky-calm {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #e0f0ff 100%);
  animation: br-sky 20s ease-in-out infinite alternate;
}
.scn-brakenbury-refuses .canopy {
  position:absolute; top:5%; left:10%; width:80%; height:40%;
  background: radial-gradient(ellipse at 50% 100%, #228b22 0%, transparent 70%),
              radial-gradient(ellipse at 30% 80%, #2e8b57 20%, transparent 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(3px);
  animation: br-canopy 15s ease-in-out infinite;
}
.scn-brakenbury-refuses .figure-back {
  position:absolute; bottom:15%; left:30%; width:34px; height:65px;
  background: linear-gradient(180deg, #4a3c31 0%, #2e241c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-back 6s ease-in-out infinite;
}
.scn-brakenbury-refuses .figure-front {
  position:absolute; bottom:18%; left:50%; width:30px; height:58px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e24 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-front 7s ease-in-out infinite 1s;
}
.scn-brakenbury-refuses .light-dapple {
  position:absolute; top:10%; left:20%; width:60%; height:50%;
  background: radial-gradient(circle at 30% 20%, rgba(255,215,0,0.15) 0%, transparent 70%);
  animation: br-dapple 12s ease-in-out infinite alternate;
}
.scn-brakenbury-refuses .leaf {
  position:absolute; top:15%; left:70%; width:20px; height:12px;
  background: linear-gradient(180deg, #228b22 0%, #32cd32 100%);
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: br-leaf 8s ease-in-out infinite;
}
@keyframes br-sky {
  0% { opacity:0.9 }
  50% { opacity:1 }
  100% { opacity:0.85 }
}
@keyframes br-canopy {
  0% { transform: scale(1) translateY(0) }
  50% { transform: scale(1.01) translateY(-2px) }
  100% { transform: scale(0.99) translateY(1px) }
}
@keyframes br-back {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(4px) rotate(2deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes br-front {
  0% { transform: translateX(0) rotate(0deg) }
  30% { transform: translateX(-3px) rotate(-3deg) }
  70% { transform: translateX(2px) rotate(1deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes br-dapple {
  0% { opacity:0.5; transform: translate(0,0) }
  50% { opacity:0.8; transform: translate(10px,-10px) }
  100% { opacity:0.5; transform: translate(-5px,5px) }
}
@keyframes br-leaf {
  0% { transform: rotate(0deg) translateY(0) }
  50% { transform: rotate(20deg) translateY(-10px) }
  100% { transform: rotate(-10deg) translateY(0) }
}

.scn-richard-farewell-clarence {
  background: 
    linear-gradient(180deg, #f5deb3 0%, #daa520 40%, #b8860b 100%),
    radial-gradient(ellipse at 70% 20%, #ffd700 0%, transparent 50%);
}
.scn-richard-farewell-clarence .ground-tense {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b4e3a 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  animation: rf-ground 4s ease-in-out infinite alternate;
}
.scn-richard-farewell-clarence .figure-richard {
  position:absolute; bottom:12%; left:25%; width:32px; height:60px;
  background: linear-gradient(180deg, #4a3c31 0%, #2e241c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rf-richard 2s ease-in-out infinite;
}
.scn-richard-farewell-clarence .figure-clarence {
  position:absolute; bottom:10%; left:55%; width:30px; height:58px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rf-clarence 2.5s ease-in-out infinite 0.5s;
}
.scn-richard-farewell-clarence .gateway {
  position:absolute; bottom:0; left:60%; width:40px; height:70%;
  background: linear-gradient(90deg, #a0522d 0%, #8b4513 50%, #a0522d 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: rf-gateway 6s ease-in-out infinite alternate;
}
.scn-richard-farewell-clarence .shadow {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: rf-shadow 3s ease-in-out infinite alternate;
}
.scn-richard-farewell-clarence .sun-blade {
  position:absolute; top:5%; left:30%; width:100px; height:150px;
  background: linear-gradient(180deg, rgba(255,215,0,0.15) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: rf-blade 5s ease-in-out infinite alternate;
}
@keyframes rf-ground {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(1px) }
}
@keyframes rf-richard {
  0% { transform: translateX(0) rotate(0deg) scale(1) }
  30% { transform: translateX(6px) rotate(3deg) scale(0.98) }
  60% { transform: translateX(2px) rotate(-2deg) scale(1.02) }
  100% { transform: translateX(0) rotate(0deg) scale(1) }
}
@keyframes rf-clarence {
  0% { transform: translateX(0) rotate(0deg) }
  40% { transform: translateX(-8px) rotate(-4deg) }
  80% { transform: translateX(-2px) rotate(2deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes rf-gateway {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.03) }
  100% { transform: scaleY(0.97) }
}
@keyframes rf-shadow {
  0% { opacity:0.6 }
  50% { opacity:0.8 }
  100% { opacity:0.5 }
}
@keyframes rf-blade {
  0% { transform: rotate(0deg) scaleX(1); opacity:0.4 }
  50% { transform: rotate(4deg) scaleX(1.1); opacity:0.7 }
  100% { transform: rotate(-2deg) scaleX(0.9); opacity:0.5 }
}

/* Scene: richard-rallies - bright interior, resolute */
.scn-richard-rallies {
  background: radial-gradient(ellipse at 50% 60%, #f9e7b3 0%, #d4a854 40%, #7a5320 100%), linear-gradient(180deg, #f7e0b0 0%, #b78a4a 50%, #3b2a0e 100%);
}
.scn-richard-rallies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8b6a3a 0%, #4d3518 100%);
  border-radius: 10% 10% 0 0;
}
.scn-richard-rallies .pillar-left,
.scn-richard-rallies .pillar-right {
  position: absolute; bottom: 25%; width: 20px; height: 60%;
  background: linear-gradient(90deg, #c8a86c 0%, #9c7a4a 50%, #6e5028 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: rr-pillar 8s ease-in-out infinite alternate;
}
.scn-richard-rallies .pillar-left { left: 18%; }
.scn-richard-rallies .pillar-right { right: 18%; }
.scn-richard-rallies .banner-left,
.scn-richard-rallies .banner-right {
  position: absolute; bottom: 30%; width: 14px; height: 50%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 50%, #5e1a1d 100%);
  transform-origin: bottom center;
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-richard-rallies .banner-left { left: 22%; animation: rr-banner-wave 4s ease-in-out infinite; }
.scn-richard-rallies .banner-right { right: 22%; animation: rr-banner-wave 4s ease-in-out infinite reverse; }
.scn-richard-rallies .figure-richard {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 30%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rr-figure-breath 5s ease-in-out infinite;
}
.scn-richard-rallies .shield {
  position: absolute; bottom: 40%; left: 42%; width: 30px; height: 40px;
  background: radial-gradient(circle at 40% 30%, #f0d080 0%, #c8a050 50%, #7a5320 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.5);
  animation: rr-shield-glint 3s ease-in-out infinite alternate;
}
.scn-richard-rallies .glow-spot {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(255,230,150,0.4) 0%, transparent 70%);
  animation: rr-glow 6s ease-in-out infinite alternate;
}

@keyframes rr-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes rr-banner-wave {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg) scaleX(1.02); }
  50% { transform: rotate(2deg) scaleX(0.98); }
  75% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes rr-figure-breath {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.01); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes rr-shield-glint {
  0% { box-shadow: 0 0 6px 2px rgba(200,160,80,0.3); }
  50% { box-shadow: 0 0 20px 6px rgba(240,208,128,0.6); }
  100% { box-shadow: 0 0 10px 3px rgba(200,160,80,0.4); }
}
@keyframes rr-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* Scene: margaret-lurks - dark exterior, vengeful */
.scn-margaret-lurks {
  background: linear-gradient(180deg, #0b0b20 0%, #1a1a3a 40%, #2a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%);
}
.scn-margaret-lurks .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 60%, transparent 100%);
  animation: ml-sky 12s ease-in-out infinite alternate;
}
.scn-margaret-lurks .palace-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #151520 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-margaret-lurks .doorway {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #050510 0%, #0a0a15 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-margaret-lurks .shadow-margaret {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0f0f1a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-lurk 6s ease-in-out infinite;
}
.scn-margaret-lurks .dagger-glimmer {
  position: absolute; bottom: 42%; left: 60%; width: 8px; height: 16px;
  background: radial-gradient(circle, #e0e8f0 0%, #8090a0 70%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(128,144,160,0.5);
  animation: ml-dagger 2s ease-in-out infinite alternate;
}
.scn-margaret-lurks .cloud-1,
.scn-margaret-lurks .cloud-2 {
  position: absolute; top: 15%;
  width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(200,200,220,0.2) 0%, rgba(200,200,220,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-margaret-lurks .cloud-1 { left: 10%; animation: ml-drift-a 40s linear infinite; }
.scn-margaret-lurks .cloud-2 { right: 10%; animation: ml-drift-b 50s linear infinite reverse; }

@keyframes ml-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ml-lurk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(3deg) scale(1.01); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ml-dagger {
  0% { box-shadow: 0 0 6px 2px rgba(180,200,220,0.3); opacity: 0.6; }
  50% { box-shadow: 0 0 18px 6px rgba(200,220,240,0.7); opacity: 1; }
  100% { box-shadow: 0 0 8px 3px rgba(180,200,220,0.4); opacity: 0.8; }
}
@keyframes ml-drift-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes ml-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* Scene: elizabeth-and-duchess-enter - dark room, sad */
.scn-elizabeth-and-duchess-enter {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a1a2e 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-elizabeth-and-duchess-enter .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #141420 100%);
}
.scn-elizabeth-and-duchess-enter .moon-window {
  position: absolute; top: 18%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #2a3040 0%, #1a2230 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(100,120,160,0.3);
}
.scn-elizabeth-and-duchess-enter .moon-beam {
  position: absolute; top: 25%; left: 44%; width: 4px; height: 40%;
  background: linear-gradient(180deg, rgba(200,210,255,0.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: ed-moonbeam 8s ease-in-out infinite alternate;
}
.scn-elizabeth-and-duchess-enter .figure-elizabeth,
.scn-elizabeth-and-duchess-enter .figure-duchess {
  position: absolute; bottom: 18%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 50%, #06060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-elizabeth-and-duchess-enter .figure-elizabeth { left: 38%; animation: ed-figure-sad 6s ease-in-out infinite; }
.scn-elizabeth-and-duchess-enter .figure-duchess { left: 52%; animation: ed-figure-sad 6s ease-in-out infinite reverse; }
.scn-elizabeth-and-duchess-enter .cradle {
  position: absolute; bottom: 15%; left: 44%; width: 24px; height: 18px;
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: ed-cradle 4s ease-in-out infinite;
}
.scn-elizabeth-and-duchess-enter .flower-torn {
  position: absolute; bottom: 20%; left: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b87878 0%, #702243 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: ed-flower 5s ease-in-out infinite;
}

@keyframes ed-moonbeam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.5); }
  100% { opacity: 0.4; transform: scaleX(0.8); }
}
@keyframes ed-figure-sad {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg) scale(1.005); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ed-cradle {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ed-flower {
  0% { transform: rotate(0deg) scale(1); opacity: 0.5; }
  50% { transform: rotate(15deg) scale(1.1); opacity: 0.7; }
  100% { transform: rotate(-10deg) scale(0.9); opacity: 0.4; }
}

/* Scene: elizabeth-mute - dark, despairing */
.scn-elizabeth-mute {
  background: radial-gradient(ellipse at 50% 50%, #0f0f1a 0%, #050508 100%);
}
.scn-elizabeth-mute .void-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #080812 0%, #020206 100%);
}
.scn-elizabeth-mute .figure-elizabeth-mute {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #0f0f1a 0%, #07070a 50%, #030305 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-figure 8s ease-in-out infinite;
}
.scn-elizabeth-mute .tear {
  position: absolute; bottom: 40%; left: 45%; width: 4px; height: 10px;
  background: radial-gradient(circle, #607080 0%, #304050 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: em-tear 4s ease-in-out infinite;
}
.scn-elizabeth-mute .crown-fallen {
  position: absolute; bottom: 12%; left: 52%; width: 20px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #a08060 0%, #604020 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(-20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: em-crown 6s ease-in-out infinite;
}
.scn-elizabeth-mute .shadow-veil {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: em-veil 10s ease-in-out infinite alternate;
}

@keyframes em-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg) scale(1.005); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes em-tear {
  0% { transform: translateY(0) scaleY(1); opacity: 0.4; }
  50% { transform: translateY(10px) scaleY(1.5); opacity: 0.7; }
  100% { transform: translateY(0) scaleY(0.8); opacity: 0.2; }
}
@keyframes em-crown {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-25deg) translateY(0); }
}
@keyframes em-veil {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-clarence-dream-treasure {
  background: 
    linear-gradient(180deg, #0a0e1a 0%, #141b2b 40%, #1a2233 70%, #0f1a22 100%),
    radial-gradient(ellipse at 50% 60%, #1a2a3a 0%, transparent 70%);
}
.scn-clarence-dream-treasure .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,20,40,0.6) 0%, rgba(20,35,50,0.8) 50%, rgba(5,10,20,0.9) 100%);
  animation: cdt-water 20s ease-in-out infinite alternate;
}
.scn-clarence-dream-treasure .wreath {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #3a4a3a, #2a3a2a, #3a4a3a);
  border-radius: 50% / 100% 100% 0 0;
  transform: rotate(-5deg);
  animation: cdt-wreath 15s ease-in-out infinite;
}
.scn-clarence-dream-treasure .skull {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b8b0a0 0%, #8a8070 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
  animation: cdt-skull 12s ease-in-out infinite alternate;
}
.scn-clarence-dream-treasure .gold-coins {
  position: absolute; bottom: 22%; left: 48%; width: 50px; height: 30px;
  background: radial-gradient(circle, #c8a860 0%, #a08040 70%);
  border-radius: 50% 50% 40% 40% / 80% 80% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cdt-coins 4s ease-in-out infinite;
}
.scn-clarence-dream-treasure .pearls {
  position: absolute; bottom: 18%; left: 58%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #e8e0d0, #b0a898 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(200,200,180,0.3);
  animation: cdt-pearls 7s ease-in-out infinite alternate;
}
.scn-clarence-dream-treasure .shaft-light {
  position: absolute; top: 0; left: 50%; width: 6px; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,120,0.15) 0%, rgba(200,180,120,0.05) 50%, transparent 100%);
  transform: translateX(-50%) skewX(-5deg);
  animation: cdt-light 8s ease-in-out infinite alternate;
}
.scn-clarence-dream-treasure .bubble-1 {
  position: absolute; bottom: 40%; left: 35%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, rgba(200,220,255,0.3), transparent 70%);
  border-radius: 50%;
  animation: cdt-bubble1 12s linear infinite;
}
.scn-clarence-dream-treasure .bubble-2 {
  position: absolute; bottom: 50%; left: 60%; width: 10px; height: 10px;
  background: radial-gradient(circle at 40% 40%, rgba(200,220,255,0.2), transparent 70%);
  border-radius: 50%;
  animation: cdt-bubble2 15s linear infinite;
}
@keyframes cdt-water { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cdt-wreath { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cdt-skull { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes cdt-coins { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(3deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdt-pearls { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes cdt-light { 0% { opacity: 0.2; transform: translateX(-50%) skewX(-5deg); } 50% { opacity: 0.6; transform: translateX(-48%) skewX(-3deg); } 100% { opacity: 0.2; transform: translateX(-50%) skewX(-5deg); } }
@keyframes cdt-bubble1 { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-40px) translateX(12px) scale(1.1); opacity: 0.3; } 100% { transform: translateY(-80px) translateX(0) scale(0.8); opacity: 0; } }
@keyframes cdt-bubble2 { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-50px) translateX(-8px) scale(0.9); opacity: 0.2; } 100% { transform: translateY(-100px) translateX(0) scale(0.7); opacity: 0; } }

.scn-clarence-dream-strangled {
  background: 
    linear-gradient(180deg, #050a12 0%, #0a1520 40%, #101c2a 70%, #0a1420 100%),
    radial-gradient(ellipse at 50% 70%, #0a1a2a 0%, transparent 70%);
}
.scn-clarence-dream-strangled .flood-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,20,35,0.8) 0%, rgba(20,30,50,0.6) 60%, rgba(5,10,20,0.9) 100%);
  animation: cds-flood 15s ease-in-out infinite alternate;
}
.scn-clarence-dream-strangled .drowned-figure {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cds-drowned 6s ease-in-out infinite;
}
.scn-clarence-dream-strangled .hand {
  position: absolute; bottom: 42%; left: 42%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: cds-hand 4s ease-in-out infinite alternate;
}
.scn-clarence-dream-strangled .bubble-a {
  position: absolute; bottom: 50%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 40%, rgba(180,200,240,0.25), transparent 70%);
  border-radius: 50%;
  animation: cds-bubble 9s linear infinite;
}
.scn-clarence-dream-strangled .bubble-b {
  position: absolute; bottom: 60%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle at 40% 40%, rgba(180,200,240,0.2), transparent 70%);
  border-radius: 50%;
  animation: cds-bubble 11s linear infinite 3s;
}
.scn-clarence-dream-strangled .bubble-c {
  position: absolute; bottom: 70%; left: 55%; width: 6px; height: 6px;
  background: radial-gradient(circle at 40% 40%, rgba(180,200,240,0.15), transparent 70%);
  border-radius: 50%;
  animation: cds-bubble 13s linear infinite 6s;
}
.scn-clarence-dream-strangled .soul-trail {
  position: absolute; top: 5%; left: 50%; width: 4px; height: 60%;
  background: linear-gradient(180deg, rgba(200,210,255,0.08) 0%, rgba(200,210,255,0.02) 100%);
  transform: translateX(-50%) skewX(2deg);
  animation: cds-soul 20s ease-in-out infinite alternate;
}
@keyframes cds-flood { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes cds-drowned { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(1deg); } 50% { transform: translateY(-8px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cds-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes cds-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-30px) scale(0.9); opacity: 0.3; } 100% { transform: translateY(-60px) scale(0.7); opacity: 0; } }
@keyframes cds-soul { 0% { opacity: 0.05; transform: translateX(-50%) skewX(2deg) scaleY(1); } 50% { opacity: 0.15; transform: translateX(-48%) skewX(0deg) scaleY(1.1); } 100% { opacity: 0.05; transform: translateX(-50%) skewX(2deg) scaleY(1); } }

.scn-clarence-dream-warwick {
  background: 
    linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #121b28 70%, #0a0f1a 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a30 0%, transparent 70%);
}
.scn-clarence-dream-warwick .dark-void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,25,0.7) 0%, rgba(20,20,40,0.8) 50%, rgba(5,5,15,0.9) 100%);
  animation: cdw-void 15s ease-in-out infinite alternate;
}
.scn-clarence-dream-warwick .warwick-shadow {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: cdw-warwick 8s ease-in-out infinite;
}
.scn-clarence-dream-warwick .angel-figure {
  position: absolute; top: 15%; right: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdw-angel 10s ease-in-out infinite alternate;
}
.scn-clarence-dream-warwick .blood-dabble {
  position: absolute; top: 28%; right: 28%; width: 20px; height: 10px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0a0c 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(20deg);
  animation: cdw-blood 5s ease-in-out infinite;
}
.scn-clarence-dream-warwick .halo-glow {
  position: absolute; top: 12%; right: 22%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,200,255,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: cdw-halo 6s ease-in-out infinite alternate;
}
.scn-clarence-dream-warwick .wisp-1 {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 6px;
  background: linear-gradient(90deg, transparent, rgba(150,160,200,0.08), transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: cdw-wisp1 25s linear infinite;
}
.scn-clarence-dream-warwick .wisp-2 {
  position: absolute; top: 40%; left: 10%; width: 60px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(150,160,200,0.05), transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: cdw-wisp2 30s linear infinite reverse;
}
@keyframes cdw-void { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.6; } }
@keyframes cdw-warwick { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-5px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes cdw-angel { 0% { transform: translateY(0) rotate(-3deg); } 33% { transform: translateY(-4px) rotate(2deg); } 66% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes cdw-blood { 0% { transform: rotate(20deg) scale(1); opacity: 0.8; } 50% { transform: rotate(25deg) scale(1.1); opacity: 1; } 100% { transform: rotate(20deg) scale(1); opacity: 0.8; } }
@keyframes cdw-halo { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.2; transform: scale(0.8); } }
@keyframes cdw-wisp1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes cdw-wisp2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-clarence-remorse {
  background: 
    linear-gradient(180deg, #0c0e18 0%, #141826 40%, #1a1e2e 70%, #0e121e 100%),
    radial-gradient(ellipse at 50% 80%, #1a1e30 0%, transparent 70%);
}
.scn-clarence-remorse .prison-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,12,20,0.9) 0%, rgba(20,25,35,0.7) 60%, rgba(5,8,15,0.95) 100%);
  animation: cr-prison 18s ease-in-out infinite alternate;
}
.scn-clarence-remorse .kneeling-figure {
  position: absolute; bottom: 20%; left: 40%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cr-kneel 8s ease-in-out infinite;
}
.scn-clarence-remorse .faint-light {
  position: absolute; top: 8%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(200,190,160,0.08) 0%, transparent 70%);
  border-radius: 50%;
  animation: cr-light 12s ease-in-out infinite alternate;
}
.scn-clarence-remorse .prayer-hands {
  position: absolute; bottom: 32%; left: 44%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #1e1e30 0%, #10101a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: cr-hands 5s ease-in-out infinite;
}
.scn-clarence-remorse .teardrop-1 {
  position: absolute; top: 45%; left: 45%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 30%, rgba(180,190,220,0.3), transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cr-tear 4s ease-in-out infinite;
}
.scn-clarence-remorse .teardrop-2 {
  position: absolute; top: 50%; left: 48%; width: 5px; height: 8px;
  background: radial-gradient(circle at 50% 30%, rgba(180,190,220,0.25), transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cr-tear 4.5s ease-in-out infinite 0.8s;
}
.scn-clarence-remorse .chain {
  position: absolute; bottom: 15%; left: 38%; width: 50px; height: 8px;
  background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 6px, transparent 6px, transparent 12px);
  border-radius: 2px;
  animation: cr-chain 6s ease-in-out infinite;
}
@keyframes cr-prison { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cr-kneel { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cr-light { 0% { opacity: 0.05; transform: scale(0.8); } 50% { opacity: 0.2; transform: scale(1.3); } 100% { opacity: 0.05; transform: scale(0.8); } }
@keyframes cr-hands { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes cr-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(20px) scale(0.9); opacity: 0.3; } 100% { transform: translateY(40px) scale(0.7); opacity: 0; } }
@keyframes cr-chain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }

.scn-duchess-asks-comfort-hour {
  background: linear-gradient(180deg, #87CEEB 0%, #FFD700 50%, #FF8C00 100%),
              radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-duchess-asks-comfort-hour .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #A8D8EA 0%, #FFF8DC 100%); animation: dac1-sky 12s ease-in-out infinite alternate; }
.scn-duchess-asks-comfort-hour .sun   { position:absolute; top:8%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,215,0,.5); animation: dac1-sun 20s linear infinite; }
.scn-duchess-asks-comfort-hour .table { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #8B4513 0%, #5C2E0B 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-duchess-asks-comfort-hour .figure-left { position:absolute; bottom:20%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #3C2A1B 0%, #1A0F0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac1-left 6s ease-in-out infinite; }
.scn-duchess-asks-comfort-hour .figure-right { position:absolute; bottom:20%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #5C3A1E 0%, #2E1A0E 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac1-right 8s ease-in-out infinite; }
.scn-duchess-asks-comfort-hour .plate { position:absolute; bottom:35%; left:45%; width:50px; height:10px; background: #FFF5E6; border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dac1-plate 4s ease-in-out infinite alternate; }
.scn-duchess-asks-comfort-hour .cup   { position:absolute; bottom:37%; left:48%; width:25px; height:20px; background: linear-gradient(180deg, #FFF0E0 0%, #D2B48C 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: dac1-cup 3s ease-in-out infinite alternate; }

@keyframes dac1-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dac1-sun   { 0% { transform: translateX(0) } 50% { transform: translateX(5px) scale(1.02) } 100% { transform: translateX(0) } }
@keyframes dac1-left  { 0%,100% { transform: rotate(-2deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(0deg) } }
@keyframes dac1-right { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-8px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dac1-plate { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes dac1-cup   { 0% { transform: rotate(0deg) translateY(0) } 100% { transform: rotate(5deg) translateY(-2px) } }

/* ---- scene 2 ---- */
.scn-duchess-solemn-request {
  background: linear-gradient(180deg, #A8C8D8 0%, #E0C898 50%, #B8860B 100%),
              radial-gradient(ellipse at 70% 20%, #FFF8DC 0%, transparent 60%);
}
.scn-duchess-solemn-request .sky        { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #C6E2FF 0%, #FFE4B5 100%); animation: dac2-sky 14s ease-in-out infinite alternate; }
.scn-duchess-solemn-request .sun        { position:absolute; top:5%; right:15%; width:90px; height:90px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,215,0,.4); animation: dac2-sun 25s linear infinite; }
.scn-duchess-solemn-request .figure-left  { position:absolute; bottom:20%; left:30%; width:45px; height:80px; background: linear-gradient(180deg, #3A2A1C 0%, #1A1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac2-fig-left 7s ease-in-out infinite; }
.scn-duchess-solemn-request .figure-right { position:absolute; bottom:20%; right:30%; width:45px; height:80px; background: linear-gradient(180deg, #4E3A2A 0%, #2A1A10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac2-fig-right 9s ease-in-out infinite; }
.scn-duchess-solemn-request .ground     { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8B7355 0%, #6B5A3A 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-duchess-solemn-request .curse-mist { position:absolute; bottom:25%; left:40%; width:80px; height:50px; background: radial-gradient(ellipse, rgba(70,50,30,0.6) 0%, transparent 70%); filter: blur(8px); animation: dac2-mist 12s ease-in-out infinite alternate; }

@keyframes dac2-sky        { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dac2-sun        { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(1.01) } 100% { transform: translateX(0) scale(1) } }
@keyframes dac2-fig-left   { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes dac2-fig-right  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes dac2-mist       { 0% { opacity:0.3; transform: scale(0.9) translateX(0) } 50% { opacity:0.7; transform: scale(1.1) translateX(5px) } 100% { opacity:0.4; transform: scale(0.95) translateX(-5px) } }

/* ---- scene 3 ---- */
.scn-duchess-calls-on-ghosts {
  background: linear-gradient(180deg, #A0C4E0 0%, #F4C542 50%, #E87A3A 100%),
              radial-gradient(ellipse at 30% 10%, #FFE066 0%, transparent 50%);
}
.scn-duchess-calls-on-ghosts .sky     { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #C8E6F5 0%, #FFE0B2 100%); animation: dac3-sky 10s ease-in-out infinite alternate; }
.scn-duchess-calls-on-ghosts .sun     { position:absolute; top:5%; left:60%; width:100px; height:100px; background: radial-gradient(circle, #FFF8E0 0%, #FFD54F 40%, transparent 65%); border-radius:50%; box-shadow: 0 0 70px 35px rgba(255,213,79,.4); animation: dac3-sun 18s linear infinite; }
.scn-duchess-calls-on-ghosts .figure  { position:absolute; bottom:20%; left:40%; width:50px; height:90px; background: linear-gradient(180deg, #2C1A12 0%, #0E0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac3-fig 5s ease-in-out infinite; }
.scn-duchess-calls-on-ghosts .shadow  { position:absolute; bottom:20%; left:40%; width:50px; height:40px; background: rgba(0,0,0,0.3); border-radius: 50%; transform: skewX(-20deg); filter: blur(3px); animation: dac3-shadow 5s ease-in-out infinite; }
.scn-duchess-calls-on-ghosts .ghost-1 { position:absolute; bottom:40%; right:20%; width:40px; height:60px; background: rgba(255,255,255,0.15); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(6px); animation: dac3-ghost1 15s ease-in-out infinite; }
.scn-duchess-calls-on-ghosts .ghost-2 { position:absolute; bottom:35%; left:15%; width:35px; height:50px; background: rgba(255,255,255,0.1); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(5px); animation: dac3-ghost2 20s ease-in-out infinite reverse; }
.scn-duchess-calls-on-ghosts .ground  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8B5A2B 0%, #5C3A1E 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; }

@keyframes dac3-sky     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes dac3-sun     { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes dac3-fig     { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-4px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes dac3-shadow  { 0%,100% { transform: skewX(-20deg) scale(1) } 50% { transform: skewX(-25deg) scale(1.1) } }
@keyframes dac3-ghost1  { 0% { opacity:0; transform: translateY(10px) scale(0.8) } 50% { opacity:0.5; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(10px) scale(0.8) } }
@keyframes dac3-ghost2  { 0% { opacity:0.2; transform: translateY(0) scale(1) } 50% { opacity:0.6; transform: translateY(-8px) scale(1.1) } 100% { opacity:0.2; transform: translateY(0) scale(1) } }

/* ---- scene 4 ---- */
.scn-richard-stops-elizabeth {
  background: linear-gradient(180deg, #7FB3D8 0%, #F3D78A 40%, #DEB887 100%),
              radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%);
}
.scn-richard-stops-elizabeth .sky         { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #B8D4E8 0%, #FFF3E0 100%); animation: dac4-sky 16s ease-in-out infinite alternate; }
.scn-richard-stops-elizabeth .garden-wall { position:absolute; bottom:30%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #A0825A 0%, #705838 100%); border-radius: 20px 20px 0 0; box-shadow: inset 0 -4px 12px rgba(0,0,0,.3); }
.scn-richard-stops-elizabeth .figure-richard    { position:absolute; bottom:30%; left:25%; width:45px; height:85px; background: linear-gradient(180deg, #2A1C12 0%, #0E0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac4-richard 6s ease-in-out infinite; }
.scn-richard-stops-elizabeth .figure-elizabeth  { position:absolute; bottom:30%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #4A3520 0%, #2A1A10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dac4-eliza 8s ease-in-out infinite; }
.scn-richard-stops-elizabeth .rose       { position:absolute; bottom:45%; right:35%; width:15px; height:20px; background: radial-gradient(circle, #E8775A 0%, #B84C2A 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 10px 4px rgba(232,119,90,.4); animation: dac4-rose 4s ease-in-out infinite alternate; }
.scn-richard-stops-elizabeth .rose-bush  { position:absolute; bottom:40%; right:30%; width:35px; height:50px; background: linear-gradient(180deg, #4A6B3A 0%, #2A3A1E 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: skewX(-5deg); animation: dac4-bush 6s ease-in-out infinite alternate; }
.scn-richard-stops-elizabeth .path       { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #C4A882 0%, #A68B6A 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }

@keyframes dac4-sky      { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dac4-richard  { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes dac4-eliza    { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-1px) } 50% { transform: translateY(-3px) } 75% { transform: translateY(-1px) } }
@keyframes dac4-rose     { 0% { transform: scale(1) } 100% { transform: scale(1.15) rotate(5deg) } }
@keyframes dac4-bush     { 0% { transform: skewX(-5deg) scale(1) } 100% { transform: skewX(-5deg) scale(1.05) } }

/* anne-drops-sword - tense, sunlit */
.scn-anne-drops-sword {
  background: linear-gradient(180deg, #ffe6b0 0%, #f8c870 40%, #d49550 100%), radial-gradient(ellipse at 40% 20%, #fce4a8 0%, transparent 70%);
}
.scn-anne-drops-sword .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fde8b0 0%, transparent 100%);
  animation: ads-sky 6s ease-in-out infinite alternate;
}
.scn-anne-drops-sword .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8a070 0%, #8a7a50 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: ads-ground 12s ease-in-out infinite alternate;
}
.scn-anne-drops-sword .figure-richard {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ads-fig-r 3s ease-in-out infinite;
}
.scn-anne-drops-sword .figure-anne {
  position: absolute; bottom: 30%; left: 35%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom right;
  animation: ads-fig-a 2s ease-in-out infinite;
}
.scn-anne-drops-sword .sword {
  position: absolute; bottom: 45%; left: 37%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d0c0a0 0%, #908070 100%);
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  transform: rotate(30deg);
  box-shadow: 0 0 6px rgba(200,180,140,0.5);
  animation: ads-sword 0.8s ease-in-out infinite;
}
.scn-anne-drops-sword .shadow-richard {
  position: absolute; bottom: 27%; right: 28%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: ads-shad-r 3s ease-in-out infinite;
}
.scn-anne-drops-sword .shadow-anne {
  position: absolute; bottom: 27%; left: 38%; width: 28px; height: 8px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  animation: ads-shad-a 2s ease-in-out infinite;
}
@keyframes ads-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ads-ground { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes ads-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ads-fig-a { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(8px) rotate(-10deg) scaleY(0.95); } 60% { transform: translateX(0) rotate(0deg) scaleY(1); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes ads-sword { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(45deg) scaleY(0.9); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes ads-shad-r { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(0.8); } 100% { transform: translateX(0) scale(1); } }
@keyframes ads-shad-a { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(0.7); } 100% { transform: translateX(0) scale(1); } }

/* anne-yields-ring - warm, sunlit */
.scn-anne-yields-ring {
  background: linear-gradient(180deg, #fee9c0 0%, #f2ca80 40%, #dba060 100%), radial-gradient(ellipse at 50% 30%, #ffdfb0 0%, transparent 60%);
}
.scn-anne-yields-ring .glow-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #ffeab0 0%, transparent 70%);
  animation: ayr-glow 8s ease-in-out infinite alternate;
}
.scn-anne-yields-ring .figure-richard {
  position: absolute; bottom: 25%; right: 40%; width: 42px; height: 88px;
  background: linear-gradient(180deg, #2c2020 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ayr-fig-r 5s ease-in-out infinite;
}
.scn-anne-yields-ring .figure-anne {
  position: absolute; bottom: 25%; left: 40%; width: 38px; height: 82px;
  background: linear-gradient(180deg, #3e2e2e 0%, #241818 100%);
  border-radius: 40% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ayr-fig-a 5s ease-in-out infinite;
}
.scn-anne-yields-ring .hand-richard {
  position: absolute; bottom: 55%; right: 42%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #d4b080 0%, #b09060 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: ayr-hand-r 4s ease-in-out infinite;
}
.scn-anne-yields-ring .hand-anne {
  position: absolute; bottom: 55%; left: 42%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #e0be9a 0%, #c8a07a 100%);
  border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%;
  transform: rotate(15deg);
  animation: ayr-hand-a 4s ease-in-out infinite;
}
.scn-anne-yields-ring .ring {
  position: absolute; bottom: 61%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe680 0%, #d4a040 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px rgba(255,200,80,0.7);
  animation: ayr-ring 2s ease-in-out infinite alternate;
}
.scn-anne-yields-ring .sparkle {
  position: absolute; bottom: 62%; left: 50%; width: 2px; height: 2px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,200,0.9);
  animation: ayr-spark 1.5s ease-in-out infinite;
}
@keyframes ayr-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ayr-fig-r { 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 ayr-fig-a { 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 ayr-hand-r { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ayr-hand-a { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ayr-ring { 0% { box-shadow: 0 0 8px 2px rgba(255,200,80,0.5); transform: translateX(-50%) scale(1); } 50% { box-shadow: 0 0 20px 6px rgba(255,200,80,0.8); transform: translateX(-50%) scale(1.2); } 100% { box-shadow: 0 0 8px 2px rgba(255,200,80,0.5); transform: translateX(-50%) scale(1); } }
@keyframes ayr-spark { 0% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(2); } 100% { opacity: 0; transform: scale(1); } }

/* richard-ring-pledge - warm, sunlit */
.scn-richard-ring-pledge {
  background: linear-gradient(180deg, #ffeab8 0%, #f5cf80 40%, #d8a050 100%), radial-gradient(ellipse at 50% 60%, #ffdfa0 0%, transparent 60%);
}
.scn-richard-ring-pledge .light-rays {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(255,240,200,0.1) 0px, rgba(255,240,200,0.1) 20px, transparent 20px, transparent 40px);
  animation: rrp-rays 12s linear infinite;
}
.scn-richard-ring-pledge .figure-richard {
  position: absolute; bottom: 20%; left: 50%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: rrp-fig 6s ease-in-out infinite;
}
.scn-richard-ring-pledge .hand-richard {
  position: absolute; bottom: 60%; left: 48%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #d4b080 0%, #b09060 100%);
  border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: rrp-hand 3s ease-in-out infinite;
}
.scn-richard-ring-pledge .ring {
  position: absolute; bottom: 67%; left: 49%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe680 0%, #d4a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,200,80,0.6);
  animation: rrp-ring 4s ease-in-out infinite alternate;
}
.scn-richard-ring-pledge .shadow {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: rrp-shadow 6s ease-in-out infinite;
}
.scn-richard-ring-pledge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a070 0%, #8a7a50 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: rrp-ground 10s ease-in-out infinite alternate;
}
@keyframes rrp-rays { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes rrp-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rrp-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes rrp-ring { 0% { box-shadow: 0 0 10px 4px rgba(255,200,80,0.4); transform: scale(1); } 50% { box-shadow: 0 0 24px 8px rgba(255,200,80,0.8); transform: scale(1.3); } 100% { box-shadow: 0 0 10px 4px rgba(255,200,80,0.4); transform: scale(1); } }
@keyframes rrp-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(0.9); } 100% { transform: translateX(0) scale(1); } }
@keyframes rrp-ground { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }

/* richard-soliloquy-won - funny, sunlit */
.scn-richard-soliloquy-won {
  background: linear-gradient(180deg, #fff0c0 0%, #f0d080 40%, #d8b060 100%), radial-gradient(ellipse at 60% 30%, #ffe8a0 0%, transparent 60%);
}
.scn-richard-soliloquy-won .sunburst {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,240,160,0.4) 0%, transparent 60%);
  animation: rsw-sun 8s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-won .figure-richard {
  position: absolute; bottom: 20%; left: 50%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: rsw-fig 1s ease-in-out infinite;
}
.scn-richard-soliloquy-won .cloak {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: center top;
  animation: rsw-cloak 2s ease-in-out infinite;
}
.scn-richard-soliloquy-won .shadow {
  position: absolute; bottom: 18%; left: 46%; width: 28px; height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: rsw-shadow 1.5s ease-in-out infinite;
}
.scn-richard-soliloquy-won .crown {
  position: absolute; bottom: 70%; left: 50%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #f0c040 0%, #c09020 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  transform: translateX(-50%);
  animation: rsw-crown 0.8s ease-in-out infinite;
}
.scn-richard-soliloquy-won .particles {
  position: absolute; inset: 0;
  background: repeating-radial-gradient(circle at 30% 40%, rgba(255,215,0,0.2) 0px, transparent 10px);
  animation: rsw-part 3s ease-in-out infinite;
}
@keyframes rsw-sun { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes rsw-fig { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(3deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(-4deg) scaleY(0.98); } 75% { transform: translateX(-50%) rotate(4deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } }
@keyframes rsw-cloak { 0% { transform: scaleX(1) rotate(0deg); } 25% { transform: scaleX(1.05) rotate(2deg); } 50% { transform: scaleX(0.95) rotate(-2deg); } 75% { transform: scaleX(1.03) rotate(1deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes rsw-shadow { 0% { transform: scale(1); } 50% { transform: scale(0.8); } 100% { transform: scale(1); } }
@keyframes rsw-crown { 0% { transform: translateX(-50%) rotate(-5deg); } 25% { transform: translateX(-50%) rotate(8deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-6deg); } 75% { transform: translateX(-50%) rotate(10deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes rsw-part { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-richard-soliloquy-hope-king-dies {
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 50%, #0d0a0a 100%),
              radial-gradient(ellipse at 70% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-richard-soliloquy-hope-king-dies .bg-deep {
  position: absolute; inset: 0; background: #1a1212; opacity: 0.8;
}
.scn-richard-soliloquy-hope-king-dies .bg-mid {
  position: absolute; inset: 10% 10% 20% 15%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1510 100%); border-radius: 20px; box-shadow: inset 0 0 60px #0a0a0a;
}
.scn-richard-soliloquy-hope-king-dies .window-beam {
  position: absolute; top: 15%; left: 60%; width: 60px; height: 120px; background: linear-gradient(180deg, rgba(255,220,150,0.4) 0%, rgba(255,220,150,0.1) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); transform: rotate(15deg); animation: rh1-beam 6s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-hope-king-dies .figure-richard {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,0.6); animation: rh1-figure 4s ease-in-out infinite;
}
.scn-richard-soliloquy-hope-king-dies .horse-shadow {
  position: absolute; bottom: 22%; right: 20%; width: 50px; height: 40px; background: rgba(10,8,8,0.7); border-radius: 50% 20% 0% 40% / 60% 40% 20% 40%; filter: blur(4px); animation: rh1-horse 5s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-hope-king-dies .crown {
  position: absolute; top: 28%; left: 35%; width: 16px; height: 10px; background: linear-gradient(180deg, #b8963a 0%, #7a6030 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0 100%, 20% 0, 40% 100%, 60% 0, 80% 100%, 100% 0, 100% 100%); box-shadow: 0 0 12px rgba(200,170,80,0.5); animation: rh1-crown 3s ease-in-out infinite;
}
.scn-richard-soliloquy-hope-king-dies .dust {
  position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, rgba(255,220,150,0.15) 0%, transparent 50%); animation: rh1-dust 8s linear infinite;
}
@keyframes rh1-beam {
  0% { opacity: 0.6; }
  50% { opacity: 0.2; }
  100% { opacity: 0.7; }
}
@keyframes rh1-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rh1-horse {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(5px) scale(0.95); }
  100% { transform: translateX(-3px) scale(1); }
}
@keyframes rh1-crown {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes rh1-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

.scn-richard-marriage-intent {
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 50%, #0d0a0a 100%),
              radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-richard-marriage-intent .bg-church {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1510 0%, #0d0a08 50%, #1a1510 100%); opacity: 0.9;
}
.scn-richard-marriage-intent .altar {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 30px; transform: translateX(-50%); background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius: 5px; box-shadow: 0 -8px 20px rgba(200,150,100,0.3);
}
.scn-richard-marriage-intent .ring {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 20px; transform: translate(-50%, -50%); background: radial-gradient(circle, #b8963a 0%, #7a6030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px rgba(200,170,80,0.7); animation: rh2-ring 4s ease-in-out infinite;
}
.scn-richard-marriage-intent .veil {
  position: absolute; bottom: 40%; left: 42%; width: 60px; height: 80px; background: linear-gradient(180deg, rgba(255,240,220,0.3) 0%, rgba(255,240,220,0.05) 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); filter: blur(2px); animation: rh2-veil 6s ease-in-out infinite alternate;
}
.scn-richard-marriage-intent .figure-richard-m {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 65px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rh2-figure 4s ease-in-out infinite;
}
.scn-richard-marriage-intent .shadow-intent {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 20px; background: rgba(5,3,3,0.8); border-radius: 50%; filter: blur(5px); animation: rh2-shadow 5s ease-in-out infinite alternate;
}
@keyframes rh2-ring {
  0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  50% { transform: translate(-50%, -50%) rotate(180deg) scale(1.2); }
  100% { transform: translate(-50%, -50%) rotate(360deg) scale(1); }
}
@keyframes rh2-veil {
  0% { transform: translateY(0) skewX(0deg); }
  50% { transform: translateY(-5px) skewX(2deg); }
  100% { transform: translateY(0) skewX(-2deg); }
}
@keyframes rh2-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rh2-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.2); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

.scn-henry-funeral-anne {
  background: linear-gradient(180deg, #1a1a1a 0%, #121212 50%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 60%);
}
.scn-henry-funeral-anne .bg-chapel {
  position: absolute; inset: 0; background: linear-gradient(135deg, #151010 0%, #0a0808 100%); opacity: 0.9;
}
.scn-henry-funeral-anne .hearse {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 50px; transform: translateX(-50%); background: linear-gradient(0deg, #2a1a1a 0%, #1a0c0c 100%); border-radius: 10px; box-shadow: 0 0 20px #0a0a0a;
}
.scn-henry-funeral-anne .shroud {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 30px; transform: translateX(-50%); background: linear-gradient(0deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 30% 30% 10% 10%; opacity: 0.8; animation: hf3-shroud 10s ease-in-out infinite alternate;
}
.scn-henry-funeral-anne .figure-anne {
  position: absolute; bottom: 25%; left: 30%; width: 25px; height: 55px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hf3-figure 5s ease-in-out infinite;
}
.scn-henry-funeral-anne .candle-a {
  position: absolute; bottom: 30%; left: 22%; width: 10px; height: 40px; background: linear-gradient(0deg, #4a3a2a 0%, #6a4a2a 100%); border-radius: 5px; box-shadow: 0 0 10px #ffd080; animation: hf3-candle 3s ease-in-out infinite alternate;
}
.scn-henry-funeral-anne .candle-b {
  position: absolute; bottom: 30%; right: 22%; width: 10px; height: 40px; background: linear-gradient(0deg, #4a3a2a 0%, #6a4a2a 100%); border-radius: 5px; box-shadow: 0 0 10px #ffd080; animation: hf3-candle 3s ease-in-out infinite alternate-reverse;
}
.scn-henry-funeral-anne .tear-drop {
  position: absolute; bottom: 35%; left: 34%; width: 6px; height: 8px; background: radial-gradient(circle, rgba(180,200,255,0.6) 0%, transparent 100%); border-radius: 50% 50% 50% 0; animation: hf3-tears 2s ease-in-out infinite;
}
@keyframes hf3-shroud {
  0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 0.9; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
}
@keyframes hf3-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hf3-candle {
  0% { opacity: 0.8; box-shadow: 0 0 8px #ffd080; }
  50% { opacity: 1; box-shadow: 0 0 20px #ffd080; }
  100% { opacity: 0.8; box-shadow: 0 0 8px #ffd080; }
}
@keyframes hf3-tears {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(10px) scale(0.8); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}

.scn-anne-curses-murderer {
  background: linear-gradient(180deg, #1a121a 0%, #0d080d 50%, #050305 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a3a 0%, transparent 60%);
}
.scn-anne-curses-murderer .bg-dim {
  position: absolute; inset: 0; background: linear-gradient(135deg, #120e12 0%, #080508 100%); opacity: 0.9;
}
.scn-anne-curses-murderer .window-light {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 100px; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,255,0.3) 0%, transparent 70%); animation: ac4-window 8s ease-in-out infinite alternate;
}
.scn-anne-curses-murderer .figure-anne-c {
  position: absolute; bottom: 25%; right: 35%; width: 28px; height: 60px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac4-figure 4s ease-in-out infinite;
}
.scn-anne-curses-murderer .hand-cursed {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 30px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 0 0 50% 50%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); transform: rotate(20deg); animation: ac4-hand 3s ease-in-out infinite alternate;
}
.scn-anne-curses-murderer .dagger {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 40px; background: linear-gradient(0deg, #5a4a4a 0%, #7a6a6a 50%, #5a4a4a 100%); border-radius: 2px; transform: rotate(-30deg); animation: ac4-dagger 4s ease-in-out infinite;
}
.scn-anne-curses-murderer .blood-drop {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 8px; background: radial-gradient(circle, #a0461a 0%, transparent 100%); border-radius: 50%; animation: ac4-blood 2s ease-in-out infinite;
}
.scn-anne-curses-murderer .tear-stream {
  position: absolute; bottom: 30%; right: 38%; width: 4px; height: 30px; background: linear-gradient(180deg, rgba(180,200,255,0.6) 0%, rgba(180,200,255,0.1) 100%); border-radius: 2px; animation: ac4-tears 3s ease-in-out infinite;
}
@keyframes ac4-window {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes ac4-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ac4-hand {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(20deg); }
}
@keyframes ac4-dagger {
  0% { transform: rotate(-30deg) translate(0, 0); }
  50% { transform: rotate(-35deg) translate(2px, -2px); }
  100% { transform: rotate(-30deg) translate(0, 0); }
}
@keyframes ac4-blood {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(8px) scale(0.8); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes ac4-tears {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(10px) scaleY(1.2); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-richard-mocks-rivers {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c9a8 40%, #c4b494 100%), radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 60%);
}
.scn-richard-mocks-rivers .bg-walls { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8dcc8 0%, #c8b998 100%); border-bottom: 6px solid #8b7355; }
.scn-richard-mocks-rivers .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #6b5340 0%, #8b6f55 100%); border-top: 4px solid #a0886e; }
.scn-richard-mocks-rivers .figure-richard { position:absolute; bottom:18%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm1-mock 2.5s ease-in-out infinite; }
.scn-richard-mocks-rivers .figure-rivers { position:absolute; bottom:22%; left:55%; width:45px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rm1-recoil 3s ease-in-out infinite; }
.scn-richard-mocks-rivers .sceptre { position:absolute; bottom:28%; left:34%; width:4px; height:40px; background: linear-gradient(180deg, #d4af37 0%, #b8962e 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom left; animation: rm1-sceptre 2.5s ease-in-out infinite; }
.scn-richard-mocks-rivers .shadow-richard { position:absolute; bottom:2%; left:28%; width:60px; height:12px; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(4px); animation: rm1-shadow 2.5s ease-in-out infinite; }
.scn-richard-mocks-rivers .shadow-rivers { position:absolute; bottom:4%; left:52%; width:55px; height:10px; background: rgba(0,0,0,.12); border-radius: 50%; filter: blur(4px); animation: rm1-shadow 3s ease-in-out infinite reverse; }
.scn-richard-mocks-rivers .lamp { position:absolute; top:12%; right:16%; width:16px; height:24px; background: linear-gradient(180deg, #d4af37 0%, #b8962e 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 0 0 0 #fff8e0; animation: rm1-lamp-glow 4s ease-in-out infinite; }
.scn-richard-mocks-rivers .lamp-glow { position:absolute; top:10%; right:14%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); opacity: .5; animation: rm1-lamp-glow 4s ease-in-out infinite reverse; }
@keyframes rm1-mock { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rm1-recoil { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(2px) scaleX(.95); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(1px) scaleX(.97); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes rm1-sceptre { 0% { transform: rotate(-20deg); } 25% { transform: rotate(-15deg); } 50% { transform: rotate(-25deg); } 75% { transform: rotate(-18deg); } 100% { transform: rotate(-20deg); } }
@keyframes rm1-shadow { 0% { opacity:.15; transform: scaleX(1); } 25% { opacity:.2; transform: scaleX(1.1); } 50% { opacity:.15; transform: scaleX(1); } 75% { opacity:.18; transform: scaleX(1.05); } 100% { opacity:.15; transform: scaleX(1); } }
@keyframes rm1-lamp-glow { 0% { opacity:.5; box-shadow: 0 0 8px 2px #fff8e0; } 50% { opacity:.7; box-shadow: 0 0 16px 6px #fff8e0; } 100% { opacity:.5; box-shadow: 0 0 8px 2px #fff8e0; } }

.scn-elizabeth-threatened {
  background: linear-gradient(180deg, #e3d6c0 0%, #c8b494 40%, #a88c6c 100%), radial-gradient(ellipse at 50% 70%, #fff4dc 0%, transparent 60%);
}
.scn-elizabeth-threatened .bg-interior { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #dcc8ae 0%, #b8a088 100%); }
.scn-elizabeth-threatened .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #6b5035 0%, #4a3820 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-elizabeth-threatened .figure-elizabeth { position:absolute; bottom:30%; left:35%; width:50px; height:85px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et2-queen 4s ease-in-out infinite; }
.scn-elizabeth-threatened .figure-gloucester { position:absolute; bottom:28%; left:55%; width:55px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: et2-glou 3s ease-in-out infinite; }
.scn-elizabeth-threatened .crown { position:absolute; bottom:68%; left:38%; width:20px; height:12px; background: linear-gradient(180deg, #d4af37 0%, #b8962e 100%); border-radius: 4px 4px 0 0; clip-path: polygon(10% 100%, 25% 0%, 50% 20%, 75% 0%, 90% 100%); animation: et2-crown 4s ease-in-out infinite; }
.scn-elizabeth-threatened .dagger { position:absolute; bottom:40%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; animation: et2-dagger 3s ease-in-out infinite; }
.scn-elizabeth-threatened .fabric { position:absolute; bottom:30%; left:28%; width:70px; height:40px; background: linear-gradient(180deg, #804020 0%, #602010 100%); border-radius: 40% 20% 30% 50% / 30% 40% 20% 50%; opacity: .7; animation: et2-fabric 6s ease-in-out infinite; }
.scn-elizabeth-threatened .candle { position:absolute; top:20%; left:15%; width:6px; height:12px; background: linear-gradient(180deg, #fff8e0 0%, #d4af37 100%); border-radius: 3px; box-shadow: 0 0 12px 4px #fff8e0; animation: et2-candle 3s ease-in-out infinite alternate; }
@keyframes et2-queen { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes et2-glou { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-5px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes et2-crown { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes et2-dagger { 0% { transform: rotate(15deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 75% { transform: rotate(12deg); } 100% { transform: rotate(15deg); } }
@keyframes et2-fabric { 0% { transform: translateY(0) scaleX(1); } 33% { transform: translateY(-2px) scaleX(1.05); } 66% { transform: translateY(1px) scaleX(.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes et2-candle { 0% { box-shadow: 0 0 8px 2px #fff8e0; } 100% { box-shadow: 0 0 16px 6px #fff8e0; } }

.scn-margaret-enters-cursing {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a30 40%, #4a2a40 100%), radial-gradient(ellipse at 30% 50%, #4a2a40 0%, transparent 70%);
}
.scn-margaret-enters-cursing .bg-door { position:absolute; inset:0 30% 0 30%; background: linear-gradient(135deg, #3a2a3a 0%, #2a1a2a 100%); border: 4px solid #5a4a5a; border-radius: 4px; }
.scn-margaret-enters-cursing .door-frame { position:absolute; top:0; bottom:0; left:28%; right:28%; border: 6px solid #5a4a5a; border-radius: 6px; pointer-events: none; }
.scn-margaret-enters-cursing .figure-margaret { position:absolute; bottom:20%; left:38%; width:55px; height:90px; background: linear-gradient(180deg, #2a1020 0%, #1a0810 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me3-enter 5s ease-in-out infinite; }
.scn-margaret-enters-cursing .shadow-long { position:absolute; bottom:0; left:35%; width:80px; height:20px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: me3-shadow 5s ease-in-out infinite; }
.scn-margaret-enters-cursing .candle-sconce { position:absolute; top:15%; left:25%; width:10px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; }
.scn-margaret-enters-cursing .flame { position:absolute; top:12%; left:27%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ff8020 60%, transparent 100%); border-radius: 50%; animation: me3-flame 2s ease-in-out infinite alternate; }
.scn-margaret-enters-cursing .curtain { position:absolute; top:0; bottom:0; left:20%; width:30px; background: linear-gradient(180deg, #4a2030 0%, #2a1018 100%); border-radius: 0 6px 6px 0; animation: me3-curtain 8s ease-in-out infinite; }
.scn-margaret-enters-cursing .rug { position:absolute; bottom:0; left:25%; right:25%; height:8%; background: linear-gradient(90deg, #5a2a3a 0%, #4a1a2a 25%, #5a2a3a 50%, #4a1a2a 75%, #5a2a3a 100%); border-radius: 8px; }
@keyframes me3-enter { 0% { transform: translateX(-20px) translateY(0) rotate(0); opacity: .3; } 25% { transform: translateX(-10px) translateY(-2px) rotate(2deg); opacity: .7; } 50% { transform: translateX(0) translateY(0) rotate(0); opacity: 1; } 75% { transform: translateX(5px) translateY(-1px) rotate(-1deg); opacity: .9; } 100% { transform: translateX(0) translateY(0) rotate(0); opacity: 1; } }
@keyframes me3-shadow { 0% { transform: scaleX(.8); opacity: .2; } 50% { transform: scaleX(1); opacity: .35; } 100% { transform: scaleX(.8); opacity: .2; } }
@keyframes me3-flame { 0% { transform: scaleY(1) rotate(-5deg); opacity: .9; } 50% { transform: scaleY(1.3) rotate(3deg); opacity: 1; } 100% { transform: scaleY(.9) rotate(-3deg); opacity: .85; } }
@keyframes me3-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

.scn-richard-mocks-margaret {
  background: linear-gradient(180deg, #d4c4a8 0%, #c0aa8c 40%, #a0886c 100%), radial-gradient(ellipse at 60% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-richard-mocks-margaret .bg-tapestry { position:absolute; inset:0 10% 20% 10%; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); border: 4px solid #5a3a1a; border-radius: 4px; }
.scn-richard-mocks-margaret .pillar { position:absolute; bottom:0; left:15%; width:16px; height:80%; background: linear-gradient(90deg, #a08060 0%, #c8b094 30%, #a08060 100%); border-radius: 4px; }
.scn-richard-mocks-margaret .figure-richard2 { position:absolute; bottom:22%; left:35%; width:50px; height:85px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm4-mock 2.5s ease-in-out infinite; }
.scn-richard-mocks-margaret .figure-margaret2 { position:absolute; bottom:25%; left:55%; width:48px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm4-anger 3.5s ease-in-out infinite; }
.scn-richard-mocks-margaret .hand-mock { position:absolute; bottom:38%; left:38%; width:10px; height:6px; background: #2a1a0a; border-radius: 50% 50% 0 0; transform: rotate(30deg); transform-origin: bottom left; animation: rm4-hand 2.5s ease-in-out infinite; }
.scn-richard-mocks-margaret .crown-margaret { position:absolute; bottom:72%; left:58%; width:18px; height:10px; background: linear-gradient(180deg, #d4af37 0%, #b8962e 100%); border-radius: 3px 3px 0 0; clip-path: polygon(10% 100%, 25% 0%, 50% 20%, 75% 0%, 90% 100%); animation: rm4-crown 3.5s ease-in-out infinite; }
.scn-richard-mocks-margaret .torch { position:absolute; top:10%; right:20%; width:8px; height:18px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; }
.scn-richard-mocks-margaret .flicker { position:absolute; top:8%; right:22%; width:12px; height:14px; background: radial-gradient(circle, #ffd080 0%, #ff8020 50%, transparent 100%); border-radius: 50%; animation: rm4-flicker 2s ease-in-out infinite alternate; }
@keyframes rm4-mock { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(4deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rm4-anger { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes rm4-hand { 0% { transform: rotate(30deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 75% { transform: rotate(25deg); } 100% { transform: rotate(30deg); } }
@keyframes rm4-crown { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rm4-flicker { 0% { opacity: .8; transform: scaleY(1); } 100% { opacity: 1; transform: scaleY(1.2); } }

.scn-gloucester-buckingham-plot { background: linear-gradient(180deg, #1a0f1a 0%, #2d1a2d 50%, #0d050d 100%), radial-gradient(ellipse at 50% 60%, #3a1a1a 0%, transparent 60%); }
.scn-gloucester-buckingham-plot .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a2a 0%, #1a0f1a 60%, #0a050a 100%); }
.scn-gloucester-buckingham-plot .table { position:absolute; bottom:18%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:4% 4% 40% 40% / 60% 60% 30% 30%; box-shadow:0 -6px 12px rgba(0,0,0,.6); }
.scn-gloucester-buckingham-plot .figure-left { position:absolute; bottom:15%; left:42%; width:14%; height:28%; background: linear-gradient(180deg, #1a101a 0%, #0a050a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin:bottom center; animation: gbp-figLeft 6s ease-in-out infinite; }
.scn-gloucester-buckingham-plot .figure-right { position:absolute; bottom:15%; right:38%; width:15%; height:30%; background: linear-gradient(180deg, #2a1a2a 0%, #0a050a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin:bottom center; animation: gbp-figRight 7s ease-in-out infinite; }
.scn-gloucester-buckingham-plot .candle { position:absolute; bottom:22%; left:49%; width:2%; height:6%; background: linear-gradient(180deg, #c08030 0%, #4a1a0a 100%); border-radius:30% 30% 10% 10%; }
.scn-gloucester-buckingham-plot .candle-glow { position:absolute; bottom:22%; left:48%; width:6%; height:10%; background: radial-gradient(circle, #ffd060 0%, #b07020 50%, transparent 80%); border-radius:50%; animation: gbp-candle 2s ease-in-out infinite alternate; }
.scn-gloucester-buckingham-plot .shadow { position:absolute; bottom:15%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 60%); animation: gbp-shadow 8s ease-in-out infinite; }
@keyframes gbp-figLeft { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes gbp-figRight { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes gbp-candle { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.8; transform: scaleY(.95); } }
@keyframes gbp-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }

.scn-hastings-receives-warning { background: linear-gradient(180deg, #1a2a4a 0%, #4a6a8a 30%, #8a9a9a 60%, #5a5a4a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%); }
.scn-hastings-receives-warning .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a7a9a 0%, #1a3a5a 100%); animation: hrw-sky 12s ease-in-out infinite alternate; }
.scn-hastings-receives-warning .sun-glow { position:absolute; top:8%; left:70%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 50%, #fff4c0 0%, #d0a060 40%, transparent 70%); animation: hrw-sun 4s ease-in-out infinite; }
.scn-hastings-receives-warning .house-silhouette { position:absolute; bottom:30%; left:10%; width:35%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.8); }
.scn-hastings-receives-warning .door { position:absolute; bottom:30%; left:20%; width:8%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%); border-radius:20% 20% 0 0; }
.scn-hastings-receives-warning .messenger { position:absolute; bottom:28%; left:60%; width:10%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrw-messenger 3s ease-in-out infinite; }
.scn-hastings-receives-warning .ground-mist { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, rgba(180,180,200,.3) 0%, transparent 100%); filter: blur(8px); animation: hrw-mist 10s linear infinite alternate; }
.scn-hastings-receives-warning .shadow-bars { position:absolute; bottom:0; left:0; right:0; height:10%; background: repeating-linear-gradient(90deg, rgba(0,0,0,.4) 0, rgba(0,0,0,.4) 3%, transparent 3%, transparent 8%); animation: hrw-bars 2s ease-in-out infinite; }
@keyframes hrw-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes hrw-sun { 0% { transform: scale(.95); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:.9; } }
@keyframes hrw-messenger { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5%) rotate(2deg); } 100% { transform: translateX(10%) rotate(0); } }
@keyframes hrw-mist { 0% { transform: translateY(0); } 100% { transform: translateY(-5%); } }
@keyframes hrw-bars { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.5; } }

.scn-hastings-dismisses-fears { background: linear-gradient(180deg, #8a9ac0 0%, #b0c0d0 40%, #d0d8e0 80%, #c0b8a0 100%), radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%); }
.scn-hastings-dismisses-fears .sky-calm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0b0d0 0%, #80a0c0 100%); animation: hdf-sky 20s ease-in-out infinite alternate; }
.scn-hastings-dismisses-fears .sunrise-rays { position:absolute; top:5%; right:10%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,240,200,.4) 0%, transparent 60%); animation: hdf-rays 6s ease-in-out infinite alternate; }
.scn-hastings-dismisses-fears .balcony-rail { position:absolute; bottom:40%; left:20%; width:60%; height:4%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 50%, #5a4a3a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-hastings-dismisses-fears .hastings-figure { position:absolute; bottom:30%; left:42%; width:12%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: hdf-figure 8s ease-in-out infinite; }
.scn-hastings-dismisses-fears .potted-plant { position:absolute; bottom:35%; right:25%; width:8%; height:16%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius:20% 20% 40% 40%; animation: hdf-plant 10s ease-in-out infinite; }
.scn-hastings-dismisses-fears .clouds { position:absolute; top:15%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,.4) 0%, transparent 50%), radial-gradient(ellipse at 70% 30%, rgba(255,255,255,.3) 0%, transparent 40%); filter: blur(10px); animation: hdf-clouds 40s linear infinite; }
@keyframes hdf-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hdf-rays { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes hdf-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3%) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hdf-plant { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes hdf-clouds { 0% { transform: translateX(-10%); } 100% { transform: translateX(110%); } }

.scn-catesby-sounds-hastings { background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 30%, #3a1a2a 60%, #1a0a1a 100%), radial-gradient(ellipse at 50% 70%, #6a3a3a 0%, transparent 50%); }
.scn-catesby-sounds-hastings .corridor-back { position:absolute; inset:0 30% 0 30%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius:0 0 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-catesby-sounds-hastings .corridor-floor { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%); border-radius:20% 20% 0 0; }
.scn-catesby-sounds-hastings .arch-left { position:absolute; bottom:15%; left:22%; width:16%; height:50%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-catesby-sounds-hastings .arch-right { position:absolute; bottom:15%; right:22%; width:16%; height:50%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-catesby-sounds-hastings .hastings-profile { position:absolute; bottom:20%; left:30%; width:10%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: csh-hastings 4s ease-in-out infinite; }
.scn-catesby-sounds-hastings .catesby-profile { position:absolute; bottom:22%; right:30%; width:11%; height:32%; background: linear-gradient(180deg, #4a2a2a 0%, #2a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: csh-catesby 5s ease-in-out infinite; }
.scn-catesby-sounds-hastings .torch-glow { position:absolute; bottom:25%; left:48%; width:6%; height:12%; background: radial-gradient(circle, #d08030 0%, #6a1a0a 60%, transparent 80%); border-radius:50%; animation: csh-torch 2s ease-in-out infinite alternate; box-shadow: 0 0 30px #b06020, 0 0 60px rgba(176,96,32,.3); }
@keyframes csh-hastings { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3%) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes csh-catesby { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(3%) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes csh-torch { 0% { opacity:.7; transform: scale(.95); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1); } }

.scn-elizabeth-asks-king { background: linear-gradient(180deg, #f4e8d0 0%, #e0c8a8 40%, #c8a888 100%), radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-elizabeth-asks-king .sky-sun { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fef4e0 0%, #f0dcc0 60%, transparent 100%); }
.scn-elizabeth-asks-king .arches { position:absolute; top:10%; left:10%; right:10%; height:35%; background: radial-gradient(ellipse 60% 100% at 20% 100%, transparent 55%, #8a7050 56%, #705838 58%, transparent 59%), radial-gradient(ellipse 60% 100% at 50% 100%, transparent 55%, #8a7050 56%, #705838 58%, transparent 59%), radial-gradient(ellipse 60% 100% at 80% 100%, transparent 55%, #8a7050 56%, #705838 58%, transparent 59%); border-radius:0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 12px 30px rgba(0,0,0,.15); }
.scn-elizabeth-asks-king .column-l { position:absolute; bottom:30%; left:18%; width:12px; height:60%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:6px 6px 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.2); }
.scn-elizabeth-asks-king .column-r { position:absolute; bottom:30%; right:18%; width:12px; height:60%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:6px 6px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.2); }
.scn-elizabeth-asks-king .figure-eliz { position:absolute; bottom:28%; left:32%; width:26px; height:70px; background: linear-gradient(180deg, #c07050 0%, #905838 40%, #402820 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: s1-eliz 5s ease-in-out infinite; }
.scn-elizabeth-asks-king .figure-richard { position:absolute; bottom:28%; right:30%; width:28px; height:72px; background: linear-gradient(180deg, #705090 0%, #483068 50%, #201830 100%); border-radius:35% 35% 30% 30% / 45% 45% 30% 30%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: s1-richard 5s ease-in-out infinite; }
.scn-elizabeth-asks-king .shadow-gap { position:absolute; bottom:28%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.25) 0%, transparent 70%); }
.scn-elizabeth-asks-king .dust { position:absolute; border-radius:50%; background:rgba(255,240,200,.6); filter:blur(2px); }
.scn-elizabeth-asks-king .motes-a { width:6px; height:6px; top:25%; left:20%; animation: s1-drift-a 25s linear infinite; }
.scn-elizabeth-asks-king .motes-b { width:4px; height:4px; top:40%; left:60%; animation: s1-drift-b 30s linear infinite reverse; }
@keyframes s1-eliz { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-2px) rotate(1deg) } }
@keyframes s1-richard { 0%,100% { transform:translateX(0) rotate(0) } 30% { transform:translateX(-2px) rotate(2deg) } 60% { transform:translateX(1px) rotate(-1deg) } }
@keyframes s1-drift-a { 0% { transform:translateX(-20px) translateY(0) scale(1); opacity:.6 } 25% { transform:translateX(10vw) translateY(-12px) scale(1.2); opacity:.8 } 50% { transform:translateX(25vw) translateY(5px) scale(.9); opacity:.5 } 75% { transform:translateX(40vw) translateY(-8px) scale(1.1); opacity:.7 } 100% { transform:translateX(60vw) translateY(0) scale(1); opacity:.6 } }
@keyframes s1-drift-b { 0% { transform:translateX(0) translateY(0) scale(1); opacity:.5 } 33% { transform:translateX(-15vw) translateY(8px) scale(1.3); opacity:.8 } 66% { transform:translateX(-30vw) translateY(-4px) scale(.8); opacity:.4 } 100% { transform:translateX(-50vw) translateY(0) scale(1); opacity:.5 } }

.scn-richard-enthusiastic { background: linear-gradient(180deg, #f4e4c8 0%, #d4b890 40%, #b89870 100%), radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 50%); position:relative; overflow:hidden; }
.scn-richard-enthusiastic .bg-arch { position:absolute; top:5%; left:10%; right:10%; height:50%; background: radial-gradient(ellipse 80% 100% at 50% 100%, transparent 50%, #b09878 52%, #907858 54%, transparent 56%); }
.scn-richard-enthusiastic .sunbeam { position:absolute; top:0; left:48%; width:60px; height:70%; background: linear-gradient(180deg, rgba(255,240,180,.4) 0%, rgba(255,240,180,.1) 60%, transparent 100%); transform:rotate(8deg); transform-origin: top center; filter:blur(8px); animation: s2-beam 6s ease-in-out infinite alternate; }
.scn-richard-enthusiastic .figure-richard-e { position:absolute; bottom:24%; left:50%; width:32px; height:78px; transform:translateX(-50%); background: linear-gradient(180deg, #604080 0%, #382050 60%, #1a1030 100%); border-radius:35% 35% 25% 25% / 50% 50% 25% 25%; box-shadow: 3px 0 10px rgba(0,0,0,.35); animation: s2-richard 4s ease-in-out infinite; }
.scn-richard-enthusiastic .hand-heart { position:absolute; bottom:50%; left:42%; width:16px; height:14px; background: radial-gradient(ellipse at 40% 40%, #a03030 0%, #701818 60%, #400808 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; transform:rotate(-15deg); box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: s2-heart 3s ease-in-out infinite; }
.scn-richard-enthusiastic .handkerchief { position:absolute; bottom:38%; left:30%; width:50px; height:40px; background: linear-gradient(135deg, #e8d4b0 0%, #c8b090 60%, #a89070 100%); border-radius:10% 10% 40% 10% / 20% 20% 50% 20%; transform:rotate(20deg); box-shadow: inset 2px -2px 6px rgba(0,0,0,.2), 2px 4px 8px rgba(0,0,0,.25); animation: s2-cloth 5s ease-in-out infinite; }
.scn-richard-enthusiastic .droplet { position:absolute; border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; background: linear-gradient(180deg, #c03030 0%, #801010 100%); }
.scn-richard-enthusiastic .droplet.a { width:8px; height:12px; bottom:18%; left:42%; animation: s2-drop 4s ease-in-out infinite; }
.scn-richard-enthusiastic .droplet.b { width:6px; height:9px; bottom:14%; left:48%; animation: s2-drop 4s ease-in-out 1.2s infinite; }
.scn-richard-enthusiastic .droplet.c { width:5px; height:8px; bottom:10%; left:45%; animation: s2-drop 4s ease-in-out 2.5s infinite; }
@keyframes s2-beam { 0% { opacity:.3; transform:rotate(5deg) scaleX(1) } 50% { opacity:.7; transform:rotate(10deg) scaleX(1.2) } 100% { opacity:.4; transform:rotate(7deg) scaleX(.9) } }
@keyframes s2-richard { 0%,100% { transform:translateX(-50%) rotate(0) } 30% { transform:translateX(-48%) rotate(3deg) } 60% { transform:translateX(-52%) rotate(-2deg) } }
@keyframes s2-heart { 0%,100% { transform:rotate(-15deg) translateY(0) scale(1) } 25% { transform:rotate(-12deg) translateY(-2px) scale(1.1) } 50% { transform:rotate(-18deg) translateY(0) scale(1) } 75% { transform:rotate(-10deg) translateY(-3px) scale(1.15) } }
@keyframes s2-cloth { 0%,100% { transform:rotate(20deg) translateX(0) } 25% { transform:rotate(25deg) translateX(3px) } 50% { transform:rotate(18deg) translateX(-2px) } 75% { transform:rotate(22deg) translateX(2px) } }
@keyframes s2-drop { 0% { transform:translateY(0) scale(1); opacity:0 } 20% { opacity:1 } 40% { transform:translateY(18px) scale(1.1); opacity:.9 } 60% { transform:translateY(36px) scale(.9); opacity:.7 } 80% { transform:translateY(52px) scale(1.05); opacity:.3 } 100% { transform:translateY(70px) scale(1); opacity:0 } }

.scn-elizabeth-suggests-story { background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89070 100%), radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-elizabeth-suggests-story .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b09878 0%, #8a7050 50%, #6a5030 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.25); }
.scn-elizabeth-suggests-story .wall-bg { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #d4c4aa 0%, #b8a080 80%, #9a8060 100%); }
.scn-elizabeth-suggests-story .window-frame { position:absolute; top:10%; left:35%; right:35%; bottom:40%; border:8px solid #705838; border-radius:4px 4px 8px 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); background: transparent; }
.scn-elizabeth-suggests-story .window-light { position:absolute; top:12%; left:37%; right:37%; bottom:42%; background: linear-gradient(180deg, #ffe8c0 0%, #f0d098 80%); box-shadow: 0 0 30px 10px rgba(255,200,100,.3); animation: s3-light 8s ease-in-out infinite alternate; }
.scn-elizabeth-suggests-story .figure-eliz-s { position:absolute; bottom:30%; left:28%; width:24px; height:65px; background: linear-gradient(180deg, #b86848 0%, #804830 50%, #382018 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -3px 0 8px rgba(0,0,0,.3); animation: s3-woman 7s ease-in-out infinite; }
.scn-elizabeth-suggests-story .shadow-arms { position:absolute; bottom:42%; left:24%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.2) 0%, transparent 70%); animation: s3-arms 7s ease-in-out infinite; }
.scn-elizabeth-suggests-story .scroll { position:absolute; bottom:38%; left:26%; width:36px; height:28px; background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 60%, #a89070 100%); border-radius:4px 4px 50% 50% / 4px 4px 40% 40%; transform:rotate(25deg); box-shadow: 2px 2px 6px rgba(0,0,0,.2); }
@keyframes s3-light { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.05) translateY(-2px) } 100% { opacity:.8; transform:scaleY(.98) translateY(0) } }
@keyframes s3-woman { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(-3px) rotate(0) } 50% { transform:translateX(2px) rotate(1deg) } 75% { transform:translateX(-2px) rotate(0) } }
@keyframes s3-arms { 0%,100% { transform:translateX(0) scaleX(1) } 25% { transform:translateX(-4px) scaleX(1.2) } 50% { transform:translateX(2px) scaleX(.9) } 75% { transform:translateX(-3px) scaleX(1.1) } }

.scn-richard-claims-love { background: linear-gradient(180deg, #f0e4cc 0%, #d0c0a0 40%, #b09878 100%), radial-gradient(ellipse at 60% 40%, #ffe0a0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-richard-claims-love .bg-panel { position:absolute; top:0; left:8%; right:8%; bottom:0; background: linear-gradient(90deg, transparent 0%, rgba(160,120,80,.15) 15%, transparent 40%, rgba(160,120,80,.1) 60%, transparent 85%, rgba(160,120,80,.12) 100%); border-radius:0; }
.scn-richard-claims-love .arch-over { position:absolute; top:4%; left:15%; right:15%; height:40%; background: radial-gradient(ellipse 100% 100% at 50% 100%, transparent 55%, #8a7050 57%, #6a5030 59%, transparent 61%); }
.scn-richard-claims-love .figure-richard-l { position:absolute; bottom:24%; left:42%; width:30px; height:80px; background: linear-gradient(180deg, #584078 0%, #382050 60%, #1a1030 100%); border-radius:35% 35% 25% 25% / 50% 50% 25% 25%; transform-origin: bottom center; box-shadow: 3px 0 12px rgba(0,0,0,.35); animation: s4-richard 6s ease-in-out infinite; }
.scn-richard-claims-love .arm-out { position:absolute; bottom:42%; left:34%; width:40px; height:14px; background: linear-gradient(180deg, #584078 0%, #382050 100%); border-radius:0 40% 40% 0 / 0 60% 60% 0; transform:rotate(-20deg); transform-origin: right center; box-shadow: -2px 0 6px rgba(0,0,0,.2); animation: s4-arm 4s ease-in-out infinite; }
.scn-richard-claims-love .crown-mock { position:absolute; top:14%; left:46%; width:28px; height:16px; background: linear-gradient(180deg, #c8a050 0%, #a08030 60%, #705018 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: s4-crown 5s ease-in-out infinite; }
.scn-richard-claims-love .halo-dark { position:absolute; bottom:30%; left:38%; width:50px; height:50px; background: radial-gradient(circle, rgba(0,0,0,.15) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: s4-halo 8s ease-in-out infinite alternate; }
.scn-richard-claims-love .gem { position:absolute; border-radius:50%; background: radial-gradient(circle at 30% 30%, #ff4080 0%, #a01030 100%); box-shadow: 0 0 12px 4px rgba(255,64,128,.4); }
.scn-richard-claims-love .gem.a { width:8px; height:8px; top:16%; left:42%; animation: s4-gem 3s ease-in-out infinite; }
.scn-richard-claims-love .gem.b { width:6px; height:6px; top:14%; left:52%; animation: s4-gem 3s ease-in-out 1.5s infinite; }
@keyframes s4-richard { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(2deg) } 50% { transform:translateX(-1px) rotate(-1deg) } 75% { transform:translateX(3px) rotate(1deg) } }
@keyframes s4-arm { 0%,100% { transform:rotate(-20deg) translateX(0) } 25% { transform:rotate(-15deg) translateX(4px) } 50% { transform:rotate(-22deg) translateX(-2px) } 75% { transform:rotate(-18deg) translateX(3px) } }
@keyframes s4-crown { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-4px) rotate(-3deg) } 50% { transform:translateY(2px) rotate(2deg) } 75% { transform:translateY(-3px) rotate(-1deg) } }
@keyframes s4-halo { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.2) } 100% { opacity:.5; transform:scale(.9) } }
@keyframes s4-gem { 0%,100% { transform:scale(1); opacity:.7 } 25% { transform:scale(1.4); opacity:1 } 50% { transform:scale(.8); opacity:.5 } 75% { transform:scale(1.2); opacity:.9 } }

.scn-catesby-here {
  background: linear-gradient(180deg, #f5deb3 0%, #d2a679 50%, #8b5e3c 100%), radial-gradient(ellipse at 80% 30%, #fff8dc 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-catesby-here .interior-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e6cba0 0%, #c89a6b 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-catesby-here .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5230 0%, #5a3a1e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-catesby-here .window {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #fff8e7 0%, #ffecb3 100%);
  border: 6px solid #4a2e14;
  border-radius: 8% 8% 0 0;
  box-shadow: 0 0 30px 10px rgba(255,235,180,0.6);
  animation: ch-window 12s ease-in-out infinite alternate;
}
.scn-catesby-here .light-beam {
  position: absolute; top: 10%; right: 20%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(255,245,200,0.4) 0%, transparent 70%);
  transform: skewX(-20deg);
  transform-origin: top left;
  filter: blur(8px);
  animation: ch-beam 8s ease-in-out infinite alternate;
}
.scn-catesby-here .throne {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.7);
  transform: perspective(200px) rotateX(5deg);
}
.scn-catesby-here .figure-richard {
  position: absolute; bottom: 28%; left: 36%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ch-richard 6s ease-in-out infinite;
}
.scn-catesby-here .figure-catesby {
  position: absolute; bottom: 28%; left: 58%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ch-catesby 10s ease-in-out infinite;
}
.scn-catesby-here .parchment {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #f5e6c8 0%, #dcc4a0 100%);
  border-radius: 4%;
  transform: rotate(8deg);
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: ch-parch 4s ease-in-out infinite alternate;
}
@keyframes ch-window { 0% { opacity:0.7; box-shadow:0 0 20px 5px rgba(255,235,180,0.4); } 100% { opacity:1; box-shadow:0 0 40px 15px rgba(255,235,180,0.7); } }
@keyframes ch-beam { 0% { transform: skewX(-20deg) scaleX(1); opacity:0.6; } 100% { transform: skewX(-15deg) scaleX(1.1); opacity:0.9; } }
@keyframes ch-richard { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-4deg) translateY(-2px); } 70% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ch-catesby { 0% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(2deg) translateX(4px); } 50% { transform: rotate(-1deg) translateX(2px); } 80% { transform: rotate(0deg) translateX(0); } }
@keyframes ch-parch { 0% { transform: rotate(8deg) translateY(0); } 100% { transform: rotate(10deg) translateY(-3px); } }

.scn-exit-catesby2 {
  background: linear-gradient(90deg, #c9a77a 0%, #d7b88e 40% 60%, #c9a77a 100%), radial-gradient(ellipse at 70% 30%, #f0dbb0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-exit-catesby2 .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b643b 0%, #57361a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-exit-catesby2 .corridor-wall-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #b88e62 0%, #7a5836 100%);
  border-right: 4px solid #4a3018;
}
.scn-exit-catesby2 .corridor-wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #b88e62 0%, #7a5836 100%);
  border-left: 4px solid #4a3018;
}
.scn-exit-catesby2 .door {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3d2a14 100%);
  border-radius: 6% 6% 0 0;
  transform: translateX(-50%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-exit-catesby2 .door-open {
  position: absolute; bottom: 28%; left: 58%; width: 60px; height: 120px;
  background: linear-gradient(135deg, #4a2e18 0%, #2d1d0e 100%);
  border-radius: 0 6% 0 0;
  transform: skewY(8deg);
  transform-origin: left bottom;
  animation: ec2-door 12s ease-in-out infinite alternate;
}
.scn-exit-catesby2 .figure-exit {
  position: absolute; bottom: 28%; left: 42%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2818 0%, #1e1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ec2-exit 8s ease-in-out infinite;
}
.scn-exit-catesby2 .figure-waiting {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ec2-wait 14s ease-in-out infinite alternate;
}
@keyframes ec2-door { 0% { transform: skewY(8deg); } 100% { transform: skewY(12deg); } }
@keyframes ec2-exit { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(16px) rotate(2deg); } 60% { transform: translateX(32px) rotate(-1deg); } 100% { transform: translateX(50px) rotate(0deg); } }
@keyframes ec2-wait { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }

.scn-richard-impatient-riddle {
  background: linear-gradient(180deg, #b88a5c 0%, #8c5a30 50%, #4a2a14 100%), radial-gradient(ellipse at 40% 60%, #e8c898 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-richard-impatient-riddle .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #cfa670 0%, #a06a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-richard-impatient-riddle .table {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
}
.scn-richard-impatient-riddle .paper-fly {
  position: absolute; bottom: 45%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0dbb0 0%, #d4b080 100%);
  border-radius: 10%;
  transform: rotate(25deg);
  animation: rip-paper 3s ease-in-out infinite alternate;
}
.scn-richard-impatient-riddle .figure-richard-angry {
  position: absolute; bottom: 26%; left: 48%; width: 34px; height: 76px;
  background: linear-gradient(180deg, #2a1a0e 0%, #140c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rip-richard 2s ease-in-out infinite;
}
.scn-richard-impatient-riddle .arm-gesture {
  position: absolute; bottom: 40%; left: 56%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #140c06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: rip-arm 1.5s ease-in-out infinite;
}
.scn-richard-impatient-riddle .candle {
  position: absolute; bottom: 44%; left: 32%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,180,80,0.6);
  animation: rip-candle 5s ease-in-out infinite alternate;
}
.scn-richard-impatient-riddle .shadow-sharp {
  position: absolute; bottom: 24%; left: 40%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: rip-shadow 2s ease-in-out infinite alternate;
}
@keyframes rip-paper { 0% { transform: rotate(25deg) translateX(0); } 100% { transform: rotate(15deg) translateX(8px) translateY(-10px); } }
@keyframes rip-richard { 0% { transform: rotate(-3deg) scaleY(1); } 25% { transform: rotate(4deg) scaleY(1.02); } 50% { transform: rotate(-2deg) scaleY(0.98); } 75% { transform: rotate(5deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes rip-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes rip-candle { 0% { opacity:0.8; box-shadow:0 0 15px 5px rgba(240,180,80,0.5); } 100% { opacity:1; box-shadow:0 0 30px 12px rgba(240,180,80,0.8); } }
@keyframes rip-shadow { 0% { transform: scaleX(1); opacity:0.6; } 100% { transform: scaleX(1.2); opacity:0.9; } }

.scn-richard-presses {
  background: linear-gradient(180deg, #d4b080 0%, #a06a3a 50%, #5c3618 100%), radial-gradient(ellipse at 70% 40%, #f2ddb0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-richard-presses .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #cfa670 0%, #8c5a30 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-richard-presses .throne {
  position: absolute; bottom: 22%; left: 35%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateX(8deg);
}
.scn-richard-presses .sword {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #d4c4a0 0%, #a08860 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 10px 2px rgba(200,180,140,0.4);
  animation: rp-sword 4s ease-in-out infinite alternate;
}
.scn-richard-presses .figure-pacing {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 74px;
  background: linear-gradient(180deg, #2a1a0e 0%, #140c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-pace 3s ease-in-out infinite;
}
.scn-richard-presses .cape {
  position: absolute; bottom: 24%; left: 48%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #3a2818 0%, #1e1208 100%);
  border-radius: 20% 40% 20% 40% / 30% 50% 30% 50%;
  transform-origin: top center;
  animation: rp-cape 3s ease-in-out infinite;
}
.scn-richard-presses .step-shadow {
  position: absolute; bottom: 14%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: rp-step 3s ease-in-out infinite;
}
@keyframes rp-sword { 0% { transform: rotate(15deg); } 100% { transform: rotate(18deg) translateY(-4px); } }
@keyframes rp-pace { 0% { transform: translateX(-10px) rotate(-2deg); } 25% { transform: translateX(0px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-10px) rotate(-2deg); } }
@keyframes rp-cape { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes rp-step { 0% { transform: translateX(-10px); opacity:0.5; } 50% { transform: translateX(10px); opacity:0.8; } 100% { transform: translateX(-10px); opacity:0.5; } }

/* buckingham-derby-arrive */
.scn-buckingham-derby-arrive {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4bfa4 100%), radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 60%);
}
.scn-buckingham-derby-arrive .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d4b896 0%, #b89a7a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.15);
  animation: bda-floor 20s ease-in-out infinite alternate;
}
.scn-buckingham-derby-arrive .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #fcf3e3 0%, #ecdcc4 100%);
  border-bottom: 3px solid #c4a87a;
}
.scn-buckingham-derby-arrive .throne {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%) scale(1);
  background: linear-gradient(135deg, #c8a46e 0%, #a08050 50%, #8a6e42 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2), inset 0 -20px 30px rgba(0,0,0,0.15);
  animation: bda-throne 8s ease-in-out infinite alternate;
}
.scn-buckingham-derby-arrive .figure-kneeling {
  position: absolute; bottom: 28%; left: 38%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e24 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bda-kneel 6s ease-in-out infinite;
}
.scn-buckingham-derby-arrive .figure-standing {
  position: absolute; bottom: 30%; left: 55%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #4a3e32 0%, #2a221a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: bda-stand 5s ease-in-out infinite alternate;
}
.scn-buckingham-derby-arrive .window-light {
  position: absolute; top: 12%; left: 25%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #fff8dc 0%, #f0d8a0 50%, transparent 80%);
  border-radius: 10% / 15%;
  filter: blur(4px);
  opacity: 0.7;
  animation: bda-window 12s ease-in-out infinite alternate;
}
.scn-buckingham-derby-arrive .column-left {
  position: absolute; bottom: 25%; left: 10%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #d4c4a8 0%, #e8dcc8 30%, #c8b89c 70%, #b8a88a 100%);
  border-radius: 10% / 20%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.1);
}
.scn-buckingham-derby-arrive .column-right {
  position: absolute; bottom: 25%; right: 10%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #d4c4a8 0%, #e8dcc8 30%, #c8b89c 70%, #b8a88a 100%);
  border-radius: 10% / 20%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.1);
}
@keyframes bda-floor {
  0% { opacity: 0.95; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.9; filter: brightness(0.98); }
}
@keyframes bda-throne {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(0.5deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(-0.5deg); }
}
@keyframes bda-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bda-stand {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bda-window {
  0% { opacity: 0.6; filter: blur(5px); }
  50% { opacity: 0.8; filter: blur(3px); }
  100% { opacity: 0.7; filter: blur(6px); }
}

/* derby-defends-wife */
.scn-derby-defends-wife {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0b098 100%), radial-gradient(ellipse at 60% 30%, #fff4e0 0%, transparent 60%);
}
.scn-derby-defends-wife .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b89c 0%, #a8987c 100%);
  border-radius: 30% 70% 0 0 / 15% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.12);
}
.scn-derby-defends-wife .wall-panel {
  position: absolute; top: 0; left: 0; right: 0; height: 75%;
  background: linear-gradient(180deg, #f0e6d8 0%, #e0d0bc 100%);
  border-bottom: 2px solid #b8a88a;
}
.scn-derby-defends-wife .figure-speaker {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2e2218 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ddw-speak 4s ease-in-out infinite;
}
.scn-derby-defends-wife .figure-listener {
  position: absolute; bottom: 25%; left: 55%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ddw-listen 6s ease-in-out infinite alternate;
}
.scn-derby-defends-wife .candle-stand {
  position: absolute; bottom: 20%; left: 50%; width: 10px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4e3e 100%);
  border-radius: 20% / 10%;
}
.scn-derby-defends-wife .flame-glow {
  position: absolute; bottom: 46%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #ffe080 0%, #ffc040 40%, #e89030 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.8;
  animation: ddw-flame 2s ease-in-out infinite alternate;
}
.scn-derby-defends-wife .tapestry {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4e3e 50%, #3a3228 100%);
  border-radius: 8% 8% 4% 4% / 12% 12% 6% 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  opacity: 0.7;
}
@keyframes ddw-speak {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1.5deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ddw-listen {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ddw-flame {
  0% { transform: translateX(-50%) scaleY(0.8); opacity: 0.7; }
  50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.75; }
}

/* king-desires-atonement */
.scn-king-desires-atonement {
  background: linear-gradient(180deg, #fff4e0 0%, #f0dcc4 40%, #e0c8ac 100%), radial-gradient(ellipse at 50% 15%, #ffe8c0 0%, transparent 50%);
}
.scn-king-desires-atonement .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: repeating-conic-gradient(#d4c0a8 0% 25%, #c0a88e 0% 50%) 0 0 / 60px 30px;
  opacity: 0.5;
  animation: kda-tile 30s linear infinite;
}
.scn-king-desires-atonement .wall-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 72%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-king-desires-atonement .king-figure {
  position: absolute; bottom: 28%; left: 50%; width: 32px; height: 54px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a86e 0%, #a08050 40%, #7a623a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  box-shadow: 0 0 30px 8px rgba(200,168,110,0.3);
  animation: kda-king 6s ease-in-out infinite alternate;
}
.scn-king-desires-atonement .courier-left {
  position: absolute; bottom: 24%; left: 28%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3e32 0%, #2a221a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kda-courier-l 7s ease-in-out infinite;
}
.scn-king-desires-atonement .courier-right {
  position: absolute; bottom: 24%; right: 28%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #32261c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kda-courier-r 7s ease-in-out infinite 1s;
}
.scn-king-desires-atonement .light-beam {
  position: absolute; top: 0; left: 38%; width: 24%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: kda-beam 10s ease-in-out infinite alternate;
}
.scn-king-desires-atonement .crown-glow {
  position: absolute; bottom: 42%; left: 50%; width: 20px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffd060 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  opacity: 0.8;
  animation: kda-crown 4s ease-in-out infinite alternate;
}
@keyframes kda-tile {
  0% { background-position: 0 0; }
  100% { background-position: 60px 30px; }
}
@keyframes kda-king {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.03) rotate(0.8deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(-0.5deg); }
}
@keyframes kda-courier-l {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1.5deg); }
  75% { transform: translateY(-1px) rotate(1.2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kda-courier-r {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1.5deg); }
  75% { transform: translateY(-1px) rotate(-1.2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kda-beam {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes kda-crown {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.7; }
}

/* richard-feigns-outrage */
.scn-richard-feigns-outrage {
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e14 40%, #1a120a 100%), radial-gradient(ellipse at 60% 40%, #5a4a3a 0%, transparent 60%);
}
.scn-richard-feigns-outrage .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 20% 80% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-richard-feigns-outrage .wall-shadow {
  position: absolute; top: 0; left: 0; right: 0; height: 75%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #221810 100%);
  border-bottom: 3px solid #0a0a06;
}
.scn-richard-feigns-outrage .richard-figure {
  position: absolute; bottom: 22%; left: 38%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #3a2e22 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 6px rgba(0,0,0,0.5);
  animation: rfo-richard 2.5s ease-in-out infinite;
}
.scn-richard-feigns-outrage .cloak-sweep {
  position: absolute; bottom: 18%; left: 36%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 50%, #1a120a 100%);
  border-radius: 60% 20% 40% 40% / 70% 30% 60% 60%;
  transform-origin: top left;
  animation: rfo-cloak 3s ease-in-out infinite alternate;
}
.scn-richard-feigns-outrage .courtier-cowering {
  position: absolute; bottom: 20%; right: 25%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: rfo-cower 4s ease-in-out infinite;
}
.scn-richard-feigns-outrage .torch-flame {
  position: absolute; bottom: 40%; left: 15%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #ffc040 0%, #e88030 50%, #c84020 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: rfo-torch 1.5s ease-in-out infinite alternate;
}
.scn-richard-feigns-outrage .torch-glow {
  position: absolute; bottom: 35%; left: 12%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,160,60,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.6;
  animation: rfo-glow 2s ease-in-out infinite alternate;
}
.scn-richard-feigns-outrage .shadow-stripe {
  position: absolute; top: 0; left: 45%; width: 2px; height: 100%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 70%);
  opacity: 0.4;
  animation: rfo-stripe 8s ease-in-out infinite;
}
@keyframes rfo-richard {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-4px) rotate(4deg); }
  60% { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes rfo-cloak {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(8deg) scale(1.05); }
  100% { transform: rotate(-4deg) scale(0.95); }
}
@keyframes rfo-cower {
  0% { transform: scaleX(-1) translateY(0); }
  25% { transform: scaleX(-1) translateY(-2px); }
  50% { transform: scaleX(-1) translateY(0); }
  75% { transform: scaleX(-1) translateY(-1px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes rfo-torch {
  0% { transform: scaleY(0.8) rotate(-2deg); }
  50% { transform: scaleY(1.2) rotate(3deg); }
  100% { transform: scaleY(0.9) rotate(-1deg); }
}
@keyframes rfo-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes rfo-stripe {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* richard-offers-progeny — manipulative, sunlit */
.scn-richard-offers-progeny {
  background: linear-gradient(135deg, #f9e6c0 0%, #d4a84b 40%, #bf8c2a 70%) , radial-gradient(ellipse 50% 40% at 50% 30%, #f4d58c 0%, transparent 70%);
}
.scn-richard-offers-progeny .sun-burst {
  position: absolute; inset: -10% 0 60% 0;
  background: radial-gradient(ellipse 40% 100% at 50% 100%, #fee599 0%, #f9d56e 40%, transparent 70%);
  animation: rop-sun 12s ease-in-out infinite alternate;
}
.scn-richard-offers-progeny .throne {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b07a3a 0%, #6b4b1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rop-throne 8s ease-in-out infinite;
}
.scn-richard-offers-progeny .figure-richard {
  position: absolute; bottom: 28%; left: 44%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2c1f0c 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rop-walk 6s ease-in-out infinite;
}
.scn-richard-offers-progeny .figure-queen {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: rop-walk 6s ease-in-out infinite reverse;
}
.scn-richard-offers-progeny .child-small {
  position: absolute; bottom: 26%; left: 48%; width: 12px; height: 18px;
  background: #5a3a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rop-bob 4s ease-in-out infinite;
}
.scn-richard-offers-progeny .gold-coin {
  position: absolute; bottom: 18%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,215,0,0.6);
  animation: rop-coin 5s ease-in-out infinite alternate;
}
.scn-richard-offers-progeny .shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: rop-shadow 8s ease-in-out infinite;
}
@keyframes rop-sun { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rop-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02) } }
@keyframes rop-walk { 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(0) } }
@keyframes rop-bob { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes rop-coin { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.3) rotate(180deg) } 100% { transform: scale(1) rotate(360deg) } }
@keyframes rop-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.7 } }

/* richard-comforts-age — persuasive, sunlit */
.scn-richard-comforts-age {
  background: linear-gradient(180deg, #d9e6c0 0%, #a8c87a 30%, #80a850 60%, #5a7a30 100%), radial-gradient(ellipse 60% 50% at 50% 20%, #f4e8c8 0%, transparent 60%);
}
.scn-richard-comforts-age .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f9eabc 0%, #d9c87a 100%);
  animation: rca-sky 20s ease-in-out infinite alternate;
}
.scn-richard-comforts-age .hill-soft {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a9a3a 0%, #3a6a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: rca-hill 15s ease-in-out infinite alternate;
}
.scn-richard-comforts-age .tree-gentle {
  position: absolute; bottom: 40%; left: 60%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a7a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rca-tree 12s ease-in-out infinite;
}
.scn-richard-comforts-age .mother-figure {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: rca-mother 10s ease-in-out infinite;
}
.scn-richard-comforts-age .child-figure {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rca-child 8s ease-in-out infinite;
}
.scn-richard-comforts-age .flower-a {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f5b0a0 0%, #d08060 100%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(240,160,140,0.4);
  animation: rca-flower 6s ease-in-out infinite alternate;
}
.scn-richard-comforts-age .flower-b {
  position: absolute; bottom: 32%; left: 22%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e8c0a8 0%, #c09070 100%);
  border-radius: 50%; animation: rca-flower 6s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-richard-comforts-age .glow-soft {
  position: absolute; bottom: 28%; left: 28%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,240,200,0.3) 0%, transparent 70%);
  border-radius: 50%; animation: rca-glow 5s ease-in-out infinite alternate;
}
@keyframes rca-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rca-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes rca-tree { 0%,100% { transform: scale(1) rotate(-2deg) } 50% { transform: scale(1.05) rotate(2deg) } }
@keyframes rca-mother { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes rca-child { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes rca-flower { 0% { transform: scale(0.8) } 50% { transform: scale(1.2) } 100% { transform: scale(0.9) } }
@keyframes rca-glow { 0% { opacity: 0.2; transform: scale(0.9) } 100% { opacity: 0.6; transform: scale(1.2) } }

/* richard-promises-dorset — persuasive, sunlit */
.scn-richard-promises-dorset {
  background: linear-gradient(180deg, #c8daf0 0%, #88b0d0 40%, #5a8aaa 70%, #3a6a8a 100%), radial-gradient(ellipse 50% 40% at 50% 30%, #f0e4b8 0%, transparent 60%);
}
.scn-richard-promises-dorset .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  animation: rpd-sea 15s ease-in-out infinite alternate;
}
.scn-richard-promises-dorset .sky-wide {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f9ecc0 0%, #c8d8f0 100%);
  animation: rpd-sky 20s ease-in-out infinite alternate;
}
.scn-richard-promises-dorset .ship {
  position: absolute; bottom: 30%; left: 70%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: rpd-ship 25s ease-in-out infinite;
}
.scn-richard-promises-dorset .figure-dorset {
  position: absolute; bottom: 35%; left: 25%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rpd-figure 10s ease-in-out infinite alternate;
}
.scn-richard-promises-dorset .letter {
  position: absolute; bottom: 38%; left: 20%; width: 20px; height: 14px;
  background: #f4d8a0; border: 2px solid #8a6a3a; border-radius: 2px;
  transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: rpd-letter 14s ease-in-out infinite;
}
.scn-richard-promises-dorset .bird-a {
  position: absolute; top: 15%; left: 40%; width: 12px; height: 8px;
  background: #3a4a5a; border-radius: 50%;
  animation: rpd-bird 30s linear infinite;
}
.scn-richard-promises-dorset .bird-b {
  position: absolute; top: 20%; left: 60%; width: 10px; height: 6px;
  background: #4a5a6a; border-radius: 50%;
  animation: rpd-bird 30s linear infinite;
  animation-delay: -15s;
}
.scn-richard-promises-dorset .sun-promise {
  position: absolute; top: 8%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f9d56e 0%, #e8c040 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(248,212,110,0.4);
  transform: translateX(-50%);
  animation: rpd-sun 12s ease-in-out infinite alternate;
}
@keyframes rpd-sea { 0% { background-position: 0 0 } 50% { background-position: 20px 0 } 100% { background-position: 0 0 } }
@keyframes rpd-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rpd-ship { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-20px) rotate(2deg) } }
@keyframes rpd-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rpd-letter { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } }
@keyframes rpd-bird { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes rpd-sun { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(0.95) } }

/* richard-promises-family — persuasive, sunlit */
.scn-richard-promises-family {
  background: linear-gradient(180deg, #f4dba0 0%, #e8c87a 30%, #d0a850 60%, #b89030 100%), radial-gradient(ellipse 60% 50% at 50% 20%, #fee8b0 0%, transparent 60%);
}
.scn-richard-promises-family .sun-golden {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd580 0%, #f0b050 50%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 0 60px 30px rgba(240,176,80,0.5);
  animation: rpf-sun 12s ease-in-out infinite alternate;
}
.scn-richard-promises-family .halo {
  position: absolute; top: 20%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,230,180,0.3) 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: rpf-halo 8s ease-in-out infinite alternate;
}
.scn-richard-promises-family .mother-embrace {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rpf-mother 10s ease-in-out infinite;
}
.scn-richard-promises-family .king-crown {
  position: absolute; bottom: 34%; left: 42%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #c08030 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  clip-path: polygon(0% 100%, 20% 30%, 50% 0%, 80% 30%, 100% 100%);
  animation: rpf-crown 6s ease-in-out infinite alternate;
}
.scn-richard-promises-family .child-small {
  position: absolute; bottom: 28%; left: 34%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rpf-child 8s ease-in-out infinite;
}
.scn-richard-promises-family .ground-flowers {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a9a3a 0%, #4a6a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: rpf-ground 15s ease-in-out infinite alternate;
}
.scn-richard-promises-family .particles {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 80%;
  background-image: radial-gradient(2px 2px at 20% 30%, #f0d080, transparent),
                    radial-gradient(2px 2px at 40% 70%, #f0d080, transparent),
                    radial-gradient(2px 2px at 60% 20%, #f0d080, transparent),
                    radial-gradient(2px 2px at 80% 50%, #f0d080, transparent);
  background-size: 100% 100%;
  animation: rpf-particles 20s linear infinite;
}
@keyframes rpf-sun { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes rpf-halo { 0% { opacity: 0.2; transform: translateX(-50%) scale(0.8) } 100% { opacity: 0.5; transform: translateX(-50%) scale(1.3) } }
@keyframes rpf-mother { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes rpf-crown { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-3px) rotate(5deg) } }
@keyframes rpf-child { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes rpf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rpf-particles { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }

/* richard-until-death */
.scn-richard-until-death {
  background: linear-gradient(180deg, #a0c8e8 0%, #fce8b0 40%, #f0c060 70%, #d09040 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-richard-until-death .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, transparent 100%);
  animation: sud-sky 12s ease-in-out infinite alternate;
}
.scn-richard-until-death .sun {
  position: absolute; top: 12%; left: 55%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8d0 0%, #f0c060 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0c060, 0 0 120px 40px rgba(240,192,96,.5);
  animation: sud-sun 6s ease-in-out infinite alternate;
}
.scn-richard-until-death .tree-trunk {
  position: absolute; bottom: 30%; left: 30%;
  width: 20px; height: 80px;
  background: linear-gradient(90deg, #6a4a30 0%, #8a5a3a 50%, #5a3a20 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: sud-trunk 8s ease-in-out infinite;
}
.scn-richard-until-death .tree-canopy {
  position: absolute; bottom: 50%; left: 30%;
  width: 120px; height: 90px;
  background: radial-gradient(ellipse at 50% 70%, #6aaa50 0%, #3a6a30 50%, #1a4a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.3);
  animation: sud-canopy 10s ease-in-out infinite alternate;
}
.scn-richard-until-death .couple {
  position: absolute; bottom: 28%; left: 42%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a140a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sud-couple 5s ease-in-out infinite;
}
.scn-richard-until-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
}
.scn-richard-until-death .flowers {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 10px;
  background: #d87868;
  border-radius: 50%;
  box-shadow: 30px 0 0 0 #d87868, 60px 0 0 0 #d87868, 90px 0 0 0 #d87868, 120px 0 0 0 #d87868;
  animation: sud-flowers 4s ease-in-out infinite alternate;
}
@keyframes sud-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sud-sun { 0% { transform: scale(1); filter: brightness(1) } 50% { transform: scale(1.05); filter: brightness(1.1) } 100% { transform: scale(.95); filter: brightness(.9) } }
@keyframes sud-trunk { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } }
@keyframes sud-canopy { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.02) } 100% { transform: translateY(2px) scale(.98) } }
@keyframes sud-couple { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(1deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes sud-flowers { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(.9) } }

/* elizabeth-honest-tale */
.scn-elizabeth-honest-tale {
  background: linear-gradient(180deg, #e0d8c0 0%, #f8f0d0 30%, #e8d0a0 60%, #c8b080 100%),
              radial-gradient(ellipse at 50% 100%, #c8b080 0%, transparent 70%);
}
.scn-elizabeth-honest-tale .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #d8d0b8 0%, #f0e8d0 50%, #d8d0b8 100%);
  animation: eht-bg 15s ease-in-out infinite alternate;
}
.scn-elizabeth-honest-tale .sun {
  position: absolute; top: 8%; right: 15%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0c0 0%, #e8c060 60%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #e8c060, 0 0 160px 60px rgba(232,192,96,.3);
  animation: eht-sun 4s ease-in-out infinite alternate;
}
.scn-elizabeth-honest-tale .pedestal {
  position: absolute; bottom: 25%; left: 50%;
  width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080 0%, #907060 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.scn-elizabeth-honest-tale .figure {
  position: absolute; bottom: 40%; left: 44%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2218 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eht-figure 7s ease-in-out infinite;
}
.scn-elizabeth-honest-tale .shadow {
  position: absolute; bottom: 22%; left: 36%;
  width: 60px; height: 12px;
  background: rgba(0,0,0,.15);
  border-radius: 50%;
  animation: eht-shadow 7s ease-in-out infinite;
}
@keyframes eht-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes eht-sun { 0% { transform: scale(1) rotate(0); filter: brightness(1) } 50% { transform: scale(1.03) rotate(5deg); filter: brightness(1.1) } 100% { transform: scale(.97) rotate(-3deg); filter: brightness(.95) } }
@keyframes eht-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes eht-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(8px) } 100% { transform: scaleX(.9) translateX(16px) } }

/* elizabeth-harp-until-break */
.scn-elizabeth-harp-until-break {
  background: linear-gradient(180deg, #90b8d0 0%, #d0e0e8 30%, #f8f0d0 60%, #e0c8a0 100%),
              radial-gradient(ellipse at 50% 100%, #d0e0e8 0%, transparent 70%);
}
.scn-elizabeth-harp-until-break .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, transparent 100%);
  animation: ehb-sky 10s ease-in-out infinite alternate;
}
.scn-elizabeth-harp-until-break .sun {
  position: absolute; top: 10%; left: 60%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #fff8d0 0%, #f0c860 60%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #f0c860;
  animation: ehb-sun 5s ease-in-out infinite alternate;
}
.scn-elizabeth-harp-until-break .harp-body {
  position: absolute; bottom: 30%; left: 40%;
  width: 80px; height: 110px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ehb-body 8s ease-in-out infinite alternate;
}
.scn-elizabeth-harp-until-break .harp-strings {
  position: absolute; bottom: 35%; left: 42%;
  width: 30px; height: 90px;
  background: repeating-linear-gradient(90deg, #908060 0px, #908060 2px, transparent 2px, transparent 6px);
  background-size: 8px 100%;
  animation: ehb-strings .8s ease-in-out infinite;
}
.scn-elizabeth-harp-until-break .figure {
  position: absolute; bottom: 28%; left: 30%;
  width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2218 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ehb-figure 6s ease-in-out infinite;
}
.scn-elizabeth-harp-until-break .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a8a5a 0%, #4a5a2a 100%);
  border-radius: 40% 60% 0 0 / 10% 10% 0 0;
}
@keyframes ehb-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ehb-sun { 0% { transform: scale(1); filter: brightness(1) } 50% { transform: scale(1.08); filter: brightness(1.15) } 100% { transform: scale(.92); filter: brightness(.9) } }
@keyframes ehb-body { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes ehb-strings { 0% { background-position: 0 0 } 50% { background-position: 0 2px } 100% { background-position: 0 -2px } }
@keyframes ehb-figure { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-5px) rotate(-3deg) } 50% { transform: translateX(-10px) rotate(1deg) } 75% { transform: translateX(-15px) rotate(-3deg) } 100% { transform: translateX(-20px) rotate(0) } }

/* richard-by-world */
.scn-richard-by-world {
  background: linear-gradient(180deg, #b8c8d8 0%, #e0d8c0 30%, #c8b890 60%, #a09070 100%),
              radial-gradient(ellipse at 50% 100%, #c8b890 0%, transparent 60%);
}
.scn-richard-by-world .bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #c8d0d8 0%, #e8e0d0 50%, #c8d0d8 100%);
  animation: rbw-bg 20s ease-in-out infinite alternate;
}
.scn-richard-by-world .sun {
  position: absolute; top: 12%; left: 50%;
  width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff8d0 0%, #e8c860 60%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px #e8c860, 0 0 140px 50px rgba(232,200,96,.3);
  animation: rbw-sun 7s ease-in-out infinite alternate;
}
.scn-richard-by-world .figure {
  position: absolute; bottom: 25%; left: 45%;
  width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2218 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbw-figure 9s ease-in-out infinite;
}
.scn-richard-by-world .globe {
  position: absolute; bottom: 32%; left: 42%;
  width: 80px; height: 80px;
  background: radial-gradient(circle at 40% 35%, #80a0c0 0%, #506a80 50%, #2a3a4a 100%);
  border-radius: 50%;
  box-shadow: inset -20px -20px 40px rgba(0,0,0,.4);
  animation: rbw-globe 15s linear infinite;
}
.scn-richard-by-world .chain {
  position: absolute; bottom: 50%; left: 47%;
  width: 20px; height: 30px;
  background: repeating-linear-gradient(0deg, #908060 0px, #908060 3px, transparent 3px, transparent 8px);
  background-size: 100% 8px;
  animation: rbw-chain 4s ease-in-out infinite;
}
.scn-richard-by-world .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a7a5a 0%, #4a4a2a 100%);
  border-radius: 50% 50% 0 0 / 10% 10% 0 0;
}
.scn-richard-by-world .shadow {
  position: absolute; bottom: 18%; left: 38%;
  width: 80px; height: 12px;
  background: rgba(0,0,0,.1);
  border-radius: 50%;
  animation: rbw-shadow 9s ease-in-out infinite;
}
@keyframes rbw-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rbw-sun { 0% { transform: translateX(-50%) scale(1); filter: brightness(1) } 50% { transform: translateX(-50%) scale(1.05); filter: brightness(1.1) } 100% { transform: translateX(-50%) scale(.95); filter: brightness(.9) } }
@keyframes rbw-figure { 0% { transform: translateX(0) rotate(-2deg) translateY(0) } 25% { transform: translateX(3px) rotate(1deg) translateY(-2px) } 50% { transform: translateX(6px) rotate(-2deg) translateY(0) } 75% { transform: translateX(9px) rotate(1deg) translateY(1px) } 100% { transform: translateX(12px) rotate(0) translateY(0) } }
@keyframes rbw-globe { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes rbw-chain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.9) } }
@keyframes rbw-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(12px) } }

/* Scene: richmond-speech-begin - inspiring night camp */
.scn-richmond-speech-begin {
  background: linear-gradient(180deg, #0c0e2e 0%, #1a2340 40%, #2a3550 100%),
              radial-gradient(ellipse at 50% 100%, #2a3550 0%, transparent 80%);
}
.scn-richmond-speech-begin .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0a0e24 0%, #131a38 100%);
  animation: rsb-sky 12s ease-in-out infinite alternate;
}
.scn-richmond-speech-begin .moon {
  position: absolute; top: 8%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d6d9e0 0%, #b0b6c0 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(180,190,210,0.4);
  animation: rsb-moon 8s ease-in-out infinite alternate;
}
.scn-richmond-speech-begin .campfire {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 70%, #ffa030 0%, #e06010 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,160,48,0.6);
  animation: rsb-fire 2s ease-in-out infinite alternate;
}
.scn-richmond-speech-begin .tent {
  position: absolute; bottom: 28%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #2a3040 0%, #1a1e2e 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
}
.scn-richmond-speech-begin .tent-1 { left: 20%; }
.scn-richmond-speech-begin .tent-2 { right: 20%; }
.scn-richmond-speech-begin .figure-speaker {
  position: absolute; bottom: 24%; left: 50%; width: 24px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1e2e 0%, #0c0e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsb-speak 3s ease-in-out infinite;
}
.scn-richmond-speech-begin .torch {
  position: absolute; bottom: 30%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #ffd060 0%, #c06020 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #ffb040;
  animation: rsb-torch 1.5s ease-in-out infinite alternate;
}
.scn-richmond-speech-begin .torch-left { left: 38%; }
.scn-richmond-speech-begin .torch-right { right: 38%; }
.scn-richmond-speech-begin .flag {
  position: absolute; top: 20%; right: 25%; width: 30px; height: 20px;
  background: #8b4513; /* saddle brown - desaturated red */
  border-radius: 0 8px 8px 0; transform-origin: left center;
  animation: rsb-flag 6s ease-in-out infinite;
}
@keyframes rsb-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rsb-moon {
  0% { transform: translate(0, 0); box-shadow: 0 0 30px 8px rgba(180,190,210,0.4); }
  50% { transform: translate(2px, -2px); box-shadow: 0 0 40px 12px rgba(180,190,210,0.6); }
  100% { transform: translate(0, 0); box-shadow: 0 0 25px 6px rgba(180,190,210,0.3); }
}
@keyframes rsb-fire {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.08); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; }
}
@keyframes rsb-speak {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes rsb-torch {
  0% { transform: rotate(-5deg); box-shadow: 0 0 15px 4px #ffb040; }
  100% { transform: rotate(5deg); box-shadow: 0 0 25px 8px #ffb040; }
}
@keyframes rsb-flag {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  50% { transform: rotate(-4deg); }
  75% { transform: rotate(6deg); }
  100% { transform: rotate(0deg); }
}

/* Scene: richmond-boar - inspiring but feral boar emblem */
.scn-richmond-boar {
  background: linear-gradient(180deg, #0e1024 0%, #1a2038 50%, #2c3044 100%),
              radial-gradient(ellipse at 30% 60%, #2c3044 0%, transparent 70%);
}
.scn-richmond-boar .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0c1a 0%, #141a2e 100%);
  animation: rbb-sky 15s ease-in-out infinite alternate;
}
.scn-richmond-boar .stars {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(1px 1px at 20% 30%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 50% 20%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 40%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 10% 60%, #ffffff 0%, transparent 100%);
  animation: rbb-twinkle 4s ease-in-out infinite alternate;
}
.scn-richmond-boar .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-richmond-boar .boar {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%;
  clip-path: polygon(0% 50%, 20% 0%, 40% 20%, 60% 0%, 80% 40%, 100% 60%, 80% 100%, 60% 80%, 40% 100%, 20% 80%);
  animation: rbb-boar 6s ease-in-out infinite;
}
.scn-richmond-boar .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(30,40,60,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: rbb-mist 20s linear infinite alternate;
}
.scn-richmond-boar .tree {
  position: absolute; bottom: 35%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 10px 10px 0 0;
  transform-origin: bottom center;
}
.scn-richmond-boar .tree-left { left: 20%; animation: rbb-tree 8s ease-in-out infinite; }
.scn-richmond-boar .tree-right { right: 20%; animation: rbb-tree 8s ease-in-out infinite reverse; }
@keyframes rbb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes rbb-twinkle {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes rbb-boar {
  0% { transform: translateX(-50%) scale(1) rotate(-3deg); }
  50% { transform: translateX(-50%) scale(1.05) rotate(3deg); }
  100% { transform: translateX(-50%) scale(1) rotate(-2deg); }
}
@keyframes rbb-mist {
  0% { transform: translateX(0); opacity: 0.4; }
  50% { transform: translateX(-30px); opacity: 0.6; }
  100% { transform: translateX(0); opacity: 0.3; }
}
@keyframes rbb-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* Scene: oxford-conscience - resolute night with swords */
.scn-oxford-conscience {
  background: linear-gradient(180deg, #101230 0%, #1a2040 50%, #283050 100%),
              radial-gradient(ellipse at 50% 80%, #283050 0%, transparent 70%);
}
.scn-oxford-conscience .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0c1c 0%, #141a34 100%);
  animation: oxc-sky 10s ease-in-out infinite alternate;
}
.scn-oxford-conscience .moon {
  position: absolute; top: 5%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #e0e4ed 0%, #b0b6c8 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(180,190,210,0.5);
  animation: oxc-moon 12s ease-in-out infinite alternate;
}
.scn-oxford-conscience .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #202838 0%, #101828 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-oxford-conscience .swords {
  position: absolute; bottom: 25%; left: 50%; width: 200px; height: 120px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(
    45deg,
    transparent 0px,
    transparent 15px,
    #8a9ab5 15px,
    #7a8aa0 16px,
    transparent 16px,
    transparent 30px
  );
  mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 60%, transparent 100%);
  animation: oxc-swords 4s ease-in-out infinite;
}
.scn-oxford-conscience .warrior-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: #0e1220;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: oxc-warrior 3s ease-in-out infinite;
}
.scn-oxford-conscience .glint {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 10px;
  background: #ffffff; border-radius: 50%;
  box-shadow: 0 0 15px 6px rgba(255,255,255,0.6);
  animation: oxc-glint 2s ease-in-out infinite alternate;
}
.scn-oxford-conscience .cloud {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,210,230,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: oxc-cloud 30s linear infinite;
}
@keyframes oxc-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes oxc-moon {
  0% { transform: translate(0, 0); box-shadow: 0 0 40px 12px rgba(180,190,210,0.5); }
  50% { transform: translate(3px, -2px); box-shadow: 0 0 50px 16px rgba(180,190,210,0.7); }
  100% { transform: translate(0, 0); box-shadow: 0 0 35px 10px rgba(180,190,210,0.4); }
}
@keyframes oxc-swords {
  0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.9; }
  50% { transform: translateX(-50%) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-1deg); opacity: 0.85; }
}
@keyframes oxc-warrior {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes oxc-glint {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes oxc-cloud {
  0% { transform: translateX(-40px); opacity: 0.4; }
  100% { transform: translateX(120vw); opacity: 0.6; }
}

/* Scene: exeunt-richmond - hopeful night camp at Bosworth */
.scn-exeunt-richmond {
  background: linear-gradient(180deg, #0c0e24 0%, #141c38 40%, #1e2844 100%),
              radial-gradient(ellipse at 50% 100%, #1e2844 0%, transparent 80%);
}
.scn-exeunt-richmond .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #080a1a 0%, #10162e 100%);
  animation: erb-sky 14s ease-in-out infinite alternate;
}
.scn-exeunt-richmond .stars {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(1px 1px at 15% 25%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 15%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 65% 35%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 85% 20%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 5% 50%, #ffffff 0%, transparent 100%);
  animation: erb-twinkle 3s ease-in-out infinite alternate;
}
.scn-exeunt-richmond .tent {
  position: absolute; bottom: 25%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #1e2636 0%, #121828 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
  animation: erb-tent 6s ease-in-out infinite;
}
.scn-exeunt-richmond .tent-a { left: 15%; }
.scn-exeunt-richmond .tent-b { right: 15%; }
.scn-exeunt-richmond .campfire {
  position: absolute; bottom: 22%; width: 40px; height: 35px;
  background: radial-gradient(circle at 50% 60%, #ffa030 0%, #e07020 30%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,160,48,0.5);
}
.scn-exeunt-richmond .campfire-1 { left: 30%; animation: erb-fire1 1.8s ease-in-out infinite alternate; }
.scn-exeunt-richmond .campfire-2 { left: 65%; animation: erb-fire2 2.2s ease-in-out infinite alternate; }
.scn-exeunt-richmond .figure {
  position: absolute; bottom: 18%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #121828 0%, #080c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: erb-figure 4s ease-in-out infinite;
}
.scn-exeunt-richmond .soldier-1 { left: 35%; }
.scn-exeunt-richmond .soldier-2 { left: 55%; }
.scn-exeunt-richmond .flag {
  position: absolute; top: 22%; width: 24px; height: 18px;
  background: #5e1a1d; /* dark burgundy */
  border-radius: 0 6px 6px 0; transform-origin: left center;
  animation: erb-flag 7s ease-in-out infinite;
}
.scn-exeunt-richmond .flag-1 { left: 20%; animation-delay: 0s; }
.scn-exeunt-richmond .flag-2 { right: 20%; animation-delay: -2s; }
@keyframes erb-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes erb-twinkle {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.4; }
}
@keyframes erb-tent {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes erb-fire1 {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(0); opacity: 0.8; }
}
@keyframes erb-fire2 {
  0% { transform: scale(1) translateY(0); opacity: 0.85; }
  50% { transform: scale(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scale(0.9) translateY(0); opacity: 0.75; }
}
@keyframes erb-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes erb-flag {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(6deg); }
  50% { transform: rotate(-4deg); }
  75% { transform: rotate(8deg); }
  100% { transform: rotate(0deg); }
}

/* anne-impreecation-children */
.scn-anne-impreecation-children {
  background: linear-gradient(135deg, #e8d5b7 0%, #b89a6a 40%, #6a4a2a 100%), radial-gradient(ellipse at 70% 30%, #fff4e0 0%, transparent 60%);
}
.scn-anne-impreecation-children .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b89a6a 80%);
  animation: aic-sky 10s ease-in-out infinite alternate;
}
.scn-anne-impreecation-children .window {
  position: absolute; top: 15%; left: 30%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #fff4e0 0%, #e8d5b7 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px #fff4e0, 0 0 60px 20px rgba(255,244,224,0.3);
  animation: aic-window 6s ease-in-out infinite;
}
.scn-anne-impreecation-children .mother {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aic-mother 4s ease-in-out infinite;
}
.scn-anne-impreecation-children .child {
  position: absolute; bottom: 15%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5e3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleY(1.2) rotate(10deg);
  animation: aic-child 5s ease-in-out infinite;
}
.scn-anne-impreecation-children .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: aic-shadow 8s ease-in-out infinite alternate;
}
.scn-anne-impreecation-children .glow {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff4e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: aic-glow 3s ease-in-out infinite alternate;
}
@keyframes aic-sky { 0% { opacity:0.8; transform:translateY(0); } 50% { opacity:1; transform:translateY(-5px); } 100% { opacity:0.9; transform:translateY(3px); } }
@keyframes aic-window { 0% { transform:scaleX(1); box-shadow:0 0 30px #fff4e0; } 50% { transform:scaleX(1.05); box-shadow:0 0 80px 30px rgba(255,244,224,0.5); } 100% { transform:scaleX(0.98); box-shadow:0 0 40px #fff4e0; } }
@keyframes aic-mother { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(-2deg); } 50% { transform:translateX(0) rotate(1deg); } 75% { transform:translateX(-5px) rotate(0deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes aic-child { 0% { transform:scaleY(1.2) rotate(10deg) translateY(0); } 50% { transform:scaleY(1.3) rotate(15deg) translateY(-3px); } 100% { transform:scaleY(1.2) rotate(5deg) translateY(0); } }
@keyframes aic-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes aic-glow { 0% { opacity:0.5; transform:scale(1); } 100% { opacity:1; transform:scale(1.5); } }

/* richard-confronts-funeral */
.scn-richard-confronts-funeral {
  background: linear-gradient(180deg, #c49a6c 0%, #8a6a4a 30%, #4a3020 100%), radial-gradient(ellipse at 50% 0%, #e8d5b7 0%, transparent 50%);
}
.scn-richard-confronts-funeral .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b7 0%, #c49a6c 100%);
  animation: rcf-sky 12s ease-in-out infinite alternate;
}
.scn-richard-confronts-funeral .coffin {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: rcf-coffin 8s ease-in-out infinite alternate;
}
.scn-richard-confronts-funeral .figure-richard {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rcf-richard 4s ease-in-out infinite;
}
.scn-richard-confronts-funeral .figure-other {
  position: absolute; bottom: 25%; left: 60%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rcf-other 4.5s ease-in-out infinite;
}
.scn-richard-confronts-funeral .dust {
  position: absolute; bottom: 18%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d4b898 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rcf-dust 6s linear infinite;
}
.scn-richard-confronts-funeral .sunburst {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: rcf-sunburst 10s ease-in-out infinite alternate;
}
@keyframes rcf-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rcf-coffin { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px); } 100% { transform:translateX(-50%) translateY(2px); } }
@keyframes rcf-richard { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(-3deg); } 50% { transform:translateX(0) rotate(2deg); } 75% { transform:translateX(-5px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes rcf-other { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-5px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes rcf-dust { 0% { transform:translate(0,0) scale(0.5); opacity:0.6; } 50% { transform:translate(-20px, -10px) scale(1.2); opacity:1; } 100% { transform:translate(20px, -20px) scale(0.3); opacity:0; } }
@keyframes rcf-sunburst { 0% { transform:scale(0.8); opacity:0.3; } 100% { transform:scale(1.2); opacity:0.7; } }

/* anne-accuses-fiend */
.scn-anne-accuses-fiend {
  background: linear-gradient(180deg, #c49a6c 0%, #8a6a4a 30%, #3a2a1a 100%), radial-gradient(ellipse at 30% 50%, #fff4e0 0%, transparent 60%);
}
.scn-anne-accuses-fiend .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b89a6a 100%);
  animation: aaf-sky 15s ease-in-out infinite alternate;
}
.scn-anne-accuses-fiend .anne {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: aaf-anne 5s ease-in-out infinite;
}
.scn-anne-accuses-fiend .richard {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aaf-richard 6s ease-in-out infinite;
}
.scn-anne-accuses-fiend .arm {
  position: absolute; bottom: 45%; left: 30%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: aaf-arm 3s ease-in-out infinite alternate;
}
.scn-anne-accuses-fiend .halo {
  position: absolute; top: 15%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: aaf-halo 8s ease-in-out infinite alternate;
}
.scn-anne-accuses-fiend .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: aaf-shadows 10s ease-in-out infinite alternate;
}
@keyframes aaf-sky { 0% { opacity:0.6; transform:translateY(0); } 50% { opacity:1; transform:translateY(-4px); } 100% { opacity:0.8; transform:translateY(2px); } }
@keyframes aaf-anne { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(8px) rotate(-2deg); } 50% { transform:translateX(0) rotate(3deg); } 75% { transform:translateX(-8px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes aaf-richard { 0% { transform:translateX(0) rotate(0deg) scaleY(1); } 50% { transform:translateX(-5px) rotate(2deg) scaleY(1.05); } 100% { transform:translateX(5px) rotate(-2deg) scaleY(0.98); } }
@keyframes aaf-arm { 0% { transform:rotate(-20deg) scaleX(1); } 100% { transform:rotate(-40deg) scaleX(1.2); } }
@keyframes aaf-halo { 0% { opacity:0.2; transform:scale(0.8); } 100% { opacity:0.6; transform:scale(1.3); } }
@keyframes aaf-shadows { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.2; } }

/* anne-shows-henrys-wounds */
.scn-anne-shows-henrys-wounds {
  background: linear-gradient(180deg, #b89a6a 0%, #8a6a4a 40%, #4a3020 100%), radial-gradient(ellipse at 60% 40%, #e8d5b7 0%, transparent 50%);
}
.scn-anne-shows-henrys-wounds .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b89a6a 100%);
  animation: ashw-sky 14s ease-in-out infinite alternate;
}
.scn-anne-shows-henrys-wounds .henry {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: ashw-henry 8s ease-in-out infinite;
}
.scn-anne-shows-henrys-wounds .wound-1 {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, #b87878 0%, #5e1a1d 60%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: ashw-wound1 4s ease-in-out infinite alternate;
}
.scn-anne-shows-henrys-wounds .wound-2 {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 6px;
  background: radial-gradient(ellipse, #b87878 0%, #5e1a1d 60%, transparent 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: ashw-wound2 5s ease-in-out infinite alternate;
}
.scn-anne-shows-henrys-wounds .hand {
  position: absolute; bottom: 45%; left: 50%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: ashw-hand 3s ease-in-out infinite alternate;
}
.scn-anne-shows-henrys-wounds .blood {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ashw-blood 6s ease-in-out infinite alternate;
}
.scn-anne-shows-henrys-wounds .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: ashw-shadow 9s ease-in-out infinite alternate;
}
@keyframes ashw-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes ashw-henry { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-5px); } 100% { transform:rotate(12deg) translateY(0); } }
@keyframes ashw-wound1 { 0% { transform:rotate(-20deg) scale(1); opacity:0.6; } 100% { transform:rotate(-25deg) scale(1.3); opacity:1; } }
@keyframes ashw-wound2 { 0% { transform:rotate(15deg) scale(1); opacity:0.5; } 100% { transform:rotate(20deg) scale(1.2); opacity:0.9; } }
@keyframes ashw-hand { 0% { transform:rotate(-30deg) translateY(0); } 100% { transform:rotate(-45deg) translateY(-10px); } }
@keyframes ashw-blood { 0% { transform:scale(1); opacity:0.2; } 100% { transform:scale(1.5); opacity:0.6; } }
@keyframes ashw-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-tower-council {
  background: linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 30% 50%, #8a6a3a 0%, transparent 60%);
}
.scn-tower-council .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%); }
.scn-tower-council .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-tower-council .table { position:absolute; bottom:20%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-tower-council .fig-left { position:absolute; bottom:22%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: twc-breath-1 4s ease-in-out infinite; }
.scn-tower-council .fig-right { position:absolute; bottom:22%; right:25%; width:20px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: twc-breath-2 3s ease-in-out infinite; animation-delay: 0.5s; }
.scn-tower-council .candle { position:absolute; bottom:24%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #c08040 0%, #806030 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #f0c060, 0 0 24px 8px rgba(240,192,96,0.4); animation: twc-flicker 0.8s ease-in-out infinite alternate; }
.scn-tower-council .window { position:absolute; top:8%; left:15%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 80%, #4a6a8a 0%, #2a3a4a 70%); border-radius: 10px; border: 3px solid #2a1a0a; box-shadow: inset 0 0 20px #1a2a3a; animation: twc-ambient 12s ease-in-out infinite; }
@keyframes twc-breath-1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes twc-breath-2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes twc-flicker { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px #f0c060, 0 0 16px 4px rgba(240,192,96,0.3); } 50% { opacity: 1; box-shadow: 0 0 16px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 10px 3px #f0c060, 0 0 20px 6px rgba(240,192,96,0.35); } }
@keyframes twc-ambient { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }

.scn-hastings-condemned {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 70% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-hastings-condemned .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); opacity: 0.8; }
.scn-hastings-condemned .window-glow { position:absolute; top:15%; right:10%; width:30%; height:50%; background: radial-gradient(ellipse at center, #ffddaa 0%, #ffcc88 30%, transparent 70%); border-radius: 10px; box-shadow: 0 0 60px 30px rgba(255,204,136,0.3); animation: hc-pulse 6s ease-in-out infinite alternate; }
.scn-hastings-condemned .beam { position:absolute; top:20%; right:15%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,204,136,0.3) 0%, transparent 100%); transform: skewX(-10deg); animation: hc-beam 8s ease-in-out infinite; }
.scn-hastings-condemned .figure { position:absolute; bottom:20%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: hc-tremble 2s ease-in-out infinite; }
.scn-hastings-condemned .stool { position:absolute; bottom:16%; left:28%; width:30px; height:8px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-hastings-condemned .shadow { position:absolute; bottom:0; left:25%; width:60px; height:20px; background: radial-gradient(ellipse, #000000 20%, transparent 80%); opacity: 0.4; animation: hc-shadow 4s ease-in-out infinite; }
@keyframes hc-pulse { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } }
@keyframes hc-beam { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }
@keyframes hc-tremble { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } }
@keyframes hc-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }

.scn-gloucester-instructs-buckingham {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 80%);
}
.scn-gloucester-instructs-buckingham .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: gib-sky 20s ease-in-out infinite alternate; }
.scn-gloucester-instructs-buckingham .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-gloucester-instructs-buckingham .building { position:absolute; bottom:20%; left:15%; width:25%; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.3); }
.scn-gloucester-instructs-buckingham .tower { position:absolute; bottom:25%; right:20%; width:12%; height:60%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 10px rgba(0,0,0,0.2); }
.scn-gloucester-instructs-buckingham .fig-gloucester { position:absolute; bottom:18%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: gib-walk 5s ease-in-out infinite; }
.scn-gloucester-instructs-buckingham .fig-buckingham { position:absolute; bottom:18%; left:45%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: gib-walk 5s ease-in-out infinite reverse; animation-delay: 0.2s; }
.scn-gloucester-instructs-buckingham .mist { position:absolute; top:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(200,200,220,0.2) 0%, transparent 100%); filter: blur(10px); animation: gib-mist 30s linear infinite; }
@keyframes gib-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes gib-walk { 0%,100% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-1px); } 50% { transform: rotate(5deg) translateY(-2px); } 75% { transform: rotate(0deg) translateY(-1px); } }
@keyframes gib-mist { 0% { transform: translateX(-10%); opacity: 0.4; } 50% { opacity: 0.7; } 100% { transform: translateX(10%); opacity: 0.4; } }

.scn-scrivener-indictment {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-scrivener-indictment .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 50%, #3a3a4a 100%); }
.scn-scrivener-indictment .desk { position:absolute; bottom:18%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: perspective(400px) rotateX(5deg); }
.scn-scrivener-indictment .paper { position:absolute; bottom:22%; left:35%; width:20%; height:4%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b0a0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sci-paper 6s ease-in-out infinite; }
.scn-scrivener-indictment .scrivener { position:absolute; bottom:16%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: sci-write 2s ease-in-out infinite; }
.scn-scrivener-indictment .candle { position:absolute; bottom:22%; left:55%; width:4px; height:14px; background: linear-gradient(180deg, #c08040 0%, #806030 100%); border-radius: 2px; box-shadow: 0 0 10px 3px #f0c060, 0 0 20px 6px rgba(240,192,96,0.3); animation: sci-candle 1s ease-in-out infinite alternate; }
.scn-scrivener-indictment .window { position:absolute; top:10%; left:60%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 80%, #6a7a8a 0%, #4a5a6a 70%); border-radius: 8px; border: 2px solid #2a3a4a; box-shadow: inset 0 0 10px #1a2a3a; animation: sci-window 15s ease-in-out infinite; }
@keyframes sci-paper { 0%,100% { transform: none; } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes sci-write { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-8deg) translateY(-1px); } }
@keyframes sci-candle { 0% { opacity: 0.8; box-shadow: 0 0 6px 2px #f0c060; } 50% { opacity: 1; box-shadow: 0 0 14px 6px #ffd080; } 100% { opacity: 0.9; box-shadow: 0 0 8px 3px #f0c060; } }
@keyframes sci-window { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* Scene: messenger3-buckingham */
.scn-messenger3-buckingham {
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a07a 30%, #7a5a3a 100%),
              radial-gradient(ellipse at 60% 30%, #e0d0a0 0%, transparent 60%);
}
.scn-messenger3-buckingham .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4b48a 0%, #9a8a6a 100%); }
.scn-messenger3-buckingham .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); }
.scn-messenger3-buckingham .window { position:absolute; top:12%; left:10%; width:20%; height:30%; background: linear-gradient(135deg, #b8d0e0 0%, #7a9aaa 100%); border: 6px solid #5a3a1a; border-radius:4px; box-shadow: inset 0 0 20px #8aaece; }
.scn-messenger3-buckingham .throne { position:absolute; bottom:40%; left:45%; width:80px; height:100px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%); border-radius:20% 20% 10% 10%; transform:translateX(-50%); box-shadow: 0 6px 12px #2a1a0a; }
.scn-messenger3-buckingham .king { position:absolute; bottom:42%; left:45%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mb-king 6s ease-in-out infinite; }
.scn-messenger3-buckingham .messenger { position:absolute; bottom:28%; left:25%; width:24px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mb-mess 4s ease-in-out infinite; }
.scn-messenger3-buckingham .torch.left { position:absolute; bottom:36%; left:18%; width:8px; height:12px; background: linear-gradient(180deg, #ffa040 0%, #e07020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ff9020, 0 0 40px 12px rgba(255,144,32,.3); animation: mb-torch 1.5s ease-in-out infinite alternate; }
.scn-messenger3-buckingham .torch.right { position:absolute; bottom:36%; right:18%; width:8px; height:12px; background: linear-gradient(180deg, #ffa040 0%, #e07020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ff9020, 0 0 40px 12px rgba(255,144,32,.3); animation: mb-torch 1.5s ease-in-out infinite alternate-reverse; }
.scn-messenger3-buckingham .shadow { position:absolute; bottom:28%; left:32%; width:60px; height:10px; background: radial-gradient(ellipse, #1a0a00 0%, transparent 70%); animation: mb-shadow 4s ease-in-out infinite; }
@keyframes mb-king { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-2deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes mb-mess { 0% { transform:translateX(-50%) translateY(0); } 25% { transform:translateX(-40%) translateY(-2px); } 50% { transform:translateX(-50%) translateY(0); } 75% { transform:translateX(-60%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes mb-torch { 0% { opacity:.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.8; transform:scale(1); } }
@keyframes mb-shadow { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.5; transform:scale(1.2); } 100% { opacity:.3; transform:scale(0.9); } }

/* Scene: richard-apologizes */
.scn-richard-apologizes {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b090 40%, #9a7850 100%),
              radial-gradient(ellipse at 50% 60%, #f0e0b0 0%, transparent 70%);
}
.scn-richard-apologizes .bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 100%); }
.scn-richard-apologizes .table { position:absolute; bottom:32%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:4px; box-shadow: 0 8px 16px #2a1a0a; }
.scn-richard-apologizes .king { position:absolute; bottom:38%; left:35%; width:28px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ra-king 8s ease-in-out infinite; }
.scn-richard-apologizes .messenger { position:absolute; bottom:30%; left:55%; width:26px; height:42px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ra-mess 5s ease-in-out infinite; }
.scn-richard-apologizes .purse { position:absolute; bottom:35%; left:50%; width:14px; height:10px; transform:translate(-50%,0); background: linear-gradient(180deg, #b87858 0%, #8a5040 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 2px 4px #1a0a00; animation: ra-purse 5s ease-in-out infinite; }
.scn-richard-apologizes .candle { position:absolute; bottom:34%; left:45%; width:6px; height:14px; background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%); border-radius:20%; transform:translateX(-50%); animation: ra-candle 7s ease-in-out infinite; }
.scn-richard-apologizes .glow { position:absolute; bottom:32%; left:44%; width:30px; height:30px; background: radial-gradient(circle, #ffe0a0 0%, transparent 100%); border-radius:50%; animation: ra-glow 4s ease-in-out infinite alternate; }
.scn-richard-apologizes .coin1 { position:absolute; bottom:34%; left:52%; width:8px; height:8px; background: radial-gradient(circle, #e0c080 0%, #b09040 100%); border-radius:50%; box-shadow: 0 2px 4px #1a0a00; animation: ra-coin 10s linear infinite; }
.scn-richard-apologizes .coin2 { position:absolute; bottom:36%; left:48%; width:6px; height:6px; background: radial-gradient(circle, #d0b060 0%, #a08830 100%); border-radius:50%; box-shadow: 0 2px 4px #1a0a00; animation: ra-coin 12s linear infinite reverse; }
@keyframes ra-king { 0% { transform:translateX(-50%) rotate(2deg); } 50% { transform:translateX(-50%) rotate(-2deg) scale(1.03); } 100% { transform:translateX(-50%) rotate(2deg); } }
@keyframes ra-mess { 0% { transform:translateX(-50%) translateY(0); } 25% { transform:translateX(-45%) translateY(-3px) rotate(2deg); } 50% { transform:translateX(-50%) translateY(0); } 75% { transform:translateX(-55%) translateY(-2px) rotate(-2deg); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes ra-purse { 0% { transform:translate(-50%,0) scale(1); } 50% { transform:translate(-50%,-4px) scale(1.1); } 100% { transform:translate(-50%,0) scale(1); } }
@keyframes ra-candle { 0% { transform:translateX(-50%) scaleY(1); opacity:.8; } 50% { transform:translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform:translateX(-50%) scaleY(0.95); opacity:.9; } }
@keyframes ra-glow { 0% { opacity:.5; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:.7; transform:scale(1); } }
@keyframes ra-coin { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-5px) rotate(180deg); } 100% { transform:translateY(0) rotate(360deg); } }

/* Scene: messenger-reports-news */
.scn-messenger-reports-news {
  background: linear-gradient(180deg, #c8b898 0%, #a88860 30%, #6a5030 100%),
              radial-gradient(ellipse at 70% 20%, #e0d0b0 0%, transparent 50%);
}
.scn-messenger-reports-news .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8a080 0%, #8a6848 100%); }
.scn-messenger-reports-news .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%); }
.scn-messenger-reports-news .king-stand { position:absolute; bottom:48%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a220a 100%); border-radius:4px; transform:translateX(-50%); box-shadow: 0 4px 8px #1a0a00; }
.scn-messenger-reports-news .king { position:absolute; bottom:50%; left:35%; width:34px; height:56px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a08 0%, #0a0602 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rn-king 4s ease-in-out infinite; }
.scn-messenger-reports-news .messenger { position:absolute; bottom:35%; left:55%; width:28px; height:46px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rn-mess 3s ease-in-out infinite; }
.scn-messenger-reports-news .scroll { position:absolute; bottom:32%; left:60%; width:20px; height:6px; transform:translateX(-50%); background: linear-gradient(180deg, #e0d0b0 0%, #b8a080 100%); border-radius:20%; box-shadow: 0 2px 4px #1a0a00; animation: rn-scroll 4s ease-in-out infinite; }
.scn-messenger-reports-news .torch { position:absolute; bottom:40%; left:15%; width:10px; height:16px; background: linear-gradient(180deg, #ffa040 0%, #e07020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 24px 8px #ff9020, 0 0 48px 16px rgba(255,144,32,.5); animation: rn-torch 2s ease-in-out infinite alternate; }
.scn-messenger-reports-news .soldier1 { position:absolute; bottom:38%; left:20%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rn-soldier 6s ease-in-out infinite; }
.scn-messenger-reports-news .soldier2 { position:absolute; bottom:38%; right:20%; width:30px; height:50px; transform:translateX(50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rn-soldier 6s ease-in-out infinite reverse; }
@keyframes rn-king { 0% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes rn-mess { 0% { transform:translateX(-50%) translateY(0); } 20% { transform:translateX(-47%) translateY(-4px) rotate(3deg); } 40% { transform:translateX(-53%) translateY(-2px) rotate(-2deg); } 60% { transform:translateX(-50%) translateY(-5px) rotate(0deg); } 80% { transform:translateX(-48%) translateY(-3px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes rn-scroll { 0% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.2) translateY(-4px); } 100% { transform:translateX(-50%) scaleX(0.9); } }
@keyframes rn-torch { 0% { opacity:.6; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.8; transform:scale(0.95); } }
@keyframes rn-soldier { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(1deg) translateY(-1px); } 50% { transform:translateX(-50%) rotate(-1deg) translateY(0); } 75% { transform:translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(0deg); } }

/* Scene: messenger-continues */
.scn-messenger-continues {
  background: linear-gradient(180deg, #d0c0a0 0%, #a88868 30%, #705030 100%),
              radial-gradient(ellipse at 40% 50%, #e0d0b0 0%, transparent 60%);
}
.scn-messenger-continues .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8a080 0%, #8a6848 100%); }
.scn-messenger-continues .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%); }
.scn-messenger-continues .catesby { position:absolute; bottom:35%; left:20%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-catesby 5s ease-in-out infinite; }
.scn-messenger-continues .king { position:absolute; bottom:42%; left:40%; width:32px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a08 0%, #0a0602 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-king 6s ease-in-out infinite; }
.scn-messenger-continues .messenger1 { position:absolute; bottom:30%; left:55%; width:26px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-mess1 4s ease-in-out infinite; }
.scn-messenger-continues .messenger2 { position:absolute; bottom:32%; left:70%; width:24px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-mess2 4.5s ease-in-out infinite; }
.scn-messenger-continues .lantern { position:absolute; bottom:34%; left:30%; width:10px; height:14px; background: linear-gradient(180deg, #ffd080 0%, #e8a060 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ffc040, 0 0 40px 12px rgba(255,192,64,.4); animation: mc-lantern 3s ease-in-out infinite alternate; }
.scn-messenger-continues .banner { position:absolute; top:8%; right:10%; width:60px; height:30px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius:4px; transform-origin: top right; animation: mc-banner 8s ease-in-out infinite; }
.scn-messenger-continues .desk { position:absolute; bottom:30%; left:45%; width:80px; height:8px; background: linear-gradient(180deg, #6a4a2a 0%, #3a220a 100%); border-radius:4px; box-shadow: 0 4px 8px #1a0a00; }
@keyframes mc-catesby { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 33% { transform:translateX(-50%) rotate(2deg) translateY(-2px); } 66% { transform:translateX(-50%) rotate(-2deg) translateY(-1px); } 100% { transform:translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes mc-king { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.02) rotate(2deg); } 100% { transform:translateX(-50%) scale(0.98); } }
@keyframes mc-mess1 { 0% { transform:translateX(-50%) translateY(0); } 25% { transform:translateX(-48%) translateY(-4px) rotate(3deg); } 50% { transform:translateX(-52%) translateY(-2px) rotate(-2deg); } 75% { transform:translateX(-50%) translateY(-5px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes mc-mess2 { 0% { transform:translateX(-50%) translateY(0); } 30% { transform:translateX(-47%) translateY(-3px) rotate(2deg); } 60% { transform:translateX(-53%) translateY(-1px) rotate(-3deg); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes mc-lantern { 0% { opacity:.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.8; transform:scale(1); } }
@keyframes mc-banner { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg) scaleY(1.05); } 100% { transform:rotate(-2deg); } }

.scn-duchess-consoles {
  background: linear-gradient(180deg, #4a3728 0%, #6b4c3a 30%, #8b6040 60%, #a07050 100%), radial-gradient(ellipse at 30% 80%, #c08850 0%, transparent 60%);
}
.scn-duchess-consoles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 40%, #7a5a3a 100%);
  animation: du-floor 20s ease-in-out infinite alternate;
}
.scn-duchess-consoles .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #9a7a5a 40%, #b09070 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.3);
  animation: du-wall 12s ease-in-out infinite alternate;
}
.scn-duchess-consoles .fireplace {
  position: absolute; bottom: 25%; left: 8%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-duchess-consoles .fire-glow {
  position: absolute; bottom: 30%; left: 9%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffa050 0%, #ff8030 30%, transparent 70%);
  border-radius: 50%;
  animation: du-fireglow 3s ease-in-out infinite alternate;
}
.scn-duchess-consoles .figure-kneeling {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: du-kneel 4s ease-in-out infinite;
}
.scn-duchess-consoles .figure-seated {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: du-seat 5s ease-in-out infinite alternate;
}
.scn-duchess-consoles .lantern {
  position: absolute; bottom: 45%; left: 70%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: du-lantern 4s ease-in-out infinite;
}
.scn-duchess-consoles .shadow {
  position: absolute; bottom: 28%; left: 30%; right: 20%; height: 15%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 40%, transparent 100%);
  filter: blur(8px);
  animation: du-shadow 6s ease-in-out infinite alternate;
}
@keyframes du-floor { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes du-wall { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.95); } }
@keyframes du-fireglow { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes du-kneel { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes du-seat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes du-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.5); } 50% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.8); } 100% { box-shadow: 0 0 18px 5px rgba(255,208,128,0.6); } }
@keyframes du-shadow { 0% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(10px); opacity: 0.5; } 100% { transform: translateX(0); opacity: 0.4; } }

.scn-gloucester-enters {
  background: linear-gradient(180deg, #d4c4a0 0%, #e0d0b0 30%, #f0e0c0 60%, #fff8e0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-gloucester-enters .bg-columns {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: repeating-linear-gradient(90deg, #c0b090 0px, #d0c0a0 30px, #e0d0b0 60px, #c0b090 90px);
  background-size: 90px 100%;
  animation: gl-columns 30s linear infinite;
}
.scn-gloucester-enters .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(45deg, #b8a888 0px, #c8b898 20px, #d8c8a8 40px, #b8a888 60px);
  background-size: 60px 60px;
  animation: gl-floor 20s ease-in-out infinite alternate;
}
.scn-gloucester-enters .throne {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #806040 50%, #604020 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: gl-throne 10s ease-in-out infinite;
}
.scn-gloucester-enters .figure-gloucester {
  position: absolute; bottom: 22%; left: 38%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-fig1 4s ease-in-out infinite alternate;
}
.scn-gloucester-enters .figure-buckingham {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-fig2 5s ease-in-out infinite alternate;
}
.scn-gloucester-enters .figure-hastings {
  position: absolute; bottom: 22%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-fig3 4.5s ease-in-out infinite alternate-reverse;
}
.scn-gloucester-enters .torch-light {
  position: absolute; bottom: 35%; left: 20%; width: 10px; height: 15px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.5);
  animation: gl-torch 3s ease-in-out infinite alternate;
}
.scn-gloucester-enters .shadow-figures {
  position: absolute; bottom: 22%; left: 35%; right: 25%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 50%);
  filter: blur(4px);
  animation: gl-shadow 8s ease-in-out infinite alternate;
}
@keyframes gl-columns { 0% { background-position: 0 0; } 100% { background-position: 90px 0; } }
@keyframes gl-floor { 0% { background-position: 0 0; } 50% { background-position: 30px 30px; } 100% { background-position: 0 0; } }
@keyframes gl-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes gl-fig1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gl-fig2 { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes gl-fig3 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gl-torch { 0% { transform: scale(0.9); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.95; } }
@keyframes gl-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }

.scn-council-for-prince {
  background: linear-gradient(180deg, #c8b898 0%, #d8c8a8 20%, #e8d8b8 40%, #f8e8c8 60%, #e8d8b8 80%), radial-gradient(ellipse at 50% 80%, #f8e8c8 0%, transparent 60%);
}
.scn-council-for-prince .council-bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #a09070 0%, #c0b090 50%, #d0c0a0 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: co-bg 15s ease-in-out infinite alternate;
}
.scn-council-for-prince .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(0deg, #806040 0%, #a08060 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: co-table 12s ease-in-out infinite;
}
.scn-council-for-prince .crown {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a040 0%, #b08030 50%, #806020 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(212,160,64,0.5);
  animation: co-crown 3s ease-in-out infinite alternate;
}
.scn-council-for-prince .prince-figure {
  position: absolute; bottom: 32%; left: 50%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co-prince 5s ease-in-out infinite alternate;
}
.scn-council-for-prince .peer-left {
  position: absolute; bottom: 28%; left: 10%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co-peer1 4s ease-in-out infinite alternate-reverse;
}
.scn-council-for-prince .peer-right {
  position: absolute; bottom: 28%; right: 10%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co-peer2 4.5s ease-in-out infinite alternate;
}
.scn-council-for-prince .peer-center {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 40px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: co-peer3 3.5s ease-in-out infinite alternate;
}
.scn-council-for-prince .candle-glow {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,192,64,0.5);
  animation: co-candle 2s ease-in-out infinite alternate;
}
@keyframes co-bg { 0% { filter: brightness(0.95); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes co-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes co-crown { 0% { transform: translateX(-50%) rotate(-3deg) scale(0.98); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.99); } }
@keyframes co-prince { 0% { transform: translateX(-50%) translateY(0) rotate(1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(2deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes co-peer1 { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes co-peer2 { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes co-peer3 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes co-candle { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }

.scn-citizens-fear {
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 30%, #8a8a9a 60%, #9a9aaa 100%), radial-gradient(ellipse at 50% 0%, #9a9aaa 0%, transparent 70%);
}
.scn-citizens-fear .sky-overcast {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 40%, #8a8a9a 100%);
  background-size: 200% 200%;
  animation: ci-sky 30s ease-in-out infinite alternate;
}
.scn-citizens-fear .street-cobble {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #7a7a5a 0px, #8a8a6a 20px, #9a9a7a 40px, #7a7a5a 60px);
  background-size: 60px 100%;
  animation: ci-street 20s linear infinite;
}
.scn-citizens-fear .house-left {
  position: absolute; bottom: 35%; left: 5%; width: 80px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: ci-house1 10s ease-in-out infinite alternate;
}
.scn-citizens-fear .house-right {
  position: absolute; bottom: 35%; right: 5%; width: 80px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: ci-house2 12s ease-in-out infinite alternate-reverse;
}
.scn-citizens-fear .citizen-a {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ci-cit-a 4s ease-in-out infinite alternate;
}
.scn-citizens-fear .citizen-b {
  position: absolute; bottom: 32%; right: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ci-cit-b 4.5s ease-in-out infinite alternate-reverse;
}
.scn-citizens-fear .fog-drift {
  position: absolute; top: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,210,0.3) 30%, transparent 70%);
  filter: blur(10px);
  animation: ci-fog 25s linear infinite;
}
.scn-citizens-fear .shadow-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ci-shadow 15s ease-in-out infinite alternate;
}
@keyframes ci-sky { 0% { background-position: 0% 0%; } 50% { background-position: 50% 50%; } 100% { background-position: 0% 100%; } }
@keyframes ci-street { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes ci-house1 { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ci-house2 { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ci-cit-a { 0% { transform: translateY(0) rotate(3deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ci-cit-b { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ci-fog { 0% { transform: translateX(-20%); } 50% { transform: translateX(20%); } 100% { transform: translateX(-20%); } }
@keyframes ci-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

/* buckingham-threatens */
.scn-buckingham-threatens {
  background: linear-gradient(180deg, #d4b896 0%, #b89878 40%, #8a705a 100%), radial-gradient(ellipse at 50% 30%, #e8d4b8 0%, transparent 60%);
}
.scn-buckingham-threatens .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #7a5a42 0%, #4a322a 100%);
  transform: perspective(300px) rotateX(10deg); border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.5);
  animation: bt-floor 12s ease-in-out infinite alternate;
}
.scn-buckingham-threatens .col-l,
.scn-buckingham-threatens .col-r {
  position: absolute; bottom: 20%; width: 18px; height: 55%;
  background: linear-gradient(90deg, #b09070 0%, #d0b898 30%, #a08060 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.scn-buckingham-threatens .col-l { left: 12%; }
.scn-buckingham-threatens .col-r { right: 12%; }
.scn-buckingham-threatens .throne {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,.6);
  animation: bt-throne 9s ease-in-out infinite;
}
.scn-buckingham-threatens .figure-richard {
  position: absolute; bottom: 30%; left: 47%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-richard 6s ease-in-out infinite;
}
.scn-buckingham-threatens .figure-buckingham {
  position: absolute; bottom: 30%; left: 65%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-buckingham 8s ease-in-out infinite alternate;
}
.scn-buckingham-threatens .light-ray {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 20%, rgba(240,220,190,.4) 0%, transparent 60%);
  mix-blend-mode: overlay; animation: bt-ray 5s ease-in-out infinite alternate;
}
.scn-buckingham-threatens .shadow-advance {
  position: absolute; bottom: 20%; right: 10%; width: 70%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: bt-shadow 10s ease-in-out infinite alternate;
}
@keyframes bt-floor { 0% { opacity: .9; transform: perspective(300px) rotateX(8deg); } 50% { opacity: 1; transform: perspective(300px) rotateX(12deg); } 100% { opacity: .8; transform: perspective(300px) rotateX(6deg); } }
@keyframes bt-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes bt-richard { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes bt-buckingham { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(0) translateY(2px); } }
@keyframes bt-ray { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .4; } }
@keyframes bt-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.9); } }

/* buckingham-leaves */
.scn-buckingham-leaves {
  background: linear-gradient(180deg, #c4a88a 0%, #a08060 40%, #705040 100%), radial-gradient(ellipse at 70% 40%, #d8b898 0%, transparent 70%);
}
.scn-buckingham-leaves .floor-recede {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a4a32 0%, #3a221a 100%);
  transform: perspective(400px) rotateX(12deg);
  border-radius: 0 0 30% 30%;
  animation: bl-floor 15s ease-in-out infinite alternate;
}
.scn-buckingham-leaves .arch {
  position: absolute; bottom: 15%; right: 8%; width: 40px; height: 65%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: bl-arch 20s ease-in-out infinite alternate;
}
.scn-buckingham-leaves .figure-buckingham-walk {
  position: absolute; bottom: 28%; right: 15%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a301a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-walk 4s ease-in-out infinite;
}
.scn-buckingham-leaves .figure-richard-reach {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bl-reach 6s ease-in-out infinite alternate;
}
.scn-buckingham-leaves .cape-flow {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #5a4030 0%, transparent 70%);
  filter: blur(2px);
  animation: bl-cape 4s ease-in-out infinite;
}
.scn-buckingham-leaves .door-shadow {
  position: absolute; bottom: 15%; right: 5%; width: 50px; height: 70%;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 80%);
  animation: bl-door-shadow 8s ease-in-out infinite alternate;
}
@keyframes bl-floor { 0% { opacity: .8; transform: perspective(400px) rotateX(10deg); } 50% { opacity: 1; transform: perspective(400px) rotateX(14deg); } 100% { opacity: .7; transform: perspective(400px) rotateX(8deg); } }
@keyframes bl-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(.95); } }
@keyframes bl-walk { 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 bl-reach { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes bl-cape { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.2); } }
@keyframes bl-door-shadow { 0% { opacity: .4; } 50% { opacity: .8; } 100% { opacity: .3; } }

/* richard-relents */
.scn-richard-relents {
  background: linear-gradient(180deg, #c8b090 0%, #a88868 40%, #7a5a42 100%), radial-gradient(ellipse at 50% 50%, #d8c0a0 0%, transparent 60%);
}
.scn-richard-relents .table-round {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #6a4a32 0%, #4a3220 100%);
  border-radius: 50%; box-shadow: 0 -8px 30px rgba(0,0,0,.5);
  animation: rr-table 20s ease-in-out infinite alternate;
}
.scn-richard-relents .figure-richard-seated {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-richard 8s ease-in-out infinite alternate;
}
.scn-richard-relents .figure-buckingham-stand {
  position: absolute; bottom: 20%; left: 60%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-buckingham 10s ease-in-out infinite alternate;
}
.scn-richard-relents .figure-clergy {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rr-clergy 12s ease-in-out infinite alternate;
}
.scn-richard-relents .candle {
  position: absolute; bottom: 35%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #ffd080;
  animation: rr-candle 3s ease-in-out infinite;
}
.scn-richard-relents .tapestry {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(90deg, #5a4030 0%, #7a5a42 20%, #5a4030 100%);
  border-radius: 4px; opacity: .6;
  animation: rr-tapestry 25s ease-in-out infinite alternate;
}
.scn-richard-relents .candle-halo {
  position: absolute; bottom: 33%; left: 46%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,208,128,.5) 0%, transparent 70%);
  animation: rr-halo 3s ease-in-out infinite alternate;
}
@keyframes rr-table { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(.98); } }
@keyframes rr-richard { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes rr-buckingham { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes rr-clergy { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes rr-candle { 0%,100% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.1); opacity: 1; } }
@keyframes rr-tapestry { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .5; } }
@keyframes rr-halo { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .8; transform: scale(1.3); } 100% { opacity: .5; transform: scale(.9); } }

/* richard-accepts-crown */
.scn-richard-accepts-crown {
  background: linear-gradient(180deg, #d4c0a8 0%, #b09878 30%, #8a7058 70%, #5a4230 100%), radial-gradient(ellipse at 50% 20%, #e8d4b8 0%, transparent 50%);
}
.scn-richard-accepts-crown .dais {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #6a4a32 0%, #3a221a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -10px 40px rgba(0,0,0,.6);
  animation: ra-dais 15s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .crown {
  position: absolute; bottom: 48%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c89840 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,.4);
  animation: ra-crown 4s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .figure-richard-stand {
  position: absolute; bottom: 28%; left: 44%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-richard 6s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .figure-archbishop {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ra-archbishop 8s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .figures-nobles {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
  filter: blur(4px); animation: ra-nobles 12s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(240,220,180,.6) 0%, transparent 100%);
  mix-blend-mode: overlay; animation: ra-beam 5s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .scepter {
  position: absolute; bottom: 30%; left: 40%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c89840 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #f0c060;
  transform: rotate(15deg); animation: ra-scepter 7s ease-in-out infinite alternate;
}
@keyframes ra-dais { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(.97); } }
@keyframes ra-crown { 0% { transform: translateX(-50%) translateY(0); opacity: .8; } 50% { transform: translateX(-50%) translateY(-4px); opacity: 1; } 100% { transform: translateX(-50%) translateY(2px); opacity: .9; } }
@keyframes ra-richard { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes ra-archbishop { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ra-nobles { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.1); } 100% { opacity: .6; transform: scaleX(.95); } }
@keyframes ra-beam { 0% { opacity: .3; } 50% { opacity: .8; } 100% { opacity: .4; } }
@keyframes ra-scepter { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(10deg); } }

.scn-anne-realizes-curse { background: linear-gradient(180deg, #f6e3c5 0%, #d4b88a 40%, #9f7c5a 100%), radial-gradient(ellipse at 70% 20%, #fff5d6 0%, transparent 60%); background-blend-mode: overlay; }
.scn-anne-realizes-curse .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #dac09a 0%, #ba9a76 100%); animation: ar-sky 12s ease-in-out infinite alternate; }
.scn-anne-realizes-curse .sun { position:absolute; left:70%; top:8%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle at 40% 30%, #ffedb0 0%, #f5d88a 50%, transparent 70%); box-shadow: 0 0 80px 40px rgba(255,237,176,0.5); animation: ar-sun 8s ease-in-out infinite; }
.scn-anne-realizes-curse .sunbeams { position:absolute; bottom:50%; left:60%; width:120px; height:200px; background: linear-gradient(135deg, rgba(255,237,176,0.3) 0%, transparent 70%); clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%); animation: ar-beams 10s ease-in-out infinite; }
.scn-anne-realizes-curse .figure { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: ar-figure 6s ease-in-out infinite; }
.scn-anne-realizes-curse .shadow { position:absolute; bottom:18%; left:20%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: ar-shadow 6s ease-in-out infinite; }
.scn-anne-realizes-curse .flower { position:absolute; bottom:25%; left:50%; width:12px; height:18px; border-radius:50%; background: #d4976a; box-shadow: 0 0 8px 2px #d4976a; animation: ar-flower 4s ease-in-out infinite alternate; }
.scn-anne-realizes-curse .petal-a { position:absolute; bottom:25%; left:48%; width:10px; height:8px; border-radius:50%; background: #e6b18a; transform: rotate(-20deg); animation: ar-petal-a 5s ease-in-out infinite; }
.scn-anne-realizes-curse .petal-b { position:absolute; bottom:25%; left:53%; width:10px; height:8px; border-radius:50%; background: #e6b18a; transform: rotate(20deg); animation: ar-petal-b 5s ease-in-out infinite 2.5s; }
@keyframes ar-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ar-sun { 0% { transform: translate(0,0) scale(1); opacity:0.9 } 50% { transform: translate(5px,-3px) scale(1.05); opacity:1 } 100% { transform: translate(0,0) scale(1); opacity:0.9 } }
@keyframes ar-beams { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(10px) } 100% { opacity:0.3; transform: translateX(0) } }
@keyframes ar-figure { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-4px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ar-shadow { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(1) } }
@keyframes ar-flower { 0% { transform: rotate(0deg) scale(1) } 100% { transform: rotate(10deg) scale(1.1) } }
@keyframes ar-petal-a { 0% { transform: rotate(-20deg) translate(0,0); opacity:0.8 } 50% { transform: rotate(-30deg) translate(-4px,2px); opacity:1 } 100% { transform: rotate(-20deg) translate(0,0); opacity:0.8 } }
@keyframes ar-petal-b { 0% { transform: rotate(20deg) translate(0,0); opacity:0.8 } 50% { transform: rotate(30deg) translate(4px,2px); opacity:1 } 100% { transform: rotate(20deg) translate(0,0); opacity:0.8 } }

.scn-anne-hates-richard { background: linear-gradient(180deg, #f0d8b8 0%, #c4a27a 50%, #8e6b4a 100%), radial-gradient(ellipse at 80% 30%, #ffe5c4 0%, transparent 50%); background-blend-mode: overlay; }
.scn-anne-hates-richard .bg-wall { position:absolute; left:0; top:0; width:70%; height:100%; background: linear-gradient(180deg, #b8956e 0%, #8a6a4a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: ah-wall 15s ease-in-out infinite; }
.scn-anne-hates-richard .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6d533a 0%, #3d2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-anne-hates-richard .crown { position:absolute; top:15%; left:15%; width:60px; height:20px; background: linear-gradient(135deg, #e5c68a 0%, #b3925a 100%); border-radius: 0 0 50% 50%; transform: rotate(-25deg); box-shadow: 0 0 10px 2px rgba(227,198,138,0.5), 0 4px 8px rgba(0,0,0,0.3); animation: ah-crown 6s ease-in-out infinite; }
.scn-anne-hates-richard .chain { position:absolute; top:18%; left:10%; width:40px; height:40px; border: 3px solid #a0784a; border-radius: 50%; background: transparent; box-shadow: 0 0 6px 1px #a0784a; animation: ah-chain 4s ease-in-out infinite; }
.scn-anne-hates-richard .figure { position:absolute; bottom:20%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg) scaleX(-1); animation: ah-figure 8s ease-in-out infinite; }
.scn-anne-hates-richard .hand { position:absolute; bottom:30%; left:28%; width:14px; height:30px; background: #3a2518; border-radius: 30% 30% 20% 20%; transform: rotate(-20deg); animation: ah-hand 3s ease-in-out infinite; }
.scn-anne-hates-richard .spark-a { position:absolute; top:40%; right:30%; width:6px; height:6px; background: #d4a86a; border-radius:50%; box-shadow: 0 0 12px 4px #d4a86a; animation: ah-spark-a 2s ease-in-out infinite; }
.scn-anne-hates-richard .spark-b { position:absolute; top:45%; right:20%; width:4px; height:4px; background: #d4a86a; border-radius:50%; box-shadow: 0 0 8px 2px #d4a86a; animation: ah-spark-b 2.5s ease-in-out infinite 1s; }
@keyframes ah-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ah-crown { 0% { transform: rotate(-25deg) translateY(0) scale(1) } 50% { transform: rotate(-30deg) translateY(-3px) scale(1.05) } 100% { transform: rotate(-25deg) translateY(0) scale(1) } }
@keyframes ah-chain { 0% { transform: rotate(0deg) translate(0,0) } 50% { transform: rotate(15deg) translate(2px,-2px) } 100% { transform: rotate(0deg) translate(0,0) } }
@keyframes ah-figure { 0% { transform: rotate(10deg) scaleX(-1) translateY(0) } 50% { transform: rotate(8deg) scaleX(-1) translateY(-5px) } 100% { transform: rotate(10deg) scaleX(-1) translateY(0) } }
@keyframes ah-hand { 0% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-25deg) translate(-3px,-1px) } 100% { transform: rotate(-20deg) translate(0,0) } }
@keyframes ah-spark-a { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(2) } 100% { opacity:0.6; transform: scale(1) } }
@keyframes ah-spark-b { 0% { opacity:0.5; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.8) } 100% { opacity:0.5; transform: scale(0.8) } }

.scn-anne-farewell { background: linear-gradient(180deg, #edd8b8 0%, #c9a878 40%, #8f6d4a 100%), radial-gradient(ellipse at 50% 10%, #ffeac4 0%, transparent 60%); background-blend-mode: overlay; }
.scn-anne-farewell .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e3cba8 0%, #b7936a 100%); animation: af-sky 20s ease-in-out infinite alternate; }
.scn-anne-farewell .sun { position:absolute; left:80%; top:5%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #ffeac4 0%, #f4d28a 60%, transparent 80%); box-shadow: 0 0 60px 30px rgba(255,234,196,0.4); animation: af-sun 12s ease-in-out infinite; }
.scn-anne-farewell .path { position:absolute; bottom:30%; left:10%; right:20%; height:10px; background: linear-gradient(90deg, #a07a5a 0%, #6d523a 100%); border-radius: 50% 50% 0 0; filter: blur(1px); animation: af-path 15s ease-in-out infinite; }
.scn-anne-farewell .figure-a { position:absolute; bottom:20%; left:15%; width:40px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #301e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: af-figure-a 6s ease-in-out infinite; }
.scn-anne-farewell .figure-b { position:absolute; bottom:22%; left:25%; width:36px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #301e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg) scaleX(-1); animation: af-figure-b 8s ease-in-out infinite; }
.scn-anne-farewell .grave { position:absolute; bottom:25%; left:60%; width:30px; height:20px; background: #4a3020; border-radius: 10% 10% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: af-grave 4s ease-in-out infinite alternate; }
.scn-anne-farewell .tree { position:absolute; bottom:35%; left:70%; width:8px; height:60px; background: #4a3020; border-radius: 20%; transform-origin: bottom center; animation: af-tree 9s ease-in-out infinite; }
.scn-anne-farewell .cloud-a { position:absolute; top:15%; left:-10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%); border-radius:50%; filter: blur(6px); animation: af-drift-a 40s linear infinite; }
.scn-anne-farewell .cloud-b { position:absolute; top:25%; right:-10%; width:60px; height:15px; background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.05) 100%); border-radius:50%; filter: blur(5px); animation: af-drift-b 50s linear infinite reverse; }
@keyframes af-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes af-sun { 0% { transform: translate(0,0) scale(1); opacity:0.85 } 50% { transform: translate(4px,2px) scale(1.05); opacity:1 } 100% { transform: translate(0,0) scale(1); opacity:0.85 } }
@keyframes af-path { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.1) } 100% { opacity:0.7; transform: scaleY(1) } }
@keyframes af-figure-a { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes af-figure-b { 0% { transform: rotate(-10deg) scaleX(-1) translateY(0) } 50% { transform: rotate(-12deg) scaleX(-1) translateY(-5px) } 100% { transform: rotate(-10deg) scaleX(-1) translateY(0) } }
@keyframes af-grave { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }
@keyframes af-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes af-drift-a { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }
@keyframes af-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-elizabeth-pities-princes { background: linear-gradient(180deg, #e8d5b8 0%, #b89870 50%, #7a5a3a 100%), radial-gradient(ellipse at 30% 20%, #fff0d4 0%, transparent 60%); background-blend-mode: overlay; }
.scn-elizabeth-pities-princes .bg-tower { position:absolute; inset:0; background: linear-gradient(180deg, #c9aa80 0%, #9a7a5a 100%); animation: ep-bg 20s ease-in-out infinite; }
.scn-elizabeth-pities-princes .tower { position:absolute; bottom:0; left:50%; width:80px; height:70%; transform: translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 0 40px 10px rgba(0,0,0,0.3); animation: ep-tower 10s ease-in-out infinite; }
.scn-elizabeth-pities-princes .window { position:absolute; top:40%; left:50%; width:20px; height:30px; transform: translate(-50%,-50%); background: #0a0a12; border: 3px solid #4a3020; border-radius: 3px; box-shadow: inset 0 0 10px #0a0a12, 0 0 20px rgba(0,0,0,0.5); animation: ep-window 6s ease-in-out infinite alternate; }
.scn-elizabeth-pities-princes .figure { position:absolute; bottom:10%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #301e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ep-figure 8s ease-in-out infinite; }
.scn-elizabeth-pities-princes .baby-a { position:absolute; top:36%; left:47%; width:10px; height:14px; background: #1a1a2a; border-radius: 50% 50% 40% 40%; animation: ep-baby-a 5s ease-in-out infinite; }
.scn-elizabeth-pities-princes .baby-b { position:absolute; top:36%; left:53%; width:10px; height:14px; background: #1a1a2a; border-radius: 50% 50% 40% 40%; animation: ep-baby-b 5s ease-in-out infinite 2.5s; }
.scn-elizabeth-pities-princes .tear-a { position:absolute; bottom:30%; left:30%; width:4px; height:8px; background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, transparent 100%); border-radius:0 0 50% 50%; animation: ep-tear-a 3s ease-in infinite; }
.scn-elizabeth-pities-princes .tear-b { position:absolute; bottom:30%; left:40%; width:4px; height:8px; background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, transparent 100%); border-radius:0 0 50% 50%; animation: ep-tear-b 3.5s ease-in infinite 1s; }
@keyframes ep-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ep-tower { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes ep-window { 0% { box-shadow: inset 0 0 10px #0a0a12, 0 0 20px rgba(0,0,0,0.5) } 50% { box-shadow: inset 0 0 20px #0a0a12, 0 0 30px rgba(0,0,0,0.7) } 100% { box-shadow: inset 0 0 10px #0a0a12, 0 0 20px rgba(0,0,0,0.5) } }
@keyframes ep-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes ep-baby-a { 0% { transform: translate(0,0) } 50% { transform: translate(1px,-2px) } 100% { transform: translate(0,0) } }
@keyframes ep-baby-b { 0% { transform: translate(0,0) } 50% { transform: translate(-1px,-2px) } 100% { transform: translate(0,0) } }
@keyframes ep-tear-a { 0% { opacity:0; transform: translateY(0) scale(1) } 50% { opacity:0.6; transform: translateY(20px) scale(0.8) } 100% { opacity:0; transform: translateY(40px) scale(0.5) } }
@keyframes ep-tear-b { 0% { opacity:0; transform: translateY(0) scale(1) } 50% { opacity:0.6; transform: translateY(20px) scale(0.8) } 100% { opacity:0; transform: translateY(40px) scale(0.5) } }

.scn-brakenbury-soliloquy {
  background: linear-gradient(180deg, #1a1a30 0%, #2b2440 60%, #3a2e50 100%),
              radial-gradient(ellipse at 50% 20%, #3a2e50 0%, transparent 70%);
}
.scn-brakenbury-soliloquy .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2440 0%, #1e1b32 100%);
  animation: sq-wall 20s ease-in-out infinite alternate;
}
.scn-brakenbury-soliloquy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-brakenbury-soliloquy .window {
  position: absolute; top: 12%; left: 15%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #3a5080, #1a2840);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 3px solid #4a3a2a;
  box-shadow: inset 0 0 30px rgba(100,140,200,0.3);
  animation: sq-window 8s ease-in-out infinite alternate;
}
.scn-brakenbury-soliloquy .candle-glow {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #c08040, 0 0 80px 30px rgba(192,128,64,0.4);
  animation: sq-candle 4s ease-in-out infinite alternate;
}
.scn-brakenbury-soliloquy .candle-wax {
  position: absolute; bottom: 33%; left: 42%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(3deg);
  animation: sq-wax 6s ease-in-out infinite;
}
.scn-brakenbury-soliloquy .figure-profile {
  position: absolute; bottom: 28%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2240 0%, #1a1230 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: sq-figure 12s ease-in-out infinite alternate;
}
.scn-brakenbury-soliloquy .shadow-long {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sq-shadow 8s ease-in-out infinite alternate;
}
.scn-brakenbury-soliloquy .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-brakenbury-soliloquy .mote-1 {
  top: 20%; left: 30%;
  animation: sq-drift-1 25s linear infinite;
}
.scn-brakenbury-soliloquy .mote-2 {
  top: 40%; left: 60%;
  animation: sq-drift-2 30s linear infinite reverse;
}
@keyframes sq-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sq-window { 0% { transform: scaleX(1) scaleY(1); box-shadow: inset 0 0 20px rgba(100,140,200,0.2); } 50% { transform: scaleX(1.02) scaleY(1.01); box-shadow: inset 0 0 40px rgba(100,140,200,0.4); } 100% { transform: scaleX(1) scaleY(1); box-shadow: inset 0 0 25px rgba(100,140,200,0.25); } }
@keyframes sq-candle { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-1deg); opacity: 0.85; } }
@keyframes sq-wax { 0%,100% { transform: rotate(3deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } }
@keyframes sq-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes sq-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.6; } 50% { transform: translateX(8px) scaleX(1.1); opacity: 0.8; } 100% { transform: translateX(-5px) scaleX(0.95); opacity: 0.5; } }
@keyframes sq-drift-1 { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -10px) scale(1.2); } 100% { transform: translate(60px, 0) scale(1); } }
@keyframes sq-drift-2 { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-20px, 15px) scale(0.9); } 100% { transform: translate(-40px, 0) scale(1); } }

.scn-murderers-enter-tower {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2038 50%, #1e1429 100%),
              radial-gradient(ellipse at 50% 30%, #3a2848 0%, transparent 70%);
}
.scn-murderers-enter-tower .tower-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2038 0%, #1a1228 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
}
.scn-murderers-enter-tower .tower-arch {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #1a1228 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 6px solid #2a1a30;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: met-arch 10s ease-in-out infinite alternate;
}
.scn-murderers-enter-tower .lantern-harsh {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #ff9030 0%, #cc6020 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 50px 20px rgba(255,144,48,0.6), 0 0 100px 40px rgba(255,144,48,0.3);
  animation: met-lantern 3s ease-in-out infinite alternate;
}
.scn-murderers-enter-tower .lantern-pole {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%);
  transform: translateX(-2px);
}
.scn-murderers-enter-tower .murderer-1 {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2238 0%, #1a1228 100%);
  border-radius: 40% 50% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: met-m1 6s ease-in-out infinite;
}
.scn-murderers-enter-tower .murderer-2 {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  border-radius: 50% 40% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: met-m2 5s ease-in-out infinite alternate;
}
.scn-murderers-enter-tower .steel-blade {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0e0e8 0%, #a0a0b0 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(-20deg);
  box-shadow: 0 0 10px rgba(200,200,220,0.5);
  animation: met-blade 2s ease-in-out infinite;
}
.scn-murderers-enter-tower .floor-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
@keyframes met-arch { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes met-lantern { 0% { transform: rotate(-3deg) scale(1); opacity: 0.9; } 50% { transform: rotate(3deg) scale(1.05); opacity: 1; } 100% { transform: rotate(-2deg) scale(0.95); opacity: 0.85; } }
@keyframes met-m1 { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(10px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(2deg); } }
@keyframes met-m2 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-8px) translateY(-4px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes met-blade { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-2px); } 50% { transform: rotate(-25deg) translateY(1px); } 75% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-brakenbury-relinquishes-charge {
  background: linear-gradient(180deg, #1c1a30 0%, #2a2440 50%, #3a2e50 100%),
              radial-gradient(ellipse at 50% 40%, #3a2e50 0%, transparent 70%);
}
.scn-brakenbury-relinquishes-charge .chamber-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2440 0%, #1e1a32 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-brakenbury-relinquishes-charge .sleeping-duke {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #3a2e50 0%, #2a1a40 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: brc-duke 10s ease-in-out infinite alternate;
}
.scn-brakenbury-relinquishes-charge .bed-posts {
  position: absolute; bottom: 18%; left: 15%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 10%;
  box-shadow: 40px 0 0 0 #5a4a30, 80px 0 0 0 #5a4a30;
}
.scn-brakenbury-relinquishes-charge .brakenbury-figure {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2240 0%, #1a1230 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: brc-fig 8s ease-in-out infinite alternate;
}
.scn-brakenbury-relinquishes-charge .key-ring {
  position: absolute; bottom: 28%; left: 58%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d0b080 0%, #a08860 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(200,180,150,0.5);
  animation: brc-key 5s ease-in-out infinite;
}
.scn-brakenbury-relinquishes-charge .candle-dying {
  position: absolute; bottom: 32%; left: 40%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 10px #c08040, 0 0 40px 20px rgba(192,128,64,0.3);
  animation: brc-candle 6s ease-in-out infinite alternate;
}
.scn-brakenbury-relinquishes-charge .curtain {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #4a3a50 0%, #2a1a30 100%);
  border-radius: 0 0 0 30%;
  box-shadow: inset -20px 0 30px rgba(0,0,0,0.6);
  animation: brc-curtain 15s ease-in-out infinite alternate;
}
@keyframes brc-duke { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes brc-fig { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(4px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes brc-key { 0%,100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -2px) rotate(15deg); } 50% { transform: translate(0, -4px) rotate(10deg); } 75% { transform: translate(-2px, -1px) rotate(5deg); } }
@keyframes brc-candle { 0% { transform: scaleY(1) rotate(2deg); opacity: 0.8; } 50% { transform: scaleY(1.03) rotate(-1deg); opacity: 0.9; } 100% { transform: scaleY(0.97) rotate(0deg); opacity: 0.7; } }
@keyframes brc-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

.scn-murderers-conscience-argument {
  background: linear-gradient(180deg, #2a2038 0%, #3a2848 50%, #1e1429 100%),
              radial-gradient(ellipse at 50% 50%, #4a3860 0%, transparent 70%);
}
.scn-murderers-conscience-argument .cell-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2038 0%, #1a1228 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-murderers-conscience-argument .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2840 0%, #2a1830 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-murderers-conscience-argument .dagger-1 {
  position: absolute; bottom: 25%; left: 30%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #c0c0c8 0%, #909098 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(15deg);
  box-shadow: 0 0 8px rgba(180,180,200,0.4);
  animation: mca-d1 3s ease-in-out infinite;
}
.scn-murderers-conscience-argument .dagger-2 {
  position: absolute; bottom: 24%; left: 60%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #b8b8c0 0%, #888890 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(-25deg);
  box-shadow: 0 0 8px rgba(180,180,200,0.4);
  animation: mca-d2 4s ease-in-out infinite alternate;
}
.scn-murderers-conscience-argument .murderer-left {
  position: absolute; bottom: 20%; left: 20%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2848 0%, #2a1838 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: mca-left 5s ease-in-out infinite;
}
.scn-murderers-conscience-argument .murderer-right {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #2a2038 0%, #1a1228 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: mca-right 6s ease-in-out infinite alternate;
}
.scn-murderers-conscience-argument .judgment-halo {
  position: absolute; top: 15%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,0.2);
  animation: mca-halo 4s ease-in-out infinite alternate;
}
@keyframes mca-d1 { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-3px); } 50% { transform: rotate(12deg) translateY(2px); } 75% { transform: rotate(18deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes mca-d2 { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes mca-left { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-4px) rotate(3deg); } 50% { transform: translateX(12px) translateY(-2px) rotate(0deg); } 75% { transform: translateX(4px) translateY(-3px) rotate(-2deg); } }
@keyframes mca-right { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-10px) translateY(-5px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes mca-halo { 0% { transform: scale(1) rotate(0deg); opacity: 0.6; } 50% { transform: scale(1.15) rotate(10deg); opacity: 0.8; } 100% { transform: scale(0.9) rotate(-5deg); opacity: 0.5; } }

/* ===== Scene 1: richard-response-part1 ===== */
.scn-richard-response-part1 {
  background:
    linear-gradient(180deg, #d4c3a0 0%, #b59a7a 25%, #8a7355 60%, #4a3d2d 100%),
    radial-gradient(ellipse at 30% 20%, #fff2d0 0%, transparent 50%);
}
.scn-richard-response-part1 .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #6a5a45 0%, #9c8a70 20%, #b5a58a 50%, #9c8a70 80%, #6a5a45 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.3);
}
.scn-richard-response-part1 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3d3025 100%);
  animation: rh1-floor 6s ease-in-out infinite alternate;
}
.scn-richard-response-part1 .platform {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
  animation: rh1-platform 8s ease-in-out infinite;
}
.scn-richard-response-part1 .throne {
  position: absolute; bottom: 24%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #b08a5a 0%, #6a5035 100%);
  clip-path: polygon(15% 0%, 85% 0%, 95% 100%, 5% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: rh1-throne 4s ease-in-out infinite alternate;
}
.scn-richard-response-part1 .curtain-left {
  position: absolute; top: 0; left: 0; width: 18%; height: 65%;
  background: linear-gradient(135deg, #6a3020 0%, #4a2015 50%, #3a1810 100%);
  border-radius: 0 20% 20% 0;
  animation: rh1-curtain 9s ease-in-out infinite alternate;
}
.scn-richard-response-part1 .curtain-right {
  position: absolute; top: 0; right: 0; width: 18%; height: 65%;
  background: linear-gradient(225deg, #6a3020 0%, #4a2015 50%, #3a1810 100%);
  border-radius: 20% 0 0 20%;
  animation: rh1-curtain 9s ease-in-out infinite alternate-reverse;
}
.scn-richard-response-part1 .figure-kneel {
  position: absolute; bottom: 22%; left: 48%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rh1-kneel 5s ease-in-out infinite;
}
.scn-richard-response-part1 .figure-stand {
  position: absolute; bottom: 24%; left: 42%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rh1-stand 3s ease-in-out infinite alternate;
}
@keyframes rh1-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rh1-platform { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rh1-throne { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes rh1-curtain { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes rh1-kneel { 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 rh1-stand { 0% { transform: translateX(0) } 100% { transform: translateX(2px) } }

/* ===== Scene 2: richard-response-part2 ===== */
.scn-richard-response-part2 {
  background:
    linear-gradient(180deg, #c8b088 0%, #a08560 35%, #7a6040 75%, #4a3020 100%),
    radial-gradient(ellipse at 50% 30%, #ffecb0 0%, transparent 60%);
}
.scn-richard-response-part2 .bg-depth {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #8a7050 0%, #b09870 30%, #c8b890 50%, #b09870 70%, #8a7050 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
}
.scn-richard-response-part2 .floor-persp {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: rh2-floor 8s ease-in-out infinite alternate;
}
.scn-richard-response-part2 .chair {
  position: absolute; bottom: 18%; right: 20%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.5);
  animation: rh2-chair 5s ease-in-out infinite alternate;
}
.scn-richard-response-part2 .figure-speak {
  position: absolute; bottom: 15%; left: 30%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: rh2-speak 3s ease-in-out infinite;
}
.scn-richard-response-part2 .candle {
  position: absolute; bottom: 35%; left: 25%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 60%, #a08030 100%);
  border-radius: 10% 10% 5% 5%;
  animation: rh2-candle 1.5s ease-in-out infinite alternate;
}
.scn-richard-response-part2 .candle-glow {
  position: absolute; bottom: 30%; left: 20%; width: 18%; height: 25%;
  background: radial-gradient(ellipse, rgba(255,210,100,0.6) 0%, rgba(255,210,100,0) 70%);
  pointer-events: none;
  animation: rh2-glow 2s ease-in-out infinite alternate;
}
@keyframes rh2-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rh2-chair { 0% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes rh2-speak { 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 rh2-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.05) scaleX(0.95) } 100% { transform: scaleY(0.98) scaleX(1.02) } }
@keyframes rh2-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.95) } }

/* ===== Scene 3: richard-response-part3 ===== */
.scn-richard-response-part3 {
  background:
    linear-gradient(180deg, #a09070 0%, #7a6a50 40%, #4a3a28 80%, #2a1a10 100%),
    radial-gradient(ellipse at 40% 10%, #fff8e0 0%, transparent 50%);
}
.scn-richard-response-part3 .bg-panel {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.4);
}
.scn-richard-response-part3 .col-left {
  position: absolute; top: 0; left: 15%; width: 8%; height: 100%;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 30%, #9a8a6a 70%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: rh3-col 12s ease-in-out infinite alternate;
}
.scn-richard-response-part3 .col-right {
  position: absolute; top: 0; right: 15%; width: 8%; height: 100%;
  background: linear-gradient(270deg, #6a5a3a 0%, #8a7a5a 30%, #9a8a6a 70%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: rh3-col 12s ease-in-out infinite alternate-reverse;
}
.scn-richard-response-part3 .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #5a4a30 0%, #5a4a30 10%, #7a6a50 10%, #7a6a50 20%);
  background-size: 10% 100%;
  animation: rh3-tiles 15s linear infinite;
}
.scn-richard-response-part3 .window-sea {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #a0c8d8 0%, #6098a8 50%, #305060 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px #b0d8e8;
  animation: rh3-sea 8s ease-in-out infinite alternate;
}
.scn-richard-response-part3 .figure-crouch {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: rh3-crouch 4s ease-in-out infinite;
}
.scn-richard-response-part3 .shadow-fall {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  pointer-events: none;
  animation: rh3-shadow 5s ease-in-out infinite alternate;
}
@keyframes rh3-col { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rh3-tiles { 0% { background-position: 0 0 } 100% { background-position: 20% 0 } }
@keyframes rh3-sea { 0% { background-position: 0 0 } 50% { background-position: 0 5% } 100% { background-position: 0 0 } }
@keyframes rh3-crouch { 0% { transform: translateY(0) rotate(0deg) scaleY(1) } 25% { transform: translateY(-3px) rotate(-2deg) scaleY(1.02) } 50% { transform: translateY(0) rotate(0deg) scaleY(1) } 75% { transform: translateY(-2px) rotate(2deg) scaleY(0.98) } 100% { transform: translateY(0) rotate(0deg) scaleY(1) } }
@keyframes rh3-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.05) } 100% { opacity: 0.4; transform: scaleX(1) } }

/* ===== Scene 4: richard-response-part4 ===== */
.scn-richard-response-part4 {
  background:
    linear-gradient(180deg, #b09878 0%, #8a7050 30%, #5a4030 70%, #2a1a10 100%),
    radial-gradient(ellipse at 55% 25%, #fff4d0 0%, transparent 50%);
}
.scn-richard-response-part4 .bg-arch {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #705840 0%, #a08860 25%, #c0a880 50%, #a08860 75%, #705840 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 90%, 15% 90%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
}
.scn-richard-response-part4 .throne {
  position: absolute; bottom: 10%; left: 25%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #9a7a5a 0%, #5a4028 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rh4-throne 6s ease-in-out infinite alternate;
}
.scn-richard-response-part4 .crown {
  position: absolute; bottom: 35%; left: 30%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #e0c070 0%, #b09040 60%, #8a6a20 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(230,200,80,0.6);
  animation: rh4-crown 3s ease-in-out infinite alternate;
}
.scn-richard-response-part4 .figure-turn {
  position: absolute; bottom: 5%; right: 20%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #201a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rh4-turn 4s ease-in-out infinite;
}
.scn-richard-response-part4 .figure-bow {
  position: absolute; bottom: 5%; left: 30%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rh4-bow 5s ease-in-out infinite alternate;
}
.scn-richard-response-part4 .light-ray {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, rgba(255,240,200,0) 80%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: rh4-ray 7s ease-in-out infinite alternate;
}
.scn-richard-response-part4 .light-source {
  position: absolute; top: 8%; left: 46%; width: 8%; height: 8%;
  background: radial-gradient(circle, #fff5d0 0%, #ffdc90 40%, transparent 70%);
  border-radius: 50%;
  animation: rh4-source 2s ease-in-out infinite alternate;
}
@keyframes rh4-throne { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) scaleY(1.01) } 100% { transform: rotate(-1deg) } }
@keyframes rh4-crown { 0% { box-shadow: 0 0 15px 4px rgba(230,200,80,0.5); transform: translateY(0) } 50% { box-shadow: 0 0 25px 8px rgba(230,200,80,0.7); transform: translateY(-2px) } 100% { box-shadow: 0 0 15px 4px rgba(230,200,80,0.5); transform: translateY(0) } }
@keyframes rh4-turn { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes rh4-bow { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rh4-ray { 0% { opacity: 0.4; transform: skewX(-2deg) } 50% { opacity: 0.7; transform: skewX(2deg) } 100% { opacity: 0.4; transform: skewX(-2deg) } }
@keyframes rh4-source { 0% { box-shadow: 0 0 15px rgba(255,240,200,0.3) } 100% { box-shadow: 0 0 25px rgba(255,240,200,0.6) } }

/* Scene: richmond-morning-oration */
.scn-richmond-morning-oration {
  background: linear-gradient(180deg, #f5cba0 0%, #d4a373 30%, #9b6d4b 70%, #4a2e1b 100%),
              radial-gradient(ellipse at 30% 20%, #f9d6a0 0%, transparent 60%);
}
.scn-richmond-morning-oration .tent-wall {
  position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(90,60,40,0.6) 35%, rgba(70,50,30,0.7) 50%, transparent 55%) ;
  animation: rmo1-tent 12s ease-in-out infinite alternate;
}
.scn-richmond-morning-oration .dawn-sky {
  position: absolute; top: 0; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 60%, #e67e22 100%);
  border-radius: 30% 70% 0% 0% / 40% 60% 0% 0%;
  filter: blur(8px); opacity: 0.7;
  animation: rmo1-sky 8s ease-in-out infinite alternate;
}
.scn-richmond-morning-oration .sleeping-figure {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1b 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: rmo1-breath 4s ease-in-out infinite;
}
.scn-richmond-morning-oration .sword {
  position: absolute; bottom: 22%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #ccc8b0 0%, #f5e6c8 50%, #ccc8b0 100%);
  border-radius: 2px; box-shadow: 0 0 8px rgba(245,230,200,0.5);
  transform: rotate(20deg); transform-origin: bottom center;
  animation: rmo1-glint 6s ease-in-out infinite;
}
.scn-richmond-morning-oration .dawn-light {
  position: absolute; top: 10%; left: 25%; width: 100px; height: 80px;
  background: radial-gradient(circle, #ffe080 0%, #f9b060 40%, transparent 70%);
  filter: blur(10px); opacity: 0.5;
  animation: rmo1-dawnlight 5s ease-in-out infinite alternate;
}
.scn-richmond-morning-oration .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(30,15,5,0.4) 100%);
  animation: rmo1-shadow 9s ease-in-out infinite alternate;
}
@keyframes rmo1-tent { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes rmo1-sky { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes rmo1-breath { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes rmo1-glint { 0% { opacity: 0.6 } 25% { opacity: 1 } 50% { opacity: 0.5 } 75% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes rmo1-dawnlight { 0% { transform: scale(0.8) translateX(0) } 50% { transform: scale(1.1) translateX(5px) } 100% { transform: scale(0.9) translateX(-3px) } }
@keyframes rmo1-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }

/* Scene: richmond-oration-prayers */
.scn-richmond-oration-prayers {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 40%, #c9802a 70%, #6b3a1a 100%),
              radial-gradient(ellipse at 50% 20%, #ffe699 0%, transparent 50%);
}
.scn-richmond-oration-prayers .sky-dawn {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffd580 0%, #f8b500 60%, transparent 100%);
  animation: rop2-sky 10s ease-in-out infinite alternate;
}
.scn-richmond-oration-prayers .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: rop2-hills 15s ease-in-out infinite alternate;
}
.scn-richmond-oration-prayers .richmond-silhouette {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0515 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rop2-richmond 5s ease-in-out infinite;
}
.scn-richmond-oration-prayers .prayer-ghost1 {
  position: absolute; bottom: 40%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, rgba(255,255,230,0.3) 0%, transparent 70%);
  filter: blur(4px); border-radius: 50%;
  animation: rop2-ghost 9s ease-in-out infinite alternate;
}
.scn-richmond-oration-prayers .prayer-ghost2 {
  position: absolute; bottom: 45%; left: 35%; width: 25px; height: 45px;
  background: radial-gradient(ellipse, rgba(255,255,230,0.2) 0%, transparent 70%);
  filter: blur(4px); border-radius: 50%;
  animation: rop2-ghost 7s ease-in-out infinite alternate 2s;
}
.scn-richmond-oration-prayers .prayer-ghost3 {
  position: absolute; bottom: 38%; right: 25%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,230,0.15) 0%, transparent 70%);
  filter: blur(4px); border-radius: 50%;
  animation: rop2-ghost 11s ease-in-out infinite alternate 1s;
}
.scn-richmond-oration-prayers .cloud-rm {
  position: absolute; top: 15%; left: -10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(255,220,150,0.5) 0%, transparent 100%);
  filter: blur(6px); border-radius: 50%;
  animation: rop2-cloud 40s linear infinite;
}
@keyframes rop2-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rop2-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rop2-richmond { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes rop2-ghost { 0% { transform: translateY(0) scale(0.8); opacity: 0.2 } 50% { transform: translateY(-10px) scale(1.1); opacity: 0.5 } 100% { transform: translateY(5px) scale(0.9); opacity: 0.3 } }
@keyframes rop2-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* Scene: richmond-oration-encourage */
.scn-richmond-oration-encourage {
  background: linear-gradient(180deg, #fdd89a 0%, #f4a460 40%, #c97b3a 70%, #7a4a2a 100%),
              radial-gradient(ellipse at 50% 30%, #ffe68a 0%, transparent 60%);
}
.scn-richmond-oration-encourage .horizon-dawn {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #c97b3a 0%, #7a4a2a 100%);
  border-radius: 0% 0% 40% 40% / 0% 0% 60% 60%;
  animation: roe3-horizon 14s ease-in-out infinite alternate;
}
.scn-richmond-oration-encourage .sunrise {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe68a 0%, #f4a460 40%, transparent 70%);
  filter: blur(12px);
  animation: roe3-sunrise 6s ease-in-out infinite alternate;
}
.scn-richmond-oration-encourage .richmond-horse {
  position: absolute; bottom: 38%; left: 35%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0515 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translate(-50%, 0);
  animation: roe3-horse 4s ease-in-out infinite;
}
.scn-richmond-oration-encourage .banner {
  position: absolute; bottom: 55%; left: 45%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a150a 100%);
  box-shadow: -8px 0 4px 2px rgba(200,120,60,0.3);
  animation: roe3-banner 5s ease-in-out infinite alternate;
}
.scn-richmond-oration-encourage .soldier1 {
  position: absolute; bottom: 35%; left: 25%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: roe3-soldier 7s ease-in-out infinite;
}
.scn-richmond-oration-encourage .soldier2 {
  position: absolute; bottom: 34%; right: 30%; width: 25px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: roe3-soldier 8s ease-in-out infinite 1s;
}
.scn-richmond-oration-encourage .spear {
  position: absolute; bottom: 40%; left: 20%; width: 2px; height: 60px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  transform: rotate(5deg);
  animation: roe3-spear 9s ease-in-out infinite;
}
@keyframes roe3-horizon { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes roe3-sunrise { 0% { transform: scale(0.9); opacity: 0.7 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(1); opacity: 0.8 } }
@keyframes roe3-horse { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes roe3-banner { 0% { transform: rotate(-3deg) scaleX(0.9) } 50% { transform: rotate(3deg) scaleX(1.1) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes roe3-soldier { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes roe3-spear { 0% { transform: rotate(5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(6deg) } }

/* Scene: richard-survey-battlefield */
.scn-richard-survey-battlefield {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 40%, #2a3a3a 70%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a3a3a 0%, transparent 70%);
}
.scn-richard-survey-battlefield .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 60%, transparent 100%);
  animation: rsb4-sky 12s ease-in-out infinite alternate;
}
.scn-richard-survey-battlefield .dead-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 0% 0% 30% 30% / 0% 0% 50% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: rsb4-ground 9s ease-in-out infinite alternate;
}
.scn-richard-survey-battlefield .richard-horse {
  position: absolute; bottom: 30%; left: 45%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translate(-50%, 0);
  animation: rsb4-horse 5s ease-in-out infinite;
}
.scn-richard-survey-battlefield .richard-figure {
  position: absolute; bottom: 38%; left: 45%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-50%, 0);
  animation: rsb4-richard 6s ease-in-out infinite;
}
.scn-richard-survey-battlefield .ratcliff {
  position: absolute; bottom: 28%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsb4-ratcliff 8s ease-in-out infinite;
}
.scn-richard-survey-battlefield .distant-tent {
  position: absolute; bottom: 38%; right: 15%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%;
  transform: scale(0.8);
  opacity: 0.6;
  animation: rsb4-tent 12s ease-in-out infinite alternate;
}
.scn-richard-survey-battlefield .raven {
  position: absolute; top: 20%; left: 20%; width: 12px; height: 8px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: rsb4-raven 14s ease-in-out infinite;
}
@keyframes rsb4-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes rsb4-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rsb4-horse { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rsb4-richard { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-5px) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes rsb4-ratcliff { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rsb4-tent { 0% { opacity: 0.4; transform: scale(0.8) } 50% { opacity: 0.7; transform: scale(0.9) } 100% { opacity: 0.5; transform: scale(0.8) } }
@keyframes rsb4-raven { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(20px,-15px) rotate(5deg) } 100% { transform: translate(10px,-5px) rotate(-5deg) } }

/* clarence-trusts-richard */
.scn-clarence-trusts-richard {
  background: linear-gradient(180deg, #1b1c2a 0%, #2a2a3a 50%, #1f1f2e 100%),
              radial-gradient(ellipse at 50% 80%, #3a3344 0%, transparent 60%);
}
.scn-clarence-trusts-richard .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2e2a38 0%, #3a3644 50%, #2a2634 100%);
  animation: ctr1-wallpulse 8s ease-in-out infinite alternate;
}
.scn-clarence-trusts-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1c1826 0%, #282432 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-clarence-trusts-richard .bars-left,
.scn-clarence-trusts-richard .bars-right {
  position: absolute; top: 5%; bottom: 30%; width: 6px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: ctr1-bars 6s ease-in-out infinite;
}
.scn-clarence-trusts-richard .bars-left { left: 20%; }
.scn-clarence-trusts-richard .bars-right { right: 20%; }
.scn-clarence-trusts-richard .figure-clarence {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2c2a3c 0%, #1f1d2e 50%, #151320 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctr1-figure 4s ease-in-out infinite;
}
.scn-clarence-trusts-richard .shadow-guard {
  position: absolute; bottom: 25%; right: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #12101e 0%, #0a0814 100%);
  border-radius: 40% 40% 30% 30%;
  opacity: 0.7;
  animation: ctr1-guard 5s ease-in-out infinite alternate;
}
.scn-clarence-trusts-richard .lantern {
  position: absolute; top: 40%; left: 10%; width: 10px; height: 12px;
  background: radial-gradient(circle, #d4a050 0%, #a07030 70%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 0 20px 5px rgba(180,120,60,0.6), 0 0 40px 10px rgba(180,120,60,0.3);
  animation: ctr1-lantern 3s ease-in-out infinite alternate;
}
.scn-clarence-trusts-richard .light-spot {
  position: absolute; top: 35%; left: 8%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,160,80,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ctr1-light 4s ease-in-out infinite alternate;
}
.scn-clarence-trusts-richard .rat {
  position: absolute; bottom: 28%; left: 55%; width: 12px; height: 6px;
  background: linear-gradient(90deg, #4a4040 0%, #3a3030 100%);
  border-radius: 50%;
  animation: ctr1-rat 10s linear infinite;
}
@keyframes ctr1-wallpulse {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes ctr1-bars {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes ctr1-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ctr1-guard {
  0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(5px) scaleX(1.05); }
}
@keyframes ctr1-lantern {
  0% { box-shadow: 0 0 15px 3px rgba(180,120,60,0.5); opacity: 0.9; }
  50% { box-shadow: 0 0 28px 6px rgba(200,140,70,0.7); opacity: 1; }
  100% { box-shadow: 0 0 18px 4px rgba(180,120,60,0.5); opacity: 0.85; }
}
@keyframes ctr1-light {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  100% { transform: translate(2px,-3px) scale(1.05); opacity: 0.5; }
}
@keyframes ctr1-rat {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(20px) rotate(-3deg); }
  75% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* clarence-remembers-father */
.scn-clarence-remembers-father {
  background: linear-gradient(180deg, #1e1e30 0%, #2a2a44 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 60%);
}
.scn-clarence-remembers-father .cell-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a2640 0%, #363252 50%, #2a2640 100%);
  border-radius: 0 0 30% 30%;
  animation: ctr2-breathe 10s ease-in-out infinite alternate;
}
.scn-clarence-remembers-father .memory-glow {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse 50% 60%, rgba(180,160,220,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: ctr2-glow 6s ease-in-out infinite alternate;
}
.scn-clarence-remembers-father .ghost-figure {
  position: absolute; top: 8%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a4870 0%, #3a3860 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  opacity: 0.6;
  animation: ctr2-ghost 7s ease-in-out infinite alternate;
}
.scn-clarence-remembers-father .ghost-arm {
  position: absolute; top: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a4870 0%, #3a3860 100%);
  border-radius: 40% 40% 30% 30%;
  opacity: 0.5;
  animation: ctr2-arm 5s ease-in-out infinite alternate;
}
.scn-clarence-remembers-father .left-arm { left: 25%; transform-origin: top center; }
.scn-clarence-remembers-father .right-arm { right: 25%; transform-origin: top center; }
.scn-clarence-remembers-father .clarence-kneel {
  position: absolute; bottom: 18%; left: 35%; width: 26px; height: 45px;
  background: linear-gradient(180deg, #2c2848 0%, #1e1a36 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctr2-kneel 8s ease-in-out infinite;
}
.scn-clarence-remembers-father .prayer-hands {
  position: absolute; bottom: 30%; left: 41%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #3a3660 0%, #2a2648 100%);
  border-radius: 40%;
  animation: ctr2-pray 4s ease-in-out infinite alternate;
}
.scn-clarence-remembers-father .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,240,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,180,240,0.06) 0%, transparent 50%);
  filter: blur(4px);
  animation: ctr2-dust 20s linear infinite;
}
@keyframes ctr2-breathe {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); }
}
@keyframes ctr2-glow {
  0% { opacity: 0.3; transform: scale(0.95); } 100% { opacity: 0.6; transform: scale(1.05); }
}
@keyframes ctr2-ghost {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.4; }
  50% { transform: translateY(-5px) rotate(1deg); opacity: 0.6; }
  100% { transform: translateY(0) rotate(2deg); opacity: 0.3; }
}
@keyframes ctr2-arm {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(20deg); }
}
@keyframes ctr2-kneel {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ctr2-pray {
  0% { transform: scaleY(1); } 100% { transform: scaleY(1.1); }
}
@keyframes ctr2-dust {
  0% { background-position: 0% 0%, 0% 0%; }
  100% { background-position: 50% 50%, -30% 80%; }
}

/* murderers-deliver-doom */
.scn-murderers-deliver-doom {
  background: linear-gradient(180deg, #0e0e18 0%, #1a1830 50%, #0c0c1a 100%),
              radial-gradient(ellipse at 50% 60%, #2a223a 0%, transparent 70%);
}
.scn-murderers-deliver-doom .dark-corridor {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #14122a 0%, #0e0c1c 100%);
  border-radius: 0 0 40% 40%;
  animation: ctr3-wall 12s ease-in-out infinite alternate;
}
.scn-murderers-deliver-doom .torch-glow {
  position: absolute; top: 10%; left: 45%; width: 100px; height: 120px;
  background: radial-gradient(ellipse 50% 60%, rgba(200,120,40,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: ctr3-torch 3s ease-in-out infinite alternate;
}
.scn-murderers-deliver-doom .murderer-1 {
  position: absolute; bottom: 10%; left: 18%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1c1a2c 0%, #0e0c1a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ctr3-m1 4s ease-in-out infinite;
}
.scn-murderers-deliver-doom .murderer-2 {
  position: absolute; bottom: 10%; right: 22%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a1828 0%, #0c0a16 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ctr3-m2 5s ease-in-out infinite;
}
.scn-murderers-deliver-doom .blade {
  position: absolute; bottom: 30%; left: 22%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(100,100,120,0.3);
  transform-origin: bottom center;
  animation: ctr3-blade 2s ease-in-out infinite alternate;
}
.scn-murderers-deliver-doom .clarence-back {
  position: absolute; bottom: 10%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2840 0%, #1a182e 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ctr3-cback 4s ease-in-out infinite;
}
.scn-murderers-deliver-doom .shadow-spread {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ctr3-shadow 8s ease-in-out infinite alternate;
}
.scn-murderers-deliver-doom .chain {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 4px;
  background: repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  animation: ctr3-chain 6s linear infinite;
}
@keyframes ctr3-wall {
  0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; }
}
@keyframes ctr3-torch {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.5; }
  100% { transform: scale(0.95); opacity: 0.35; }
}
@keyframes ctr3-m1 {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(0deg); }
  60% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ctr3-m2 {
  0% { transform: translateX(0) rotate(2deg); }
  40% { transform: translateX(-5px) rotate(0deg); }
  70% { transform: translateX(-10px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes ctr3-blade {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}
@keyframes ctr3-cback {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ctr3-shadow {
  0% { opacity: 0.5; transform: scaleY(1); }
  100% { opacity: 0.7; transform: scaleY(1.1); }
}
@keyframes ctr3-chain {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* murderers-reject-relent */
.scn-murderers-reject-relent {
  background: linear-gradient(180deg, #0f0f1c 0%, #1a1828 40%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 90%, #2a1a2a 0%, transparent 50%);
}
.scn-murderers-reject-relent .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #141020 0%, #1e1a32 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: ctr4-floor 10s ease-in-out infinite alternate;
}
.scn-murderers-reject-relent .wall-shadow {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a162a 0%, #0e0c1a 100%);
  animation: ctr4-walls 8s ease-in-out infinite alternate;
}
.scn-murderers-reject-relent .murderer-stance {
  position: absolute; bottom: 20%; left: 15%; width: 32px; height: 56px;
  background: linear-gradient(180deg, #1c1a2a 0%, #0e0c1a 100%);
  border-radius: 45% 45% 35% 35%;
  transform-origin: bottom center;
  animation: ctr4-stance 5s ease-in-out infinite;
}
.scn-murderers-reject-relent .victim-sprawl {
  position: absolute; bottom: 15%; right: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #2a2840 0%, #1a182e 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: ctr4-sprawl 6s ease-in-out infinite;
}
.scn-murderers-reject-relent .hand-reach {
  position: absolute; bottom: 25%; right: 20%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #3a3654 0%, #2a2840 100%);
  border-radius: 40%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: ctr4-hand 3s ease-in-out infinite alternate;
}
.scn-murderers-reject-relent .blood-pool {
  position: absolute; bottom: 8%; left: 40%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0c 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ctr4-blood 7s ease-in-out infinite alternate;
}
.scn-murderers-reject-relent .flicker-light {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,100,40,0.15) 0%, transparent 70%);
  filter: blur(15px);
  animation: ctr4-flicker 2s ease-in-out infinite alternate;
}
.scn-murderers-reject-relent .dagger-fall {
  position: absolute; top: 10%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  animation: ctr4-dagger 8s ease-in-out infinite;
}
@keyframes ctr4-floor {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes ctr4-walls {
  0% { opacity: 0.8; } 100% { opacity: 0.95; }
}
@keyframes ctr4-stance {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ctr4-sprawl {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes ctr4-hand {
  0% { transform: rotate(30deg) scaleY(1); }
  100% { transform: rotate(40deg) scaleY(1.1); }
}
@keyframes ctr4-blood {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.95); opacity: 0.5; }
}
@keyframes ctr4-flicker {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(0.98); }
}
@keyframes ctr4-dagger {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(10px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-murderers-arrive {
  background: 
    linear-gradient(180deg, #2a241d 0%, #3a2f24 40%, #4a3d30 100%),
    radial-gradient(ellipse at 50% 0%, #6b5238 0%, transparent 70%);
}
.scn-murderers-arrive .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: ma-wall 12s ease-in-out infinite alternate;
}
.scn-murderers-arrive .wall-left {
  position: absolute; inset: 0 50% 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
  animation: ma-wall 12s ease-in-out infinite alternate;
}
.scn-murderers-arrive .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 80%);
  border-radius: 30% 20% 0 0;
}
.scn-murderers-arrive .door {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border: 2px solid #6a4a2a;
  border-radius: 4px;
  transform-origin: left center;
  animation: ma-door 6s ease-in-out infinite;
}
.scn-murderers-arrive .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a18 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ma-figure-walk 4s ease-in-out infinite;
}
.scn-murderers-arrive .figure-right {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #1a1a18 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ma-figure-walk 4s ease-in-out infinite 1s;
}
.scn-murderers-arrive .candle {
  position: absolute; bottom: 34%; left: 50%; width: 4px; height: 10px;
  background: linear-gradient(0deg, #d4a050 0%, #f8d080 60%, #fff8e0 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(1px);
  animation: ma-candle-flicker 0.8s ease-in-out infinite;
}
.scn-murderers-arrive .glow {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,210,140,0.4) 0%, transparent 60%);
  filter: blur(8px);
  animation: ma-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes ma-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ma-door { 0% { transform: skewY(0deg) } 25% { transform: skewY(-15deg) } 50% { transform: skewY(-30deg) } 75% { transform: skewY(-15deg) } 100% { transform: skewY(0deg) } }
@keyframes ma-figure-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(6px) translateY(0) rotate(1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ma-candle-flicker { 0% { opacity: 0.8; transform: scaleY(1) } 25% { opacity: 1; transform: scaleY(1.1) } 50% { opacity: 0.7; transform: scaleY(0.9) } 75% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.8; transform: scaleY(1) } }
@keyframes ma-glow-pulse { 0% { transform: scale(0.9); opacity: 0.5 } 50% { transform: scale(1.1); opacity: 0.8 } 100% { transform: scale(0.95); opacity: 0.6 } }

.scn-richard-urges-speed {
  background:
    linear-gradient(180deg, #1e1714 0%, #2d221b 40%, #3d2e24 100%),
    radial-gradient(ellipse at 50% 50%, #4d3c2f 0%, transparent 70%);
}
.scn-richard-urges-speed .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #33261e 0%, #241a14 100%);
}
.scn-richard-urges-speed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a120e 0%, #2a1e17 100%);
  border-radius: 40% 30% 0 0;
}
.scn-richard-urges-speed .table {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-richard-urges-speed .document {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a480 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: rus-doc 5s ease-in-out infinite;
}
.scn-richard-urges-speed .richard {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #1a1815 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rus-richard 3s ease-in-out infinite;
}
.scn-richard-urges-speed .henchman1 {
  position: absolute; bottom: 18%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1815 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rus-hench 4s ease-in-out infinite 0.5s;
}
.scn-richard-urges-speed .henchman2 {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1815 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rus-hench 4s ease-in-out infinite 1.5s;
}
.scn-richard-urges-speed .lantern {
  position: absolute; bottom: 38%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c060 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,140,60,0.6);
  animation: rus-lantern 2s ease-in-out infinite alternate;
}
@keyframes rus-doc { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes rus-richard { 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 rus-hench { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rus-lantern { 0% { transform: rotate(-5deg); opacity: 0.8 } 50% { transform: rotate(3deg); opacity: 1 } 100% { transform: rotate(-2deg); opacity: 0.9 } }

.scn-clarence-dream-nightmare {
  background:
    linear-gradient(180deg, #0d0b14 0%, #1a1628 40%, #2a2438 100%),
    radial-gradient(ellipse at 50% 30%, #2a1e30 0%, transparent 70%);
}
.scn-clarence-dream-nightmare .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  animation: cnd-shade 8s ease-in-out infinite alternate;
}
.scn-clarence-dream-nightmare .curtain {
  position: absolute; top: 0; left: 80%; right: 0; bottom: 20%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 0 0 0 40%;
  filter: blur(2px);
  animation: cnd-curtain 10s ease-in-out infinite;
}
.scn-clarence-dream-nightmare .bed {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-clarence-dream-nightmare .figure-sleep {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2028 0%, #1a1018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cnd-sleep 6s ease-in-out infinite;
}
.scn-clarence-dream-nightmare .spectre {
  position: absolute; top: 10%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, rgba(200,190,220,0.3) 0%, rgba(180,170,200,0.1) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(4px);
  animation: cnd-spectre 12s ease-in-out infinite;
}
.scn-clarence-dream-nightmare .fog {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(180,170,200,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: cnd-fog 20s linear infinite;
}
.scn-clarence-dream-nightmare .glow-dim {
  position: absolute; bottom: 10%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,220,0.2) 0%, transparent 60%);
  filter: blur(6px);
  animation: cnd-glow 5s ease-in-out infinite alternate;
}
@keyframes cnd-shade { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }
@keyframes cnd-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes cnd-sleep { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cnd-spectre { 0% { opacity: 0.2; transform: translateY(0) scale(1) } 50% { opacity: 0.6; transform: translateY(-10px) scale(1.1) } 100% { opacity: 0.3; transform: translateY(0) scale(0.95) } }
@keyframes cnd-fog { 0% { transform: translateX(0) } 100% { transform: translateX(30px) } }
@keyframes cnd-glow { 0% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 0.5; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.9) } }

.scn-clarence-dream-drowning {
  background:
    linear-gradient(180deg, #0a0e1a 0%, #121b2e 40%, #1a2838 100%),
    radial-gradient(ellipse at 50% 100%, #1a2a40 0%, transparent 70%);
}
.scn-clarence-dream-drowning .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #1a2838 50%, #2a3a4a 100%);
  animation: cdd-sky 15s ease-in-out infinite alternate;
}
.scn-clarence-dream-drowning .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #0a1420 0%, #1a2a3a 60%, #2a3a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cdd-sea 10s ease-in-out infinite;
}
.scn-clarence-dream-drowning .ship {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: cdd-ship 8s ease-in-out infinite;
}
.scn-clarence-dream-drowning .sail {
  position: absolute; bottom: 55%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #c8b8a0 0%, #a09078 100%);
  clip-path: polygon(0 100%, 100% 100%, 50% 0);
  animation: cdd-sail 10s ease-in-out infinite alternate;
}
.scn-clarence-dream-drowning .figure-gloucester {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1818 0%, #0e0c0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdd-figure 5s ease-in-out infinite;
}
.scn-clarence-dream-drowning .figure-clarence {
  position: absolute; bottom: 38%; left: 40%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1818 0%, #0e0c0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdd-figure 5s ease-in-out infinite 1s;
}
.scn-clarence-dream-drowning .lantern {
  position: absolute; bottom: 56%; left: 45%; width: 8px; height: 10px;
  background: radial-gradient(circle, #d0b060 0%, #8a7020 80%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(180,140,60,0.5);
  animation: cdd-lantern 3s ease-in-out infinite alternate;
}
.scn-clarence-dream-drowning .wave {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(20,40,60,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: cdd-wave 6s ease-in-out infinite;
}
@keyframes cdd-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cdd-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cdd-ship { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes cdd-sail { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.05) } 100% { transform: rotate(-3deg) scaleX(1) } }
@keyframes cdd-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cdd-lantern { 0% { transform: rotate(-10deg); opacity: 0.6 } 50% { transform: rotate(5deg); opacity: 0.9 } 100% { transform: rotate(-5deg); opacity: 0.7 } }
@keyframes cdd-wave { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-10px) } }

.scn-richard-enthroned {
  background:
    linear-gradient(180deg, #d4c9b0 0%, #c5b698 30%, #b8a68a 60%, #a59070 100%),
    radial-gradient(ellipse at 50% 0%, #e8dcc4 0%, transparent 60%);
}

.scn-richard-enthroned .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(0deg, #9e8b6e 0%, #b8a68a 40%, #c9b99e 100%);
  animation: re-wall 12s ease-in-out infinite alternate;
}

.scn-richard-enthroned .throne-bg {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #7a6b54 0%, #5c4f3e 60%, #3d3429 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 5% 5%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
  animation: re-throne-bg 8s ease-in-out infinite alternate;
}

.scn-richard-enthroned .step {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(0deg, #8c7c62 0%, #a08d72 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: re-step 6s ease-in-out infinite alternate;
}

.scn-richard-enthroned .throne {
  position: absolute; bottom: 38%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(135deg, #b6984a 0%, #8a7038 50%, #5e4a24 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 12px 20px rgba(0,0,0,0.5);
  animation: re-throne 10s ease-in-out infinite alternate;
}

.scn-richard-enthroned .crown {
  position: absolute; bottom: 58%; left: 47%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #dbb85a 0%, #b8912a 60%, #8a6a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(220,180,80,0.4);
  animation: re-crown 6s ease-in-out infinite alternate;
}

.scn-richard-enthroned .figure-richard {
  position: absolute; bottom: 36%; left: 43%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 70%, #0f0a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: re-figure 12s ease-in-out infinite alternate;
}

.scn-richard-enthroned .sceptre {
  position: absolute; bottom: 36%; left: 50%; width: 2%; height: 28%;
  background: linear-gradient(180deg, #dbb85a 0%, #b8912a 40%, #8a6a1a 100%);
  border-radius: 10% / 5%;
  box-shadow: 0 0 8px 2px rgba(220,180,80,0.3);
  animation: re-sceptre 8s ease-in-out infinite alternate;
}

.scn-richard-enthroned .pillar-left {
  position: absolute; bottom: 0; left: 5%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #d4c9b0 0%, #b8a68a 50%, #9e8b6e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.2);
  animation: re-pillar 20s ease-in-out infinite alternate;
}

.scn-richard-enthroned .pillar-right {
  position: absolute; bottom: 0; right: 5%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #d4c9b0 0%, #b8a68a 50%, #9e8b6e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.2);
  animation: re-pillar 20s ease-in-out infinite alternate;
}

.scn-richard-enthroned .drapery {
  position: absolute; top: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #b04a3a 0%, #8a382a 50%, #5e241a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  filter: blur(3px);
  animation: re-drape 15s ease-in-out infinite alternate;
}

@keyframes re-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes re-throne-bg { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes re-step { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes re-throne { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes re-crown { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes re-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes re-sceptre { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes re-pillar { 0% { filter: brightness(1) } 50% { filter: brightness(1.05) } 100% { filter: brightness(0.95) } }
@keyframes re-drape { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }

.scn-buckingham-assures {
  background:
    linear-gradient(180deg, #d4c9b0 0%, #c5b698 30%, #b8a68a 60%, #a59070 100%),
    radial-gradient(ellipse at 40% 50%, #e8dcc4 0%, transparent 70%);
}

.scn-buckingham-assures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8c7c62 0%, #a59070 40%, #b8a68a 100%);
  border-radius: 0 0 5% 5%;
  animation: ba-floor 14s ease-in-out infinite alternate;
}

.scn-buckingham-assures .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #b8a68a 0%, #c9b99e 60%, #d4c9b0 100%);
  animation: ba-wall 12s ease-in-out infinite alternate;
}

.scn-buckingham-assures .figure-richard {
  position: absolute; bottom: 35%; left: 25%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 70%, #0f0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: ba-richard 10s ease-in-out infinite alternate;
}

.scn-buckingham-assures .figure-buckingham {
  position: absolute; bottom: 35%; left: 55%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 70%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: scaleX(-1);
  animation: ba-buckingham 14s ease-in-out infinite alternate;
}

.scn-buckingham-assures .hand-extend {
  position: absolute; bottom: 48%; left: 40%; width: 6%; height: 4%;
  background: radial-gradient(ellipse, #e0c080 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 8px 16px 4px rgba(0,0,0,0.2);
  animation: ba-hand 5s ease-in-out infinite alternate;
}

.scn-buckingham-assures .light-beam {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 70%);
  filter: blur(15px);
  animation: ba-light 20s ease-in-out infinite alternate;
}

.scn-buckingham-assures .shadow-richard {
  position: absolute; bottom: 10%; left: 22%; width: 25%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ba-shadow 12s ease-in-out infinite alternate;
}

.scn-buckingham-assures .shadow-buckingham {
  position: absolute; bottom: 8%; left: 52%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(6px);
  animation: ba-shadow 12s ease-in-out infinite alternate reverse;
}

@keyframes ba-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ba-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ba-richard { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ba-buckingham { 0% { transform: translateY(0) rotate(0deg) scaleX(-1) } 50% { transform: translateY(-2px) rotate(2deg) scaleX(-1) } 100% { transform: translateY(0) rotate(0deg) scaleX(-1) } }
@keyframes ba-hand { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes ba-light { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ba-shadow { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }

.scn-richard-clarifies {
  background:
    linear-gradient(180deg, #c5b698 0%, #b8a68a 40%, #a59070 100%),
    radial-gradient(ellipse at 50% 30%, #e0d4be 0%, transparent 70%);
}

.scn-richard-clarifies .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #9e8b6e 0%, #b8a68a 40%, #c9b99e 100%);
  animation: rc-wall 8s ease-in-out infinite alternate;
}

.scn-richard-clarifies .figure-richard {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 60%, #0f0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: rc-figure 6s ease-in-out infinite alternate;
}

.scn-richard-clarifies .hand-point {
  position: absolute; bottom: 55%; left: 60%; width: 8%; height: 14%;
  background: linear-gradient(135deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom left;
  animation: rc-hand 4s ease-in-out infinite alternate;
}

.scn-richard-clarifies .shadow-hand {
  position: absolute; bottom: 45%; left: 58%; width: 15%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: rc-shadow 4s ease-in-out infinite alternate;
}

.scn-richard-clarifies .collar {
  position: absolute; bottom: 68%; left: 38%; width: 12%; height: 8%;
  background: radial-gradient(ellipse, #e0c080 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.3);
  animation: rc-collar 8s ease-in-out infinite alternate;
}

.scn-richard-clarifies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #7a6b54 0%, #9e8b6e 100%);
  border-radius: 0 0 5% 5%;
  animation: rc-floor 10s ease-in-out infinite alternate;
}

@keyframes rc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rc-figure { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-4px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes rc-hand { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes rc-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.3) } 100% { transform: translateX(0) scale(1) } }
@keyframes rc-collar { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes rc-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-buckingham-evades {
  background:
    linear-gradient(180deg, #c5b698 0%, #b8a68a 30%, #a59070 60%, #8c7c62 100%),
    radial-gradient(ellipse at 30% 50%, #e8dcc4 0%, transparent 60%);
}

.scn-buckingham-evades .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(0deg, #9e8b6e 0%, #b8a68a 40%, #c9b99e 100%);
  animation: be-wall 14s ease-in-out infinite alternate;
}

.scn-buckingham-evades .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #6a5b44 0%, #8c7c62 100%);
  border-radius: 0 0 5% 5%;
  animation: be-floor 16s ease-in-out infinite alternate;
}

.scn-buckingham-evades .figure-richard {
  position: absolute; bottom: 30%; left: 20%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 70%, #0f0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: be-richard 12s ease-in-out infinite alternate;
}

.scn-buckingham-evades .figure-buckingham {
  position: absolute; bottom: 30%; left: 55%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 70%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-buckingham 10s ease-in-out infinite alternate;
}

.scn-buckingham-evades .shadow-buckingham {
  position: absolute; bottom: 8%; left: 50%; width: 22%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: be-shadow 12s ease-in-out infinite alternate;
}

.scn-buckingham-evades .doorway {
  position: absolute; bottom: 20%; right: 5%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #3d3429 0%, #2a221a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
  animation: be-door 20s ease-in-out infinite alternate;
}

.scn-buckingham-evades .light-shaft {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.1) 0%, transparent 80%);
  filter: blur(20px);
  animation: be-light 25s ease-in-out infinite alternate;
}

@keyframes be-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes be-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes be-richard { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes be-buckingham { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(6px) translateY(-2px) } 50% { transform: translateX(12px) translateY(0) } 75% { transform: translateX(6px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes be-shadow { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes be-door { 0% { filter: brightness(1) } 50% { filter: brightness(0.8) } 100% { filter: brightness(1) } }
@keyframes be-light { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }

.scn-richard-ends-arguing {
  background: linear-gradient(180deg, #f9e0b0 0%, #d4a855 50%, #a08030 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-richard-ends-arguing .sky {
  position: absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c880 100%);
  animation: re-sky 8s ease-in-out infinite alternate;
}
.scn-richard-ends-arguing .ground {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #a08030 0%, #7a5a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-richard-ends-arguing .tent {
  position: absolute; bottom:35%; left:30%; width:120px; height:100px;
  background: linear-gradient(135deg, #c8a050 0%, #906020 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: skewX(-10deg);
  animation: re-tent 12s ease-in-out infinite alternate;
}
.scn-richard-ends-arguing .richard {
  position: absolute; bottom:30%; left:40%; width:40px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: re-figure1 4s ease-in-out infinite;
}
.scn-richard-ends-arguing .elizabeth {
  position: absolute; bottom:32%; right:35%; width:32px; height:70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: re-figure2 4.5s ease-in-out infinite;
}
.scn-richard-ends-arguing .light-ray {
  position: absolute; top:10%; left:20%; width:200px; height:200px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: re-ray 6s ease-in-out infinite alternate;
}
.scn-richard-ends-arguing .dust {
  position: absolute; bottom:20%; left:50%; width:80px; height:20px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: re-dust 10s linear infinite;
}
@keyframes re-sky { 0% { opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes re-tent { 0% { transform: skewX(-10deg) scaleX(1) } 50%{ transform: skewX(-8deg) scaleX(1.02) } 100%{ transform: skewX(-12deg) scaleX(0.98) } }
@keyframes re-figure1 { 0%{ transform: translateX(0) translateY(0) rotate(0deg) } 25%{ transform: translateX(4px) translateY(-1px) rotate(2deg) } 50%{ transform: translateX(0) translateY(0) rotate(-1deg) } 75%{ transform: translateX(-4px) translateY(-1px) rotate(-2deg) } 100%{ transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes re-figure2 { 0%{ transform: translateX(0) translateY(0) rotate(0deg) } 33%{ transform: translateX(-3px) translateY(-1px) rotate(-3deg) } 66%{ transform: translateX(3px) translateY(0) rotate(3deg) } 100%{ transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes re-ray { 0%{ transform: rotate(-5deg) scaleY(1) } 50%{ transform: rotate(0deg) scaleY(1.1) } 100%{ transform: rotate(5deg) scaleY(0.95) } }
@keyframes re-dust { 0%{ transform: translateX(0) scale(1); opacity:0.2 } 50%{ opacity:0.5 } 100%{ transform: translateX(40px) scale(1.5); opacity:0 } }

.scn-richard-promises-victory {
  background: linear-gradient(180deg, #ffd080 0%, #f0a030 40%, #c07010 100%), radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, transparent 70%);
}
.scn-richard-promises-victory .sky-v {
  position: absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #ffc860 100%);
  animation: rv-sky 10s ease-in-out infinite alternate;
}
.scn-richard-promises-victory .hill {
  position: absolute; bottom:25%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #9a7a3a 0%, #5a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-richard-promises-victory .horse {
  position: absolute; bottom:35%; left:50%; width:80px; height:60px;
  margin-left: -40px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform: rotate(-8deg);
  animation: rv-horse 5s ease-in-out infinite alternate;
}
.scn-richard-promises-victory .rider {
  position: absolute; bottom:50%; left:50%; width:30px; height:50px;
  margin-left: -15px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rv-rider 5s ease-in-out infinite alternate;
}
.scn-richard-promises-victory .banner {
  position: absolute; bottom:60%; left:55%; width:16px; height:40px;
  background: linear-gradient(180deg, #a83a1a 0%, #602010 100%); /* desaturated red - terracotta */
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rv-banner 3s ease-in-out infinite alternate;
}
.scn-richard-promises-victory .sunburst {
  position: absolute; top:5%; left:45%; width:120px; height:120px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 60%);
  filter: blur(10px);
  animation: rv-sun 8s ease-in-out infinite alternate;
}
.scn-richard-promises-victory .cloud-v1 {
  position: absolute; top:12%; left:10%; width:100px; height:20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: rv-cloud1 40s linear infinite;
}
.scn-richard-promises-victory .cloud-v2 {
  position: absolute; top:20%; right:15%; width:70px; height:16px;
  background: linear-gradient(90deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: rv-cloud2 50s linear infinite reverse;
}
@keyframes rv-sky { 0% { opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes rv-horse { 0% { transform: rotate(-8deg) translateY(0) } 50%{ transform: rotate(-6deg) translateY(-3px) } 100%{ transform: rotate(-10deg) translateY(0) } }
@keyframes rv-rider { 0% { transform: translateY(0) rotate(0deg) } 50%{ transform: translateY(-3px) rotate(2deg) } 100%{ transform: translateY(0) rotate(-2deg) } }
@keyframes rv-banner { 0% { transform: translateX(0) rotate(-10deg) } 50%{ transform: translateX(2px) rotate(0deg) } 100%{ transform: translateX(0) rotate(10deg) } }
@keyframes rv-sun { 0% { transform: scale(0.9) } 50%{ transform: scale(1.15) } 100%{ transform: scale(1) } }
@keyframes rv-cloud1 { 0% { transform: translateX(-50px) } 100%{ transform: translateX(120vw) } }
@keyframes rv-cloud2 { 0% { transform: translateX(0) } 100%{ transform: translateX(-100vw) } }

.scn-elizabeth-questions-titles {
  background: linear-gradient(180deg, #b8a090 0%, #8a7060 40%, #5a4a3a 100%), radial-gradient(ellipse at 30% 20%, #d0c0b0 0%, transparent 60%);
}
.scn-elizabeth-questions-titles .wall {
  position: absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #b8a090 0%, #7a6a5a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
}
.scn-elizabeth-questions-titles .window-q {
  position: absolute; top:20%; left:35%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, #ffe0b0 0%, #f0c080 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.3), 0 0 30px rgba(255,200,100,0.2);
  animation: eq-window 9s ease-in-out infinite alternate;
}
.scn-elizabeth-questions-titles .letter {
  position: absolute; bottom:30%; left:30%; width:60px; height:40px;
  background: linear-gradient(135deg, #f5e0c0 0%, #d0b890 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: eq-letter 6s ease-in-out infinite alternate;
}
.scn-elizabeth-questions-titles .figure-q {
  position: absolute; bottom:25%; right:25%; width:35px; height:75px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eq-figure 4s ease-in-out infinite;
}
.scn-elizabeth-questions-titles .shadow {
  position: absolute; bottom:0; left:20%; right:0; height:40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%);
  filter: blur(10px);
  animation: eq-shadow 7s ease-in-out infinite alternate;
}
.scn-elizabeth-questions-titles .teardrop {
  position: absolute; bottom:40%; left:50%; width:6px; height:10px;
  background: radial-gradient(circle at 50% 30%, #80b8e0 0%, #306090 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: eq-tear 2s ease-in-out infinite;
}
@keyframes eq-window { 0% { box-shadow: inset 0 0 20px rgba(255,200,100,0.3), 0 0 30px rgba(255,200,100,0.2); opacity:0.8 } 50%{ box-shadow: inset 0 0 30px rgba(255,200,100,0.5), 0 0 40px rgba(255,200,100,0.3); opacity:1 } 100%{ box-shadow: inset 0 0 15px rgba(255,200,100,0.2), 0 0 20px rgba(255,200,100,0.1); opacity:0.7 } }
@keyframes eq-letter { 0% { transform: rotate(-5deg) translateY(0) } 50%{ transform: rotate(-3deg) translateY(-3px) } 100%{ transform: rotate(-7deg) translateY(0) } }
@keyframes eq-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25%{ transform: translateX(2px) translateY(-1px) rotate(1deg) } 50%{ transform: translateX(0) translateY(0) rotate(-1deg) } 75%{ transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100%{ transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes eq-shadow { 0% { opacity:0.6 } 50%{ opacity:0.9 } 100%{ opacity:0.5 } }
@keyframes eq-tear { 0% { transform: translateY(0) scale(1); opacity:0.8 } 50%{ transform: translateY(15px) scale(0.8); opacity:0.3 } 100%{ transform: translateY(0) scale(1); opacity:0.8 } }

.scn-elizabeth-counters-war {
  background: linear-gradient(180deg, #d4b888 0%, #a08050 40%, #705030 100%), radial-gradient(ellipse at 50% 0%, #e0c090 0%, transparent 60%);
}
.scn-elizabeth-counters-war .ground-ec {
  position: absolute; bottom:10%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3010 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-elizabeth-counters-war .mountain {
  position: absolute; bottom:25%; left:0; right:0; height:40%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 20% 20%, 40% 50%, 60% 10%, 80% 40%, 100% 100%);
  animation: ec-mtn 20s ease-in-out infinite alternate;
}
.scn-elizabeth-counters-war .queen {
  position: absolute; bottom:15%; left:25%; width:38px; height:80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-queen 5s ease-in-out infinite;
}
.scn-elizabeth-counters-war .child {
  position: absolute; bottom:18%; left:35%; width:22px; height:45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-child 4.5s ease-in-out infinite alternate;
}
.scn-elizabeth-counters-war .spear {
  position: absolute; bottom:40%; left:50%; width:4px; height:60px;
  background: linear-gradient(180deg, #705030 0%, #3a2010 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: ec-spear 8s ease-in-out infinite alternate;
}
.scn-elizabeth-counters-war .flag {
  position: absolute; bottom:55%; left:52%; width:20px; height:30px;
  background: linear-gradient(135deg, #a0461a 0%, #602810 100%); /* rust */
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ec-flag 3s ease-in-out infinite alternate;
}
.scn-elizabeth-counters-war .dust-ec {
  position: absolute; bottom:12%; left:60%; width:60px; height:15px;
  background: radial-gradient(circle, rgba(180,140,80,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: ec-dust 12s linear infinite;
}
.scn-elizabeth-counters-war .bird {
  position: absolute; top:10%; right:20%; width:20px; height:12px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-20deg);
  animation: ec-bird 7s ease-in-out infinite alternate;
}
@keyframes ec-mtn { 0% { clip-path: polygon(0% 100%, 20% 20%, 40% 50%, 60% 10%, 80% 40%, 100% 100%) } 50%{ clip-path: polygon(0% 100%, 18% 22%, 42% 48%, 62% 12%, 78% 42%, 100% 100%) } 100%{ clip-path: polygon(0% 100%, 22% 18%, 38% 52%, 58% 8%, 82% 38%, 100% 100%) } }
@keyframes ec-queen { 0%{ transform: translateX(0) translateY(0) rotate(0deg) } 33%{ transform: translateX(3px) translateY(-2px) rotate(2deg) } 66%{ transform: translateX(-2px) translateY(0) rotate(-2deg) } 100%{ transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ec-child { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(4px) rotate(3deg) } 100%{ transform: translateX(0) rotate(-3deg) } }
@keyframes ec-spear { 0%{ transform: rotate(15deg) translateX(0) } 50%{ transform: rotate(18deg) translateX(2px) } 100%{ transform: rotate(12deg) translateX(0) } }
@keyframes ec-flag { 0%{ transform: rotate(0deg) scaleY(1) } 50%{ transform: rotate(10deg) scaleY(1.1) } 100%{ transform: rotate(-10deg) scaleY(0.9) } }
@keyframes ec-dust { 0%{ transform: translateX(0) scale(1); opacity:0.3 } 50%{ opacity:0.6 } 100%{ transform: translateX(30px) scale(1.5); opacity:0 } }
@keyframes ec-bird { 0%{ transform: translateX(0) translateY(0) rotate(-20deg) } 33%{ transform: translateX(8px) translateY(-3px) rotate(-15deg) } 66%{ transform: translateX(-5px) translateY(2px) rotate(-25deg) } 100%{ transform: translateX(0) translateY(0) rotate(-20deg) } }

.scn-item-malmsey-butt {
  background: linear-gradient(160deg, #1a1228 0%, #2c1a30 40%, #0d0818 100%);
}
.scn-item-malmsey-butt .wall-back {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #3a2a3e 0%, transparent 70%);
  animation: smb-wall 15s ease-in-out infinite alternate;
}
.scn-item-malmsey-butt .barrel {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 150px; transform: translateX(-50%) scaleX(0.85);
  background: linear-gradient(180deg, #4a2e1e 0%, #3a2216 50%, #2a1a10 100%);
  border-radius: 20% 20% 25% 25% / 40% 40% 30% 30%;
  box-shadow: 0 12px 20px rgba(0,0,0,0.7), inset 0 -6px 10px rgba(0,0,0,0.5);
}
.scn-item-malmsey-butt .barrel-lid {
  position: absolute; bottom: 38%; left: 50%; width: 100px; height: 18px; transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3e2e 0%, #7a5a3e 50%, #3a2216 100%);
  border-radius: 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
}
.scn-item-malmsey-butt .figure-hands {
  position: absolute; bottom: 14%; left: 38%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 10%, #c8b89a 0%, #8a7a5a 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 30% 30%;
  animation: smb-hands 6s ease-in-out infinite;
}
.scn-item-malmsey-butt .candle {
  position: absolute; bottom: 42%; left: 58%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #ffe0a0 0%, #e0a050 80%, #804020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,0.3);
  animation: smb-candle 3s ease-in-out infinite alternate;
}
.scn-item-malmsey-butt .shadow-pool {
  position: absolute; bottom: 8%; left: 30%; width: 160px; height: 40px;
  background: radial-gradient(ellipse, rgba(10,5,15,0.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: smb-pool 8s ease-in-out infinite;
}
.scn-item-malmsey-butt .drip {
  position: absolute; bottom: 35%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2e1e 100%);
  border-radius: 50% 50% 30% 30%;
  animation: smb-drip 4s ease-in-out infinite;
}
@keyframes smb-wall { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes smb-hands { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px,-3px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes smb-candle { 0% { opacity: 0.7; box-shadow: 0 0 10px 4px #ffa040 } 50% { opacity: 1; box-shadow: 0 0 28px 12px #ffb860 } 100% { opacity: 0.8; box-shadow: 0 0 14px 6px #ffa040 } }
@keyframes smb-pool { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.15) } 100% { transform: scaleX(1) } }
@keyframes smb-drip { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(6px) scaleY(1.3) opacity: 0.6 } 100% { transform: translateY(0) scaleY(1) } }

.scn-second-murderer-repentance {
  background: linear-gradient(180deg, #1c2128 0%, #2a2e38 40%, #10141a 100%), radial-gradient(ellipse at 50% 100%, #2a2e38 0%, transparent 60%);
}
.scn-second-murderer-repentance .stone-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, rgba(80,80,90,0.2) 0%, rgba(100,100,110,0.1) 100%);
  isolation: isolate; overflow: hidden;
}
.scn-second-murderer-repentance .window-grate {
  position: absolute; top: 14%; right: 12%; width: 50px; height: 60px;
  background: #1a1a22; border: 4px solid #4a4a5a; border-radius: 4px;
  box-shadow: inset 0 0 0 2px #2a2a3a;
  animation: smr-grate 20s ease-in-out infinite alternate;
}
.scn-second-murderer-repentance .kneeling-figure {
  position: absolute; bottom: 22%; left: 32%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a44 0%, #1a1a22 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: smr-kneel 5s ease-in-out infinite;
}
.scn-second-murderer-repentance .standing-figure {
  position: absolute; bottom: 20%; left: 56%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #4a4a54 0%, #2a2a32 100%);
  border-radius: 35% 35% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: smr-stand 8s ease-in-out infinite;
}
.scn-second-murderer-repentance .dagger {
  position: absolute; bottom: 36%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #c0c0c8 0%, #808090 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  animation: smr-dagger 4s ease-in-out infinite;
}
.scn-second-murderer-repentance .coins-spot {
  position: absolute; bottom: 18%; left: 44%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #c8a050 0%, #886030 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,80,0.4);
}
.scn-second-murderer-repentance .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a2a32 0%, #1a1a22 50%, #2a2a32 100%);
  border-top: 3px solid #3a3a44;
}
@keyframes smr-grate { 0% { opacity: 0.3 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }
@keyframes smr-kneel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes smr-stand { 0% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes smr-dagger { 0% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(20deg) } }

.scn-king-edward-reconciliation {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4b0 50%, #c8a87a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-king-edward-reconciliation .throne-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: radial-gradient(ellipse at 50% 30%, #d4b896 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-king-edward-reconciliation .king-silhouette {
  position: absolute; bottom: 12%; left: 50%; width: 50px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ker-king 12s ease-in-out infinite;
}
.scn-king-edward-reconciliation .peer-left {
  position: absolute; bottom: 14%; left: 30%; width: 40px; height: 88px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ker-peer-l 8s ease-in-out infinite;
}
.scn-king-edward-reconciliation .peer-right {
  position: absolute; bottom: 14%; right: 30%; width: 40px; height: 88px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ker-peer-r 8s ease-in-out infinite 2s;
}
.scn-king-edward-reconciliation .floor-chequer {
  position: absolute; bottom: 0; left: 0; right: 0; height: 14%;
  background: repeating-linear-gradient(90deg, #c8b098 0px, #c8b098 18px, #a89078 18px, #a89078 36px);
  border-top: 2px solid #b09880;
}
.scn-king-edward-reconciliation .light-ray {
  position: absolute; top: 5%; left: 42%; width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%);
  transform: rotate(10deg);
  animation: ker-ray 9s ease-in-out infinite alternate;
}
.scn-king-edward-reconciliation .scepter-glow {
  position: absolute; bottom: 48%; left: 50%; width: 8px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #d0a050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 16px 6px rgba(255,208,128,0.5);
  animation: ker-scepter 4s ease-in-out infinite;
}
@keyframes ker-king { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ker-peer-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes ker-peer-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes ker-ray { 0% { opacity: 0.2 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }
@keyframes ker-scepter { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(255,208,128,0.3) } 50% { opacity: 1; box-shadow: 0 0 24px 10px rgba(255,208,128,0.6) } 100% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(255,208,128,0.4) } }

.scn-rivers-hastings-reconcile {
  background: linear-gradient(180deg, #e8dfd0 0%, #d4c8b8 50%, #b8a898 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-rivers-hastings-reconcile .window-arch {
  position: absolute; top: 8%; left: 20%; width: 120px; height: 100px;
  background: #c8b8a8; border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(200,180,160,0.6);
}
.scn-rivers-hastings-reconcile .figure-rivers {
  position: absolute; bottom: 16%; left: 32%; width: 38px; height: 84px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom right;
  animation: rhr-fig-l 6s ease-in-out infinite;
}
.scn-rivers-hastings-reconcile .figure-hastings {
  position: absolute; bottom: 16%; right: 32%; width: 38px; height: 84px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: rhr-fig-r 6s ease-in-out infinite 1s;
}
.scn-rivers-hastings-reconcile .hands-clasp {
  position: absolute; bottom: 42%; left: 50%; width: 24px; height: 20px; transform: translateX(-50%);
  background: #b09880; border-radius: 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rhr-hands 8s ease-in-out infinite;
}
.scn-rivers-hastings-reconcile .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 16%;
  background: repeating-linear-gradient(90deg, #c8b8a8 0px, #c8b8a8 24px, #b8a898 24px, #b8a898 48px);
}
.scn-rivers-hastings-reconcile .wall-panel {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #d8c8b8 0%, #c8b8a8 100%);
  border-bottom: 2px solid #b8a898;
}
.scn-rivers-hastings-reconcile .light-patch {
  position: absolute; top: 12%; left: 35%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,250,240,0.2) 0%, transparent 70%);
  animation: rhr-light 12s ease-in-out infinite alternate;
}
@keyframes rhr-fig-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes rhr-fig-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes rhr-hands { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes rhr-light { 0% { opacity: 0.2 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* one block per scene id. Append to style.css. */

/* margaret-farewell (dark, bitter) */
.scn-margaret-farewell {
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 40%, #2c2240 70%, #3a2a4a 100%), radial-gradient(ellipse at 50% 30%, #4a2a5a 0%, transparent 70%);
}
.scn-margaret-farewell .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #14142a 0%, #1a1a36 50%, transparent 100%); animation: mf-sky 8s ease-in-out infinite alternate; }
.scn-margaret-farewell .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #c0b0d0 0%, #8a7a9a 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(138,122,154,.4); animation: mf-moon 12s ease-in-out infinite; }
.scn-margaret-farewell .castle { position:absolute; bottom:35%; left:10%; width:35%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); clip-path: polygon(8% 0%, 92% 0%, 100% 100%, 0% 100%); animation: mf-castle 20s ease-in-out infinite; }
.scn-margaret-farewell .path { position:absolute; bottom:20%; left:0; right:0; height:18%; background: linear-gradient(90deg, transparent 0%, #2a1a2a 20%, #3a2a3a 50%, #2a1a2a 80%, transparent 100%); border-radius:50% 50% 0 0; animation: mf-path 6s ease-in-out infinite; }
.scn-margaret-farewell .figure-mf { position:absolute; bottom:22%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 6px rgba(0,0,0,.5); animation: mf-figure 4s ease-in-out infinite; }
.scn-margaret-farewell .crown { position:absolute; bottom:28%; left:48%; width:16px; height:10px; background: linear-gradient(180deg, #c0a84a 0%, #a08030 100%); border-radius:50% 50% 0 0; box-shadow: 0 0 8px #d0b050; animation: mf-crown 6s ease-in-out infinite; }
.scn-margaret-farewell .drift-leaf { position:absolute; top:20%; left:20%; width:12px; height:8px; background: radial-gradient(circle at 50% 50%, #4a3a2a 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: mf-leaf 25s linear infinite; }
@keyframes mf-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes mf-moon { 0% { transform: translateY(0); box-shadow: 0 0 20px 8px rgba(138,122,154,.4); } 50% { transform: translateY(-4px); box-shadow: 0 0 28px 12px rgba(138,122,154,.6); } 100% { transform: translateY(0); box-shadow: 0 0 20px 8px rgba(138,122,154,.4); } }
@keyframes mf-castle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes mf-path { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes mf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes mf-crown { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes mf-leaf { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:.6; } 25% { transform: translateX(20px) translateY(10px) rotate(45deg); opacity:.9; } 50% { transform: translateX(40px) translateY(-5px) rotate(90deg); opacity:.6; } 75% { transform: translateX(60px) translateY(15px) rotate(135deg); opacity:.8; } 100% { transform: translateX(80px) translateY(0) rotate(180deg); opacity:0; } }

/* margaret-teaches (dark, grim) */
.scn-margaret-teaches {
  background: linear-gradient(180deg, #0e1a1a 0%, #142422 40%, #1a2a28 70%, #0e1e1c 100%), radial-gradient(ellipse at 30% 60%, #1e3a36 0%, transparent 70%);
}
.scn-margaret-teaches .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a1414 0%, #0e1a18 50%, #14201e 100%); animation: mt-bg 10s ease-in-out infinite; }
.scn-margaret-teaches .table { position:absolute; bottom:22%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mt-table 8s ease-in-out infinite; }
.scn-margaret-teaches .candle { position:absolute; bottom:30%; left:35%; width:8px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 16px 6px #d0a040; animation: mt-candle 3s ease-in-out infinite; }
.scn-margaret-teaches .book { position:absolute; bottom:28%; left:42%; width:30px; height:20px; background: linear-gradient(180deg, #c06040 0%, #a04020 100%); border-radius:10% 10% 3% 3%; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: mt-book 6s ease-in-out infinite; }
.scn-margaret-teaches .teacher { position:absolute; bottom:24%; left:25%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-teacher 9s ease-in-out infinite; }
.scn-margaret-teaches .listener { position:absolute; bottom:24%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-listener 10s ease-in-out infinite; }
.scn-margaret-teaches .window-lite { position:absolute; top:10%; right:10%; width:40px; height:50px; background: linear-gradient(180deg, #2a3a3a 0%, #2a3a3a 20%, #4a5a5a 20%, #4a5a5a 80%, #2a3a3a 80%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); border-radius:10% 10% 0 0; animation: mt-window 20s ease-in-out infinite; }
@keyframes mt-bg { 0% { opacity:.8; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes mt-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes mt-candle { 0% { box-shadow: 0 0 12px 4px #d0a040; opacity:.9; } 50% { box-shadow: 0 0 20px 8px #d0a040; opacity:1; } 100% { box-shadow: 0 0 12px 4px #d0a040; opacity:.9; } }
@keyframes mt-book { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes mt-teacher { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.01); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mt-listener { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mt-window { 0% { box-shadow: inset 0 0 0 2px #2a3a3a; } 50% { box-shadow: inset 0 0 0 4px #3a4a4a; } 100% { box-shadow: inset 0 0 0 2px #2a3a3a; } }

/* duchess-agrees-join (dark, sorrowful) */
.scn-duchess-agrees-join {
  background: linear-gradient(180deg, #1a1020 0%, #2a1830 40%, #3a2040 70%, #2a1830 100%), radial-gradient(ellipse at 50% 80%, #4a2850 0%, transparent 70%);
}
.scn-duchess-agrees-join .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1020 0%, #2a1830 50%, #1a1020 100%); animation: da-bg 14s ease-in-out infinite; }
.scn-duchess-agrees-join .banner { position:absolute; top:5%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #a03020 0%, #601010 100%); border-radius:0 0 10% 10%; box-shadow: 0 0 12px 2px rgba(160,48,32,.3); animation: da-banner 12s ease-in-out infinite; }
.scn-duchess-agrees-join .drum { position:absolute; bottom:18%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: da-drum 3s ease-in-out infinite; }
.scn-duchess-agrees-join .duchess { position:absolute; bottom:22%; left:35%; width:22px; height:46px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-duchess 8s ease-in-out infinite; }
.scn-duchess-agrees-join .queen { position:absolute; bottom:22%; right:35%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-queen 8s ease-in-out infinite; }
.scn-duchess-agrees-join .torch { position:absolute; bottom:28%; left:55%; width:6px; height:16px; background: linear-gradient(180deg, #d07030 0%, #802010 100%); border-radius:4px; box-shadow: 0 0 20px 6px #d07030; animation: da-torch 2s ease-in-out infinite; }
.scn-duchess-agrees-join .spark { position:absolute; bottom:30%; left:55%; width:4px; height:4px; background:#f0a050; border-radius:50%; box-shadow: 0 0 8px 2px #f0a050; animation: da-spark 0.5s linear infinite; }
@keyframes da-bg { 0% { opacity:.85; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes da-banner { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes da-drum { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes da-duchess { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes da-queen { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes da-torch { 0% { box-shadow: 0 0 16px 4px #d07030; opacity:.8; } 50% { box-shadow: 0 0 24px 8px #d07030; opacity:1; } 100% { box-shadow: 0 0 16px 4px #d07030; opacity:.8; } }
@keyframes da-spark { 0% { transform: translateY(0) scale(1); opacity:1; } 100% { transform: translateY(-12px) scale(0); opacity:0; } }

/* elizabeth-accuses (sunlit, angry) */
.scn-elizabeth-accuses {
  background: linear-gradient(180deg, #f5e8c0 0%, #d4b88a 40%, #b89a6a 70%, #d4b88a 100%), radial-gradient(ellipse at 50% 20%, #ffe8a0 0%, transparent 60%);
}
.scn-elizabeth-accuses .sun { position:absolute; top:5%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #fff4c0 0%, #f0d080 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,208,128,.5); animation: ea-sun 20s ease-in-out infinite; }
.scn-elizabeth-accuses .pillar-left { position:absolute; bottom:0; left:10%; width:8%; height:90%; background: linear-gradient(180deg, #c8b896 0%, #a09078 100%); border-radius:6% 6% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.15); animation: ea-pillar 30s ease-in-out infinite; }
.scn-elizabeth-accuses .pillar-right { position:absolute; bottom:0; right:10%; width:8%; height:90%; background: linear-gradient(180deg, #c8b896 0%, #a09078 100%); border-radius:6% 6% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.15); animation: ea-pillar 30s ease-in-out infinite reverse; }
.scn-elizabeth-accuses .throne { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:60px; height:80px; background: linear-gradient(180deg, #a08050 0%, #806030 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: ea-throne 12s ease-in-out infinite; }
.scn-elizabeth-accuses .richard { position:absolute; bottom:22%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a2020 0%, #0e0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: ea-richard 9s ease-in-out infinite; }
.scn-elizabeth-accuses .elizabeth { position:absolute; bottom:22%; right:40%; width:22px; height:52px; background: linear-gradient(180deg, #c05840 0%, #602820 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ea-elizabeth 4s ease-in-out infinite; }
.scn-elizabeth-accuses .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #b09878 0%, #887060 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.15); animation: ea-floor 15s ease-in-out infinite; }
@keyframes ea-sun { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 20px rgba(240,208,128,.5); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 50px 25px rgba(240,208,128,.6); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ea-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ea-throne { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ea-richard { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ea-elizabeth { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(8px) translateY(0) rotate(3deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(16px) translateY(0) rotate(-3deg); } }
@keyframes ea-floor { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.9; } }

/* Scene: elizabeth-fears-sacrifice */
.scn-elizabeth-fears-sacrifice {
  background: linear-gradient(135deg, #f9e4c0 0%, #d4a76a 40%, #b8864a 70%, #9a6a3a 100%), radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 50%);
}
.scn-elizabeth-fears-sacrifice .scene-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 220, 160, 0.3) 0%, rgba(180, 120, 60, 0.2) 100%);
  animation: esfs-scene 12s ease-in-out infinite alternate;
}
.scn-elizabeth-fears-sacrifice .sun-rays {
  position: absolute; top: -10%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255, 240, 180, 0.6) 0%, transparent 70%);
  animation: esfs-rays 8s ease-in-out infinite alternate;
}
.scn-elizabeth-fears-sacrifice .kneeling-fig {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 55px; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  animation: esfs-kneel 4s ease-in-out infinite;
}
.scn-elizabeth-fears-sacrifice .outstretched-arm-left {
  position: absolute; bottom: 38%; left: 45%; width: 22px; height: 6px;
  background: linear-gradient(90deg, #c8a070 0%, #a08050 100%);
  border-radius: 50%; transform-origin: right center;
  animation: esfs-arm-l 3s ease-in-out infinite alternate;
}
.scn-elizabeth-fears-sacrifice .outstretched-arm-right {
  position: absolute; bottom: 38%; right: 45%; width: 22px; height: 6px;
  background: linear-gradient(270deg, #c8a070 0%, #a08050 100%);
  border-radius: 50%; transform-origin: left center;
  animation: esfs-arm-r 3s ease-in-out infinite alternate;
}
.scn-elizabeth-fears-sacrifice .veil {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 40px;
  background: linear-gradient(180deg, rgba(255, 255, 240, 0.3) 0%, rgba(255, 255, 240, 0.1) 100%);
  border-radius: 60% 40% 50% 50% / 80% 60% 60% 40%; filter: blur(2px);
  animation: esfs-veil 6s ease-in-out infinite;
}
.scn-elizabeth-fears-sacrifice .crown {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 15px; background: linear-gradient(180deg, #d4a76a 0%, #b8864a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: esfs-crown 4s ease-in-out infinite;
}
.scn-elizabeth-fears-sacrifice .shadow-fig {
  position: absolute; bottom: 22%; left: 42%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esfs-shadow 5s ease-in-out infinite;
}
.scn-elizabeth-fears-sacrifice .tear {
  position: absolute; bottom: 45%; left: 46%; width: 4px; height: 6px;
  background: radial-gradient(circle, rgba(180, 200, 240, 0.9) 0%, rgba(150, 170, 220, 0.5) 100%);
  border-radius: 50%; box-shadow: 0 0 4px 2px rgba(150, 170, 220, 0.4);
  animation: esfs-tear 2s ease-in-out infinite;
}
@keyframes esfs-scene { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes esfs-rays { 0% { transform: scale(0.9) rotate(0deg); } 50% { transform: scale(1.1) rotate(2deg); } 100% { transform: scale(0.95) rotate(-1deg); } }
@keyframes esfs-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes esfs-arm-l { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-25deg) translateX(-3px); } }
@keyframes esfs-arm-r { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-5px); } 100% { transform: rotate(25deg) translateX(3px); } }
@keyframes esfs-veil { 0% { transform: translateY(0) rotate(-5deg); opacity: 0.7; } 50% { transform: translateY(-8px) rotate(0deg); opacity: 1; } 100% { transform: translateY(0) rotate(5deg); opacity: 0.8; } }
@keyframes esfs-crown { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.95); } }
@keyframes esfs-shadow { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-5px) rotate(-1deg); } }
@keyframes esfs-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateY(12px) scaleY(0.3); opacity: 0.2; } 100% { transform: translateY(0) scaleY(1); opacity: 0.8; } }

/* Scene: elizabeth-claims-otherwise */
.scn-elizabeth-claims-otherwise {
  background: linear-gradient(135deg, #fef0d0 0%, #ebd6a0 40%, #d4b780 70%, #b8965a 100%), radial-gradient(ellipse at 30% 10%, #fff8e0 0%, transparent 60%);
}
.scn-elizabeth-claims-otherwise .scene-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 235, 190, 0.3) 0%, rgba(180, 140, 80, 0.2) 100%);
  animation: esco-scene 15s ease-in-out infinite alternate;
}
.scn-elizabeth-claims-otherwise .sun-rays {
  position: absolute; top: -15%; left: 20%; width: 50%; height: 70%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255, 245, 200, 0.5) 0%, transparent 80%);
  animation: esco-rays 10s ease-in-out infinite alternate;
}
.scn-elizabeth-claims-otherwise .mother-fig {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 35px; height: 60px; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  animation: esco-mother 5s ease-in-out infinite;
}
.scn-elizabeth-claims-otherwise .child-left {
  position: absolute; bottom: 22%; left: 44%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #d4b780 0%, #b8965a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: esco-child1 6s ease-in-out infinite;
}
.scn-elizabeth-claims-otherwise .child-right {
  position: absolute; bottom: 22%; right: 44%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #d4b780 0%, #b8965a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: esco-child2 6s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-elizabeth-claims-otherwise .protective-aura {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255, 215, 140, 0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: esco-aura 8s ease-in-out infinite;
}
.scn-elizabeth-claims-otherwise .cradle {
  position: absolute; bottom: 15%; left: 48%; width: 22px; height: 14px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: esco-cradle 4s ease-in-out infinite;
}
.scn-elizabeth-claims-otherwise .star {
  position: absolute; top: 20%; right: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffe580 0%, #ffcc40 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255, 204, 64, 0.5);
  animation: esco-star 3s ease-in-out infinite alternate;
}
@keyframes esco-scene { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes esco-rays { 0% { transform: scale(0.95) rotate(-2deg); } 50% { transform: scale(1.1) rotate(0deg); } 100% { transform: scale(1) rotate(2deg); } }
@keyframes esco-mother { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes esco-child1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes esco-child2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes esco-aura { 0% { transform: scale(0.9); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }
@keyframes esco-cradle { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes esco-star { 0% { transform: scale(0.8) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(180deg); opacity: 1; } 100% { transform: scale(0.9) rotate(0deg); opacity: 0.8; } }

/* Scene: richard-denies-cousins */
.scn-richard-denies-cousins {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b78a 40%, #a88a5e 70%, #7a5a3a 100%), radial-gradient(ellipse at 60% 30%, #fff5d0 0%, transparent 50%);
}
.scn-richard-denies-cousins .scene-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 230, 180, 0.3) 0%, rgba(120, 80, 40, 0.2) 100%);
  animation: rdcn-scene 14s ease-in-out infinite alternate;
}
.scn-richard-denies-cousins .sun-rays {
  position: absolute; top: -5%; left: 40%; width: 45%; height: 65%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255, 245, 190, 0.5) 0%, transparent 70%);
  animation: rdcn-rays 9s ease-in-out infinite alternate;
}
.scn-richard-denies-cousins .richard-fig {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 58px; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  background: linear-gradient(180deg, #b8965a 0%, #8a6a3a 100%);
  animation: rdcn-richard 4s ease-in-out infinite;
}
.scn-richard-denies-cousins .mask {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 12px; background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rdcn-mask 3s ease-in-out infinite;
}
.scn-richard-denies-cousins .shadow {
  position: absolute; bottom: 22%; left: 44%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdcn-shadow 6s ease-in-out infinite;
}
.scn-richard-denies-cousins .knife {
  position: absolute; bottom: 30%; right: 38%; width: 18px; height: 4px;
  background: linear-gradient(90deg, #8a7a6a 0%, #c0b0a0 50%, #8a7a6a 100%);
  border-radius: 40%;
  transform: rotate(30deg);
  animation: rdcn-knife 4s ease-in-out infinite alternate;
}
.scn-richard-denies-cousins .cloak {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 35px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(1px);
  animation: rdcn-cloak 7s ease-in-out infinite;
}
@keyframes rdcn-scene { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rdcn-rays { 0% { transform: scale(0.95) rotate(-1deg); } 50% { transform: scale(1.1) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes rdcn-richard { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rdcn-mask { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.9) rotate(3deg); } 100% { transform: translateX(-50%) scale(1.05) rotate(-2deg); } }
@keyframes rdcn-shadow { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes rdcn-knife { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(4px); } 100% { transform: rotate(20deg) translateX(-3px); } }
@keyframes rdcn-cloak { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-6px) rotate(3deg) scale(1.05); } 100% { transform: translateY(0) rotate(-3deg) scale(0.95); } }

/* Scene: elizabeth-wishes-violence */
.scn-elizabeth-wishes-violence {
  background: linear-gradient(135deg, #f7d8a8 0%, #d9a85a 40%, #b07a38 70%, #7a4a1a 100%), radial-gradient(ellipse at 40% 60%, #ffcc80 0%, transparent 60%);
}
.scn-elizabeth-wishes-violence .scene-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 200, 120, 0.3) 0%, rgba(100, 60, 20, 0.2) 100%);
  animation: ewv-scene 12s ease-in-out infinite alternate;
}
.scn-elizabeth-wishes-violence .sun-rays {
  position: absolute; top: -5%; left: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255, 220, 140, 0.5) 0%, transparent 80%);
  animation: ewv-rays 8s ease-in-out infinite alternate;
}
.scn-elizabeth-wishes-violence .angry-fig {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 32px; height: 60px; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  animation: ewv-angry 4s ease-in-out infinite;
}
.scn-elizabeth-wishes-violence .claw-hand-left {
  position: absolute; bottom: 38%; left: 43%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 60% 40% 60% 40% / 50% 50% 50% 50%;
  transform-origin: bottom right;
  animation: ewv-claw-l 2.5s ease-in-out infinite alternate;
}
.scn-elizabeth-wishes-violence .claw-hand-right {
  position: absolute; bottom: 38%; right: 43%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  transform-origin: bottom left;
  animation: ewv-claw-r 2.5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-elizabeth-wishes-violence .rocks {
  position: absolute; bottom: 10%; left: 10%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ewv-rocks 10s ease-in-out infinite;
}
.scn-elizabeth-wishes-violence .ship {
  position: absolute; bottom: 30%; right: 15%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: ewv-ship 6s ease-in-out infinite;
}
.scn-elizabeth-wishes-violence .waves {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(100, 120, 140, 0.3) 0%, rgba(60, 80, 100, 0.2) 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: ewv-waves 9s ease-in-out infinite;
}
@keyframes ewv-scene { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ewv-rays { 0% { transform: scale(0.9) rotate(-3deg); } 50% { transform: scale(1.15) rotate(0deg); } 100% { transform: scale(0.95) rotate(3deg); } }
@keyframes ewv-angry { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ewv-claw-l { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-35deg) scale(0.9); } }
@keyframes ewv-claw-r { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(35deg) scale(0.9); } }
@keyframes ewv-rocks { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ewv-ship { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(10px); } 100% { transform: rotate(-20deg) translateX(-5px); } }
@keyframes ewv-waves { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.95); } }

.scn-clarence-pleads-for-life {
  background:
    radial-gradient(ellipse at 30% 80%, #5e1a1d 0%, transparent 40%),
    linear-gradient(180deg, #1a0a0a 0%, #2a1515 40%, #3a2020 100%);
}
.scn-clarence-pleads-for-life .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-clarence-pleads-for-life .wall-left {
  position: absolute; top: 0; left: 0; width: 50%; height: 75%;
  background: linear-gradient(135deg, #1a0a0a 0%, #2a1515 50%, #1a0a0a 100%);
  border-radius: 0 0 40% 0;
}
.scn-clarence-pleads-for-life .wall-right {
  position: absolute; top: 0; right: 0; width: 50%; height: 75%;
  background: linear-gradient(225deg, #1a0a0a 0%, #2a1515 50%, #1a0a0a 100%);
  border-radius: 0 0 0 40%;
}
.scn-clarence-pleads-for-life .candle-glow {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,208,128,0.2);
  animation: cp-candle 3s ease-in-out infinite alternate;
}
.scn-clarence-pleads-for-life .figure-clarence {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-kneel 6s ease-in-out infinite;
}
.scn-clarence-pleads-for-life .figure-murderer-left {
  position: absolute; bottom: 30%; left: 22%; width: 45px; height: 130px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp-stand 4s ease-in-out infinite alternate;
}
.scn-clarence-pleads-for-life .figure-murderer-right {
  position: absolute; bottom: 30%; right: 22%; width: 45px; height: 130px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp-stand 4s ease-in-out infinite alternate-reverse;
}
.scn-clarence-pleads-for-life .shadow-clarence {
  position: absolute; bottom: 22%; left: 40%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%);
  filter: blur(8px);
  animation: cp-shadow 6s ease-in-out infinite;
}
.scn-clarence-pleads-for-life .shadow-murderers {
  position: absolute; bottom: 30%; left: 15%; width: 140px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 60%);
  filter: blur(10px);
  animation: cp-shadow 4s ease-in-out infinite alternate;
}
@keyframes cp-candle {
  0% { opacity: 0.7; transform: scale(0.95) translateX(-50%); }
  50% { opacity: 1; transform: scale(1.05) translateX(-50%); }
  100% { opacity: 0.8; transform: scale(0.95) translateX(-50%); }
}
@keyframes cp-kneel {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  25% { transform: translateX(-50%) scaleY(0.98) rotate(-2deg); }
  50% { transform: translateX(-50%) scaleY(1.02) rotate(2deg); }
  75% { transform: translateX(-50%) scaleY(0.99) rotate(-1deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}
@keyframes cp-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cp-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-clarence-divine-law-argument {
  background:
    radial-gradient(ellipse at 50% 10%, #4a2a20 0%, transparent 50%),
    linear-gradient(180deg, #1a0a0a 0%, #2a1515 60%, #1a0a0a 100%);
}
.scn-clarence-divine-law-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1515 0%, #0a0505 100%);
}
.scn-clarence-divine-law-argument .wall-back {
  position: absolute; top: 0; left: 0; right: 0; height: 80%;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1515 40%, #1a0a0a 100%);
  filter: blur(4px);
}
.scn-clarence-divine-law-argument .pillar {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 70%;
  background: linear-gradient(90deg, #3a2020 0%, #4a2a20 30%, #3a2020 60%, #2a1515 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 10px rgba(74,42,32,0.3);
}
.scn-clarence-divine-law-argument .divine-light {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(255,215,140,0.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: cd-light 8s ease-in-out infinite alternate;
}
.scn-clarence-divine-law-argument .figure-clarence {
  position: absolute; bottom: 28%; left: 38%;
  width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-arm 5s ease-in-out infinite;
}
.scn-clarence-divine-law-argument .figure-clarence::before {
  content: ''; position: absolute; top: 18%; left: -10px;
  width: 24px; height: 18px;
  background: linear-gradient(135deg, #2a1515 0%, #1a0a0a 100%);
  border-radius: 50%;
  transform: rotate(30deg);
  animation: cd-arm-extend 5s ease-in-out infinite;
}
.scn-clarence-divine-law-argument .figure-murderer {
  position: absolute; bottom: 28%; right: 38%;
  width: 45px; height: 110px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cd-murderer 6s ease-in-out infinite alternate;
}
.scn-clarence-divine-law-argument .holy-book {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 22px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: cd-book 4s ease-in-out infinite alternate;
}
.scn-clarence-divine-law-argument .torch {
  position: absolute; bottom: 25%; left: 65%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #8a5a3a 0%, #4a2a20 100%);
  border-radius: 2px;
}
.scn-clarence-divine-law-argument .torch::after {
  content: ''; position: absolute; top: -10px; left: -4px;
  width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.4) 50%, transparent 80%);
  filter: blur(6px);
  animation: cd-torch 3s ease-in-out infinite alternate;
}
@keyframes cd-light {
  0% { opacity: 0.3; transform: translateX(-50%) scaleY(0.8); }
  50% { opacity: 0.8; transform: translateX(-50%) scaleY(1.2); }
  100% { opacity: 0.4; transform: translateX(-50%) scaleY(0.9); }
}
@keyframes cd-arm {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(8deg); }
}
@keyframes cd-arm-extend {
  0%, 100% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(50deg) translateX(6px); }
}
@keyframes cd-murderer {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cd-book {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.1); box-shadow: 0 4px 8px rgba(0,0,0,.5); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes cd-torch {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-murderers-accuse-clarence {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2020 0%, transparent 40%),
    linear-gradient(180deg, #0a0505 0%, #1a0a0a 50%, #2a1515 100%);
}
.scn-murderers-accuse-clarence .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0505 0%, #1a0a0a 50%, #0a0505 100%);
  filter: blur(8px);
}
.scn-murderers-accuse-clarence .candle {
  position: absolute; bottom: 15%; left: 48%;
  width: 30px; height: 50px;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,208,128,0.2) 60%, transparent 100%);
  filter: blur(10px);
  animation: ma-candle 2s ease-in-out infinite alternate;
}
.scn-murderers-accuse-clarence .hand-clarence {
  position: absolute; bottom: 28%; left: 30%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: ma-hand-p 3s ease-in-out infinite;
}
.scn-murderers-accuse-clarence .hand-murderer {
  position: absolute; bottom: 30%; right: 32%;
  width: 22px; height: 34px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: ma-hand-k 4s ease-in-out infinite alternate;
}
.scn-murderers-accuse-clarence .blade {
  position: absolute; bottom: 35%; right: 25%;
  width: 6px; height: 70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px 2px 10% 10%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ma-blade 3s ease-in-out infinite alternate;
}
.scn-murderers-accuse-clarence .blade-edge {
  position: absolute; bottom: 35%; right: 24.8%;
  width: 2px; height: 65px;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  filter: blur(1px);
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ma-blade 3s ease-in-out infinite alternate;
}
.scn-murderers-accuse-clarence .blood-drop {
  position: absolute; bottom: 40%; right: 26%;
  width: 4px; height: 6px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ma-blood 5s linear infinite;
}
.scn-murderers-accuse-clarence .shadow-accusation {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%);
  filter: blur(20px);
  animation: ma-shadow 4s ease-in-out infinite alternate;
}
@keyframes ma-candle {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes ma-hand-p {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(4px, -2px) rotate(5deg); }
  50% { transform: translate(8px, 0) rotate(10deg); }
  75% { transform: translate(4px, -1px) rotate(5deg); }
}
@keyframes ma-hand-k {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(-6px, -3px) rotate(-8deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes ma-blade {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
  100% { transform: rotate(22deg) translateY(0); }
}
@keyframes ma-blood {
  0% { opacity: 0; transform: translateY(0) scale(1); }
  25% { opacity: 0.8; transform: translateY(5px) scale(1.5); }
  50% { opacity: 0.6; transform: translateY(10px) scale(1); }
  75% { opacity: 0.2; transform: translateY(15px) scale(0.5); }
  100% { opacity: 0; transform: translateY(20px) scale(0); }
}
@keyframes ma-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

.scn-clarence-justifies-fratricide {
  background:
    radial-gradient(ellipse at 50% 85%, #4a2a20 0%, transparent 30%),
    linear-gradient(180deg, #1a0a0a 0%, #2a1515 60%, #1a0a0a 100%);
}
.scn-clarence-justifies-fratricide .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a1515 0%, #0a0505 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-clarence-justifies-fratricide .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 78%;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1515 40%, #1a0a0a 100%);
  filter: blur(6px);
}
.scn-clarence-justifies-fratricide .candle-center {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 35px; height: 45px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 80%);
  filter: blur(12px);
  animation: cj-candle 3s ease-in-out infinite alternate;
}
.scn-clarence-justifies-fratricide .figure-clarence-left {
  position: absolute; bottom: 28%; left: 24%;
  width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cj-fig-left 5s ease-in-out infinite;
}
.scn-clarence-justifies-fratricide .figure-murderer-right {
  position: absolute; bottom: 28%; right: 24%;
  width: 45px; height: 110px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cj-fig-right 6s ease-in-out infinite alternate;
}
.scn-clarence-justifies-fratricide .shadow-left {
  position: absolute; bottom: 20%; left: 18%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 60%);
  filter: blur(10px);
  animation: cj-shadow 5s ease-in-out infinite alternate;
}
.scn-clarence-justifies-fratricide .shadow-right {
  position: absolute; bottom: 20%; right: 18%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 60%);
  filter: blur(10px);
  animation: cj-shadow 6s ease-in-out infinite alternate-reverse;
}
.scn-clarence-justifies-fratricide .divine-hand {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 30%, rgba(255,215,140,0.4) 0%, transparent 60%);
  filter: blur(15px);
  animation: cj-hand 8s ease-in-out infinite alternate;
}
@keyframes cj-candle {
  0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.08); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
}
@keyframes cj-fig-left {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(3deg); }
  60% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cj-fig-right {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cj-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes cj-hand {
  0% { opacity: 0.2; transform: translateX(-50%) scaleY(0.8); }
  50% { opacity: 0.6; transform: translateX(-50%) scaleY(1.3); }
  100% { opacity: 0.3; transform: translateX(-50%) scaleY(0.9); }
}

/* richard-lady-charity — calm, sunlit interior */
.scn-richard-lady-charity {
  background: linear-gradient(180deg, #e8d4b0 0%, #d4be9a 30%, #b8956e 60%, #8a6b48 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-richard-lady-charity .sun-wash {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(135deg, rgba(255,240,210,0.6) 0%, transparent 50%, rgba(200,170,130,0.2) 100%);
  animation: rlc-sunwash 12s ease-in-out infinite alternate;
}
.scn-richard-lady-charity .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #8a6b48 0%, #6b5030 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-richard-lady-charity .wall {
  position:absolute; bottom:35%; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #d4be9a 0%, #c4a880 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.1);
}
.scn-richard-lady-charity .window-frame {
  position:absolute; top:10%; left:60%; width:25%; height:40%;
  border: 6px solid #5a3e28;
  background: linear-gradient(180deg, #b8d4e8 0%, #8ab8d4 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,240,200,0.5), 0 4px 12px rgba(0,0,0,0.3);
  animation: rlc-window 8s ease-in-out infinite alternate;
}
.scn-richard-lady-charity .window-light {
  position:absolute; top:10%; left:60%; width:25%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: rlc-light 8s ease-in-out infinite alternate;
}
.scn-richard-lady-charity .figure-anne {
  position:absolute; bottom:35%; right:20%; width:30px; height:80px;
  background: linear-gradient(180deg, #c8a880 0%, #a08050 40%, #705030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: rlc-anne 10s ease-in-out infinite;
}
.scn-richard-lady-charity .figure-richard {
  position:absolute; bottom:35%; left:35%; width:28px; height:70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: scaleX(-1) rotate(10deg);
  animation: rlc-richard 6s ease-in-out infinite;
}
.scn-richard-lady-charity .veil {
  position:absolute; bottom:42%; right:22%; width:20px; height:30px;
  background: linear-gradient(180deg, rgba(200,180,160,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: rlc-veil 9s ease-in-out infinite alternate;
}
.scn-richard-lady-charity .dust-motes {
  position:absolute; inset: 10% 10% 10% 10%;
  background: radial-gradient(circle at 30% 20%, rgba(255,240,200,0.15) 0%, transparent 20%),
              radial-gradient(circle at 70% 40%, rgba(255,240,200,0.1) 0%, transparent 15%),
              radial-gradient(circle at 50% 60%, rgba(255,240,200,0.08) 0%, transparent 12%);
  animation: rlc-dust 20s linear infinite;
  pointer-events: none;
}
@keyframes rlc-sunwash { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rlc-window { 0% { filter: brightness(1) } 50% { filter: brightness(1.2) } 100% { filter: brightness(0.9) } }
@keyframes rlc-light { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes rlc-anne { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes rlc-richard { 0% { transform: scaleX(-1) rotate(10deg) translateY(0) } 30% { transform: scaleX(-1) rotate(8deg) translateY(-3px) } 60% { transform: scaleX(-1) rotate(12deg) translateY(0) } 100% { transform: scaleX(-1) rotate(10deg) translateY(0) } }
@keyframes rlc-veil { 0% { opacity:0.4; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(2px) translateY(-1px) } 100% { opacity:0.5; transform: translateX(-1px) } }
@keyframes rlc-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.1) } 100% { transform: translateY(0) scale(0.95) } }

/* richard-wooing-anne1 — tense, sunlit outdoor */
.scn-richard-wooing-anne1 {
  background: linear-gradient(180deg, #7a9ab8 0%, #a0c0d8 30%, #c8d8e0 60%, #d8c8a0 100%),
              radial-gradient(ellipse at 50% 0%, #d0e8f0 0%, transparent 60%);
}
.scn-richard-wooing-anne1 .sky-bright {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8ab8d4 0%, #b8d8e8 40%, transparent 100%);
  animation: rwa1-sky 15s ease-in-out infinite alternate;
}
.scn-richard-wooing-anne1 .ground-path {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b8a880 0%, #988060 30%, #786848 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.25);
}
.scn-richard-wooing-anne1 .tree-trunk {
  position:absolute; bottom:30%; left:15%; width:16px; height:60%;
  background: linear-gradient(90deg, #5a4030 0%, #7a6050 40%, #5a4030 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-richard-wooing-anne1 .branch-left {
  position:absolute; bottom:65%; left:10%; width:80px; height:6px;
  background: linear-gradient(90deg, #5a4030 0%, transparent 100%);
  border-radius: 3px;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: rwa1-branch 8s ease-in-out infinite alternate;
}
.scn-richard-wooing-anne1 .branch-right {
  position:absolute; bottom:75%; left:18%; width:60px; height:5px;
  background: linear-gradient(90deg, #5a4030 0%, transparent 100%);
  border-radius: 3px;
  transform: rotate(15deg);
  transform-origin: left center;
  animation: rwa1-branch 10s ease-in-out infinite alternate-reverse;
}
.scn-richard-wooing-anne1 .figure-richard-stand {
  position:absolute; bottom:32%; left:38%; width:30px; height:78px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -3px 0 10px rgba(0,0,0,0.3);
  animation: rwa1-richard 5s ease-in-out infinite;
}
.scn-richard-wooing-anne1 .figure-anne-turn {
  position:absolute; bottom:32%; right:30%; width:28px; height:76px;
  background: linear-gradient(180deg, #c0a080 0%, #a08050 40%, #806040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 3px 0 10px rgba(0,0,0,0.2);
  animation: rwa1-anne 7s ease-in-out infinite;
}
.scn-richard-wooing-anne1 .shadow-stripe {
  position:absolute; bottom:30%; left:30%; width:35%; height:4px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, rgba(0,0,0,0.15) 70%, transparent 100%);
  filter: blur(3px);
  animation: rwa1-shadow 12s ease-in-out infinite alternate;
}
.scn-richard-wooing-anne1 .leaf-dapple {
  position:absolute; inset: 10% 10% 20% 10%;
  background: radial-gradient(circle at 25% 15%, rgba(255,240,200,0.2) 0%, transparent 8%),
              radial-gradient(circle at 60% 25%, rgba(255,240,200,0.15) 0%, transparent 6%),
              radial-gradient(circle at 40% 45%, rgba(255,240,200,0.1) 0%, transparent 5%),
              radial-gradient(circle at 70% 55%, rgba(255,240,200,0.12) 0%, transparent 7%);
  animation: rwa1-dapple 14s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes rwa1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rwa1-branch { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-22deg) translateY(2px) } 100% { transform: rotate(-18deg) translateY(-1px) } }
@keyframes rwa1-richard { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(1deg) translateY(-2px) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rwa1-anne { 0% { transform: rotate(-5deg) translateX(0) } 40% { transform: rotate(-8deg) translateX(-3px) } 70% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes rwa1-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.2) } 100% { opacity:0.4; transform: scaleX(0.9) } }
@keyframes rwa1-dapple { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

/* richard-wooing-anne2 — tense, sunlit garden archway */
.scn-richard-wooing-anne2 {
  background: linear-gradient(180deg, #a08060 0%, #b8a080 25%, #c8b8a0 50%, #a09070 100%),
              radial-gradient(ellipse at 50% 30%, #e8d8c0 0%, transparent 60%);
}
.scn-richard-wooing-anne2 .bg-garden {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(135deg, #b8a880 0%, #8a7850 50%, #6a5838 100%);
  animation: rwa2-bg 20s ease-in-out infinite alternate;
}
.scn-richard-wooing-anne2 .wall-stone {
  position:absolute; bottom:15%; left:10%; right:10%; height:70%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3), 0 0 0 2px #7a6a4a;
}
.scn-richard-wooing-anne2 .archway {
  position:absolute; bottom:15%; left:35%; right:35%; height:70%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 50%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3);
}
.scn-richard-wooing-anne2 .figure-richard-bow {
  position:absolute; bottom:25%; left:40%; width:28px; height:72px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: rwa2-richard 4s ease-in-out infinite;
}
.scn-richard-wooing-anne2 .figure-anne-flee {
  position:absolute; bottom:28%; right:38%; width:26px; height:74px;
  background: linear-gradient(180deg, #b09878 0%, #8a6a4a 40%, #6a4a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: scaleX(-1) rotate(-8deg);
  animation: rwa2-anne 6s ease-in-out infinite;
}
.scn-richard-wooing-anne2 .hand-extended {
  position:absolute; bottom:32%; left:42%; width:12px; height:18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-20deg) translateX(10px);
  animation: rwa2-hand 3s ease-in-out infinite;
}
.scn-richard-wooing-anne2 .dagger-sheen {
  position:absolute; bottom:36%; left:44%; width:3px; height:20px;
  background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 50%, #606060 100%);
  border-radius: 1px;
  transform: rotate(-30deg);
  box-shadow: 0 0 6px rgba(200,200,200,0.6);
  animation: rwa2-dagger 3s ease-in-out infinite;
}
.scn-richard-wooing-anne2 .petal-fall {
  position:absolute; top:10%; left:30%; width:8px; height:8px;
  background: radial-gradient(circle, #c88060 0%, #a06040 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: rwa2-petal 12s linear infinite;
}
@keyframes rwa2-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rwa2-richard { 0% { transform: rotate(15deg) translateY(0) } 30% { transform: rotate(12deg) translateY(-3px) } 60% { transform: rotate(18deg) translateY(0) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes rwa2-anne { 0% { transform: scaleX(-1) rotate(-8deg) translateX(0) } 40% { transform: scaleX(-1) rotate(-12deg) translateX(-4px) } 80% { transform: scaleX(-1) rotate(-6deg) translateX(2px) } 100% { transform: scaleX(-1) rotate(-8deg) translateX(0) } }
@keyframes rwa2-hand { 0% { transform: rotate(-20deg) translateX(10px) } 50% { transform: rotate(-25deg) translateX(14px) } 100% { transform: rotate(-20deg) translateX(10px) } }
@keyframes rwa2-dagger { 0% { opacity:0.6; box-shadow: 0 0 4px rgba(200,200,200,0.4) } 50% { opacity:1; box-shadow: 0 0 12px rgba(200,200,200,0.8) } 100% { opacity:0.7; box-shadow: 0 0 6px rgba(200,200,200,0.5) } }
@keyframes rwa2-petal { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.8 } 25% { transform: translateY(30vh) translateX(10px) rotate(90deg) scale(0.9); opacity:0.6 } 50% { transform: translateY(60vh) translateX(-5px) rotate(180deg) scale(0.8); opacity:0.4 } 75% { transform: translateY(90vh) translateX(8px) rotate(270deg) scale(0.7); opacity:0.2 } 100% { transform: translateY(120vh) rotate(360deg) scale(0.5); opacity:0 } }

/* anne-accuses-margaret-witness — tense, sunlit courtyard */
.scn-anne-accuses-margaret-witness {
  background: linear-gradient(180deg, #7a8a7a 0%, #9aaa8a 30%, #b8b898 60%, #c8b080 100%),
              radial-gradient(ellipse at 50% 0%, #d0e0c0 0%, transparent 50%);
}
.scn-anne-accuses-margaret-witness .bg-courtyard {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(180deg, #8a9a7a 0%, #9aaa8a 30%, #b8b898 60%, #a89878 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: aamw-bg 18s ease-in-out infinite alternate;
}
.scn-anne-accuses-margaret-witness .pillar-left {
  position:absolute; bottom:0; left:8%; width:5%; height:85%;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 30%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-anne-accuses-margaret-witness .pillar-right {
  position:absolute; bottom:0; right:8%; width:5%; height:85%;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 30%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-anne-accuses-margaret-witness .figure-anne-point {
  position:absolute; bottom:28%; left:25%; width:28px; height:76px;
  background: linear-gradient(180deg, #b89878 0%, #8a6a4a 40%, #6a4a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(5deg);
  animation: aamw-anne 4s ease-in-out infinite;
}
.scn-anne-accuses-margaret-witness .figure-richard-defend {
  position:absolute; bottom:30%; left:48%; width:30px; height:78px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -3px 0 10px rgba(0,0,0,0.3);
  animation: aamw-richard 5s ease-in-out infinite;
}
.scn-anne-accuses-margaret-witness .figure-margaret {
  position:absolute; bottom:30%; right:22%; width:26px; height:74px;
  background: linear-gradient(180deg, #604830 0%, #402818 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: scaleX(-1) rotate(-3deg);
  animation: aamw-margaret 8s ease-in-out infinite;
}
.scn-anne-accuses-margaret-witness .shadow-judgment {
  position:absolute; bottom:25%; left:20%; right:20%; height:6px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.25) 30%, rgba(0,0,0,0.15) 60%, transparent 100%);
  filter: blur(4px);
  animation: aamw-shadow 9s ease-in-out infinite alternate;
}
.scn-anne-accuses-margaret-witness .dust-swirl {
  position:absolute; inset: 15% 5% 15% 5%;
  background: radial-gradient(ellipse at 40% 30%, rgba(200,180,140,0.15) 0%, transparent 15%),
              radial-gradient(ellipse at 60% 50%, rgba(200,180,140,0.1) 0%, transparent 12%),
              radial-gradient(ellipse at 35% 60%, rgba(200,180,140,0.08) 0%, transparent 10%);
  animation: aamw-dust 25s linear infinite;
  pointer-events: none;
}
@keyframes aamw-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes aamw-anne { 0% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(3deg) translateX(-2px) } 50% { transform: rotate(8deg) translateX(3px) } 75% { transform: rotate(4deg) translateX(-1px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes aamw-richard { 0% { transform: translateX(0) rotate(-1deg) } 35% { transform: translateX(-3px) rotate(2deg) translateY(-2px) } 65% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes aamw-margaret { 0% { transform: scaleX(-1) rotate(-3deg) translateY(0) } 40% { transform: scaleX(-1) rotate(-1deg) translateY(-2px) } 80% { transform: scaleX(-1) rotate(-5deg) translateY(1px) } 100% { transform: scaleX(-1) rotate(-3deg) translateY(0) } }
@keyframes aamw-shadow { 0% { opacity:0.3; transform: scaleX(0.8) } 50% { opacity:0.6; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(0.9) } }
@keyframes aamw-dust { 0% { transform: translate(0, 0) scale(1) } 25% { transform: translate(5px, -8px) scale(1.05) } 50% { transform: translate(-3px, -15px) scale(1.1) } 75% { transform: translate(8px, -5px) scale(1.03) } 100% { transform: translate(0, 0) scale(1) } }

.scn-elizabeth-continues {
  background:
    linear-gradient(180deg, #7aa3c4 0%, #c7b89b 50%, #e6d4b3 100%),
    radial-gradient(ellipse at 50% 100%, #f0d9b5 0%, transparent 70%);
}
.scn-elizabeth-continues .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0cfE0 0%, #e8dcc3 100%);
  animation: e1-sky 12s ease-in-out infinite alternate;
}
.scn-elizabeth-continues .sun {
  position: absolute; top: 15%; right: 20%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff3d6 0%, #f5d79e 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(245,215,158,0.5);
  animation: e1-sun 20s ease-in-out infinite alternate;
}
.scn-elizabeth-continues .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8a88a 0%, #8b7a5f 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-elizabeth-continues .figure {
  position: absolute; bottom: 25%; left: 40%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3d30 0%, #2b231b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: e1-figure 6s ease-in-out infinite;
}
.scn-elizabeth-continues .crown {
  position: absolute; bottom: 72%; left: 39.5%;
  width: 30px; height: 15px;
  background: linear-gradient(180deg, #c8a55e 0%, #92712e 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: e1-crown 4s ease-in-out infinite alternate;
}
.scn-elizabeth-continues .dust-a,
.scn-elizabeth-continues .dust-b {
  position: absolute; width: 12px; height: 8px;
  background: radial-gradient(circle, #c4a77a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: e1-dust 8s ease-in-out infinite;
}
.scn-elizabeth-continues .dust-a {
  bottom: 22%; left: 52%;
  animation-delay: 0s;
}
.scn-elizabeth-continues .dust-b {
  bottom: 20%; left: 56%;
  width: 10px; height: 6px;
  animation-delay: 2s;
}
.scn-elizabeth-continues .ray {
  position: absolute; top: 10%; left: 25%; right: 0; height: 60%;
  background: linear-gradient(135deg, rgba(255,243,214,0.3) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: e1-ray 30s linear infinite;
}
@keyframes e1-sky {
  0%   { opacity: 0.8; }
  50%  { opacity: 1;   }
  100% { opacity: 0.7; }
}
@keyframes e1-sun {
  0%   { transform: translateX(0) scale(1); opacity: 0.9; }
  50%  { transform: translateX(-10px) scale(1.05); opacity: 1; }
  100% { transform: translateX(5px) scale(0.98); opacity: 0.85; }
}
@keyframes e1-figure {
  0%   { transform: translateX(0) rotate(-1deg); }
  25%  { transform: translateX(8px) rotate(2deg); }
  50%  { transform: translateX(16px) rotate(0deg); }
  75%  { transform: translateX(24px) rotate(-2deg); }
  100% { transform: translateX(32px) rotate(1deg); }
}
@keyframes e1-crown {
  0%   { transform: translateY(0) rotate(-3deg); }
  50%  { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(1px) rotate(3deg); }
}
@keyframes e1-dust {
  0%   { transform: translate(0,0) scale(1); opacity: 0.6; }
  50%  { transform: translate(10px,-5px) scale(1.3); opacity: 0.9; }
  100% { transform: translate(20px,-10px) scale(0.8); opacity: 0.3; }
}
@keyframes e1-ray {
  0%   { transform: translateX(-100px) rotate(0deg); opacity: 0.1; }
  50%  { transform: translateX(50px) rotate(5deg); opacity: 0.3; }
  100% { transform: translateX(200px) rotate(10deg); opacity: 0; }
}

.scn-elizabeth-time-wronged {
  background:
    linear-gradient(180deg, #7fa3c0 0%, #c6b594 50%, #dcccae 100%),
    radial-gradient(ellipse at 50% 100%, #e8d5b3 0%, transparent 60%);
}
.scn-elizabeth-time-wronged .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #aac4d8 0%, #dacfb5 100%);
  animation: e2-sky 15s ease-in-out infinite alternate;
}
.scn-elizabeth-time-wronged .clock-base {
  position: absolute; bottom: 35%; left: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #9c8d75 0%, #5e5342 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: e2-clock 10s ease-in-out infinite;
}
.scn-elizabeth-time-wronged .hourglass {
  position: absolute; bottom: 48%; left: 16%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a7a60 0%, #4a3f30 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%, 20% 50%);
  animation: e2-glass 8s ease-in-out infinite;
}
.scn-elizabeth-time-wronged .sand {
  position: absolute; bottom: 49%; left: 20%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #c9a25c 0%, #b38b4a 100%);
  border-radius: 0 0 30% 30%;
  animation: e2-sand 12s ease-in-out infinite alternate;
}
.scn-elizabeth-time-wronged .child-group {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #5c4e3a 0%, transparent 70%);
  animation: e2-children 20s linear infinite;
}
.scn-elizabeth-time-wronged .child-a,
.scn-elizabeth-time-wronged .child-b {
  position: absolute; bottom: 18%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #4a3c2f 0%, #2d241b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: e2-child-move 6s ease-in-out infinite;
}
.scn-elizabeth-time-wronged .child-a {
  left: 35%; animation-delay: 0s;
}
.scn-elizabeth-time-wronged .child-b {
  left: 42%; width: 10px; height: 24px; animation-delay: 2s;
}
.scn-elizabeth-time-wronged .shadow {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: e2-shadow 10s ease-in-out infinite;
}
@keyframes e2-sky {
  0%   { opacity: 0.7; }
  50%  { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes e2-clock {
  0%   { transform: translateY(0) rotate(-1deg); }
  50%  { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes e2-glass {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes e2-sand {
  0%   { height: 25px; opacity: 0.8; }
  50%  { height: 15px; opacity: 1; }
  100% { height: 20px; opacity: 0.9; }
}
@keyframes e2-children {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(20px); }
  100% { transform: translateX(0); }
}
@keyframes e2-child-move {
  0%   { transform: translateX(0) rotate(-2deg); }
  25%  { transform: translateX(5px) rotate(1deg); }
  50%  { transform: translateX(10px) rotate(0deg); }
  75%  { transform: translateX(15px) rotate(-1deg); }
  100% { transform: translateX(20px) rotate(2deg); }
}
@keyframes e2-shadow {
  0%   { opacity: 0.2; transform: scaleX(1); }
  50%  { opacity: 0.4; transform: scaleX(1.2); }
  100% { opacity: 0.1; transform: scaleX(0.9); }
}

.scn-elizabeth-swears-no {
  background:
    linear-gradient(180deg, #4a5a6b 0%, #2a3a4a 30%, #c48c4a 70%, #e6b87a 100%),
    radial-gradient(ellipse at 50% 100%, #f5d79e 0%, transparent 60%);
}
.scn-elizabeth-swears-no .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3d4d5c 0%, #7a6a45 100%);
  animation: e3-sky 18s ease-in-out infinite alternate;
}
.scn-elizabeth-swears-no .eclipse-sun {
  position: absolute; top: 15%; left: 40%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #f5d79e 0%, #c48c4a 60%, #4a5a6b 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(196,140,74,0.6);
  animation: e3-eclipse 25s ease-in-out infinite;
}
.scn-elizabeth-swears-no .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a302a 0%, #1e1713 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.5);
}
.scn-elizabeth-swears-no .figure-arms {
  position: absolute; bottom: 22%; left: 45%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2d241b 0%, #140f0c 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: e3-figure 4s ease-in-out infinite;
}
.scn-elizabeth-swears-no .sword {
  position: absolute; bottom: 58%; left: 47%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #b0955a 0%, #73613c 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: e3-sword 7s ease-in-out infinite;
}
.scn-elizabeth-swears-no .cloud-doom {
  position: absolute; top: 8%; left: 10%; right: 10%; height: 30px;
  background: linear-gradient(90deg, rgba(60,60,70,0.7) 0%, rgba(80,70,50,0.5) 50%, rgba(60,60,70,0.7) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: e3-cloud 40s linear infinite;
}
.scn-elizabeth-swears-no .flash {
  position: absolute; top: 0; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,243,214,0.4) 0%, transparent 70%);
  animation: e3-flash 9s ease-in-out infinite;
}
@keyframes e3-sky {
  0%   { opacity: 0.6; }
  50%  { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes e3-eclipse {
  0%   { transform: scale(1); border-radius: 50%; }
  50%  { transform: scale(0.9) rotate(180deg); border-radius: 0%; }
  100% { transform: scale(1) rotate(360deg); border-radius: 50%; }
}
@keyframes e3-figure {
  0%   { transform: translateX(0) rotate(-2deg); }
  25%  { transform: translateX(-5px) rotate(0deg) scaleY(1.05); }
  50%  { transform: translateX(0) rotate(2deg); }
  75%  { transform: translateX(5px) rotate(0deg) scaleY(0.95); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes e3-sword {
  0%   { transform: rotate(-20deg) translateY(0); }
  50%  { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes e3-cloud {
  0%   { transform: translateX(-100px); opacity: 0.3; }
  50%  { transform: translateX(100px); opacity: 0.7; }
  100% { transform: translateX(300px); opacity: 0.1; }
}
@keyframes e3-flash {
  0%   { opacity: 0; }
  50%  { opacity: 0.5; }
  100% { opacity: 0; }
}

.scn-richard-oath-continues {
  background:
    linear-gradient(180deg, #b8c8d4 0%, #d4cBB8 40%, #e8dcc3 100%),
    radial-gradient(ellipse at 50% 100%, #f5e1c8 0%, transparent 70%);
}
.scn-richard-oath-continues .chapel-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8d6e0 0%, #ede3d0 100%);
  animation: r1-sky 14s ease-in-out infinite alternate;
}
.scn-richard-oath-continues .altar {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #b09a7a 0%, #7a6a50 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: r1-altar 20s ease-in-out infinite;
}
.scn-richard-oath-continues .kneeling {
  position: absolute; bottom: 22%; left: 42%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2f27 0%, #1f1813 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: r1-kneel 8s ease-in-out infinite;
}
.scn-richard-oath-continues .daughter {
  position: absolute; bottom: 28%; left: 48%;
  width: 18px; height: 38px;
  background: linear-gradient(180deg, #7a6a55 0%, #4a3f30 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: r1-daughter 6s ease-in-out infinite;
}
.scn-richard-oath-continues .cross {
  position: absolute; bottom: 45%; left: 44%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #c8a66b 0%, #8a7040 100%);
  border-radius: 3px;
  animation: r1-cross 12s ease-in-out infinite;
}
.scn-richard-oath-continues .light-beam {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,243,214,0.35) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: r1-beam 30s linear infinite;
}
.scn-richard-oath-continues .rosary {
  position: absolute; bottom: 20%; left: 47%;
  width: 36px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #6a5a40 0%, transparent 50%);
  border-radius: 50%;
  filter: blur(1px);
  animation: r1-rosary 9s ease-in-out infinite;
}
@keyframes r1-sky {
  0%   { opacity: 0.8; }
  50%  { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes r1-altar {
  0%   { transform: translateY(0) rotate(-1deg); }
  50%  { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes r1-kneel {
  0%   { transform: translateX(0) rotate(-2deg) scaleY(1); }
  25%  { transform: translateX(3px) rotate(1deg) scaleY(0.98); }
  50%  { transform: translateX(6px) rotate(0deg) scaleY(1); }
  75%  { transform: translateX(9px) rotate(-1deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(2deg) scaleY(1); }
}
@keyframes r1-daughter {
  0%   { transform: translateX(0) rotate(-1deg); }
  50%  { transform: translateX(4px) rotate(1deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes r1-cross {
  0%   { transform: rotate(-5deg) translateY(0); }
  50%  { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes r1-beam {
  0%   { transform: skewX(0deg) translateX(-50px); opacity: 0.2; }
  50%  { transform: skewX(-5deg) translateX(0px); opacity: 0.5; }
  100% { transform: skewX(5deg) translateX(50px); opacity: 0.1; }
}
@keyframes r1-rosary {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}

.scn-margaret-curses-richard {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2c22 70%, #2a1a14 100%),
    radial-gradient(ellipse at 50% 20%, #4a382a 0%, transparent 70%);
}
.scn-margaret-curses-richard .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: mgc-wall 20s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard .arch {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 40%;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: mgc-arch 15s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-top: 4px solid #5a3a28;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-margaret-curses-richard .throne {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%) scale(0.95);
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-margaret-curses-richard .figure-richard {
  position: absolute; bottom: 32%; left: 48%; width: 40px; height: 50px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mgc-richard 6s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard .figure-margaret {
  position: absolute; bottom: 30%; left: 30%; width: 38px; height: 55px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mgc-margaret 4s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard .candle-glow {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,140,60,0.6), 0 0 60px 20px rgba(200,140,60,0.3);
  animation: mgc-candle 3s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard .shadow-swipe {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  filter: blur(8px);
  animation: mgc-swipe 8s linear infinite alternate;
}
.scn-margaret-curses-richard .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 60%, rgba(255,220,180,0.08) 0%, transparent 60%);
  filter: blur(2px);
  animation: mgc-dust 12s ease-in-out infinite;
}
@keyframes mgc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mgc-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes mgc-richard { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes mgc-margaret { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-8px) rotate(-5deg) } 70% { transform: translateX(4px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mgc-candle { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes mgc-swipe { 0% { transform: translateX(-30%) } 100% { transform: translateX(30%) } }
@keyframes mgc-dust { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

.scn-richard-mocks-margaret-name {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #e8d4b0 40%, #d4b890 100%),
    radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 70%);
}
.scn-richard-mocks-margaret-name .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.1);
  animation: rmn-wall 15s ease-in-out infinite;
}
.scn-richard-mocks-margaret-name .ray-sunlight {
  position: absolute; top: 0; left: 20%; width: 120px; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,220,0.3) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(6px);
  animation: rmn-ray 10s ease-in-out infinite alternate;
}
.scn-richard-mocks-margaret-name .table {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #c8a880 0%, #a88868 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-richard-mocks-margaret-name .goblet {
  position: absolute; bottom: 28%; left: 45%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #d4b080 0%, #b09070 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: rmn-goblet 3s ease-in-out infinite;
}
.scn-richard-mocks-margaret-name .figure-richard-laugh {
  position: absolute; bottom: 28%; left: 38%; width: 44px; height: 52px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #d0b898 0%, #b09878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rmn-richard 2s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-richard-mocks-margaret-name .figure-margaret-bow {
  position: absolute; bottom: 28%; left: 55%; width: 38px; height: 48px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rmn-margaret 4s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-richard-mocks-margaret-name .jester-hat {
  position: absolute; bottom: 55%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e8a050 0%, #d08030 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-10deg);
  animation: rmn-hat 1.5s ease-in-out infinite alternate;
}
.scn-richard-mocks-margaret-name .confetti {
  position: absolute; top: 10%; left: 0; right: 0; height: 90%;
  background: repeating-linear-gradient(45deg, rgba(200,100,50,0.2) 0px, rgba(200,100,50,0) 10px, rgba(200,200,50,0.2) 10px, rgba(200,200,50,0) 20px);
  filter: blur(2px);
  animation: rmn-confetti 8s linear infinite;
}
.scn-richard-mocks-margaret-name .bounce-line {
  position: absolute; bottom: 32%; left: 40%; width: 60px; height: 4px;
  background: linear-gradient(90deg, transparent, #e8d0a0 20%, #e8d0a0 80%, transparent);
  border-radius: 2px;
  animation: rmn-bounce 2s ease-in-out infinite;
}
@keyframes rmn-wall { 0%,100% { opacity:0.95 } 50% { opacity:1 } }
@keyframes rmn-ray { 0% { transform: skewX(-5deg) } 100% { transform: skewX(5deg) } }
@keyframes rmn-goblet { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(10deg) } 70% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rmn-richard { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(-1px) } 75% { transform: rotate(4deg) translateY(0) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes rmn-margaret { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-15deg) translateY(-6px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes rmn-hat { 0% { transform: rotate(-15deg) scale(1.1) } 100% { transform: rotate(5deg) scale(0.9) } }
@keyframes rmn-confetti { 0% { background-position: 0 0 } 100% { background-position: 50px 50px } }
@keyframes rmn-bounce { 0% { transform: scaleX(0.3) } 40% { transform: scaleX(1) } 100% { transform: scaleX(0.3) } }

.scn-buckingham-cautions-margaret {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #ccc0a8 40%, #a89880 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%);
}
.scn-buckingham-cautions-margaret .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a890 0%, #908070 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-buckingham-cautions-margaret .pillar-left {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 30%, #b8a890 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
}
.scn-buckingham-cautions-margaret .pillar-right {
  position: absolute; bottom: 30%; right: 10%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #b8a890 0%, #e0d0b8 70%, #c8b8a0 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
}
.scn-buckingham-cautions-margaret .figure-buckingham {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 52px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bcm-buck 2.5s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-buckingham-cautions-margaret .figure-margaret-tense {
  position: absolute; bottom: 28%; left: 55%; width: 36px; height: 50px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #b8a898 0%, #988878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bcm-marg 3s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-buckingham-cautions-margaret .hand-gesture {
  position: absolute; bottom: 40%; left: 30%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bcm-hand 1s ease-in-out infinite alternate;
}
.scn-buckingham-cautions-margaret .shadow-stripe {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.15) 50%, transparent);
  filter: blur(8px);
  animation: bcm-stripe 6s ease-in-out infinite;
}
.scn-buckingham-cautions-margaret .spark-aura {
  position: absolute; top: 30%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,100,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: bcm-spark 2s ease-in-out infinite alternate;
}
@keyframes bcm-buck { 0% { transform: rotate(-2deg) translateY(0) } 40% { transform: rotate(3deg) translateY(-2px) } 80% { transform: rotate(-1deg) translateY(0) } 100% { transform: rotate(2deg) translateY(-1px) } }
@keyframes bcm-marg { 0% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(-4px) } 100% { transform: rotate(1deg) translateX(0) } }
@keyframes bcm-hand { 0% { transform: rotate(0) translateX(0) } 30% { transform: rotate(-20deg) translateX(-4px) } 70% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bcm-stripe { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes bcm-spark { 0% { transform: scale(0.8); opacity:0.4 } 100% { transform: scale(1.2); opacity:0.9 } }

.scn-margaret-warns-buckingham {
  background: 
    linear-gradient(180deg, #2a2218 0%, #1a1410 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a28 0%, transparent 80%);
}
.scn-margaret-warns-buckingham .high-arch {
  position: absolute; top: 0; left: 15%; right: 15%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8);
  animation: mwb-arch 20s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham .balcony {
  position: absolute; top: 50%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-margaret-warns-buckingham .figure-margaret-high {
  position: absolute; top: 45%; left: 40%; width: 34px; height: 48px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: mwb-marg-high 5s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham .figure-buckingham-low {
  position: absolute; bottom: 30%; left: 45%; width: 36px; height: 46px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: mwb-buck-low 4s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham .falling-column {
  position: absolute; top: 20%; right: 25%; width: 14px; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: mwb-column 8s ease-in-out infinite;
  transform-origin: top center;
}
.scn-margaret-warns-buckingham .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: mwb-veil 12s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham .drip-drops {
  position: absolute; top: 30%; left: 10%; width: 2px; height: 20%;
  background: linear-gradient(to top, rgba(128,100,80,0.4) 0%, transparent 100%);
  filter: blur(1px);
  animation: mwb-drip 6s linear infinite;
}
.scn-margaret-warns-buckingham .eye-glow {
  position: absolute; top: 48%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.6);
  animation: mwb-eye 3s ease-in-out infinite alternate;
}
@keyframes mwb-arch { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.03); opacity:1 } 100% { transform: scaleY(0.97); opacity:0.85 } }
@keyframes mwb-marg-high { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(-3deg) translateY(-2px) } 70% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes mwb-buck-low { 0% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(1deg) translateX(0) } }
@keyframes mwb-column { 0% { transform: rotate(0) } 20% { transform: rotate(2deg) } 40% { transform: rotate(-3deg) } 60% { transform: rotate(1deg) } 80% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes mwb-veil { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes mwb-drip { 0% { transform: translateY(-100%) } 100% { transform: translateY(100%) } }
@keyframes mwb-eye { 0% { opacity:0.5; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.9) } }

.scn-richard-brazen-confession { background: linear-gradient(180deg, #f9d071 0%, #e8b84c 40%, #c8923a 100%), radial-gradient(ellipse at 70% 30%, #ffedb0 0%, transparent 60%); }
.scn-richard-brazen-confession .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4f0 0%, #f9e8a0 100%); animation: rbc-skyGlow 8s ease-in-out infinite alternate; }
.scn-richard-brazen-confession .sun { position:absolute; top:10%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #fff9e0 0%, #f9d071 40%, transparent 70%); border-radius:50%; box-shadow:0 0 80px 30px rgba(249,208,113,0.6); animation: rbc-sunPulse 6s ease-in-out infinite; }
.scn-richard-brazen-confession .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a9a5c 0%, #4d6b3a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-richard-brazen-confession .cross { position:absolute; bottom:20%; left:45%; width:8px; height:70px; background: linear-gradient(180deg, #5c3a1a 0%, #3a2210 100%); border-radius:2px; transform:rotate(5deg); box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-richard-brazen-confession .cross::after { content:''; position:absolute; top:-12px; left:-18px; width:44px; height:8px; background: linear-gradient(90deg, #5c3a1a 0%, #3a2210 100%); border-radius:2px; }
.scn-richard-brazen-confession .figure-kneeling { position:absolute; bottom:28%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom center; animation: rbc-bow 10s ease-in-out infinite; }
.scn-richard-brazen-confession .shadow { position:absolute; bottom:25%; left:30%; width:80px; height:12px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation: rbc-shadowPulse 10s ease-in-out infinite; }
.scn-richard-brazen-confession .light-rays { position:absolute; top:5%; left:25%; width:120px; height:300px; background: linear-gradient(180deg, rgba(255,245,200,0.15) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: rbc-rays 10s ease-in-out infinite alternate; }
@keyframes rbc-skyGlow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rbc-sunPulse { 0%,100% { transform:scale(1); box-shadow:0 0 60px 20px rgba(249,208,113,0.5); } 50% { transform:scale(1.05); box-shadow:0 0 100px 40px rgba(249,208,113,0.8); } }
@keyframes rbc-bow { 0%,100% { transform:translateX(0) rotate(0deg) scaleY(1); } 25% { transform:translateX(-5px) rotate(-5deg) scaleY(1.05); } 50% { transform:translateX(0) rotate(0deg) scaleY(0.95); } 75% { transform:translateX(5px) rotate(5deg) scaleY(1.05); } }
@keyframes rbc-shadowPulse { 0%,100% { transform:scaleX(1); opacity:0.3; } 50% { transform:scaleX(1.2); opacity:0.2; } }
@keyframes rbc-rays { 0% { opacity:0.3; transform:rotate(-2deg); } 50% { opacity:0.7; transform:rotate(1deg); } 100% { opacity:0.4; transform:rotate(0deg); } }

.scn-anne-rejects-indecency { background: linear-gradient(180deg, #f0d8a0 0%, #d4b882 50%, #b89a6a 100%), radial-gradient(ellipse at 30% 80%, #fae4b0 0%, transparent 70%); }
.scn-anne-rejects-indecency .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(90deg, #c8b090 0%, #dcc4a8 50%, #c8b090 100%); animation: ari-wallLight 12s ease-in-out infinite alternate; }
.scn-anne-rejects-indecency .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a08060 0%, #7a6040 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-anne-rejects-indecency .window { position:absolute; top:15%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #d8e8f8 0%, #a0c8e8 100%); border:4px solid #7a6040; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: ari-windowLight 8s ease-in-out infinite alternate; }
.scn-anne-rejects-indecency .sunbeam { position:absolute; top:15%; left:10%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,255,200,0.25) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ari-beam 8s ease-in-out infinite alternate; }
.scn-anne-rejects-indecency .figure-anne { position:absolute; bottom:30%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom center; animation: ari-anneDeflect 6s ease-in-out infinite; }
.scn-anne-rejects-indecency .figure-anne::after { content:''; position:absolute; top:-15px; left:-10px; width:20px; height:15px; background: linear-gradient(180deg, #4a3a2a 0%, transparent); border-radius:50% 50% 0 0; transform:rotate(10deg); }
.scn-anne-rejects-indecency .figure-richard { position:absolute; bottom:28%; left:25%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ari-richardReach 8s ease-in-out infinite; }
.scn-anne-rejects-indecency .figure-richard::before { content:''; position:absolute; top:10%; left:-15px; width:20px; height:6px; background: #1a0a00; border-radius:2px; transform:rotate(-20deg); animation: ari-armReach 8s ease-in-out infinite; }
.scn-anne-rejects-indecency .bed { position:absolute; bottom:15%; left:70%; width:60px; height:30px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); }
@keyframes ari-wallLight { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ari-windowLight { 0% { background: linear-gradient(180deg, #d8e8f8 0%, #a0c8e8 100%); } 50% { background: linear-gradient(180deg, #f8f0d0 0%, #c0d8f0 100%); } 100% { background: linear-gradient(180deg, #d8e8f8 0%, #a0c8e8 100%); } }
@keyframes ari-beam { 0% { opacity:0.2; transform:skewX(-5deg); } 50% { opacity:0.4; transform:skewX(0deg); } 100% { opacity:0.2; transform:skewX(5deg); } }
@keyframes ari-anneDeflect { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-10px) rotate(-8deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(10px) rotate(8deg); } }
@keyframes ari-richardReach { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(10px) rotate(5deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-10px) rotate(-5deg); } }
@keyframes ari-armReach { 0%,100% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(10deg) translateX(10px); } }

.scn-richard-beauty-defense { background: linear-gradient(180deg, #f9e4b0 0%, #e0c080 50%, #c0a060 100%), radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, transparent 70%); }
.scn-richard-beauty-defense .bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); opacity:0.3; animation: rbd-bgPulse 10s ease-in-out infinite alternate; }
.scn-richard-beauty-defense .silhouette-left { position:absolute; bottom:20%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%; transform-origin:bottom center; animation: rbd-leanLeft 8s ease-in-out infinite; }
.scn-richard-beauty-defense .silhouette-left::before { content:''; position:absolute; top:-10px; left:-5px; width:15px; height:10px; background: #1a1008; border-radius:50% 50% 0 0; }
.scn-richard-beauty-defense .silhouette-right { position:absolute; bottom:20%; right:20%; width:35px; height:75px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: rbd-leanRight 8s ease-in-out infinite; }
.scn-richard-beauty-defense .silhouette-right::before { content:''; position:absolute; top:-8px; right:-5px; width:14px; height:9px; background: #2a1a0a; border-radius:50% 50% 0 0; }
.scn-richard-beauty-defense .glow-orb { position:absolute; top:30%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #ffe8a0 0%, #f9c860 40%, transparent 70%); border-radius:50%; box-shadow:0 0 50px 20px rgba(255,232,160,0.6), 0 0 100px 40px rgba(249,200,96,0.3); animation: rbd-orbPulse 4s ease-in-out infinite; }
.scn-richard-beauty-defense .light-rays-2 { position:absolute; top:20%; left:50%; width:200px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(255,232,160,0.15) 0%, transparent 60%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); animation: rbd-glowRays 6s ease-in-out infinite alternate; }
@keyframes rbd-bgPulse { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }
@keyframes rbd-leanLeft { 0%,100% { transform:rotate(0deg) translateX(0); } 25% { transform:rotate(-5deg) translateX(-5px); } 50% { transform:rotate(0deg) translateX(0); } 75% { transform:rotate(5deg) translateX(5px); } }
@keyframes rbd-leanRight { 0%,100% { transform:rotate(0deg) translateX(0); } 25% { transform:rotate(5deg) translateX(5px); } 50% { transform:rotate(0deg) translateX(0); } 75% { transform:rotate(-5deg) translateX(-5px); } }
@keyframes rbd-orbPulse { 0%,100% { transform:scale(1); opacity:0.9; } 50% { transform:scale(1.15); opacity:1; } }
@keyframes rbd-glowRays { 0% { opacity:0.3; transform:rotate(-3deg); } 50% { opacity:0.7; transform:rotate(0deg); } 100% { opacity:0.4; transform:rotate(3deg); } }

.scn-anne-curses-richard { background: linear-gradient(180deg, #d4a060 0%, #b8844a 40%, #9a6a3a 100%), radial-gradient(ellipse at 50% 30%, #f0c080 0%, transparent 70%); }
.scn-anne-curses-richard .sky-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 100%); animation: acr-skyDarken 12s ease-in-out infinite alternate; }
.scn-anne-curses-richard .sun-bright { position:absolute; top:15%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff5d0 0%, #f0c080 30%, transparent 65%); border-radius:50%; box-shadow:0 0 80px 30px rgba(240,192,128,0.6); animation: acr-sunGlare 6s ease-in-out infinite; }
.scn-anne-curses-richard .figure-anne-cursing { position:absolute; bottom:25%; left:40%; width:35px; height:70px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: acr-anneRise 8s ease-in-out infinite; }
.scn-anne-curses-richard .arm-raised { position:absolute; bottom:55%; left:42%; width:8px; height:30px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:4px; transform-origin:bottom center; animation: acr-armThrust 4s ease-in-out infinite alternate; }
.scn-anne-curses-richard .arm-raised::after { content:''; position:absolute; top:-5px; left:-5px; width:18px; height:10px; background: #1a0a00; border-radius:50% 50% 0 0; transform:rotate(-20deg); }
.scn-anne-curses-richard .shadow-long { position:absolute; bottom:20%; left:35%; width:100px; height:8px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(5px); animation: acr-shadowShift 10s ease-in-out infinite; }
.scn-anne-curses-richard .ground-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
@keyframes acr-skyDarken { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes acr-sunGlare { 0%,100% { transform:scale(1); box-shadow:0 0 60px 20px rgba(240,192,128,0.5); } 50% { transform:scale(1.08); box-shadow:0 0 100px 40px rgba(240,192,128,0.8); } }
@keyframes acr-anneRise { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(-2deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(3px) rotate(2deg); } }
@keyframes acr-armThrust { 0% { transform:rotate(-30deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-5px); } 100% { transform:rotate(-30deg) translateY(0); } }
@keyframes acr-shadowShift { 0%,100% { transform:scaleX(1) translateX(0); opacity:0.4; } 50% { transform:scaleX(1.3) translateX(10px); opacity:0.3; } }

/* buckingham-argues-conscience */
.scn-buckingham-argues-conscience {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #8a6a4a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-buckingham-argues-conscience .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.3);
}
.scn-buckingham-argues-conscience .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-buckingham-argues-conscience .column-left {
  position: absolute; left:12%; top:10%; width:8%; height:75%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #6a5a4a 70%);
  border-radius: 8px; box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: ba1-column 6s ease-in-out infinite alternate;
}
.scn-buckingham-argues-conscience .column-right {
  position: absolute; right:12%; top:10%; width:8%; height:75%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #6a5a4a 70%);
  border-radius: 8px; box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: ba1-column 6s ease-in-out infinite alternate-reverse;
}
.scn-buckingham-argues-conscience .figure-left {
  position: absolute; bottom:22%; left:30%; width:16%; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba1-figure-left 4s ease-in-out infinite;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
.scn-buckingham-argues-conscience .figure-right {
  position: absolute; bottom:20%; right:30%; width:18%; height:55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ba1-figure-right 4.5s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
}
.scn-buckingham-argues-conscience .candle {
  position: absolute; bottom:55%; left:48%; width:3%; height:12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
}
.scn-buckingham-argues-conscience .candle::after {
  content: ''; position: absolute; top:-8px; left:50%; transform:translateX(-50%);
  width:10px; height:14px;
  background: radial-gradient(circle, #ffd060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #ff8020;
  animation: ba1-flame 1s ease-in-out infinite alternate;
}
.scn-buckingham-argues-conscience .light-shaft {
  position: absolute; top:0; left:35%; width:30%; height:70%;
  background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, rgba(255,200,100,0) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: ba1-shaft 8s ease-in-out infinite alternate;
}
.scn-buckingham-argues-conscience .shadow-stripe {
  position: absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%);
  animation: ba1-stripe 5s ease-in-out infinite alternate;
}
@keyframes ba1-column { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ba1-figure-left { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ba1-figure-right { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(-4px) rotate(2deg) } 66% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ba1-flame { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1, 1.3) } 100% { transform: translateX(-50%) scale(0.9, 1.2) } }
@keyframes ba1-shaft { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.5 } }
@keyframes ba1-stripe { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }

/* buckingham-argues-more */
.scn-buckingham-argues-more {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 40%, #6a5a4a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-buckingham-argues-more .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
}
.scn-buckingham-argues-more .arch {
  position: absolute; top:10%; left:20%; width:60%; height:60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 80% 100%, 20% 100%, 0% 80%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: ba2-arch 12s ease-in-out infinite alternate;
}
.scn-buckingham-argues-more .bench {
  position: absolute; bottom:28%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: ba2-bench 7s ease-in-out infinite;
}
.scn-buckingham-argues-more .petitioner {
  position: absolute; bottom:30%; left:40%; width:12%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ba2-petitioner 5s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-buckingham-argues-more .guard {
  position: absolute; bottom:28%; right:30%; width:14%; height:45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ba2-guard 6s ease-in-out infinite alternate;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
}
.scn-buckingham-argues-more .window-top {
  position: absolute; top:15%; left:15%; width:12%; height:25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 40% 40% / 50% 50% 20% 20%;
}
.scn-buckingham-argues-more .window-light {
  position: absolute; top:18%; left:17%; width:8%; height:18%;
  background: radial-gradient(ellipse, #ffd060 0%, #c08040 70%, transparent 100%);
  box-shadow: 0 0 40px 10px rgba(255,208,96,0.3);
  animation: ba2-window-light 4s ease-in-out infinite alternate;
}
.scn-buckingham-argues-more .chain {
  position: absolute; bottom:20%; left:50%; width:2%; height:25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  animation: ba2-chain 3s ease-in-out infinite;
}
@keyframes ba2-arch { 0% { clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 80% 100%, 20% 100%, 0% 80%) } 50% { clip-path: polygon(2% 0%, 98% 0%, 100% 78%, 78% 98%, 22% 98%, 0% 78%) } 100% { clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 80% 100%, 20% 100%, 0% 80%) } }
@keyframes ba2-bench { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ba2-petitioner { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(2deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ba2-guard { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ba2-window-light { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes ba2-chain { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* buckingham-argues-end */
.scn-buckingham-argues-end {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-buckingham-argues-end .throne-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-buckingham-argues-end .throne {
  position: absolute; bottom:20%; left:38%; width:24%; height:40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: ba3-throne 9s ease-in-out infinite alternate;
}
.scn-buckingham-argues-end .king-silhouette {
  position: absolute; bottom:20%; left:42%; width:15%; height:35%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba3-king 5s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
}
.scn-buckingham-argues-end .buckingham-silhouette {
  position: absolute; bottom:22%; right:30%; width:14%; height:42%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ba3-buckingham 4.5s ease-in-out infinite;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
.scn-buckingham-argues-end .crown {
  position: absolute; top:45%; left:44%; width:8%; height:10%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  clip-path: polygon(50% 0%, 80% 30%, 100% 30%, 80% 70%, 100% 100%, 50% 80%, 0% 100%, 20% 70%, 0% 30%, 20% 30%);
  animation: ba3-crown 4s ease-in-out infinite alternate;
  box-shadow: 0 0 15px rgba(255,200,100,0.3);
}
.scn-buckingham-argues-end .scepter {
  position: absolute; bottom:40%; left:48%; width:2%; height:18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  animation: ba3-scepter 6s ease-in-out infinite;
}
.scn-buckingham-argues-end .torch {
  position: absolute; bottom:50%; left:20%; width:3%; height:15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-buckingham-argues-end .torch::after {
  content: ''; position: absolute; top:-10px; left:50%; transform:translateX(-50%);
  width:14px; height:18px;
  background: radial-gradient(circle, #ffd060 0%, #ff8020 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #ff8020;
  animation: ba3-flame 1.2s ease-in-out infinite alternate;
}
.scn-buckingham-argues-end .shadow-left {
  position: absolute; top:0; left:0; width:30%; height:100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ba3-shadow 7s ease-in-out infinite alternate;
}
.scn-buckingham-argues-end .shadow-right {
  position: absolute; top:0; right:0; width:30%; height:100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ba3-shadow 7s ease-in-out infinite alternate-reverse;
}
@keyframes ba3-throne { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ba3-king { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ba3-buckingham { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ba3-crown { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes ba3-scepter { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(8deg) translateX(2px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes ba3-flame { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.2, 1.5) } 100% { transform: translateX(-50%) scale(0.9) } }
@keyframes ba3-shadow { 0% { opacity: 0.8 } 50% { opacity: 0.5 } 100% { opacity: 0.9 } }

/* citizens-entreat */
.scn-citizens-entreat {
  background: 
    linear-gradient(180deg, #5a7a7a 0%, #8a9a9a 40%, #6a8a7a 100%),
    radial-gradient(ellipse at 70% 30%, #b0c0b0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-citizens-entreat .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7a9a9a 0%, #9ab0b0 50%, #8aa0a0 100%);
  animation: ce-sky 15s ease-in-out infinite alternate;
}
.scn-citizens-entreat .city-wall {
  position: absolute; bottom:28%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-citizens-entreat .gate {
  position: absolute; bottom:28%; left:35%; width:30%; height:40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: ce-gate 12s ease-in-out infinite alternate;
}
.scn-citizens-entreat .lord-figure {
  position: absolute; bottom:30%; left:45%; width:12%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-lord 5s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
}
.scn-citizens-entreat .crowd {
  position: absolute; bottom:25%; left:20%; width:60%; height:30%;
  background: repeating-linear-gradient(
    90deg,
    #3a2a1a 0%, #3a2a1a 4%, #2a1a0a 4%, #2a1a0a 8%, #4a3a2a 8%, #4a3a2a 12%
  );
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 80%);
  animation: ce-crowd 8s ease-in-out infinite alternate;
}
.scn-citizens-entreat .petition-scroll {
  position: absolute; bottom:40%; left:40%; width:4%; height:12%;
  background: linear-gradient(180deg, #c0b090 0%, #a09080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ce-scroll 4s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
}
.scn-citizens-entreat .sunburst {
  position: absolute; top:8%; left:65%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0) 70%);
  animation: ce-sunburst 10s ease-in-out infinite alternate;
}
.scn-citizens-entreat .dove {
  position: absolute; top:20%; left:30%; width:8%; height:6%;
  background: radial-gradient(ellipse, #e0d0c0 0%, #c0b0a0 70%, transparent 100%);
  clip-path: polygon(50% 0%, 80% 40%, 60% 50%, 70% 90%, 50% 70%, 30% 90%, 40% 50%, 20% 40%);
  animation: ce-dove 7s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes ce-sky { 0% { background: linear-gradient(180deg, #7a9a9a 0%, #9ab0b0 50%, #8aa0a0 100%) } 50% { background: linear-gradient(180deg, #8aa0a0 0%, #a0b0b0 50%, #90a0a0 100%) } 100% { background: linear-gradient(180deg, #7a9a9a 0%, #9ab0b0 50%, #8aa0a0 100%) } }
@keyframes ce-gate { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ce-lord { 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 ce-crowd { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes ce-scroll { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-15deg) } }
@keyframes ce-sunburst { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes ce-dove { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(20px, -10px) rotate(5deg) } 100% { transform: translate(40px, 0) rotate(-3deg) } }

/* ----- Scene 1: buckingham-proud-heritage ----- */
.scn-buckingham-proud-heritage {
  background: linear-gradient(180deg, #f5f0e0 0%, #d4cbb8 40%, #b8a890 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 70%);
}
.scn-buckingham-proud-heritage .window-arch {
  position: absolute; top: 8%; left: 50%; width: 32%; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #87ceeb 0%, #c8e6f0 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 40px 10px rgba(255,235,200,0.3);
  animation: bh-window 12s ease-in-out infinite alternate;
}
.scn-buckingham-proud-heritage .column-l {
  position: absolute; bottom: 0; left: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b8a080 0%, #d4c4b0 40%, #b8a080 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 8px 0 12px rgba(0,0,0,0.15);
  animation: bh-column 18s ease-in-out infinite;
}
.scn-buckingham-proud-heritage .column-r {
  position: absolute; bottom: 0; right: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b8a080 0%, #d4c4b0 40%, #b8a080 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: -8px 0 12px rgba(0,0,0,0.15);
  animation: bh-column 18s ease-in-out infinite reverse;
}
.scn-buckingham-proud-heritage .figure-proud {
  position: absolute; bottom: 6%; left: 45%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: bh-figure 8s ease-in-out infinite alternate;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
}
.scn-buckingham-proud-heritage .falcon {
  position: absolute; top: 18%; left: 52%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 80% 50% 30% / 60% 80% 40% 40%;
  clip-path: polygon(0% 50%, 40% 0%, 60% 0%, 100% 50%, 80% 100%, 20% 100%);
  animation: bh-falcon 4s ease-in-out infinite alternate;
  transform-origin: center bottom;
}
.scn-buckingham-proud-heritage .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: bh-sunbeam 9s ease-in-out infinite alternate;
}
.scn-buckingham-proud-heritage .floor-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  border-radius: 50%;
  animation: bh-shadow 8s ease-in-out infinite alternate;
}
@keyframes bh-window {
  0% { opacity: 0.9; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.03); }
  100% { opacity: 0.85; transform: translateX(-50%) scaleY(0.97); }
}
@keyframes bh-column {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bh-figure {
  0% { transform: rotate(-2deg) scaleX(0.98); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(-1deg) scaleX(0.99); }
}
@keyframes bh-falcon {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(2px); }
}
@keyframes bh-sunbeam {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes bh-shadow {
  0% { opacity: 0.2; transform: scaleX(0.95); }
  50% { opacity: 0.4; transform: scaleX(1); }
  100% { opacity: 0.1; transform: scaleX(0.9); }
}

/* ----- Scene 2: margaret-exits ----- */
.scn-margaret-exits {
  background: linear-gradient(180deg, #f8e8d8 0%, #d4c0a8 40%, #a09078 100%),
              radial-gradient(ellipse at 70% 30%, #ffe0c0 0%, transparent 60%);
}
.scn-margaret-exits .door-frame {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 85%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: me-frame 14s ease-in-out infinite alternate;
}
.scn-margaret-exits .door-ajar {
  position: absolute; bottom: 0; left: 48%; width: 22%; height: 80%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 0 4px 0 0;
  transform-origin: left center;
  animation: me-door 10s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-margaret-exits .figure-exit {
  position: absolute; bottom: 4%; left: 52%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: me-exit 12s ease-in-out infinite;
}
.scn-margaret-exits .train {
  position: absolute; bottom: 2%; left: 50%; width: 20%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #2a2a3a 40%, #1a1a2a 100%);
  border-radius: 0 50% 50% 0 / 0 30% 30% 0;
  transform-origin: left bottom;
  animation: me-train 8s ease-in-out infinite alternate;
  opacity: 0.7;
}
.scn-margaret-exits .light-spill {
  position: absolute; bottom: 0; left: 40%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,220,180,0.5) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: me-light 6s ease-in-out infinite alternate;
}
.scn-margaret-exits .floor-dark {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  animation: me-floor 20s ease-in-out infinite;
}
.scn-margaret-exits .wall-dark {
  position: absolute; top: 0; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  animation: me-wall 18s ease-in-out infinite;
}
@keyframes me-frame {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.005); }
  100% { transform: scaleX(0.995); }
}
@keyframes me-door {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(8deg); }
  70% { transform: rotate(6deg); }
  100% { transform: rotate(0deg); }
}
@keyframes me-exit {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(8px) rotate(-2deg) scaleY(1.05); }
  100% { transform: translateX(16px) rotate(0deg) scaleY(1); }
}
@keyframes me-train {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(-3deg) scaleX(0.9); }
}
@keyframes me-light {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}
@keyframes me-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes me-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* ----- Scene 3: richard-scorns-curses ----- */
.scn-richard-scorns-curses {
  background: linear-gradient(180deg, #fff0c0 0%, #ffe880 40%, #ffd060 100%),
              radial-gradient(circle at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-richard-scorns-curses .backdrop-bright {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, #f0d080 0%, #e0b060 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: rs-backdrop 16s ease-in-out infinite alternate;
}
.scn-richard-scorns-curses .figure-sneer {
  position: absolute; bottom: 12%; left: 40%; width: 16%; height: 52%;
  background: linear-gradient(180deg, #2a6a3a 0%, #1a4a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: rs-sneer 3s ease-in-out infinite;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-richard-scorns-curses .arm-point {
  position: absolute; bottom: 22%; left: 52%; width: 16%; height: 6%;
  background: linear-gradient(90deg, #1a4a2a 0%, #2a6a3a 100%);
  border-radius: 50% 0 0 50% / 100% 0 0 100%;
  transform-origin: left center;
  animation: rs-arm 2s ease-in-out infinite alternate;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-richard-scorns-curses .hat-cocked {
  position: absolute; top: 8%; left: 44%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-8deg);
  animation: rs-hat 1.5s ease-in-out infinite alternate;
}
.scn-richard-scorns-curses .shadow-dance {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50%;
  animation: rs-shadow 5s ease-in-out infinite;
}
.scn-richard-scorns-curses .sparkle-a {
  position: absolute; top: 20%; left: 20%; width: 4%; height: 4%;
  background: radial-gradient(circle, #fff 0%, transparent 80%);
  border-radius: 50%;
  animation: rs-sparkle-a 2s ease-in-out infinite;
}
.scn-richard-scorns-curses .sparkle-b {
  position: absolute; top: 30%; right: 25%; width: 3%; height: 3%;
  background: radial-gradient(circle, #fff 0%, transparent 80%);
  border-radius: 50%;
  animation: rs-sparkle-b 2.5s ease-in-out infinite;
}
@keyframes rs-backdrop {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}
@keyframes rs-sneer {
  0% { transform: rotate(-3deg) translateY(0) scaleX(0.98); }
  50% { transform: rotate(3deg) translateY(-4px) scaleX(1.05); }
  100% { transform: rotate(-2deg) translateY(2px) scaleX(0.96); }
}
@keyframes rs-arm {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.2); }
  100% { transform: rotate(-10deg) scaleX(0.9); }
}
@keyframes rs-hat {
  0% { transform: rotate(-12deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(4px); }
  100% { transform: rotate(-16deg) translateX(-2px); }
}
@keyframes rs-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.2; transform: scaleX(0.95); }
}
@keyframes rs-sparkle-a {
  0% { opacity: 0; transform: scale(0) translate(0, 0); }
  50% { opacity: 1; transform: scale(1.5) translate(10px, -10px); }
  100% { opacity: 0; transform: scale(0) translate(20px, -20px); }
}
@keyframes rs-sparkle-b {
  0% { opacity: 0; transform: scale(0) translate(0, 0); }
  50% { opacity: 1; transform: scale(1.3) translate(-8px, 6px); }
  100% { opacity: 0; transform: scale(0) translate(-16px, 12px); }
}

/* ----- Scene 4: buckingham-dismisses-margaret ----- */
.scn-buckingham-dismisses-margaret {
  background: linear-gradient(180deg, #faf5ee 0%, #e8e0d4 40%, #d0c4b0 100%),
              radial-gradient(ellipse at 60% 20%, #fff8f0 0%, transparent 70%);
}
.scn-buckingham-dismisses-margaret .bg-soft {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%);
  animation: bd-bg 20s ease-in-out infinite alternate;
}
.scn-buckingham-dismisses-margaret .figure-left {
  position: absolute; bottom: 8%; left: 30%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: bd-left 10s ease-in-out infinite alternate;
  box-shadow: 2px 0 8px rgba(0,0,0,0.15);
}
.scn-buckingham-dismisses-margaret .figure-right {
  position: absolute; bottom: 6%; right: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: bd-right 12s ease-in-out infinite;
  opacity: 0.8;
  box-shadow: -2px 0 6px rgba(0,0,0,0.1);
}
.scn-buckingham-dismisses-margaret .floor-calm {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 100%);
  border-radius: 50%;
  animation: bd-floor 24s ease-in-out infinite;
}
.scn-buckingham-dismisses-margaret .column-slim {
  position: absolute; bottom: 0; left: 48%; width: 4%; height: 70%;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a890 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.08);
  animation: bd-column 18s ease-in-out infinite;
}
.scn-buckingham-dismisses-margaret .light-beam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,220,0.2) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%);
  animation: bd-light 15s ease-in-out infinite alternate;
}
@keyframes bd-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bd-left {
  0% { transform: rotate(0deg) translateY(0) scaleX(1); }
  50% { transform: rotate(1deg) translateY(-2px) scaleX(1.01); }
  100% { transform: rotate(-1deg) translateY(0) scaleX(0.99); }
}
@keyframes bd-right {
  0% { transform: rotate(0deg) translateX(0) scaleY(1); }
  50% { transform: rotate(2deg) translateX(-4px) scaleY(1.02); }
  100% { transform: rotate(-1deg) translateX(2px) scaleY(0.98); }
}
@keyframes bd-floor {
  0% { opacity: 0.8; filter: blur(0px); }
  50% { opacity: 1; filter: blur(1px); }
  100% { opacity: 0.7; filter: blur(0px); }
}
@keyframes bd-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes bd-light {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.2; transform: scaleX(0.95); }
}

.scn-margaret-trusts-her-history {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-margaret-trusts-her-history .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a3a6e 0%, #1a1a3e 100%);
  animation: s1-sky 8s ease-in-out infinite alternate;
}
.scn-margaret-trusts-her-history .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: s1-ground 12s ease-in-out infinite;
}
.scn-margaret-trusts-her-history .figure {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 6s ease-in-out infinite;
}
.scn-margaret-trusts-her-history .crown {
  position: absolute; bottom: 40%; left: 47%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(176,128,64,0.5);
  animation: s1-crown 4s ease-in-out infinite;
}
.scn-margaret-trusts-her-history .scroll {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.5);
  animation: s1-scroll 10s linear infinite;
}
.scn-margaret-trusts-her-history .shadow {
  position: absolute; bottom: 18%; left: 42%; width: 60px; height: 12px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: s1-shadow 8s ease-in-out infinite;
}
@keyframes s1-sky { 0% { opacity:0.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-4px) } 100% { opacity:0.75; transform:translateY(2px) } }
@keyframes s1-ground { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes s1-figure { 0%,100% { transform:translateX(0) translateY(0) rotate(-1deg) } 50% { transform:translateX(2px) translateY(-3px) rotate(2deg) } }
@keyframes s1-crown { 0%,100% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes s1-scroll { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(2px) scaleX(1.05) } 100% { transform:translateX(-1px) scaleX(0.95) } }
@keyframes s1-shadow { 0%,100% { opacity:0.5; transform:scaleX(1) } 50% { opacity:0.8; transform:scaleX(1.1) } }

.scn-elizabeth-wants-grave {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 50%, #2a2a4e 100%), radial-gradient(ellipse at 30% 80%, #2a2a4e 0%, transparent 60%);
}
.scn-elizabeth-wants-grave .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  animation: s2-sky 15s ease-in-out infinite alternate;
}
.scn-elizabeth-wants-grave .graveyard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #0a0a0f 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-elizabeth-wants-grave .mound {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: s2-mound 20s ease-in-out infinite;
}
.scn-elizabeth-wants-grave .figure {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a3a4e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure 7s ease-in-out infinite;
}
.scn-elizabeth-wants-grave .cross {
  position: absolute; bottom: 40%; left: 52%; width: 8px; height: 30px;
  background: #3a3a4e;
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(180,180,200,0.2);
  animation: s2-cross 5s ease-in-out infinite;
}
.scn-elizabeth-wants-grave .moon {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #c8c8d8 0%, #7878a0 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(120,120,160,0.4);
  animation: s2-moon 12s ease-in-out infinite alternate;
}
.scn-elizabeth-wants-grave .tear {
  position: absolute; bottom: 45%; left: 47%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at top, #a0a0c0 0%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: s2-tear 3s ease-in-out infinite;
}
@keyframes s2-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes s2-mound { 0%,100% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.03) } }
@keyframes s2-figure { 0%,100% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(1px) rotate(3deg) } }
@keyframes s2-cross { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } }
@keyframes s2-moon { 0% { transform:translateX(0) scale(1); box-shadow:0 0 25px 8px rgba(120,120,160,0.3) } 50% { transform:translateX(5px) scale(1.02); box-shadow:0 0 40px 14px rgba(120,120,160,0.5) } 100% { transform:translateX(-3px) scale(0.98); box-shadow:0 0 20px 6px rgba(120,120,160,0.25) } }
@keyframes s2-tear { 0% { transform:translateY(0) scaleY(1); opacity:0.2 } 30% { opacity:0.8 } 50% { transform:translateY(6px) scaleY(1.3); opacity:0.9 } 100% { transform:translateY(12px) scaleY(0.5); opacity:0 } }

.scn-margaret-catalogues {
  background: linear-gradient(180deg, #0a0a15 0%, #1a1a2e 40%, #2a1a3e 100%), radial-gradient(ellipse at 20% 70%, #2a1a3e 0%, transparent 70%);
}
.scn-margaret-catalogues .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,26,46,0.6) 0%, transparent 100%);
  animation: s3-bg 20s ease-in-out infinite alternate;
}
.scn-margaret-catalogues .main-figure {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-main 8s ease-in-out infinite;
}
.scn-margaret-catalogues .shadow-son1 {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 40px;
  background: rgba(30,20,40,0.7);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-son 6s ease-in-out infinite;
}
.scn-margaret-catalogues .shadow-son2 {
  position: absolute; bottom: 22%; left: 56%; width: 20px; height: 38px;
  background: rgba(30,20,40,0.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-son 7s ease-in-out infinite 0.5s;
}
.scn-margaret-catalogues .shadow-son3 {
  position: absolute; bottom: 22%; left: 63%; width: 18px; height: 35px;
  background: rgba(30,20,40,0.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-son 7s ease-in-out infinite 1s;
}
.scn-margaret-catalogues .shadow-son4 {
  position: absolute; bottom: 22%; left: 69%; width: 16px; height: 32px;
  background: rgba(30,20,40,0.3);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-son 8s ease-in-out infinite 1.5s;
}
.scn-margaret-catalogues .blood-drip {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 14px;
  background: radial-gradient(ellipse at top, #a0461a 0%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: s3-drip 4s ease-in-out infinite;
}
@keyframes s3-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes s3-main { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(2px) rotate(2deg) } 75% { transform:translateX(-2px) rotate(1deg) } }
@keyframes s3-son { 0%,100% { transform:translateY(0) scale(1); opacity:0.7 } 50% { transform:translateY(-3px) scale(1.1); opacity:0.9 } }
@keyframes s3-drip { 0% { transform:translateY(0) scaleY(1); opacity:0.4 } 20% { opacity:0.9 } 50% { transform:translateY(8px) scaleY(1.4); opacity:0.7 } 100% { transform:translateY(16px) scaleY(0.3); opacity:0 } }

.scn-margaret-curse-continues {
  background: linear-gradient(180deg, #0a0a10 0%, #1a1a2a 50%, #2a1a2a 100%), radial-gradient(ellipse at 70% 90%, #2a1a2a 0%, transparent 60%);
}
.scn-margaret-curse-continues .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,20,30,0.5) 0%, transparent 100%);
  animation: s4-backdrop 25s ease-in-out infinite alternate;
}
.scn-margaret-curse-continues .curse-figure {
  position: absolute; bottom: 18%; left: 25%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-curse 10s ease-in-out infinite;
}
.scn-margaret-curse-continues .hound-body {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 30px;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%;
  transform: rotate(-10deg);
  animation: s4-hound 12s ease-in-out infinite;
}
.scn-margaret-curse-continues .hound-eyes {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 4px;
  background: radial-gradient(circle, #8a2020 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 12px 0 0 0 #8a2020;
  animation: s4-eyes 3s ease-in-out infinite;
}
.scn-margaret-curse-continues .teeth {
  position: absolute; bottom: 28%; left: 54%; width: 20px; height: 6px;
  background: #d0d0d0;
  border-radius: 2px;
  box-shadow: inset 0 -2px 0 #a0a0a0;
  animation: s4-teeth 5s ease-in-out infinite;
}
.scn-margaret-curse-continues .ground-black {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: #0a0a0a;
  border-radius: 40% 60% 0 0;
  animation: s4-ground 18s ease-in-out infinite;
}
.scn-margaret-curse-continues .fog {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40,30,40,0.3) 0%, transparent 50%);
  filter: blur(10px);
  animation: s4-fog 30s linear infinite;
}
@keyframes s4-backdrop { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes s4-curse { 0%,100% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(3deg) } }
@keyframes s4-hound { 0%,100% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-15deg) translateY(-2px) } }
@keyframes s4-eyes { 0%,100% { opacity:0.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.5) } }
@keyframes s4-teeth { 0%,100% { transform:scaleX(1); opacity:0.9 } 50% { transform:scaleX(1.1); opacity:1 } }
@keyframes s4-ground { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(-1px) } }
@keyframes s4-fog { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

/* Scene: norfolk-give-and-take (ng) */
.scn-norfolk-give-and-take {
  background: linear-gradient(180deg, #0d0d2a 0%, #1a1a3e 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-norfolk-give-and-take .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #12122e 0%, #1e1e3a 100%); animation: ng-sky 20s ease-in-out infinite alternate; }
.scn-norfolk-give-and-take .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-norfolk-give-and-take .tent { position:absolute; bottom:20%; left:50%; width:140px; height:110px; transform:translateX(-50%); background: linear-gradient(135deg, #3a2a2a 0%, #1f1515 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); box-shadow: 0 8px 15px rgba(0,0,0,.6); animation: ng-tent 8s ease-in-out infinite; }
.scn-norfolk-give-and-take .fire-glow { position:absolute; bottom:28%; left:45%; width:50px; height:50px; background: radial-gradient(circle, #f0a040 0%, #e07020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,160,64,.4); animation: ng-glow 3s ease-in-out infinite alternate; }
.scn-norfolk-give-and-take .flame { position:absolute; bottom:30%; left:46%; width:20px; height:35px; background: linear-gradient(180deg, #ffd080 0%, #e08030 50%, #a04010 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: ng-flame 1.5s ease-in-out infinite alternate; }
.scn-norfolk-give-and-take .figure-stand { position:absolute; bottom:22%; left:38%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ng-figure 6s ease-in-out infinite; }
.scn-norfolk-give-and-take .star-1 { position:absolute; top:10%; left:20%; width:3px; height:3px; background:#fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,.6); animation: ng-star 4s ease-in-out infinite alternate; }
.scn-norfolk-give-and-take .star-2 { position:absolute; top:25%; right:30%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 0 0 4px 1px rgba(255,255,255,.4); animation: ng-star 5s ease-in-out infinite alternate-reverse; }
@keyframes ng-sky { 0% { opacity:.9 } 50% { opacity:.7 } 100% { opacity:.85 } }
@keyframes ng-tent { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0deg) } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes ng-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes ng-flame { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.2) scaleX(0.9) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes ng-figure { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(2px) translateY(-1px) } 100% { transform: translateX(0) } }
@keyframes ng-star { 0% { opacity:.3 } 50% { opacity:1 } 100% { opacity:.5 } }

/* Scene: richard-dismisses (rd) */
.scn-richard-dismisses {
  background: linear-gradient(180deg, #0f0f2e 0%, #1a1a3e 60%, #2e1a1a 100%), radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 80%);
}
.scn-richard-dismisses .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #14142e 0%, #1e1e3a 40%, #2a1a1a 100%); animation: rd-sky 25s ease-in-out infinite alternate; }
.scn-richard-dismisses .ground-flat { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); }
.scn-richard-dismisses .tent-back { position:absolute; bottom:20%; left:50%; width:160px; height:80px; transform:translateX(-60%); background: linear-gradient(135deg, #2a1a1a 0%, #151010 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: 0 5px 10px rgba(0,0,0,.5); animation: rd-tent 10s ease-in-out infinite; }
.scn-richard-dismisses .banner { position:absolute; bottom:60%; left:35%; width:25px; height:90px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 5% 5% 0 0; transform-origin: top; animation: rd-banner 6s ease-in-out infinite; }
.scn-richard-dismisses .torch { position:absolute; bottom:28%; left:30%; width:8px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; animation: rd-torch-sway 4s ease-in-out infinite; }
.scn-richard-dismisses .figure-king { position:absolute; bottom:22%; left:45%; width:20px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 15px 5px rgba(255,200,100,.2); animation: rd-king 7s ease-in-out infinite; }
.scn-richard-dismisses .torch-light { position:absolute; bottom:30%; left:28%; width:60px; height:60px; background: radial-gradient(circle, #f0a040 0%, #c07020 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(240,160,64,.3); animation: rd-glow 2s ease-in-out infinite alternate; }
@keyframes rd-sky { 0%,100% { opacity:.85 } 50% { opacity:.7 } }
@keyframes rd-tent { 0%,100% { transform:translateX(-60%) translateY(0) } 50% { transform:translateX(-60%) translateY(-1px) } }
@keyframes rd-banner { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(3deg) scaleX(.95) } 50% { transform: rotate(0deg) scaleX(1) } 75% { transform: rotate(-3deg) scaleX(.95) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes rd-torch-sway { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }
@keyframes rd-king { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes rd-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.8; transform: scale(1) } }

/* Scene: exeunt-richard-camp (ec) */
.scn-exeunt-richard-camp {
  background: linear-gradient(180deg, #2a1a3e 0%, #3a204a 30%, #6a4a2a 70%, #c08040 100%), radial-gradient(ellipse at 50% 0%, #c08040 0%, transparent 60%);
}
.scn-exeunt-richard-camp .sky-dusk { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a3e 0%, #4a2a2a 40%, #8a5a2a 70%, #d09040 100%); animation: ec-sky 30s ease-in-out infinite alternate; }
.scn-exeunt-richard-camp .horizon-glow { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, #d09040 40%, #e0a050 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -10px 30px rgba(200,120,50,.5); animation: ec-horizon 8s ease-in-out infinite alternate; }
.scn-exeunt-richard-camp .ground-camp { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-exeunt-richard-camp .tent-half { position:absolute; bottom:15%; left:40%; width:120px; height:90px; background: linear-gradient(135deg, #3a2a2a 0%, #1f1515 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); transform: rotate(-10deg); transform-origin: bottom center; animation: ec-tent 5s ease-in-out infinite alternate; }
.scn-exeunt-richard-camp .soldier { position:absolute; bottom:18%; width:14px; height:35px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: ec-soldier 4s ease-in-out infinite; }
.scn-exeunt-richard-camp .s1 { left:30%; animation-delay: 0s; }
.scn-exeunt-richard-camp .s2 { left:55%; animation-delay: 1.5s; }
.scn-exeunt-richard-camp .cloud-drift { position:absolute; top:15%; left:-10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,120,50,.4) 0%, rgba(200,120,50,.1) 100%); border-radius:50%; filter: blur(8px); animation: ec-cloud 40s linear infinite; }
@keyframes ec-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ec-horizon { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes ec-tent { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ec-soldier { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-2px) } 50% { transform: translateX(6px) translateY(0) } 75% { transform: translateX(3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ec-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(150vw) } }

/* Scene: richmond-plans (rp) */
.scn-richmond-plans {
  background: linear-gradient(180deg, #3a2a2a 0%, #4a3020 30%, #5a4030 70%, #4a3020 100%), radial-gradient(ellipse at 50% 60%, #5a4030 0%, transparent 70%);
}
.scn-richmond-plans .tent-interior { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0f0f 100%); animation: rp-interior 15s ease-in-out infinite alternate; }
.scn-richmond-plans .table { position:absolute; bottom:20%; left:50%; width:120px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 15px rgba(0,0,0,.5), inset 0 2px 5px rgba(255,200,150,.1); }
.scn-richmond-plans .map-grid { position:absolute; bottom:25%; left:50%; width:90px; height:35px; transform:translateX(-50%); background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #5a3a1a 8px, #5a3a1a 9px), repeating-linear-gradient(0deg, transparent 0px, transparent 8px, #5a3a1a 8px, #5a3a1a 9px); opacity:.5; animation: rp-map 20s linear infinite; }
.scn-richmond-plans .candle { position:absolute; bottom:35%; left:55%; width:6px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: rp-candle-sway 4s ease-in-out infinite; }
.scn-richmond-plans .candle-glow { position:absolute; bottom:40%; left:55%; width:30px; height:30px; background: radial-gradient(circle, #f0c060 0%, #d09030 30%, transparent 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 40px 15px rgba(240,192,96,.4); animation: rp-glow 3s ease-in-out infinite alternate; }
.scn-richmond-plans .figure-leader { position:absolute; bottom:18%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-leader 8s ease-in-out infinite; }
.scn-richmond-plans .figure-counsel { position:absolute; bottom:18%; left:55%; width:16px; height:35px; background: linear-gradient(180deg, #2a1a1a 0%, #151010 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-counsel 9s ease-in-out infinite; }
@keyframes rp-interior { 0%,100% { opacity:.95 } 50% { opacity:.85 } }
@keyframes rp-map { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes rp-candle-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes rp-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(1) } }
@keyframes rp-leader { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes rp-counsel { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }

/* Scene: murderers-reward-dispels-conscience (funny, dim-interior) */
.scn-murderers-reward-dispels-conscience {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a120a 60%, #0a0805 100%),
    linear-gradient(180deg, #2a1e12 0%, #1a120a 50%, #0a0805 100%);
}
.scn-murderers-reward-dispels-conscience .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%);
  animation: rdc-wall 6s ease-in-out infinite alternate;
}
.scn-murderers-reward-dispels-conscience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0905 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
}
.scn-murderers-reward-dispels-conscience .table {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 8% / 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-murderers-reward-dispels-conscience .figure-left {
  position: absolute; bottom: 24%; left: 25%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdc-figleft 4s ease-in-out infinite;
}
.scn-murderers-reward-dispels-conscience .figure-right {
  position: absolute; bottom: 24%; right: 25%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdc-figright 5s ease-in-out infinite;
}
.scn-murderers-reward-dispels-conscience .purse {
  position: absolute; bottom: 24%; left: 48%; width: 6%; height: 5%;
  background: radial-gradient(circle, #c8a060 0%, #8a6030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(200,160,96,0.5);
  animation: rdc-purse 2s ease-in-out infinite alternate;
}
.scn-murderers-reward-dispels-conscience .conscience {
  position: absolute; bottom: 50%; left: 20%; width: 8%; height: 10%;
  background: radial-gradient(circle, rgba(220,200,180,0.8) 0%, rgba(220,200,180,0) 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rdc-conscience 6s ease-in-out infinite;
}
@keyframes rdc-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rdc-figleft { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rdc-figright { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes rdc-purse { 0% { transform: scale(1); box-shadow: 0 0 8px 1px rgba(200,160,96,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 16px 4px rgba(200,160,96,0.7); } 100% { transform: scale(0.98); box-shadow: 0 0 10px 2px rgba(200,160,96,0.5); } }
@keyframes rdc-conscience { 0% { transform: translate(0, 0) scale(1); opacity: 0.6; } 50% { transform: translate(-20px, 40px) scale(1.5); opacity: 0.2; } 100% { transform: translate(-50px, 80px) scale(0.5); opacity: 0; } }

/* Scene: murderers-disdain-conscience (funny, dim-interior) */
.scn-murderers-disdain-conscience {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2515 0%, #1a1008 60%, #0a0603 100%),
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 50%, #0a0603 100%);
}
.scn-murderers-disdain-conscience .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg,  #2a1a0e 0%, #1a1008 100%);
  animation: ddc-wall 8s ease-in-out infinite alternate;
}
.scn-murderers-disdain-conscience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0603 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-murderers-disdain-conscience .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ddc-figleft 6s ease-in-out infinite;
}
.scn-murderers-disdain-conscience .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ddc-figright 5s ease-in-out infinite;
}
.scn-murderers-disdain-conscience .conscience {
  position: absolute; bottom: 50%; left: 70%; width: 10%; height: 12%;
  background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, rgba(200,180,160,0) 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ddc-conscience 7s ease-in-out infinite;
}
.scn-murderers-disdain-conscience .door {
  position: absolute; bottom: 20%; right: 5%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0603 100%);
  border: 2px solid #3a2515;
  border-radius: 5% 0 0 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: ddc-door 12s ease-in-out infinite alternate;
}
.scn-murderers-disdain-conscience .candle {
  position: absolute; bottom: 45%; left: 45%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #a06030 0%, #502010 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 12px 4px rgba(200,120,60,0.6);
  animation: ddc-candle 2s ease-in-out infinite alternate;
}
@keyframes ddc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ddc-figleft { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(4deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ddc-figright { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 20% { transform: translateY(-2px) rotate(-5deg) scaleX(0.9); } 40% { transform: translateY(0) rotate(3deg) scaleX(1); } 60% { transform: translateY(-1px) rotate(-2deg) scaleX(1.05); } 80% { transform: translateY(0) rotate(0deg) scaleX(1); } 100% { transform: translateY(-2px) rotate(-3deg) scaleX(0.95); } }
@keyframes ddc-conscience { 0% { transform: translate(0, 0) scale(1); opacity: 0.7; } 25% { transform: translate(-30px, -20px) scale(1.3); opacity: 0.4; } 50% { transform: translate(-60px, -40px) scale(0.8); opacity: 0.2; } 75% { transform: translate(-90px, -60px) scale(1.1); opacity: 0.5; } 100% { transform: translate(-120px, -80px) scale(0.5); opacity: 0; } }
@keyframes ddc-door { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(0.98); } }
@keyframes ddc-candle { 0% { transform: translateY(0) scaleY(1); box-shadow: 0 0 10px 2px rgba(200,120,60,0.5); } 50% { transform: translateY(-2px) scaleY(1.1); box-shadow: 0 0 18px 6px rgba(200,120,60,0.8); } 100% { transform: translateY(0) scaleY(0.95); box-shadow: 0 0 12px 3px rgba(200,120,60,0.6); } }

/* Scene: murderers-resolve-evil (dark, dim-interior) */
.scn-murderers-resolve-evil {
  background:
    radial-gradient(ellipse at 50% 30%, #1a0e0a 0%, #0a0503 60%, #030101 100%),
    linear-gradient(180deg, #120a05 0%, #0a0503 50%, #030101 100%);
}
.scn-murderers-resolve-evil .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #120a05 0%, #0a0503 100%);
  animation: rev-wall 10s ease-in-out infinite alternate;
}
.scn-murderers-resolve-evil .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0503 0%, #030101 100%);
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.8);
}
.scn-murderers-resolve-evil .barrel {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 30% / 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: rev-barrel 8s ease-in-out infinite;
}
.scn-murderers-resolve-evil .figure-sword {
  position: absolute; bottom: 10%; left: 20%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rev-swordfig 4s ease-in-out infinite;
}
.scn-murderers-resolve-evil .figure-shadow {
  position: absolute; bottom: 10%; right: 20%; width: 15%; height: 38%;
  background: linear-gradient(180deg, #0a0503 0%, #030101 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rev-shadowfig 6s ease-in-out infinite;
}
.scn-murderers-resolve-evil .sword-gleam {
  position: absolute; bottom: 25%; left: 22%; width: 3%; height: 20%;
  background: linear-gradient(180deg, rgba(200,200,180,0.6) 0%, rgba(200,200,180,0) 100%);
  border-radius: 20%;
  filter: blur(2px);
  animation: rev-gleam 3s ease-in-out infinite alternate;
}
.scn-murderers-resolve-evil .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #050302 100%);
  animation: rev-creep 7s ease-in-out infinite;
}
@keyframes rev-wall { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes rev-barrel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rev-swordfig { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(3deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes rev-shadowfig { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes rev-gleam { 0% { opacity: 0; } 50% { opacity: 0.7; } 100% { opacity: 0.1; } }
@keyframes rev-creep { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-5px); opacity: 0.6; } 100% { transform: translateY(0); opacity: 0.4; } }

/* Scene: clarence-wakes-to-death (dark, dim-interior) */
.scn-clarence-wakes-to-death {
  background:
    radial-gradient(ellipse at 50% 40%, #1a100e 0%, #0a0604 60%, #030201 100%),
    linear-gradient(180deg, #120a08 0%, #0a0604 50%, #030201 100%);
}
.scn-clarence-wakes-to-death .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #120a08 0%, #0a0604 100%);
  animation: cwd-wall 12s ease-in-out infinite alternate;
}
.scn-clarence-wakes-to-death .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0604 0%, #030201 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.9);
}
.scn-clarence-wakes-to-death .clarence {
  position: absolute; bottom: 15%; left: 30%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwd-clarence 5s ease-in-out infinite;
}
.scn-clarence-wakes-to-death .cup {
  position: absolute; bottom: 18%; left: 35%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cwd-cup 3s ease-in-out infinite alternate;
}
.scn-clarence-wakes-to-death .murderer-stand {
  position: absolute; bottom: 10%; right: 25%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwd-stand 7s ease-in-out infinite;
}
.scn-clarence-wakes-to-death .murderer-behind {
  position: absolute; bottom: 12%; right: 10%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #0a0503 0%, #030101 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwd-behind 9s ease-in-out infinite;
}
.scn-clarence-wakes-to-death .wine-spill {
  position: absolute; bottom: 15%; left: 33%; width: 8%; height: 3%;
  background: radial-gradient(circle, #4a1a0a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cwd-spill 4s ease-in-out infinite alternate;
}
@keyframes cwd-wall { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cwd-clarence { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-5px) rotate(5deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-3px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes cwd-cup { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(-2px); } 100% { transform: rotate(5deg) translateX(1px); } }
@keyframes cwd-stand { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(1.02); } 50% { transform: translateY(0) scaleY(0.98); } 75% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cwd-behind { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(2deg); } 66% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cwd-spill { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-elizabeth-asks-more {
  background: linear-gradient(180deg, #7a9bc0 0%, #a4c2e0 40%, #d4e0f0 70%, #ffd699 100%),
              radial-gradient(ellipse at 60% 30%, #fff4d6 0%, transparent 60%);
}
.scn-elizabeth-asks-more .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0cfe0 0%, #dce8f4 100%);
  animation: ea-sky 8s ease-in-out infinite alternate;
}
.scn-elizabeth-asks-more .sun {
  position: absolute; top: 15%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc40 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 20px #ffcc40;
  animation: ea-sun 6s ease-in-out infinite alternate;
}
.scn-elizabeth-asks-more .bg-banner {
  position: absolute; bottom: 28%; left: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ea-banner-sway 9s ease-in-out infinite;
}
.scn-elizabeth-asks-more .bg-banner.right {
  left: auto; right: 15%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5e1a1d 0%, #702243 100%);
  animation-delay: 2s;
}
.scn-elizabeth-asks-more .figure-queen {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #2a2a4a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform: translateX(-50%);
  animation: ea-queen 4s ease-in-out infinite;
}
.scn-elizabeth-asks-more .arm {
  position: absolute; bottom: 60%; left: 40%; width: 8px; height: 40px;
  background: #1a1a2a; border-radius: 50% 50% 0 0;
  transform-origin: bottom left;
  animation: ea-arm 2.5s ease-in-out infinite;
}
.scn-elizabeth-asks-more .drum {
  position: absolute; bottom: 20%; left: 60%; width: 30px; height: 20px;
  background: radial-gradient(circle, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ea-drum 1.2s ease-in-out infinite;
}
.scn-elizabeth-asks-more .fore-banner {
  position: absolute; bottom: 22%; right: 20%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: ea-banner-wave 7s ease-in-out infinite;
}
@keyframes ea-sky { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.9 } }
@keyframes ea-sun { 0%{ transform:scale(1) translate(0,0); opacity:.9 } 50%{ transform:scale(1.08) translate(4px,-3px); opacity:1 } 100%{ transform:scale(.95) translate(-2px,2px); opacity:.85 } }
@keyframes ea-banner-sway { 0%{ transform: rotate(-5deg) } 50%{ transform: rotate(5deg) } 100%{ transform: rotate(-5deg) } }
@keyframes ea-queen { 0%{ transform: translateX(-50%) translateY(0) rotate(-2deg) } 50%{ transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100%{ transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes ea-arm { 0%{ transform: rotate(0deg) } 50%{ transform: rotate(-45deg) } 100%{ transform: rotate(0deg) } }
@keyframes ea-drum { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(0.6) } 100%{ transform: scaleY(1) } }
@keyframes ea-banner-wave { 0%{ transform: scaleX(1) rotate(0) } 50%{ transform: scaleX(1.04) rotate(2deg) } 100%{ transform: scaleX(1) rotate(0) } }

.scn-richard-acknowledges {
  background: linear-gradient(180deg, #c0c8d0 0%, #b0b8c4 40%, #d8e0e8 100%),
              radial-gradient(circle at 70% 30%, #ffffff 0%, transparent 70%);
}
.scn-richard-acknowledges .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #8a9bad 0%, #a6b8c9 100%);
  animation: ra-wall 20s ease-in-out infinite alternate;
}
.scn-richard-acknowledges .window {
  position: absolute; top: 20%; left: 30%; width: 90px; height: 120px;
  background: linear-gradient(135deg, #fff8e0 0%, #d4dce8 100%);
  border: 4px solid #4a5a6a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.5);
  animation: ra-window-light 8s ease-in-out infinite alternate;
}
.scn-richard-acknowledges .sunbeam {
  position: absolute; top: 20%; left: 30%; width: 140px; height: 400px;
  background: linear-gradient(135deg, rgba(255,255,220,.25) 0%, transparent 100%);
  transform-origin: top left; transform: rotate(25deg);
  animation: ra-beam 12s ease-in-out infinite alternate;
}
.scn-richard-acknowledges .figure-richard {
  position: absolute; bottom: 15%; left: 35%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #3a404c 0%, #1a1e28 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  animation: ra-richard 6s ease-in-out infinite;
}
.scn-richard-acknowledges .figure-mother {
  position: absolute; bottom: 15%; left: 55%; width: 26px; height: 66px;
  background: linear-gradient(180deg, #4a5060 0%, #2a2e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ra-mother 5s ease-in-out infinite;
}
.scn-richard-acknowledges .table {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  animation: ra-table 10s ease-in-out infinite;
}
.scn-richard-acknowledges .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.25) 100%);
  animation: ra-shadow 15s ease-in-out infinite;
}
@keyframes ra-wall { 0%{ opacity:.95 } 50%{ opacity:1 } 100%{ opacity:.9 } }
@keyframes ra-window-light { 0%{ opacity:.8; box-shadow: inset 0 0 10px rgba(255,255,200,.3) } 50%{ opacity:1; box-shadow: inset 0 0 30px rgba(255,255,200,.6) } 100%{ opacity:.85; box-shadow: inset 0 0 15px rgba(255,255,200,.4) } }
@keyframes ra-beam { 0%{ opacity:.3; transform: rotate(23deg) translateX(0) } 50%{ opacity:.6; transform: rotate(27deg) translateX(10px) } 100%{ opacity:.4; transform: rotate(25deg) translateX(0) } }
@keyframes ra-richard { 0%{ transform: translateX(0) rotate(-1deg) } 50%{ transform: translateX(-3px) rotate(2deg) } 100%{ transform: translateX(0) rotate(-1deg) } }
@keyframes ra-mother { 0%{ transform: rotate(0) } 50%{ transform: rotate(3deg) translateY(-1px) } 100%{ transform: rotate(0) } }
@keyframes ra-table { 0%{ transform: scaleX(1) } 50%{ transform: scaleX(1.02) } 100%{ transform: scaleX(1) } }
@keyframes ra-shadow { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.85 } }

.scn-duchess-questions-haste {
  background: linear-gradient(180deg, #2a2e38 0%, #3a3e4a 40%, #4a4e5a 100%),
              radial-gradient(circle at 50% 100%, #6a6e7a 0%, transparent 70%);
}
.scn-duchess-questions-haste .bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #5a6270 0%, #3a404e 100%);
  animation: dh-bg 20s ease-in-out infinite alternate;
}
.scn-duchess-questions-haste .chair {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: dh-chair 9s ease-in-out infinite;
}
.scn-duchess-questions-haste .figure {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 74px;
  background: linear-gradient(180deg, #1a1e28 0%, #0a0e14 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  animation: dh-figure 5s ease-in-out infinite;
}
.scn-duchess-questions-haste .hand-left {
  position: absolute; bottom: 42%; left: 42%; width: 8px; height: 30px;
  background: #1a1e28; border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: dh-hand-left 3.5s ease-in-out infinite;
}
.scn-duchess-questions-haste .hand-right {
  position: absolute; bottom: 44%; left: 55%; width: 8px; height: 28px;
  background: #1a1e28; border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: dh-hand-right 4s ease-in-out infinite;
}
.scn-duchess-questions-haste .window {
  position: absolute; top: 18%; right: 18%; width: 50px; height: 70px;
  background: radial-gradient(circle, #e8e0d0 0%, #b0a890 100%);
  border: 3px solid #4a5a6a; border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(232,224,208,.3);
  animation: dh-window 7s ease-in-out infinite alternate;
}
.scn-duchess-questions-haste .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: dh-shadow 14s ease-in-out infinite;
}
@keyframes dh-bg { 0%{ opacity:.9 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes dh-chair { 0%{ transform: translateX(-50%) translateY(0) rotate(0) } 50%{ transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100%{ transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes dh-figure { 0%{ transform: translateX(-50%) rotate(0) } 50%{ transform: translateX(-50%) rotate(2deg) translateY(-2px) } 100%{ transform: translateX(-50%) rotate(0) } }
@keyframes dh-hand-left { 0%{ transform: rotate(10deg) } 50%{ transform: rotate(-15deg) } 100%{ transform: rotate(10deg) } }
@keyframes dh-hand-right { 0%{ transform: rotate(-5deg) } 50%{ transform: rotate(20deg) } 100%{ transform: rotate(-5deg) } }
@keyframes dh-window { 0%{ opacity:.7; box-shadow: 0 0 10px 4px rgba(232,224,208,.2) } 50%{ opacity:1; box-shadow: 0 0 30px 10px rgba(232,224,208,.5) } 100%{ opacity:.8; box-shadow: 0 0 15px 6px rgba(232,224,208,.3) } }
@keyframes dh-shadow { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.75 } }

.scn-duchess-curses-birth {
  background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 40%, #c0d0e0 70%, #ffe8b0 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-duchess-curses-birth .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #b0c0d0 100%);
  animation: dc-sky 10s ease-in-out infinite alternate;
}
.scn-duchess-curses-birth .sun {
  position: absolute; top: 10%; left: 20%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffd580 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 100px 30px #ffb040;
  animation: dc-sun 7s ease-in-out infinite alternate;
}
.scn-duchess-curses-birth .cross {
  position: absolute; top: 15%; left: 50%; width: 8px; height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: dc-cross 20s ease-in-out infinite;
}
.scn-duchess-curses-birth .cross::after {
  content: ''; position: absolute; top: 20px; left: -30px; width: 68px; height: 8px;
  background: #4a3a2a;
}
.scn-duchess-curses-birth .figure {
  position: absolute; bottom: 20%; left: 40%; width: 26px; height: 80px;
  background: linear-gradient(180deg, #2a2e3a 0%, #0a0e14 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  animation: dc-figure 4.5s ease-in-out infinite;
}
.scn-duchess-curses-birth .infant-bundle {
  position: absolute; bottom: 20%; left: 48%; width: 16px; height: 24px;
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  animation: dc-bundle 3s ease-in-out infinite;
}
.scn-duchess-curses-birth .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  animation: dc-ground 12s ease-in-out infinite alternate;
}
.scn-duchess-curses-birth .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
  animation: dc-shadow 18s ease-in-out infinite;
}
@keyframes dc-sky { 0%{ opacity:.85 } 50%{ opacity:1 } 100%{ opacity:.9 } }
@keyframes dc-sun { 0%{ transform:scale(1) translate(0,0); opacity:.9 } 50%{ transform:scale(1.1) translate(5px,-4px); opacity:1 } 100%{ transform:scale(.95) translate(-2px,2px); opacity:.8 } }
@keyframes dc-cross { 0%{ transform: translateX(-50%) rotate(-2deg) } 50%{ transform: translateX(-50%) rotate(2deg) } 100%{ transform: translateX(-50%) rotate(-2deg) } }
@keyframes dc-figure { 0%{ transform: translateX(-50%) rotate(-3deg) } 50%{ transform: translateX(-50%) rotate(3deg) translateY(-2px) } 100%{ transform: translateX(-50%) rotate(-3deg) } }
@keyframes dc-bundle { 0%{ transform: rotate(0) } 50%{ transform: rotate(30deg) } 100%{ transform: rotate(0) } }
@keyframes dc-ground { 0%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } 100%{ transform: translateY(0) } }
@keyframes dc-shadow { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.8 } }

.scn-richard-battle-cry { background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 30% 40%, #4a4a5e 0%, transparent 70%); }
.scn-richard-battle-cry .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 50%, transparent 100%); animation: rc-sky 15s ease-in-out infinite alternate; }
.scn-richard-battle-cry .ground-mud { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: rc-ground 20s ease-in-out infinite; }
.scn-richard-battle-cry .archer-left { position:absolute; bottom:35%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rc-archer-draw 3s ease-in-out infinite; }
.scn-richard-battle-cry .archer-right { position:absolute; bottom:35%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rc-archer-draw 3s ease-in-out infinite reverse; }
.scn-richard-battle-cry .horse-left { position:absolute; bottom:30%; left:10%; width:60px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 60% 20% 20% / 60% 60% 20% 20%; animation: rc-horse-gallop 2s ease-in-out infinite; }
.scn-richard-battle-cry .horse-right { position:absolute; bottom:30%; right:10%; width:60px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 60% 20% 20% / 60% 60% 20% 20%; animation: rc-horse-gallop 2s ease-in-out infinite reverse; }
.scn-richard-battle-cry .banner { position:absolute; bottom:45%; left:50%; width:8px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; animation: rc-banner-wave 4s ease-in-out infinite; }
.scn-richard-battle-cry .arrow-left { position:absolute; bottom:45%; left:30%; width:4px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: rc-arrow 1.5s ease-in-out infinite; }
@keyframes rc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rc-archer-draw { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-15deg) scaleX(0.8) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes rc-horse-gallop { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(5px) scaleY(0.9) } 50% { transform: translateX(10px) scaleY(1) } 75% { transform: translateX(15px) scaleY(0.9) } 100% { transform: translateX(20px) scaleY(1) } }
@keyframes rc-banner-wave { 0% { transform: rotate(-5deg) skewX(2deg) } 50% { transform: rotate(5deg) skewX(-2deg) } 100% { transform: rotate(-5deg) skewX(2deg) } }
@keyframes rc-arrow { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-10px) } 100% { transform: rotate(20deg) translateY(0) } }

.scn-battlefield-norfolk-rescue { background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #4a4a5e 0%, transparent 60%); }
.scn-battlefield-norfolk-rescue .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 50%, transparent 100%); animation: nr-sky 18s ease-in-out infinite alternate; }
.scn-battlefield-norfolk-rescue .ground-battle { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; animation: nr-ground 22s ease-in-out infinite; }
.scn-battlefield-norfolk-rescue .king-figure { position:absolute; bottom:30%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nr-king-slash 2.5s ease-in-out infinite; }
.scn-battlefield-norfolk-rescue .norfolk-figure { position:absolute; bottom:30%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nr-norfolk-charge 3s ease-in-out infinite; }
.scn-battlefield-norfolk-rescue .enemy-1 { position:absolute; bottom:30%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: nr-enemy-advance 4s ease-in-out infinite; }
.scn-battlefield-norfolk-rescue .enemy-2 { position:absolute; bottom:30%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: nr-enemy-advance 4s ease-in-out infinite reverse; }
.scn-battlefield-norfolk-rescue .dead-horse { position:absolute; bottom:20%; left:42%; width:50px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 50% 20% 20% / 50% 50% 20% 20%; transform: rotate(-10deg); animation: nr-dead-horse 8s ease-in-out infinite; }
.scn-battlefield-norfolk-rescue .sword-king { position:absolute; bottom:40%; left:38%; width:4px; height:35px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: nr-sword-slash 2.5s ease-in-out infinite; }
@keyframes nr-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes nr-king-slash { 0% { transform: rotate(0deg) } 30% { transform: rotate(-20deg) } 60% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes nr-norfolk-charge { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(15px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes nr-enemy-advance { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-10px) scaleY(0.9) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes nr-dead-horse { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes nr-sword-slash { 0% { transform: rotate(-30deg) } 50% { transform: rotate(60deg) } 100% { transform: rotate(-30deg) } }

.scn-richard-last-stand { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%); }
.scn-richard-last-stand .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, transparent 100%); animation: ls-sky 20s ease-in-out infinite alternate; }
.scn-richard-last-stand .ground-last { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; animation: ls-ground 25s ease-in-out infinite; }
.scn-richard-last-stand .richard-figure { position:absolute; bottom:30%; left:38%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ls-richard-turn 3s ease-in-out infinite; }
.scn-richard-last-stand .richmond-1 { position:absolute; bottom:30%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ls-richmond-advance 4s ease-in-out infinite; }
.scn-richard-last-stand .richmond-2 { position:absolute; bottom:30%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ls-richmond-advance 4s ease-in-out infinite reverse; }
.scn-richard-last-stand .richmond-3 { position:absolute; bottom:30%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ls-richmond-advance 4s ease-in-out infinite 2s; }
.scn-richard-last-stand .crown-ground { position:absolute; bottom:20%; left:45%; width:20px; height:15px; background: radial-gradient(circle, #b8860b 0%, #8a6508 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; animation: ls-crown-glow 6s ease-in-out infinite; }
.scn-richard-last-stand .horse-corpse { position:absolute; bottom:15%; left:25%; width:60px; height:35px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 50% 20% 20% / 50% 50% 20% 20%; transform: rotate(-15deg); animation: ls-corpse 10s ease-in-out infinite; }
@keyframes ls-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ls-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ls-richard-turn { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(-10deg) scaleX(1.05) } 50% { transform: rotate(10deg) scaleX(0.95) } 75% { transform: rotate(-5deg) scaleX(1) } 100% { transform: rotate(0deg) } }
@keyframes ls-richmond-advance { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(15px) scaleY(0.9) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes ls-crown-glow { 0% { box-shadow: 0 0 10px 2px #b8860b; } 50% { box-shadow: 0 0 20px 8px #daa520; } 100% { box-shadow: 0 0 10px 2px #b8860b; } }
@keyframes ls-corpse { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(2px) } }

.scn-victory-claim { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 60%); }
.scn-victory-claim .sky-warm { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, transparent 100%); animation: vc-sky 14s ease-in-out infinite alternate; }
.scn-victory-claim .ground-victory { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: vc-ground 18s ease-in-out infinite; }
.scn-victory-claim .richmond-victor { position:absolute; bottom:30%; left:40%; width:35px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: vc-victor-raise 4s ease-in-out infinite; }
.scn-victory-claim .dead-king { position:absolute; bottom:15%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(30deg); animation: vc-dead 8s ease-in-out infinite; }
.scn-victory-claim .crown-hand { position:absolute; bottom:50%; left:45%; width:15px; height:15px; background: radial-gradient(circle, #daa520 0%, #b8860b 100%); border-radius: 50%; animation: vc-crown 4s ease-in-out infinite; }
.scn-victory-claim .banner-victory { position:absolute; bottom:40%; left:55%; width:6px; height:70px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; animation: vc-banner 5s ease-in-out infinite; }
.scn-victory-claim .soldier-cheer { position:absolute; bottom:30%; left:15%; width:25px; height:45px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: vc-cheer 3s ease-in-out infinite; }
@keyframes vc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes vc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vc-victor-raise { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes vc-dead { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes vc-crown { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes vc-banner { 0% { transform: rotate(-5deg) skewX(2deg) } 50% { transform: rotate(5deg) skewX(-2deg) } 100% { transform: rotate(-5deg) skewX(2deg) } }
@keyframes vc-cheer { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }

.scn-richard-recalls-rutland {
  background: linear-gradient(180deg, #3d2b1f 0%, #1a110b 100%), radial-gradient(ellipse at 40% 70%, #6b4c3b 0%, transparent 60%);
}
.scn-richard-recalls-rutland .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #2a1e15 0%, #4a3728 40%, #2a1e15 100%);
  animation: rr-wall 20s ease-in-out infinite alternate;
}
.scn-richard-recalls-rutland .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1f140e 0%, #0c0805 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-richard-recalls-rutland .figure {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-figure 8s ease-in-out infinite;
}
.scn-richard-recalls-rutland .cloth {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 60%, #b5653d 0%, #6b2c1a 70%, #1a0b06 100%);
  border-radius: 20% 40% 30% 50%;
  transform: rotate(-15deg);
  animation: rr-cloth 6s ease-in-out infinite alternate;
}
.scn-richard-recalls-rutland .crown {
  position: absolute; bottom: 38%; left: 50%; width: 24px; height: 12px;
  background: #c8a96e;
  clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%, 100% 100%);
  animation: rr-crown 4s ease-in-out infinite alternate;
}
.scn-richard-recalls-rutland .torch {
  position: absolute; bottom: 20%; left: 15%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e3a857 0%, #6b3d1a 50%, #1a0b06 100%);
  border-radius: 0 0 30% 30%;
  animation: rr-torch 3s ease-in-out infinite;
}
.scn-richard-recalls-rutland .light-glare {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(227,168,87,0.4) 0%, rgba(227,168,87,0) 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: rr-glare 3s ease-in-out infinite alternate;
}
@keyframes rr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rr-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-1deg); }
  75% { transform: translateX(9px) rotate(1deg); }
  100% { transform: translateX(12px) rotate(0); }
}
@keyframes rr-cloth {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.9; }
  50% { transform: rotate(-10deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(-20deg) translateY(0); opacity: 0.8; }
}
@keyframes rr-crown {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(0.95) rotate(5deg); }
}
@keyframes rr-torch {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 8px #e3a857; }
  50% { transform: scaleY(1.1) translateY(-2px); box-shadow: 0 0 12px #e3a857; }
  100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 8px #e3a857; }
}
@keyframes rr-glare {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }
  100% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.6; }
}

.scn-margaret-prophetic-curse {
  background: linear-gradient(180deg, #3d2b1f 0%, #1a110b 100%), radial-gradient(ellipse at 50% 60%, #6b4c3b 0%, transparent 50%);
}
.scn-margaret-prophetic-curse .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e15 0%, #4a3728 100%);
  animation: mpc-wall 25s ease-in-out infinite alternate;
}
.scn-margaret-prophetic-curse .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1f140e 0%, #0c0805 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-margaret-prophetic-curse .figure-margaret {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpc-fig 10s ease-in-out infinite;
}
.scn-margaret-prophetic-curse .arm-raised {
  position: absolute; bottom: 50%; left: 25%; width: 18px; height: 8px;
  background: linear-gradient(90deg, #0d0a07 0%, #050302 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom right;
  animation: mpc-arm 4s ease-in-out infinite alternate;
}
.scn-margaret-prophetic-curse .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: mpc-shadow 8s ease-in-out infinite alternate;
}
.scn-margaret-prophetic-curse .curse-ripple {
  position: absolute; top: 20%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(180,80,50,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: mpc-ripple 6s ease-in-out infinite;
}
.scn-margaret-prophetic-curse .window {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #6b4c3b 0%, #2a1e15 100%);
  border: 2px solid #1a110b;
  border-radius: 10%;
  animation: mpc-window 12s ease-in-out infinite alternate;
}
@keyframes mpc-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mpc-fig {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes mpc-arm {
  0% { transform: rotate(-30deg) translateY(0); }
  100% { transform: rotate(-20deg) translateY(-3px); }
}
@keyframes mpc-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(1.2); opacity: 0.7; }
}
@keyframes mpc-ripple {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.3); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.3; }
}
@keyframes mpc-window {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-margaret-curses-queen {
  background: linear-gradient(180deg, #3d2b1f 0%, #1a110b 100%), radial-gradient(ellipse at 50% 50%, #6b4c3b 0%, transparent 55%);
}
.scn-margaret-curses-queen .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e15 0%, #4a3728 100%);
  animation: mcq-wall 18s ease-in-out infinite alternate;
}
.scn-margaret-curses-queen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1f140e 0%, #0c0805 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
}
.scn-margaret-curses-queen .throne {
  position: absolute; bottom: 20%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3728 0%, #2a1e15 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mcq-throne 9s ease-in-out infinite alternate;
}
.scn-margaret-curses-queen .queen {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: mcq-queen 7s ease-in-out infinite;
}
.scn-margaret-curses-queen .margaret {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcq-margaret 8s ease-in-out infinite alternate;
}
.scn-margaret-curses-queen .broken-crown {
  position: absolute; bottom: 12%; left: 50%; width: 20px; height: 10px;
  background: #8c6c3e;
  clip-path: polygon(0% 100%, 20% 50%, 40% 100%, 60% 50%, 80% 100%, 100% 50%);
  transform: rotate(25deg);
  animation: mcq-crown 5s ease-in-out infinite alternate;
}
.scn-margaret-curses-queen .shadow {
  position: absolute; bottom: 0; left: 30%; width: 50px; height: 25px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: mcq-shadow 10s ease-in-out infinite alternate;
}
@keyframes mcq-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mcq-throne {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.95); }
}
@keyframes mcq-queen {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mcq-margaret {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes mcq-crown {
  0% { transform: rotate(25deg) scale(1); opacity: 0.8; }
  100% { transform: rotate(15deg) scale(0.9); opacity: 0.6; }
}
@keyframes mcq-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  100% { transform: scaleX(1.3); opacity: 0.6; }
}

.scn-margaret-curses-nobles {
  background: linear-gradient(180deg, #3d2b1f 0%, #1a110b 100%), radial-gradient(ellipse at 50% 40%, #6b4c3b 0%, transparent 55%);
}
.scn-margaret-curses-nobles .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e15 0%, #4a3728 100%);
  animation: mcn-wall 22s ease-in-out infinite alternate;
}
.scn-margaret-curses-nobles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1f140e 0%, #0c0805 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-margaret-curses-nobles .margaret {
  position: absolute; bottom: 15%; left: 15%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcn-margaret 9s ease-in-out infinite alternate;
}
.scn-margaret-curses-nobles .noble1 {
  position: absolute; bottom: 12%; left: 40%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: mcn-noble1 7s ease-in-out infinite;
}
.scn-margaret-curses-nobles .noble2 {
  position: absolute; bottom: 13%; left: 55%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: mcn-noble2 8s ease-in-out infinite reverse;
}
.scn-margaret-curses-nobles .noble3 {
  position: absolute; bottom: 14%; left: 70%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #0d0a07 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: mcn-noble3 6s ease-in-out infinite alternate;
}
.scn-margaret-curses-nobles .dagger {
  position: absolute; bottom: 8%; left: 42%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #8c7a6e 0%, #3d2b1f 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(30deg);
  animation: mcn-dagger 4s ease-in-out infinite alternate;
}
.scn-margaret-curses-nobles .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: mcn-shadow 12s ease-in-out infinite alternate;
}
@keyframes mcn-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mcn-margaret {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes mcn-noble1 {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-1px); }
  100% { transform: translateX(4px) translateY(0); }
}
@keyframes mcn-noble2 {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-2px) translateY(-1px); }
  100% { transform: translateX(-4px) translateY(0); }
}
@keyframes mcn-noble3 {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-1px) scaleY(0.95); }
}
@keyframes mcn-dagger {
  0% { transform: rotate(30deg) translateY(0); opacity: 0.7; }
  100% { transform: rotate(20deg) translateY(-2px); opacity: 1; }
}
@keyframes mcn-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  100% { transform: scaleX(1.2); opacity: 0.6; }
}

.scn-richard-soliloquy-clarence-doom {
  background: linear-gradient(180deg, #6a7a8a 0%, #3b4755 40%, #1a242b 100%), radial-gradient(ellipse at 70% 30%, #ffe6b3 0%, transparent 60%);
}
.scn-richard-soliloquy-clarence-doom .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0c4d4 0%, #7a8da0 60%, #4a5a6a 100%);
  animation: rs-sky 20s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-clarence-doom .sun {
  position:absolute; top:8%; left:70%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe699 0%, #ffcc66 40%, rgba(255,204,102,0) 70%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px #ffcc66, 0 0 80px 40px rgba(255,204,102,0.3);
  animation: rs-sun 12s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-clarence-doom .cloud-a {
  position:absolute; top:12%; left:10%; width:130px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,230,240,0.6) 0%, rgba(200,210,220,0.2) 80%);
  border-radius:50%;
  filter: blur(8px);
  animation: rs-cloud-a 40s linear infinite;
}
.scn-richard-soliloquy-clarence-doom .cloud-b {
  position:absolute; top:20%; left:60%; width:90px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.5) 0%, rgba(180,190,200,0.1) 80%);
  border-radius:50%; filter: blur(6px);
  animation: rs-cloud-b 55s linear infinite reverse;
}
.scn-richard-soliloquy-clarence-doom .tower {
  position:absolute; bottom:30%; left:15%; width:80px; height:200px;
  background: linear-gradient(180deg, #2a3035 0%, #151a1e 100%);
  border-radius:4% 4% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5), 4px 0 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateY(4deg);
  animation: rs-tower 18s ease-in-out infinite;
}
.scn-richard-soliloquy-clarence-doom .figure {
  position:absolute; bottom:32%; left:30%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  animation: rs-figure 4s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-clarence-doom .path {
  position:absolute; bottom:10%; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #3a4140 0%, #242928 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: rs-path 14s ease-in-out infinite;
}
.scn-richard-soliloquy-clarence-doom .raven {
  position:absolute; top:35%; left:20%; width:12px; height:7px;
  background: #111;
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: rs-raven 6s ease-in-out infinite;
}
@keyframes rs-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes rs-sun { 0% { transform: scale(0.95); box-shadow:0 0 30px 15px #ffcc66; } 50% { transform: scale(1.05); box-shadow:0 0 50px 25px #ffe699; } 100% { transform: scale(1); box-shadow:0 0 40px 20px #ffcc66; } }
@keyframes rs-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes rs-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }
@keyframes rs-tower { 0% { transform: perspective(400px) rotateY(4deg) translateY(0); } 50% { transform: perspective(400px) rotateY(3deg) translateY(-2px); } 100% { transform: perspective(400px) rotateY(5deg) translateY(0); } }
@keyframes rs-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rs-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes rs-raven { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(10px,-4px) rotate(5deg); } 50% { transform: translate(20px,0) rotate(-3deg); } 75% { transform: translate(10px,2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0); } }

.scn-hastings-meets-richard {
  background: linear-gradient(180deg, #d4c9b8 0%, #b8a58c 40%, #8a7a64 100%), radial-gradient(ellipse at 50% 80%, #e6dac0 0%, transparent 70%);
}
.scn-hastings-meets-richard .bg-garden {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #c8d6b5 0%, #9da88c 100%);
  animation: hm-garden 25s ease-in-out infinite alternate;
}
.scn-hastings-meets-richard .sunbeam {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: hm-sunbeam 8s ease-in-out infinite alternate;
}
.scn-hastings-meets-richard .arch-left {
  position:absolute; bottom:30%; left:8%; width:60px; height:120px;
  background: linear-gradient(180deg, #c8b89a 0%, #a89072 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.15), 4px 0 8px rgba(0,0,0,0.1);
  animation: hm-arch-l 10s ease-in-out infinite alternate;
}
.scn-hastings-meets-richard .arch-right {
  position:absolute; bottom:30%; right:8%; width:60px; height:120px;
  background: linear-gradient(180deg, #c8b89a 0%, #a89072 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.15), -4px 0 8px rgba(0,0,0,0.1);
  animation: hm-arch-r 10s ease-in-out infinite alternate;
}
.scn-hastings-meets-richard .tree {
  position:absolute; bottom:35%; left:50%; width:50px; height:130px;
  background: linear-gradient(180deg, #5a6b3a 0%, #3a4a2a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  transform: translateX(-50%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
  animation: hm-tree 20s ease-in-out infinite;
}
.scn-hastings-meets-richard .figure-a {
  position:absolute; bottom:28%; left:38%; width:20px; height:44px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-fig-a 6s ease-in-out infinite alternate;
}
.scn-hastings-meets-richard .figure-b {
  position:absolute; bottom:28%; left:55%; width:20px; height:44px;
  background: linear-gradient(180deg, #2a3428 0%, #1a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-fig-b 6s ease-in-out infinite alternate;
}
.scn-hastings-meets-richard .grass {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6d7c56 0%, #4b5a3a 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: hm-grass 18s ease-in-out infinite;
}
@keyframes hm-garden { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hm-sunbeam { 0% { opacity:0.5; transform: translateX(-5px) scaleY(1); } 50% { opacity:0.8; transform: translateX(0) scaleY(1.02); } 100% { opacity:0.5; transform: translateX(5px) scaleY(1); } }
@keyframes hm-arch-l { 0% { transform: skewX(0); } 50% { transform: skewX(2deg) translateY(-1px); } 100% { transform: skewX(0); } }
@keyframes hm-arch-r { 0% { transform: skewX(0); } 50% { transform: skewX(-2deg) translateY(-1px); } 100% { transform: skewX(0); } }
@keyframes hm-tree { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hm-fig-a { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hm-fig-b { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(1px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hm-grass { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }

.scn-richard-consoles-hastings {
  background: linear-gradient(180deg, #d6c6b0 0%, #a89376 40%, #705e48 100%), radial-gradient(ellipse at 20% 50%, #e0c8a8 0%, transparent 60%);
}
.scn-richard-consoles-hastings .wall {
  position:absolute; bottom:40%; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #b8a288 0%, #8a7a62 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.2);
  animation: rh-wall 20s ease-in-out infinite alternate;
}
.scn-richard-consoles-hastings .column-left {
  position:absolute; bottom:0; left:20%; width:20px; height:100%;
  background: linear-gradient(180deg, #c8b89a 0%, #a89072 100%);
  box-shadow: inset 1px 0 6px rgba(0,0,0,0.15);
  transform: perspective(400px) rotateY(2deg);
  animation: rh-col-l 12s ease-in-out infinite;
}
.scn-richard-consoles-hastings .column-right {
  position:absolute; bottom:0; right:20%; width:20px; height:100%;
  background: linear-gradient(180deg, #c8b89a 0%, #a89072 100%);
  box-shadow: inset -1px 0 6px rgba(0,0,0,0.15);
  transform: perspective(400px) rotateY(-2deg);
  animation: rh-col-r 12s ease-in-out infinite;
}
.scn-richard-consoles-hastings .shadow {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, rgba(30,25,20,0.2) 0%, rgba(30,25,20,0.6) 100%);
  filter: blur(12px);
  animation: rh-shadow 8s ease-in-out infinite alternate;
}
.scn-richard-consoles-hastings .figure-r {
  position:absolute; bottom:34%; left:35%; width:22px; height:48px;
  background: linear-gradient(180deg, #1a1814 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-fig-r 5s ease-in-out infinite alternate;
}
.scn-richard-consoles-hastings .figure-h {
  position:absolute; bottom:34%; left:52%; width:22px; height:48px;
  background: linear-gradient(180deg, #2a2420 0%, #141210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-fig-h 5s ease-in-out infinite alternate;
}
.scn-richard-consoles-hastings .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #605048 0%, #3a3028 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: rh-ground 16s ease-in-out infinite;
}
@keyframes rh-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rh-col-l { 0% { transform: perspective(400px) rotateY(2deg) translateY(0); } 50% { transform: perspective(400px) rotateY(3deg) translateY(-2px); } 100% { transform: perspective(400px) rotateY(2deg) translateY(0); } }
@keyframes rh-col-r { 0% { transform: perspective(400px) rotateY(-2deg) translateY(0); } 50% { transform: perspective(400px) rotateY(-3deg) translateY(-2px); } 100% { transform: perspective(400px) rotateY(-2deg) translateY(0); } }
@keyframes rh-shadow { 0% { opacity:0.5; transform: scaleY(0.95); } 50% { opacity:0.7; transform: scaleY(1); } 100% { opacity:0.5; transform: scaleY(0.95); } }
@keyframes rh-fig-r { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rh-fig-h { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes rh-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }

.scn-hastings-news-king-ill {
  background: linear-gradient(180deg, #c4b8a4 0%, #a8947c 40%, #7a6a56 100%), radial-gradient(ellipse at 30% 60%, #e6c8a0 0%, transparent 70%);
}
.scn-hastings-news-king-ill .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a7a64 0%, #5a4a3a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  border-radius: 20% 20% 0 0;
  animation: hn-floor 15s ease-in-out infinite alternate;
}
.scn-hastings-news-king-ill .window {
  position:absolute; top:10%; left:40%; width:80px; height:120px;
  background: linear-gradient(180deg, #d4e0e8 0%, #a0b4c0 100%);
  border: 4px solid #6a5a48;
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(200,220,240,0.3);
  transform: perspective(300px) rotateY(3deg);
  animation: hn-window 12s ease-in-out infinite;
}
.scn-hastings-news-king-ill .sick-sun {
  position:absolute; top:12%; left:45%; width:40px; height:40px;
  background: radial-gradient(circle, #ffe6b3 0%, #ffd88a 40%, rgba(255,216,138,0) 70%);
  border-radius:50%;
  box-shadow: 0 0 30px 15px #ffd88a, 0 0 60px 30px rgba(255,216,138,0.2);
  animation: hn-sun 6s ease-in-out infinite alternate;
}
.scn-hastings-news-king-ill .table {
  position:absolute; bottom:30%; left:50%; width:100px; height:20px;
  background: linear-gradient(180deg, #8a7058 0%, #5a4a38 100%);
  border-radius: 8% 8% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hn-table 18s ease-in-out infinite;
}
.scn-hastings-news-king-ill .scroll {
  position:absolute; bottom:32%; left:50%; width:30px; height:8px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a488 100%);
  border-radius:50%;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: hn-scroll 4s ease-in-out infinite alternate;
}
.scn-hastings-news-king-ill .figure-kneeling {
  position:absolute; bottom:28%; left:38%; width:22px; height:44px;
  background: linear-gradient(180deg, #2a2420 0%, #141210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hn-fig 7s ease-in-out infinite alternate;
}
.scn-hastings-news-king-ill .hand {
  position:absolute; bottom:32%; left:42%; width:8px; height:12px;
  background: #1a1814;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-20deg);
  animation: hn-hand 3s ease-in-out infinite alternate;
}
@keyframes hn-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes hn-window { 0% { transform: perspective(300px) rotateY(3deg) translateY(0); } 50% { transform: perspective(300px) rotateY(2deg) translateY(-2px); } 100% { transform: perspective(300px) rotateY(4deg) translateY(0); } }
@keyframes hn-sun { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes hn-table { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hn-scroll { 0% { transform: translateX(-50%) rotate(-10deg); } 50% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(-10deg); } }
@keyframes hn-fig { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hn-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-baynards-castle-plot {
  background: 
    radial-gradient(ellipse at 70% 30%, #7a5a3a 0%, transparent 50%),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
}
.scn-baynards-castle-plot .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a4a32, #3a2a1a); border-radius:0 0 12% 12%; }
.scn-baynards-castle-plot .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1008 0%, #2a1a0e 100%); border-radius:8% 8% 0 0; }
.scn-baynards-castle-plot .figure-gloucester { position:absolute; bottom:34%; left:25%; width:30px; height:65px; background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%); border-radius:40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin:bottom center; animation: bcp-walk1 5s ease-in-out infinite; }
.scn-baynards-castle-plot .figure-buckingham { position:absolute; bottom:32%; left:55%; width:28px; height:62px; background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%); border-radius:40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin:bottom center; animation: bcp-walk2 5s ease-in-out 2s infinite; }
.scn-baynards-castle-plot .table { position:absolute; bottom:30%; left:42%; width:50px; height:12px; background: linear-gradient(180deg, #5a3a22, #3a2212); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-baynards-castle-plot .candle { position:absolute; bottom:36%; left:44%; width:6px; height:20px; background: linear-gradient(0deg, #b07040, #d09050); border-radius:3px; box-shadow:0 0 12px 4px #d09050; animation: bcp-candle 2s ease-in-out infinite alternate;
}
.scn-baynards-castle-plot .window { position:absolute; bottom:38%; right:15%; width:40px; height:50px; border:4px solid #2a1a0e; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); border-radius:2px; opacity:0.6; animation: bcp-window 7s ease-in-out infinite; }
.scn-baynards-castle-plot .shadow-window { position:absolute; bottom:38%; right:15%; width:40px; height:50px; background:rgba(0,0,0,.45); border-radius:2px; animation: bcp-shadow 9s ease-in-out infinite; }
@keyframes bcp-walk1 {
  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 bcp-walk2 {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(1deg); }
  65% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bcp-candle {
  0% { transform: scaleY(1); opacity:0.8; }
  50% { transform: scaleY(1.1); opacity:1; }
  100% { transform: scaleY(0.9); opacity:0.9; }
}
@keyframes bcp-window {
  0% { opacity:0.4; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}
@keyframes bcp-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.1) translateX(5px); }
  100% { transform: scaleX(0.95) translateX(-3px); }
}

.scn-crown-offer-intro {
  background: 
    radial-gradient(ellipse at 50% 40%, #8a6a42 0%, transparent 60%),
    linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%);
}
.scn-crown-offer-intro .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); opacity:0.7; }
.scn-crown-offer-intro .throne-back { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:130px; background: linear-gradient(180deg, #5a3a22, #2a1a0e); border-radius:10% 10% 5% 5%; box-shadow:0 10px 20px rgba(0,0,0,.7); }
.scn-crown-offer-intro .throne-seat { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:80px; height:40px; background: linear-gradient(180deg, #7a5438, #4a2e1a); border-radius:5% 5% 10% 10%; top:calc(100% - 130px + 60px); }
.scn-crown-offer-intro .crown { position:absolute; bottom:50%; left:50%; transform:translateX(-50%); width:40px; height:25px; background: linear-gradient(180deg, #d0a050 0%, #b08040 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(208,160,80,.4); animation: coi-crown 4s ease-in-out infinite; }
.scn-crown-offer-intro .cushion { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:60px; height:15px; background: linear-gradient(180deg, #b06040, #7a3820); border-radius:10% 10% 30% 30%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: coi-cushion 6s ease-in-out infinite; }
.scn-crown-offer-intro .scepter { position:absolute; bottom:45%; left:60%; width:6px; height:50px; background: linear-gradient(180deg, #d0a050, #805030); border-radius:3px; box-shadow:0 0 8px #d0a050; transform-origin:bottom center; animation: coi-scepter 5s ease-in-out infinite; }
.scn-crown-offer-intro .glow { position:absolute; bottom:40%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(208,160,80,.2) 0%, transparent 70%); animation: coi-glow 3s ease-in-out infinite alternate; }
.scn-crown-offer-intro .shadow-throne { position:absolute; bottom:10%; left:45%; width:90px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: coi-shadow 8s ease-in-out infinite; }
@keyframes coi-crown {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  30% { transform: translateX(-50%) scale(1.03) rotate(3deg); }
  60% { transform: translateX(-50%) scale(0.97) rotate(-2deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes coi-cushion {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.04) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.98) translateY(1px); }
}
@keyframes coi-scepter {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(4deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes coi-glow {
  0% { opacity:0.3; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}
@keyframes coi-shadow {
  0% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(0.9); opacity:0.3; }
  100% { transform: scaleX(1.1); opacity:0.6; }
}

.scn-crown-offer-continued {
  background: 
    radial-gradient(ellipse at 30% 60%, #4a6a7a 0%, transparent 60%),
    linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
}
.scn-crown-offer-continued .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a4a5a, #1a2a3a); border-radius:0 0 30% 30%; }
.scn-crown-offer-continued .isle { position:absolute; bottom:35%; left:30%; width:120px; height:50px; background: linear-gradient(180deg, #3a5a3a, #1a2a1a); border-radius:60% 60% 40% 40% / 80% 80% 20% 20%; box-shadow:0 -8px 16px rgba(0,0,0,.5); animation: coc-isle 10s ease-in-out infinite; }
.scn-crown-offer-continued .scar-lines { position:absolute; bottom:38%; left:32%; width:100px; height:5px; background: linear-gradient(90deg, transparent, #6a4a3a, transparent); opacity:0.6; filter: blur(1px); animation: coc-scar 7s ease-in-out infinite; }
.scn-crown-offer-continued .gulf { position:absolute; bottom:32%; left:45%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #0a0e12, #1a2a3a); box-shadow:inset 0 0 10px #0a0e12; animation: coc-gulf 6s ease-in-out infinite; }
.scn-crown-offer-continued .royal-stock { position:absolute; bottom:45%; left:40%; width:6px; height:30px; background: linear-gradient(180deg, #5a3a22, #2a1a0e); border-radius:3px; transform-origin:bottom center; animation: coc-stock 5s ease-in-out infinite; }
.scn-crown-offer-continued .small-figures { position:absolute; bottom:30%; left:20%; width:16px; height:25px; background: linear-gradient(180deg, #0c0e10, #0a0806); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: coc-figures 8s ease-in-out infinite; }
.scn-crown-offer-continued .shadow-isle { position:absolute; bottom:30%; left:25%; width:130px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: coc-shadow 12s ease-in-out infinite; }
@keyframes coc-isle {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-4px) rotate(2deg); }
  80% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes coc-scar {
  0% { opacity:0.2; transform: scaleX(0.9); }
  50% { opacity:0.8; transform: scaleX(1.1); }
  100% { opacity:0.3; transform: scaleX(0.95); }
}
@keyframes coc-gulf {
  0% { transform: scale(1); }
  50% { transform: scale(1.08); }
  100% { transform: scale(0.95); }
}
@keyframes coc-stock {
  0% { transform: rotate(-3deg); }
  30% { transform: rotate(4deg); }
  70% { transform: rotate(-2deg); }
  100% { transform: rotate(1deg); }
}
@keyframes coc-figures {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(-5deg); }
  100% { transform: translateX(-3px) rotate(3deg); }
}
@keyframes coc-shadow {
  0% { transform: scaleX(1); opacity:0.4; }
  50% { transform: scaleX(1.15); opacity:0.6; }
  100% { transform: scaleX(0.9); opacity:0.3; }
}

.scn-crown-offer-end {
  background: 
    radial-gradient(ellipse at 50% 30%, #6a4a32 0%, transparent 60%),
    linear-gradient(180deg, #3a2212 0%, #1a0e06 100%);
}
.scn-crown-offer-end .bg-arch { position:absolute; top:0; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #4a321a, #2a1a0e); border-radius:40% 40% 0 0; box-shadow:0 20px 30px rgba(0,0,0,.6); }
.scn-crown-offer-end .kneeling-figure { position:absolute; bottom:18%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #1a1410, #0c0806); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin:bottom center; animation: coe-kneel 6s ease-in-out infinite; }
.scn-crown-offer-end .standing-figure { position:absolute; bottom:20%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #1a1410, #0c0806); border-radius:40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin:bottom center; animation: coe-stand 5s ease-in-out infinite; }
.scn-crown-offer-end .crown-hand { position:absolute; bottom:40%; left:52%; width:30px; height:20px; background: linear-gradient(180deg, #d0a050, #b08040); border-radius:50% 50% 20% 20%; box-shadow: 0 0 10px 4px #d0a050; animation: coe-crown 4s ease-in-out infinite; }
.scn-crown-offer-end .candle-right { position:absolute; bottom:15%; right:12%; width:8px; height:22px; background: linear-gradient(0deg, #b07040, #d09050); border-radius:4px; box-shadow:0 0 12px 4px #d09050; animation: coe-candle 2.5s ease-in-out infinite alternate; }
.scn-crown-offer-end .curtain { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #5a1a1a 0%, #3a0c0c 100%); border-radius:0 20% 30% 0; box-shadow:inset -10px 0 20px rgba(0,0,0,.5); animation: coe-curtain 9s ease-in-out infinite; }
.scn-crown-offer-end .shadow-floor { position:absolute; bottom:0; left:20%; right:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: coe-shade 10s ease-in-out infinite; }
@keyframes coe-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(4deg); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes coe-stand {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(-3deg); }
  60% { transform: translateY(2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes coe-crown {
  0% { transform: translateY(12px) scale(0.95); opacity:0.7; }
  50% { transform: translateY(0) scale(1.05); opacity:1; }
  100% { transform: translateY(-12px) scale(1); opacity:0.8; }
}
@keyframes coe-candle {
  0% { transform: scaleY(1); opacity:0.8; }
  50% { transform: scaleY(1.15); opacity:1; }
  100% { transform: scaleY(0.9); opacity:0.9; }
}
@keyframes coe-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(3px); }
}
@keyframes coe-shade {
  0% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(0.85); opacity:0.7; }
  100% { transform: scaleX(1.1); opacity:0.4; }
}

/* richmond-sends-blunt */
.scn-richmond-sends-blunt {
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3e 40%, #1a1a2e 70%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 0%, #6a4a5e 0%, transparent 65%);
}
.scn-richmond-sends-blunt .sky-dusk {
  position: absolute; inset: 0; height: 45%;
  background: linear-gradient(180deg, #6a5a7e 0%, #3a2a4e 100%);
  animation: rsb-sky 14s ease-in-out infinite alternate;
}
.scn-richmond-sends-blunt .tent-body {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-richmond-sends-blunt .tent-flap-left {
  position: absolute; bottom: 10%; left: 15%; width: 30%; height: 50%;
  background: #3a2a2a;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  transform-origin: top center;
  animation: rsb-flap 6s ease-in-out infinite alternate;
}
.scn-richmond-sends-blunt .tent-flap-right {
  position: absolute; bottom: 10%; right: 15%; width: 30%; height: 50%;
  background: #3a2a2a;
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  transform-origin: top center;
  animation: rsb-flap 6s ease-in-out infinite alternate-reverse;
}
.scn-richmond-sends-blunt .figure-rsb {
  position: absolute; bottom: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-richmond-sends-blunt .richmond { left: 38%; transform-origin: bottom center; animation: rsb-richmond 4s ease-in-out infinite; }
.scn-richmond-sends-blunt .blunt { right: 38%; transform-origin: bottom center; animation: rsb-blunt 4s ease-in-out infinite; }
.scn-richmond-sends-blunt .scroll-rsb {
  position: absolute; bottom: 35%; left: 47%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b09070 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(212,192,160,0.5);
  animation: rsb-scroll 4s ease-in-out infinite;
}
.scn-richmond-sends-blunt .candle-rsb {
  position: absolute; bottom: 20%; left: 49%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 20%; box-shadow: 0 0 20px 6px #f0d0a0;
  animation: rsb-candle 2s ease-in-out infinite alternate;
}
.scn-richmond-sends-blunt .ground-rsb {
  position: absolute; bottom: 0; width: 100%; height: 12%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%);
}
@keyframes rsb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rsb-flap { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(15deg) } 100% { transform: rotateY(0deg) } }
@keyframes rsb-richmond { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rsb-blunt { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rsb-scroll { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(6px,-2px) rotate(10deg) } 100% { transform: translate(12px,-4px) rotate(0) } }
@keyframes rsb-candle { 0% { box-shadow: 0 0 15px 4px #f0d0a0; opacity:0.9 } 50% { box-shadow: 0 0 25px 8px #f0d0a0; opacity:1 } 100% { box-shadow: 0 0 18px 5px #f0d0a0; opacity:0.85 } }

/* richmond-asks-message */
.scn-richmond-asks-message {
  background: linear-gradient(180deg, #5a4a6e 0%, #3a2a4e 30%, #1a1a2e 70%, #0e0e1e 100%),
              radial-gradient(ellipse at 40% 50%, #7a5a6e 0%, transparent 60%);
}
.scn-richmond-asks-message .sky-dusk { /* same as above but could reuse? Use unique keyframe suffix */
  position: absolute; inset: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a8e 0%, #4a3a5e 100%);
  animation: ram-sky 10s ease-in-out infinite alternate;
}
.scn-richmond-asks-message .tent-body {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.7);
}
.scn-richmond-asks-message .tent-flap-left { /* same pattern but unique id */
  position: absolute; bottom: 5%; left: 5%; width: 40%; height: 55%;
  background: #2a1a1a; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  transform-origin: top center; animation: ram-flap 4s ease-in-out infinite alternate;
}
.scn-richmond-asks-message .tent-flap-right {
  position: absolute; bottom: 5%; right: 5%; width: 40%; height: 55%;
  background: #2a1a1a; clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  transform-origin: top center; animation: ram-flap 4s ease-in-out infinite alternate-reverse;
}
.scn-richmond-asks-message .figure-ram {
  position: absolute; bottom: 25%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-richmond-asks-message .richmond { left: 30%; transform-origin: bottom center; animation: ram-richmond 3s ease-in-out infinite; }
.scn-richmond-asks-message .blunt { right: 30%; transform-origin: bottom center; animation: ram-blunt 3s ease-in-out infinite; }
.scn-richmond-asks-message .scroll-ram {
  position: absolute; bottom: 38%; left: 44%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(224,200,168,0.6);
  animation: ram-scroll 3s ease-in-out infinite;
}
.scn-richmond-asks-message .candle-ram {
  position: absolute; bottom: 22%; left: 48%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 20%; box-shadow: 0 0 24px 8px #f0d0a0;
  animation: ram-candle 1.5s ease-in-out infinite alternate;
}
.scn-richmond-asks-message .ground-ram {
  position: absolute; bottom: 0; width: 100%; height: 8%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%);
}
@keyframes ram-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ram-flap { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(20deg) } 100% { transform: rotateY(0deg) } }
@keyframes ram-richmond { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(2deg) scale(1.05) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ram-blunt { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-8px) rotate(-2deg) scale(0.95) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ram-scroll { 0% { transform: translate(0,0) rotate(0) } 30% { transform: translate(5px,-4px) rotate(15deg) } 70% { transform: translate(12px,-8px) rotate(-5deg) } 100% { transform: translate(18px,-12px) rotate(0) } }
@keyframes ram-candle { 0% { box-shadow: 0 0 18px 5px #f0d0a0; opacity:0.85 } 50% { box-shadow: 0 0 32px 10px #f0d0a0; opacity:1 } 100% { box-shadow: 0 0 22px 6px #f0d0a0; opacity:0.9 } }

/* richard-into-tent */
.scn-richard-into-tent {
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 40%, #050510 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%);
}
.scn-richard-into-tent .tent-dark-wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
}
.scn-richard-into-tent .tent-opening {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 0% 0% 50% 50% / 0% 0% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: rit-opening 8s ease-in-out infinite alternate;
}
.scn-richard-into-tent .armor-stand {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(74,74,90,0.3);
  animation: rit-armor 5s ease-in-out infinite alternate;
}
.scn-richard-into-tent .figure-rit {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rit-richard 6s ease-in-out infinite;
}
.scn-richard-into-tent .candle-rit {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 20%; box-shadow: 0 0 30px 10px #f0d0a0, 0 0 60px 20px rgba(240,208,160,0.4);
  animation: rit-candle 2s ease-in-out infinite alternate;
}
.scn-richard-into-tent .inkpot-rit {
  position: absolute; bottom: 22%; left: 38%; width: 10px; height: 8px;
  background: radial-gradient(circle, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
}
.scn-richard-into-tent .paper-rit {
  position: absolute; bottom: 24%; left: 36%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%);
  border-radius: 10%; box-shadow: 0 0 4px 1px rgba(224,200,168,0.4);
  animation: rit-paper 8s ease-in-out infinite alternate;
}
.scn-richard-into-tent .ground-rit {
  position: absolute; bottom: 0; width: 100%; height: 12%;
  background: linear-gradient(0deg, #050505 0%, #0a0a0a 100%);
}
@keyframes rit-opening { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes rit-armor { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rit-richard { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rit-candle { 0% { box-shadow: 0 0 20px 6px #f0d0a0; opacity:0.8 } 50% { box-shadow: 0 0 40px 14px #f0d0a0; opacity:1 } 100% { box-shadow: 0 0 25px 8px #f0d0a0; opacity:0.85 } }
@keyframes rit-paper { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

/* richard-orders-norfolk-catesby */
.scn-richard-orders-norfolk-catesby {
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 40%, #050505 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-richard-orders-norfolk-catesby .tent-dim-wall {
  position: absolute; inset: 0 0 5% 0;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
}
.scn-richard-orders-norfolk-catesby .table-ron {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-richard-orders-norfolk-catesby .figure-ron {
  position: absolute; bottom: 20%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-richard-orders-norfolk-catesby .richard { left: 35%; animation: ron-richard 5s ease-in-out infinite; }
.scn-richard-orders-norfolk-catesby .norfolk { left: 50%; animation: ron-norfolk 5s ease-in-out infinite; }
.scn-richard-orders-norfolk-catesby .catesby { right: 25%; animation: ron-catesby 5s ease-in-out infinite; }
.scn-richard-orders-norfolk-catesby .candle-ron {
  position: absolute; bottom: 32%; left: 48%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 20%; box-shadow: 0 0 28px 8px #f0d0a0;
  animation: ron-candle 2.5s ease-in-out infinite alternate;
}
.scn-richard-orders-norfolk-catesby .map-ron {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #d4c0a0 0%, #b09070 100%);
  border-radius: 5%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ron-map 10s ease-in-out infinite alternate;
}
.scn-richard-orders-norfolk-catesby .tent-pole-ron {
  position: absolute; bottom: 0; left: 50%; width: 2px; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
}
@keyframes ron-richard { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(3deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ron-norfolk { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-2deg) translateY(1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ron-catesby { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ron-candle { 0% { box-shadow: 0 0 22px 6px #f0d0a0; opacity:0.85 } 50% { box-shadow: 0 0 36px 12px #f0d0a0; opacity:1 } 100% { box-shadow: 0 0 26px 8px #f0d0a0; opacity:0.9 } }
@keyframes ron-map { 0% { transform: rotate(0) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(2deg) } }

/* Scene: hastings-stanley-exchange */
.scn-hastings-stanley-exchange { background: linear-gradient(180deg, #3b2a4a 0%, #6a4a3a 30%, #b08050 70%, #e0c090 100%), radial-gradient(ellipse at 50% 0%, #e0c090 0%, transparent 60%); }
.scn-hastings-stanley-exchange .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a4a3a 0%, #c09060 50%, #f0dbb0 100%); animation: hse-sky 14s ease-in-out infinite alternate; }
.scn-hastings-stanley-exchange .floor-stone { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a2a2a 0%, #5a4a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; filter: blur(2px); }
.scn-hastings-stanley-exchange .wall-rear { position:absolute; inset:10% 10% 35% 10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%) repeat; border-radius: 5% 5% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-hastings-stanley-exchange .window-glow { position:absolute; top:18%; right:25%; width:40px; height:60px; background: radial-gradient(circle, #ffddaa 0%, #c08050 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #c08050, 0 0 80px 20px rgba(192,128,80,.3); animation: hse-glow 4s ease-in-out infinite alternate; }
.scn-hastings-stanley-exchange .fig-hastings { position:absolute; bottom:22%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hse-tremble 2s ease-in-out infinite; }
.scn-hastings-stanley-exchange .fig-stanley { position:absolute; bottom:22%; right:35%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hse-tremble 2.5s ease-in-out infinite reverse; }
.scn-hastings-stanley-exchange .shadow-tense { position:absolute; bottom:0; left:30%; width:40%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: hse-shadow 3s ease-in-out infinite alternate; }
.scn-hastings-stanley-exchange .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(200,160,120,.15) 0%, transparent 70%); filter: blur(10px); animation: hse-mist 20s ease-in-out infinite alternate; }
@keyframes hse-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes hse-glow { 0% { opacity:.6; box-shadow: 0 0 20px 5px #8a6030, 0 0 40px 12px rgba(138,96,48,.3); } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffcc80, 0 0 80px 24px rgba(255,204,128,.5); } 100% { opacity:.8; box-shadow: 0 0 30px 8px #b08040, 0 0 60px 16px rgba(176,128,64,.4); } }
@keyframes hse-tremble { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hse-shadow { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(.95) translateY(1px); } }
@keyframes hse-mist { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.5; transform: scale(1.02); } 100% { opacity:.3; transform: scale(.98); } }

/* Scene: hastings-pursuivant */
.scn-hastings-pursuivant { background: linear-gradient(180deg, #4a3a2a 0%, #8a6a4a 30%, #c0a070 60%, #e8d0a0 100%), radial-gradient(ellipse at 50% 0%, #f0e0b0 0%, transparent 50%); }
.scn-hastings-pursuivant .sky-warm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c0a070 0%, #f0dbb0 30%, #ffeedd 100%); animation: hpu-sky 12s ease-in-out infinite alternate; }
.scn-hastings-pursuivant .ground-cobble { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; filter: blur(1px); }
.scn-hastings-pursuivant .arch-door { position:absolute; bottom:20%; left:50%; width:60px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3); }
.scn-hastings-pursuivant .fig-hastings { position:absolute; bottom:22%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpu-bow 5s ease-in-out infinite; }
.scn-hastings-pursuivant .fig-pursuivant { position:absolute; bottom:22%; right:35%; width:18px; height:42px; background: linear-gradient(180deg, #4a3a4a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpu-talk 4s ease-in-out infinite; }
.scn-hastings-pursuivant .lantern-dawn { position:absolute; bottom:32%; left:45%; width:8px; height:12px; background: radial-gradient(circle, #ffddaa 0%, #b08040 70%); border-radius: 20%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.4); animation: hpu-lantern 3s ease-in-out infinite alternate; }
.scn-hastings-pursuivant .cloud-soft { position:absolute; top:15%; left:10%; width:70px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(8px); animation: hpu-cloud 25s linear infinite; }
@keyframes hpu-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes hpu-bow { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hpu-talk { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(3px) scaleY(1.02); } 60% { transform: translateX(-1px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes hpu-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 3px #8a6030, 0 0 30px 8px rgba(138,96,48,.3); } 50% { opacity:1; box-shadow: 0 0 25px 8px #ffcc80, 0 0 50px 15px rgba(255,204,128,.5); } 100% { opacity:.8; box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.4); } }
@keyframes hpu-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* Scene: hastings-buckingham */
.scn-hastings-buckingham { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a1a3a 60%, #0a0a0a 100%), radial-gradient(ellipse at 40% 30%, #3a2a4a 0%, transparent 70%); }
.scn-hastings-buckingham .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #0a0a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.8); }
.scn-hastings-buckingham .window-dawn { position:absolute; top:12%; right:15%; width:35px; height:55px; background: radial-gradient(circle, #f0dbb0 0%, #c09060 70%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 10px #c09060, 0 0 60px 20px rgba(192,144,96,.3); animation: hbu-dawn 6s ease-in-out infinite alternate; }
.scn-hastings-buckingham .beam-ceiling { position:absolute; top:5%; left:10%; right:10%; height:6px; background: linear-gradient(90deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-hastings-buckingham .fig-hastings { position:absolute; bottom:18%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hbu-shift 4s ease-in-out infinite alternate; }
.scn-hastings-buckingham .fig-priest { position:absolute; bottom:16%; left:20%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hbu-kneel 6s ease-in-out infinite alternate; }
.scn-hastings-buckingham .fig-buckingham { position:absolute; bottom:18%; right:25%; width:22px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hbu-stand 5s ease-in-out infinite alternate; }
.scn-hastings-buckingham .shadow-deep { position:absolute; bottom:0; left:10%; width:80%; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.9) 0%, transparent 70%); filter: blur(12px); animation: hbu-darken 8s ease-in-out infinite alternate; }
@keyframes hbu-dawn { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes hbu-shift { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(4px) rotate(2deg); } }
@keyframes hbu-kneel { 0% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(-3px) scaleY(0.95); } }
@keyframes hbu-stand { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes hbu-darken { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.5; } }

/* Scene: pomfret-execution */
.scn-pomfret-execution { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 20%, #3a3a3a 50%, #2a2a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a3a 0%, transparent 70%); }
.scn-pomfret-execution .sky-overcast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 30%, #8a8a8a 100%); animation: pom-sky 15s ease-in-out infinite alternate; }
.scn-pomfret-execution .castle-wall { position:absolute; bottom:20%; left:20%; right:20%; height:70%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%) repeat; border-radius: 5% 5% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-pomfret-execution .ground-mud { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a1a0a 0%, #2a2a1a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; filter: blur(2px); }
.scn-pomfret-execution .fig-ratcliff { position:absolute; bottom:18%; left:30%; width:22px; 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: pom-march 6s ease-in-out infinite; }
.scn-pomfret-execution .fig-rivers { position:absolute; bottom:18%; right:40%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pom-stumble 8s ease-in-out infinite; }
.scn-pomfret-execution .fig-grey { position:absolute; bottom:18%; right:30%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pom-stumble 8.5s ease-in-out infinite reverse; }
.scn-pomfret-execution .fig-vaughan { position:absolute; bottom:18%; right:20%; width:20px; height:44px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pom-stumble 9s ease-in-out infinite; }
.scn-pomfret-execution .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(200,200,200,.1) 0%, transparent 70%); filter: blur(15px); animation: pom-fog 25s ease-in-out infinite alternate; }
.scn-pomfret-execution .chain { position:absolute; bottom:20%; left:45%; width:30px; height:4px; background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: pom-chain 4s ease-in-out infinite alternate; }
@keyframes pom-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes pom-march { 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 pom-stumble { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pom-fog { 0% { opacity:.1; transform: scale(1); } 50% { opacity:.4; transform: scale(1.02); } 100% { opacity:.2; transform: scale(0.98); } }
@keyframes pom-chain { 0% { transform: translateY(0) scaleX(1); } 100% { transform: translateY(3px) scaleX(1.05); } }

.scn-ghost-visitation-4 { background: linear-gradient(180deg, #0a0a1a 0%, #14142e 40%, #1e1e3a 70%, #0a0a1a 100%); }
.scn-ghost-visitation-4 .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1e1e3a 0%, transparent 60%), linear-gradient(180deg, #0a0a1a 0%, #14142e 100%); animation: gv4-bg 10s ease-in-out infinite alternate; }
.scn-ghost-visitation-4 .mist { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(200,200,255,0.1) 0%, transparent 100%); filter: blur(10px); animation: gv4-mist 8s ease-in-out infinite; }
.scn-ghost-visitation-4 .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-ghost-visitation-4 .ghost { position:absolute; bottom:15%; width:30px; height:80px; background: radial-gradient(ellipse at 50% 30%, rgba(220,220,255,0.3) 0%, rgba(180,180,240,0.1) 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; filter: blur(1px); animation: gv4-ghost 6s ease-in-out infinite; }
.scn-ghost-visitation-4 .ghost-a { left:20%; animation-delay:0s; }
.scn-ghost-visitation-4 .ghost-b { left:45%; animation-delay:-2s; }
.scn-ghost-visitation-4 .ghost-c { left:70%; animation-delay:-4s; }
.scn-ghost-visitation-4 .glow { position:absolute; bottom:20%; left:50%; width:60px; height:60px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,200,255,0.2) 0%, transparent 70%); animation: gv4-glow 4s ease-in-out infinite; }
@keyframes gv4-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gv4-mist { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes gv4-ghost { 0% { opacity:0.5; transform: translateY(0) scaleY(1) } 50% { opacity:0.8; transform: translateY(-10px) scaleY(1.1) } 100% { opacity:0.5; transform: translateY(0) scaleY(1) } }
@keyframes gv4-glow { 0% { opacity:0.3; transform:translate(-50%, -50%) scale(1) } 50% { opacity:0.6; transform:translate(-50%, -50%) scale(1.2) } 100% { opacity:0.3; transform:translate(-50%, -50%) scale(1) } }

.scn-ghost-visitation-5 { background: linear-gradient(180deg, #0d0d1f 0%, #1a1a35 50%, #0d0d1f 100%); }
.scn-ghost-visitation-5 .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #14142e 0%, transparent 100%); animation: gv5-sky 12s ease-in-out infinite alternate; }
.scn-ghost-visitation-5 .moon { position:absolute; top:15%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #d0d0ff 0%, #8080b0 80%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(128,128,200,0.3); animation: gv5-moon 20s ease-in-out infinite; }
.scn-ghost-visitation-5 .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a30 0%, #0a0a18 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; }
.scn-ghost-visitation-5 .ghost { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:40px; height:90px; background: linear-gradient(180deg, rgba(210,210,255,0.4) 0%, rgba(180,180,240,0.1) 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; animation: gv5-ghost 5s ease-in-out infinite; }
.scn-ghost-visitation-5 .shadow { position:absolute; bottom:30%; left:45%; width:60px; height:20px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(3px); animation: gv5-shadow 5s ease-in-out infinite; }
.scn-ghost-visitation-5 .blood { position:absolute; bottom:30%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #8a3a3a 0%, #5e1a1d 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: gv5-blood 3s ease-in-out infinite; }
@keyframes gv5-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gv5-moon { 0% { transform: translate(0,0) } 50% { transform: translate(-5px, -5px) } 100% { transform: translate(0,0) } }
@keyframes gv5-ghost { 0% { opacity:0.6; transform:translateX(-50%) translateY(0) } 50% { opacity:0.9; transform:translateX(-50%) translateY(-8px) } 100% { opacity:0.6; transform:translateX(-50%) translateY(0) } }
@keyframes gv5-shadow { 0% { transform: scale(1) } 50% { transform: scale(0.8) } 100% { transform: scale(1) } }
@keyframes gv5-blood { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(3px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

.scn-ghost-visitation-6 { background: linear-gradient(180deg, #12122a 0%, #1c1c3c 50%, #12122a 100%); }
.scn-ghost-visitation-6 .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #1e1e40 0%, transparent 70%); animation: gv6-bg 10s ease-in-out infinite alternate; }
.scn-ghost-visitation-6 .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius: 60% 40% 0 0 / 100% 100% 0 0; }
.scn-ghost-visitation-6 .ghost { position:absolute; bottom:20%; left:50%; width:50px; height:100px; background: radial-gradient(ellipse at 50% 30%, rgba(230,230,255,0.3) 0%, rgba(200,200,240,0.1) 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: gv6-ghost 7s ease-in-out infinite; }
.scn-ghost-visitation-6 .hair { position:absolute; bottom:80%; left:50%; width:20px; height:60px; background: linear-gradient(180deg, rgba(160,160,210,0.2) 0%, transparent 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: translateX(-50%); filter: blur(2px); animation: gv6-hair 5s ease-in-out infinite; }
.scn-ghost-visitation-6 .tear { position:absolute; bottom:50%; left:52%; width:6px; height:10px; background: radial-gradient(circle, #b0d0ff 0%, #8090c0 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: gv6-tear 4s ease-in-out infinite; }
.scn-ghost-visitation-6 .glow { position:absolute; bottom:20%; left:50%; width:80px; height:80px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,200,255,0.1) 0%, transparent 70%); animation: gv6-glow 6s ease-in-out infinite; }
@keyframes gv6-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes gv6-ghost { 0% { opacity:0.4; transform:translateX(-50%) translateY(0) } 50% { opacity:0.9; transform:translateX(-50%) translateY(-12px) } 100% { opacity:0.4; transform:translateX(-50%) translateY(0) } }
@keyframes gv6-hair { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(4deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes gv6-tear { 0% { transform: translateY(0) scale(1); opacity:0.5 } 50% { transform: translateY(10px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:0.5 } }
@keyframes gv6-glow { 0% { opacity:0.2; transform:translate(-50%, -50%) scale(0.8) } 50% { opacity:0.5; transform:translate(-50%, -50%) scale(1.2) } 100% { opacity:0.2; transform:translate(-50%, -50%) scale(0.8) } }

.scn-richard-waking-nightmare { background: linear-gradient(180deg, #0a0a14 0%, #14142a 40%, #0f0f1f 100%); }
.scn-richard-waking-nightmare .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 70%); animation: rwn-bg 12s ease-in-out infinite alternate; }
.scn-richard-waking-nightmare .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #111128 0%, #050510 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; }
.scn-richard-waking-nightmare .ghost { position:absolute; bottom:25%; left:50%; width:45px; height:95px; background: linear-gradient(180deg, rgba(220,220,240,0.3) 0%, rgba(180,180,210,0.1) 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; animation: rwn-ghost 6s ease-in-out infinite; }
.scn-richard-waking-nightmare .crown { position:absolute; bottom:70%; left:47%; width:30px; height:10px; background: linear-gradient(180deg, #c0a040 0%, #806020 100%); border-radius: 20% 20% 50% 50%; transform: translateX(-50%); animation: rwn-crown 4s ease-in-out infinite; box-shadow: 0 0 8px 2px rgba(192,160,64,0.4); }
.scn-richard-waking-nightmare .arm { position:absolute; bottom:40%; left:60%; width:8px; height:50px; background: linear-gradient(180deg, rgba(200,200,230,0.2) 0%, transparent 100%); border-radius: 50%; transform: rotate(20deg); transform-origin: bottom center; animation: rwn-arm 3s ease-in-out infinite; }
.scn-richard-waking-nightmare .shadow { position:absolute; bottom:25%; left:40%; width:70px; height:25px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(4px); animation: rwn-shadow 6s ease-in-out infinite; }
@keyframes rwn-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes rwn-ghost { 0% { opacity:0.5; transform:translateX(-50%) translateY(0) } 50% { opacity:0.9; transform:translateX(-50%) translateY(-10px) } 100% { opacity:0.5; transform:translateX(-50%) translateY(0) } }
@keyframes rwn-crown { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-3deg) } }
@keyframes rwn-arm { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes rwn-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

/* Scene: edward-laments-clarence */
.scn-edward-laments-clarence {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(circle at 50% 40%, #6a5a3a 0%, transparent 60%);
}
.scn-edward-laments-clarence .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; top: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: elc-wall 10s ease-in-out infinite alternate;
}
.scn-edward-laments-clarence .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
}
.scn-edward-laments-clarence .window {
  position: absolute; top: 20%; left: 30%; width: 30%; height: 40%;
  background: radial-gradient(circle at 50% 50%, #f0d080 0%, #c8b060 50%, #8a7030 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: 0 0 30px rgba(240,208,128,0.5);
  animation: elc-window 5s ease-in-out infinite;
}
.scn-edward-laments-clarence .candle {
  position: absolute; bottom: 40%; left: 45%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffd060 0%, #b08040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px #ffd060;
  animation: elc-candle 2s ease-in-out infinite alternate;
}
.scn-edward-laments-clarence .figure {
  position: absolute; bottom: 30%; left: 35%; 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: elc-figure 6s ease-in-out infinite;
}
.scn-edward-laments-clarence .shadow {
  position: absolute; bottom: 30%; left: 33%; width: 40px; height: 15px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: elc-shadow 6s ease-in-out infinite;
}
@keyframes elc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes elc-window {
  0% { box-shadow: 0 0 20px rgba(240,208,128,0.3); }
  50% { box-shadow: 0 0 40px rgba(240,208,128,0.6); }
  100% { box-shadow: 0 0 20px rgba(240,208,128,0.3); }
}
@keyframes elc-candle {
  0% { transform: scaleY(0.9); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.8; }
}
@keyframes elc-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes elc-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}

/* Scene: aftermath-clarence */
.scn-aftermath-clarence {
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%), radial-gradient(circle at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-aftermath-clarence .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-aftermath-clarence .goblet {
  position: absolute; bottom: 25%; left: 48%; width: 12px; height: 20px;
  background: radial-gradient(circle, #c8a060 0%, #8a7030 100%);
  border-radius: 0 0 30% 30%;
  animation: ac-goblet 4s ease-in-out infinite;
}
.scn-aftermath-clarence .parchment {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 20px;
  background: #d4c090; border-radius: 2px; transform: rotate(-5deg);
  animation: ac-parchment 6s ease-in-out infinite;
}
.scn-aftermath-clarence .figure-left {
  position: absolute; bottom: 22%; left: 25%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ac-figure-l 5s ease-in-out infinite;
}
.scn-aftermath-clarence .figure-right {
  position: absolute; bottom: 22%; right: 25%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ac-figure-r 5s ease-in-out infinite;
}
.scn-aftermath-clarence .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 15px;
  background: linear-gradient(180deg, #ffd060 0%, #b08040 100%);
  border-radius: 30%; box-shadow: 0 0 20px #ffd060;
  animation: ac-candle 3s ease-in-out infinite alternate;
}
@keyframes ac-candle {
  0% { transform: scaleY(0.9); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.8; }
}
@keyframes ac-figure-l {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ac-figure-r {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ac-goblet {
  0% { box-shadow: 0 0 5px rgba(200,160,96,0.3); }
  50% { box-shadow: 0 0 15px rgba(200,160,96,0.7); }
  100% { box-shadow: 0 0 5px rgba(200,160,96,0.3); }
}
@keyframes ac-parchment {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(-5deg); }
}

/* Scene: duchess-york-mourns */
.scn-duchess-york-mourns {
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%), radial-gradient(circle at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-duchess-york-mourns .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-duchess-york-mourns .duchess {
  position: absolute; bottom: 20%; left: 40%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: dym-duchess 7s ease-in-out infinite;
}
.scn-duchess-york-mourns .child-left {
  position: absolute; bottom: 15%; left: 35%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: dym-child 5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-duchess-york-mourns .child-right {
  position: absolute; bottom: 15%; left: 45%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: dym-child 5s ease-in-out infinite alternate;
  animation-delay: 0.2s;
}
.scn-duchess-york-mourns .candle {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 15px;
  background: linear-gradient(180deg, #ffc060 0%, #a07030 100%);
  border-radius: 30%; box-shadow: 0 0 20px #ffc060;
  animation: dym-candle 2s ease-in-out infinite alternate;
}
.scn-duchess-york-mourns .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  opacity: 0.8; filter: blur(2px);
  animation: dym-curtain 12s ease-in-out infinite alternate;
}
@keyframes dym-candle {
  0% { transform: scaleY(0.9); opacity: 0.7; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.7; }
}
@keyframes dym-duchess {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dym-child {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(1px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes dym-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

/* Scene: queen-elizabeth-laments */
.scn-queen-elizabeth-laments {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%), radial-gradient(circle at 50% 50%, #2a2a3a 0%, transparent 60%);
}
.scn-queen-elizabeth-laments .throne {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px; box-shadow: inset 0 8px 15px rgba(0,0,0,0.7);
}
.scn-queen-elizabeth-laments .queen {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: qel-queen 8s ease-in-out infinite;
}
.scn-queen-elizabeth-laments .mirror {
  position: absolute; top: 15%; left: 38%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border: 3px solid #6a5a4a;
  border-radius: 50% 50% 5% 5% / 60% 60% 5% 5%;
  box-shadow: 0 0 20px rgba(50,50,70,0.5);
  animation: qel-mirror 7s ease-in-out infinite alternate;
}
.scn-queen-elizabeth-laments .candle {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 15px;
  background: linear-gradient(180deg, #ffd060 0%, #a08030 100%);
  border-radius: 30%; box-shadow: 0 0 15px #ffd060;
  animation: qel-candle 2s ease-in-out infinite alternate;
}
.scn-queen-elizabeth-laments .crown {
  position: absolute; bottom: 10%; left: 45%; width: 25px; height: 15px;
  background: linear-gradient(180deg, #c8a860 0%, #8a7030 100%);
  border-radius: 50% 50% 0 0; transform: rotate(15deg);
  animation: qel-crown 9s ease-in-out infinite;
}
@keyframes qel-queen {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qel-mirror {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.03); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.8; }
}
@keyframes qel-candle {
  0% { transform: scaleY(0.9); opacity: 0.7; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.7; }
}
@keyframes qel-crown {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-duchess-defiant {
  background: linear-gradient(180deg, #f7c948 0%, #e67e22 50%, #a04000 100%), radial-gradient(ellipse at 50% 25%, #fff5d0 0%, transparent 70%);
}
.scn-duchess-defiant .bg-sunburst { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 20%, rgba(255,245,200,.4) 0%,transparent 70%); animation:dd-sky 6s ease-in-out infinite alternate; }
.scn-duchess-defiant .sun-core { position:absolute; top:15%; left:50%; width:60px; height:60px; margin:-30px 0 0 -30px; background:radial-gradient(circle, #fff8e0 0%, #f7c948 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(247,201,72,.5); animation:dd-sunpulse 4s ease-in-out infinite; }
.scn-duchess-defiant .figure-duchess { position:absolute; bottom:25%; left:20%; width:35%; height:55%; background:linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 60% 40% 30% 40% / 70% 60% 40% 50%; animation:dd-breathe 3s ease-in-out infinite alternate; }
.scn-duchess-defiant .arm-imperious { position:absolute; bottom:55%; left:45%; width:6px; height:40px; background:#2a1a0a; border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation:dd-arm 2s ease-in-out infinite; }
.scn-duchess-defiant .shadow-angry { position:absolute; bottom:20%; left:15%; width:50%; height:8%; background:rgba(20,10,0,.6); border-radius:50%; filter:blur(6px); animation:dd-shadow 5s ease-in-out infinite alternate; }
.scn-duchess-defiant .dust-motes { position:absolute; inset:0; background:radial-gradient(2px 2px at 30% 40%, rgba(255,230,150,.6) 0%, transparent 50%), radial-gradient(1px 1px at 60% 70%, rgba(255,230,150,.5) 0%, transparent 50%); animation:dd-dust 12s linear infinite; }
@keyframes dd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dd-sunpulse { 0% { transform:scale(1); opacity:.9 } 50% { transform:scale(1.08); opacity:1 } 100% { transform:scale(1); opacity:.85 } }
@keyframes dd-breathe { 0% { transform:scale(1) rotate(-1deg) } 50% { transform:scale(1.02) rotate(0deg) } 100% { transform:scale(1) rotate(1deg) } }
@keyframes dd-arm { 0% { transform:rotate(-30deg) } 50% { transform:rotate(-10deg) } 100% { transform:rotate(20deg) } }
@keyframes dd-shadow { 0% { transform:scaleX(1) translateX(0); opacity:.4 } 50% { transform:scaleX(1.2) translateX(-5px); opacity:.7 } 100% { transform:scaleX(1) translateX(0); opacity:.5 } }
@keyframes dd-dust { 0% { background-position:0 0 } 100% { background-position:200px 200px } }

.scn-exit-brakenbury {
  background: linear-gradient(180deg, #f5e4c0 0%, #d4b080 50%, #a07850 100%), radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-exit-brakenbury .hall-bg { position:absolute; inset:0; background:linear-gradient(90deg, rgba(180,140,100,.3) 0%, transparent 50%, rgba(180,140,100,.3) 100%); animation:eb-hall 15s ease-in-out infinite alternate; }
.scn-exit-brakenbury .door-arch { position:absolute; bottom:20%; left:45%; width:18%; height:60%; background:linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-exit-brakenbury .figure-exit { position:absolute; bottom:22%; left:50%; width:8%; height:30%; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:eb-walk 6s ease-in-out infinite; }
.scn-exit-brakenbury .window-light { position:absolute; top:10%; left:15%; width:20%; height:30%; background:radial-gradient(ellipse, rgba(255,253,200,.8) 0%, transparent 70%); border-radius:10%; animation:eb-light 4s ease-in-out infinite alternate; }
.scn-exit-brakenbury .column-left { position:absolute; bottom:0; left:8%; width:5%; height:80%; background:linear-gradient(90deg, #8a7050, #6a5040, #8a7050); border-radius:10% 10% 0 0; animation:eb-column 10s ease-in-out infinite; }
.scn-exit-brakenbury .column-right { position:absolute; bottom:0; right:8%; width:5%; height:80%; background:linear-gradient(90deg, #8a7050, #6a5040, #8a7050); border-radius:10% 10% 0 0; animation:eb-column 10s ease-in-out infinite reverse; }
.scn-exit-brakenbury .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:20%; background:repeating-linear-gradient(90deg, #c0a080 0px, #d0b090 30px, #b09070 60px); animation:eb-floor 20s linear infinite; }
@keyframes eb-hall { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes eb-walk { 0% { transform:translateX(-20px) rotate(-2deg) } 25% { transform:translateX(-10px) rotate(1deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(10px) rotate(-1deg) } 100% { transform:translateX(20px) rotate(2deg) } }
@keyframes eb-light { 0% { opacity:.4; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.6; transform:scale(1) } }
@keyframes eb-column { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes eb-floor { 0% { transform:translateX(0) } 100% { transform:translateX(-30px) } }

.scn-elizabeth-reacts {
  background: linear-gradient(180deg, #fff4d0 0%, #f5e3a0 40%, #c8a880 100%), radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 60%);
}
.scn-elizabeth-reacts .sky-bright { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, rgba(255,250,220,.8) 0%, transparent 100%); animation:er-sky 3s ease-in-out infinite alternate; }
.scn-elizabeth-reacts .figure-recoil { position:absolute; bottom:25%; left:30%; width:40%; height:55%; background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 60%; animation:er-recoil 0.8s ease-in-out infinite alternate; }
.scn-elizabeth-reacts .hands-up { position:absolute; bottom:55%; left:35%; width:12%; height:20%; background:radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a120a 100%); border-radius:50%; box-shadow: 0 0 0 2px #2a1a0a; animation:er-hands 0.5s ease-in-out infinite; }
.scn-elizabeth-reacts .shadow-distorted { position:absolute; bottom:20%; left:25%; width:45%; height:10%; background:rgba(10,5,0,.7); border-radius:50%; filter:blur(5px); animation:er-shadow 1s ease-in-out infinite alternate; }
.scn-elizabeth-reacts .sun-rays { position:absolute; top:0; left:40%; width:20%; height:100%; background:linear-gradient(180deg, rgba(255,255,200,.5) 0%, transparent 80%); clip-path:polygon(45% 0, 50% 100%, 55% 0); animation:er-rays 2s ease-in-out infinite; }
.scn-elizabeth-reacts .ground-shatter { position:absolute; bottom:0; left:0; right:0; height:25%; background:repeating-linear-gradient(45deg, rgba(80,60,40,.3) 0px, transparent 10px, rgba(80,60,40,.3) 20px); animation:er-shatter 3s linear infinite; }
@keyframes er-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes er-recoil { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-8px) rotate(4deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes er-hands { 0% { transform:scale(1) translate(0,0) } 50% { transform:scale(1.1) translate(3px,-3px) } 100% { transform:scale(1) translate(-2px,2px) } }
@keyframes er-shadow { 0% { transform:scaleX(1); opacity:.6 } 50% { transform:scaleX(1.2); opacity:1 } 100% { transform:scaleX(0.9); opacity:.4 } }
@keyframes er-rays { 0% { opacity:.5; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.2) } 100% { opacity:.6; transform:scaleY(0.8) } }
@keyframes er-shatter { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(-5px) } }

.scn-elizabeth-fears {
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 50%, #a09070 100%), radial-gradient(ellipse at 50% 40%, #f5f0e0 0%, transparent 60%);
}
.scn-elizabeth-fears .sky-pale { position:absolute; inset:0; background:radial-gradient(ellipse at 60% 20%, rgba(255,250,240,.6) 0%, transparent 80%); animation:ef-sky 10s ease-in-out infinite alternate; }
.scn-elizabeth-fears .figure-kneel { position:absolute; bottom:20%; left:35%; width:30%; height:45%; background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation:ef-kneel 4s ease-in-out infinite; }
.scn-elizabeth-fears .arms-out { position:absolute; bottom:40%; left:25%; width:50%; height:4%; background:#1a1008; border-radius:20px; animation:ef-arms 2s ease-in-out infinite alternate; }
.scn-elizabeth-fears .shadow-long { position:absolute; bottom:15%; left:20%; width:60%; height:12%; background:rgba(20,10,0,.5); border-radius:50%; filter:blur(10px); animation:ef-shadow 8s ease-in-out infinite; }
.scn-elizabeth-fears .tear-drops { position:absolute; top:30%; left:40%; width:100%; height:70%; background:radial-gradient(3px 5px at 50% 30%, rgba(180,200,255,.7) 0%, transparent 100%); animation:ef-tears 3s ease-in-out infinite; }
.scn-elizabeth-fears .ground-stone { position:absolute; bottom:0; left:0; right:0; height:18%; background:linear-gradient(180deg, #7a6a50, #5a4a30); border-radius:30% 30% 0 0 / 50% 50% 0 0; animation:ef-ground 5s ease-in-out infinite alternate; }
@keyframes ef-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ef-kneel { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(0deg) translateY(-3px) } 100% { transform:rotate(2deg) translateY(0) } }
@keyframes ef-arms { 0% { transform:scaleY(1) translateX(0) } 50% { transform:scaleY(1.2) translateX(5px) } 100% { transform:scaleY(1) translateX(-5px) } }
@keyframes ef-shadow { 0% { transform:scaleX(1) translateX(0); opacity:.4 } 50% { transform:scaleX(1.3) translateX(10px); opacity:.7 } 100% { transform:scaleX(1) translateX(0); opacity:.5 } }
@keyframes ef-tears { 0% { opacity:0; transform:translateY(0) } 50% { opacity:.8; transform:translateY(30px) } 100% { opacity:0; transform:translateY(60px) } }
@keyframes ef-ground { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-richard-soliloquy-winter {
  background: 
    linear-gradient(180deg, #2a2a4a 0%, #5a4a3a 40%, #8a7a5a 70%, #c8b080 100%),
    radial-gradient(ellipse at 30% 40%, #ffd080 0%, transparent 50%);
}
.scn-richard-soliloquy-winter .sun {
  position: absolute; top: 8%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffebaa 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%;
  animation: rsw-sun 10s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-winter .cloud-a {
  position: absolute; top: 12%; left: -10%; width: 120px; height: 30px;
  background: linear-gradient(90deg, #4a4a5a 0%, #6a6a7a 50%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: rsw-drift-a 60s linear infinite;
}
.scn-richard-soliloquy-winter .cloud-b {
  position: absolute; top: 18%; left: 60%; width: 90px; height: 22px;
  background: linear-gradient(90deg, transparent 0%, #5a5a6a 50%, #4a4a5a 100%);
  border-radius: 50%; filter: blur(5px);
  animation: rsw-drift-b 80s linear infinite reverse;
}
.scn-richard-soliloquy-winter .figure {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rsw-figure 6s ease-in-out infinite;
}
.scn-richard-soliloquy-winter .crown {
  position: absolute; bottom: 58%; left: 50%; width: 28px; height: 16px;
  background: linear-gradient(135deg, #b09050 0%, #705020 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: translateX(-50%);
  animation: rsw-crown 4s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-winter .arm-left {
  position: absolute; bottom: 30%; left: 44%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 20% 20% 40% / 60% 20% 20% 60%;
  transform-origin: top center;
  animation: rsw-arm-left 3s ease-in-out infinite alternate;
}
.scn-richard-soliloquy-winter .arm-right {
  position: absolute; bottom: 30%; left: 56%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 40% 40% 20% / 20% 60% 60% 20%;
  transform-origin: top center;
  animation: rsw-arm-right 3s ease-in-out infinite alternate-reverse;
}
.scn-richard-soliloquy-winter .shadow {
  position: absolute; bottom: 17%; left: 38%; width: 80px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: rsw-shadow 6s ease-in-out infinite;
}
@keyframes rsw-sun { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes rsw-drift-a { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }
@keyframes rsw-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }
@keyframes rsw-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-50%) translateY(-4px) rotate(0); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes rsw-crown { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes rsw-arm-left { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-3deg); } }
@keyframes rsw-arm-right { 0% { transform: rotate(5deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(3deg); } }
@keyframes rsw-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.9); } }

.scn-richard-envy-peace {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #c8a070 30%, #e0c090 60%, #f0d8b0 100%),
    radial-gradient(ellipse at 70% 30%, #ffe080 0%, transparent 60%);
}
.scn-richard-envy-peace .window {
  position: absolute; top: 10%; left: 60%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #ffe0a0 0%, #ffd080 50%, #e0b060 100%);
  border-radius: 8px 8px 8px 8px;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.5);
  animation: rep-window 8s ease-in-out infinite alternate;
}
.scn-richard-envy-peace .lute {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: rep-lute 5s ease-in-out infinite;
}
.scn-richard-envy-peace .lute::after { /* optional but forbidden text, so use pseudo? Actually we can't use ::after because we only emit divs. But we can add another div for detail? Already have 7 divs, no need. */
}
.scn-richard-envy-peace .dancer {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rep-dancer 3s ease-in-out infinite;
}
.scn-richard-envy-peace .richard {
  position: absolute; bottom: 10%; left: 48%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%;
  transform: translateX(-50%);
  animation: rep-richard 6s ease-in-out infinite;
}
.scn-richard-envy-peace .curtain-l {
  position: absolute; top: 0; left: 0; width: 18%; height: 100%;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a4a3a 40%, transparent 100%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  animation: rep-curtain 12s ease-in-out infinite alternate;
}
.scn-richard-envy-peace .curtain-r {
  position: absolute; top: 0; right: 0; width: 18%; height: 100%;
  background: linear-gradient(270deg, #5a3a2a 0%, #7a4a3a 40%, transparent 100%);
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  animation: rep-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-richard-envy-peace .shadow {
  position: absolute; bottom: 8%; left: 40%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: rep-shadow 6s ease-in-out infinite;
}
@keyframes rep-window { 0% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,200,100,0.7); } 100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(255,200,100,0.4); } }
@keyframes rep-lute { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-4px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes rep-dancer { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-8px) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-3deg); } 75% { transform: translateY(-10px) rotate(4deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes rep-richard { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes rep-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(-4px); } }
@keyframes rep-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.3); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

.scn-richard-deformity-hate {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #8a7a6a 40%, #b8a88a 70%, #d0c0a0 100%),
    radial-gradient(ellipse at 40% 60%, #ffe0a0 0%, transparent 60%);
}
.scn-richard-deformity-hate .sun {
  position: absolute; top: 15%; right: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffebaa 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%;
  animation: rdh-sun 12s ease-in-out infinite alternate;
}
.scn-richard-deformity-hate .fig {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%;
  transform: rotate(5deg);
  animation: rdh-fig 5s ease-in-out infinite;
}
.scn-richard-deformity-hate .cane {
  position: absolute; bottom: 20%; left: 32%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: rdh-cane 5s ease-in-out infinite;
}
.scn-richard-deformity-hate .shadow {
  position: absolute; bottom: 12%; left: 20%; width: 90px; height: 14px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: rdh-shadow 5s ease-in-out infinite;
}
.scn-richard-deformity-hate .dog {
  position: absolute; bottom: 22%; left: 58%; width: 28px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: rdh-dog 3s ease-in-out infinite;
}
.scn-richard-deformity-hate .ground-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  animation: rdh-ground 15s ease-in-out infinite alternate;
}
.scn-richard-deformity-hate .wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  opacity: 0.5;
  animation: rdh-wall 20s ease-in-out infinite alternate;
}
@keyframes rdh-sun { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes rdh-fig { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(7deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes rdh-cane { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-18deg); } }
@keyframes rdh-shadow { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.6); opacity: 0.5; } 100% { transform: scaleX(1.1); opacity: 0.3; } }
@keyframes rdh-dog { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-3px); } 50% { transform: rotate(-12deg) translateY(-1px); } 75% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes rdh-ground { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes rdh-wall { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-richard-villain-resolve {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #5a4a3a 30%, #8a7050 60%, #b09870 100%),
    radial-gradient(ellipse at 70% 40%, #ffd080 0%, transparent 70%);
}
.scn-richard-villain-resolve .window {
  position: absolute; top: 8%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #ffe0a0 0%, #ffc060 50%, #d0a050 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.5);
  animation: rvr-window 10s ease-in-out infinite alternate;
}
.scn-richard-villain-resolve .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: rvr-table 8s ease-in-out infinite alternate;
}
.scn-richard-villain-resolve .map {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 50%, #7a6040 100%);
  border-radius: 10% 30% 20% 10% / 20% 40% 30% 30%;
  transform: rotate(-5deg);
  animation: rvr-map 6s ease-in-out infinite;
}
.scn-richard-villain-resolve .crown {
  position: absolute; bottom: 35%; left: 48%; width: 32px; height: 20px;
  background: linear-gradient(135deg, #c0a060 0%, #8a6a2a 50%, #6a4a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: translateX(-50%);
  animation: rvr-crown 4s ease-in-out infinite alternate;
}
.scn-richard-villain-resolve .fig {
  position: absolute; bottom: 14%; left: 52%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rvr-fig 7s ease-in-out infinite;
}
.scn-richard-villain-resolve .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 70px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: rvr-shadow 7s ease-in-out infinite;
}
.scn-richard-villain-resolve .curtain {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(270deg, #5a3a2a 0%, #7a4a3a 40%, transparent 100%);
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  animation: rvr-curtain 14s ease-in-out infinite alternate;
}
@keyframes rvr-window { 0% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,200,100,0.7); } 100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(255,200,100,0.4); } }
@keyframes rvr-table { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rvr-map { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(-8deg) translateY(-1px); } 75% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes rvr-crown { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rvr-fig { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes rvr-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.4); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.3; } }
@keyframes rvr-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(4px); } }

/* exit-catesby */
.scn-exit-catesby { background: linear-gradient(180deg, #f5e6d0 0%, #dcc8a8 40%, #b89a78 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 50%); }
.scn-exit-catesby .ec-bg     { position:absolute; inset:0; background: linear-gradient(135deg, #f0dcc0 0%, #d4b896 100%); }
.scn-exit-catesby .ec-glass  { position:absolute; left:20%; top:15%; width:60%; height:55%; background: rgba(200,220,240,0.15); border-radius:4%; backdrop-filter: blur(6px); border:2px solid rgba(255,255,240,0.3); animation: ec-glass 5s ease-in-out infinite alternate; }
.scn-exit-catesby .ec-figure { position:absolute; left:38%; top:20%; width:24%; height:55%; background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ec-figure 4s ease-in-out infinite; }
.scn-exit-catesby .ec-tear   { position:absolute; left:50%; top:40%; width:2%; height:3%; background: radial-gradient(circle, #b0d0ff 0%, #6090ff 70%); border-radius:50%; opacity:0; animation: ec-tear 6s ease-in infinite; }
.scn-exit-catesby .ec-glow   { position:absolute; left:30%; top:10%; width:40%; height:30%; background: radial-gradient(ellipse, #ffe8b0 0%, transparent 70%); mix-blend-mode: screen; animation: ec-glow 3s ease-in-out infinite alternate; }
@keyframes ec-glass  { 0% { opacity:0.6; transform:scale(1) rotate(0deg); } 50% { opacity:1; transform:scale(1.02) rotate(1deg); } 100% { opacity:0.7; transform:scale(0.98) rotate(-1deg); } }
@keyframes ec-figure { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2%) rotate(2deg); } 60% { transform:translateY(1%) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ec-tear   { 0% { opacity:0; transform:translateY(0) scale(0.5); } 20% { opacity:0.8; transform:translateY(10%) scale(1); } 80% { opacity:0.6; transform:translateY(80%) scale(0.8); } 100% { opacity:0; transform:translateY(100%) scale(0.3); } }
@keyframes ec-glow   { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(0.9); } }

/* tyrrel-introduces */
.scn-tyrrel-introduces { background: linear-gradient(180deg, #1a1a2e 0%, #14142a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 70%); }
.scn-tyrrel-introduces .ti-bg      { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e34 0%, #121228 100%); }
.scn-tyrrel-introduces .ti-throne  { position:absolute; bottom:20%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #c8a86e 0%, #8a6a3e 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 -4px 20px rgba(0,0,0,0.6); }
.scn-tyrrel-introduces .ti-kneeler { position:absolute; bottom:18%; left:25%; width:14%; height:30%; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ti-kneel 6s ease-in-out infinite; }
.scn-tyrrel-introduces .ti-shadow  { position:absolute; bottom:15%; left:50%; width:35%; height:50%; background: rgba(0,0,0,0.4); border-radius: 20% 20% 10% 10%; filter: blur(8px); transform: skewY(5deg); animation: ti-shadow 8s ease-in-out infinite alternate; }
.scn-tyrrel-introduces .ti-torch   { position:absolute; left:60%; bottom:35%; width:3%; height:10%; background: linear-gradient(180deg, #8a6a3e 0%, #4a3a1e 100%); }
.scn-tyrrel-introduces .ti-torch::after { content:''; position:absolute; top:-60%; left:-150%; width:400%; height:100%; background: radial-gradient(ellipse, #ffb060 0%, #ff8020 40%, transparent 80%); animation: ti-flame 1.5s ease-in-out infinite alternate; }
.scn-tyrrel-introduces .ti-column  { position:absolute; left:15%; top:0%; width:8%; height:100%; background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 50%, #2a2a3a 100%); }
@keyframes ti-kneel  { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2%); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes ti-shadow { 0% { transform:skewY(5deg) translateX(0); } 50% { transform:skewY(8deg) translateX(3%); } 100% { transform:skewY(4deg) translateX(-2%); } }
@keyframes ti-flame  { 0% { opacity:0.6; transform:scaleY(1) rotate(0deg); } 50% { opacity:1; transform:scaleY(1.3) rotate(5deg); } 100% { opacity:0.7; transform:scaleY(0.8) rotate(-5deg); } }

/* tyrrel-consents */
.scn-tyrrel-consents { background: linear-gradient(180deg, #2a1e30 0%, #1a1224 50%, #120e1a 100%), radial-gradient(ellipse at 60% 30%, #3a2a44 0%, transparent 60%); }
.scn-tyrrel-consents .tc-bg       { position:absolute; inset:0; background: linear-gradient(180deg, #2a2238 0%, #1a1a2a 100%); }
.scn-tyrrel-consents .tc-king     { position:absolute; bottom:15%; left:35%; width:30%; height:45%; background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: tc-king 10s ease-in-out infinite; }
.scn-tyrrel-consents .tc-king::after { content:''; position:absolute; top:-10%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, #c8a86e 0%, #8a6a3e 100%); border-radius: 50%; }
.scn-tyrrel-consents .tc-tyrrel   { position:absolute; bottom:15%; left:22%; width:15%; height:35%; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tc-rise 5s ease-in-out infinite; }
.scn-tyrrel-consents .tc-token    { position:absolute; left:40%; bottom:40%; width:6%; height:6%; background: radial-gradient(circle, #ffe080 0%, #c8a020 80%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,160,32,0.6); animation: tc-token 4s ease-in-out infinite; }
.scn-tyrrel-consents .tc-note     { position:absolute; left:30%; top:20%; width:4%; height:4%; background: radial-gradient(circle, #ffd0a0 0%, transparent 80%); border-radius:50%; filter: blur(2px); animation: tc-note 8s ease-in infinite; }
.scn-tyrrel-consents .tc-note::before { content:''; position:absolute; left:50%; top:-20%; width:2px; height:30%; background:#ffd0a0; border-radius:50%; }
.scn-tyrrel-consents .tc-tapestry { position:absolute; left:5%; top:10%; width:15%; height:70%; background: linear-gradient(180deg, #5e3a4a 0%, #3a1e2a 100%); border-radius: 5% 5% 0 0; transform-origin: top; animation: tc-tapestry 15s ease-in-out infinite; }
@keyframes tc-king     { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2%) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes tc-rise     { 0% { transform:translateY(0) rotate(0deg) scaleY(1); } 50% { transform:translateY(-5%) rotate(2deg) scaleY(1.05); } 100% { transform:translateY(0) rotate(0deg) scaleY(1); } }
@keyframes tc-token    { 0% { transform:translate(0,0) scale(1) rotate(0deg); } 25% { transform:translate(10%,-10%) scale(1.2) rotate(90deg); } 50% { transform:translate(-5%,5%) scale(0.9) rotate(180deg); } 75% { transform:translate(5%,-5%) scale(1.1) rotate(270deg); } 100% { transform:translate(0,0) scale(1) rotate(360deg); } }
@keyframes tc-note     { 0% { transform:translateY(0) rotate(0deg); opacity:0; } 30% { opacity:0.6; } 70% { opacity:0.4; } 100% { transform:translateY(-120%) rotate(15deg); opacity:0; } }
@keyframes tc-tapestry { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95) translateX(2%); } 100% { transform: scaleX(1) translateX(0); } }

/* tyrrel-pledges */
.scn-tyrrel-pledges { background: linear-gradient(180deg, #1e1a2e 0%, #14122a 40%, #0e0c1a 100%), radial-gradient(ellipse at 40% 40%, #2a2240 0%, transparent 70%); }
.scn-tyrrel-pledges .tp-bg      { position:absolute; inset:0; background: linear-gradient(180deg, #1e1a2e 0%, #12102a 100%); }
.scn-tyrrel-pledges .tp-king    { position:absolute; bottom:15%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; }
.scn-tyrrel-pledges .tp-tyrrel  { position:absolute; bottom:15%; left:22%; width:15%; height:38%; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tp-bow 5s ease-in-out infinite; }
.scn-tyrrel-pledges .tp-scroll  { position:absolute; left:25%; bottom:30%; width:8%; height:12%; background: linear-gradient(180deg, #d4b896 0%, #a88a6e 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: tp-scroll 6s ease-in-out infinite; }
.scn-tyrrel-pledges .tp-candle  { position:absolute; left:55%; bottom:30%; width:2%; height:15%; background: linear-gradient(180deg, #e8c8a0 0%, #a08060 100%); border-radius: 2px 2px 0 0; }
.scn-tyrrel-pledges .tp-candle::after { content:''; position:absolute; top:-20%; left:-100%; width:300%; height:40%; background: radial-gradient(ellipse, #ffb060 0%, #ff8020 40%, transparent 80%); animation: tp-flame 1.2s ease-in-out infinite alternate; }
.scn-tyrrel-pledges .tp-door    { position:absolute; left:70%; top:10%; width:20%; height:85%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; border-left: 2px solid #6a5a4a; transform-origin: left; animation: tp-door 20s ease-in-out infinite; }
@keyframes tp-bow    { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2%) rotate(3deg); } 60% { transform:translateY(0) rotate(0deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes tp-scroll { 0% { transform:scaleX(1) translateY(0); } 50% { transform:scaleX(1.05) translateY(-2%); } 100% { transform:scaleX(1) translateY(0); } }
@keyframes tp-flame  { 0% { opacity:0.7; transform:scaleY(1) rotate(0deg); } 50% { opacity:1; transform:scaleY(1.2) rotate(5deg); } 100% { opacity:0.8; transform:scaleY(0.9) rotate(-5deg); } }
@keyframes tp-door   { 0% { transform:skewY(0deg); } 50% { transform:skewY(2deg); } 100% { transform:skewY(-1deg); } }

/* Scene: richard-mocking-clarence (funny, sunlit) */
.scn-richard-mocking-clarence {
  background: 
    linear-gradient(180deg, #f9e6c8 0%, #e8cfa0 50%, #c8a87c 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-richard-mocking-clarence .window-arch {
  position: absolute;
  top: 5%;
  left: 20%;
  width: 60%;
  height: 55%;
  background: radial-gradient(ellipse at 50% 100%, #fff5c0 0%, #d4b48a 60%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 40px rgba(255, 230, 160, 0.4);
}
.scn-richard-mocking-clarence .sunbeam {
  position: absolute;
  top: 0%;
  left: 30%;
  width: 10px;
  height: 80%;
  background: linear-gradient(180deg, rgba(255, 240, 180, 0.5), transparent);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: rmc-sunbeam 4s ease-in-out infinite alternate;
}
.scn-richard-mocking-clarence .floor {
  position: absolute;
  bottom: 0%;
  left: 0%;
  right: 0%;
  height: 25%;
  background: linear-gradient(180deg, #a07c5c 0%, #6b4d32 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-richard-mocking-clarence .figure-left {
  position: absolute;
  bottom: 22%;
  left: 22%;
  width: 16%;
  height: 40%;
  background: linear-gradient(180deg, #4a3520 0%, #2d1f12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rmc-figure-left 3s ease-in-out infinite;
}
.scn-richard-mocking-clarence .figure-right {
  position: absolute;
  bottom: 22%;
  right: 22%;
  width: 16%;
  height: 42%;
  background: linear-gradient(180deg, #4a3520 0%, #2d1f12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rmc-figure-right 3.5s ease-in-out infinite;
}
.scn-richard-mocking-clarence .gesture-hand {
  position: absolute;
  bottom: 38%;
  left: 33%;
  width: 8%;
  height: 12%;
  background: linear-gradient(180deg, #5c4032 0%, #3d2b1c 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom left;
  animation: rmc-gesture 2s ease-in-out infinite alternate;
}
.scn-richard-mocking-clarence .mote-1 {
  position: absolute;
  top: 20%;
  left: 35%;
  width: 4px;
  height: 4px;
  background: rgba(255, 220, 150, 0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: rmc-mote-1 5s linear infinite, rmc-mote-fade 3s ease-in-out infinite alternate;
}
.scn-richard-mocking-clarence .mote-2 {
  position: absolute;
  top: 35%;
  left: 45%;
  width: 3px;
  height: 3px;
  background: rgba(255, 220, 150, 0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: rmc-mote-2 7s linear infinite, rmc-mote-fade 4s ease-in-out infinite alternate;
}
@keyframes rmc-sunbeam {
  0% { transform: rotate(12deg) scaleX(0.8); opacity: 0.7; }
  50% { transform: rotate(18deg) scaleX(1.2); opacity: 1; }
  100% { transform: rotate(14deg) scaleX(0.9); opacity: 0.8; }
}
@keyframes rmc-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4%) translateY(-1%) rotate(2deg); }
  50% { transform: translateX(8%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(4%) translateY(-2%) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rmc-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-3%) translateY(-1%) rotate(-1deg); }
  60% { transform: translateX(-6%) translateY(0) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rmc-gesture {
  0% { transform: rotate(-10deg) scaleY(0.9); }
  50% { transform: rotate(15deg) scaleY(1.1); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes rmc-mote-1 {
  0% { transform: translate(0, 0); }
  100% { transform: translate(30px, -20px); }
}
@keyframes rmc-mote-2 {
  0% { transform: translate(0, 0); }
  100% { transform: translate(-20px, 30px); }
}
@keyframes rmc-mote-fade {
  0% { opacity: 0.2; }
  50% { opacity: 0.8; }
  100% { opacity: 0.3; }
}

/* Scene: clarence-prophecy-letter (tense, sunlit) */
.scn-clarence-prophecy-letter {
  background: 
    linear-gradient(180deg, #e8d0aa 0%, #c8a87c 50%, #946a4a 100%),
    radial-gradient(ellipse at 50% 20%, #fff5d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-clarence-prophecy-letter .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b48a 0%, #b08060 100%);
  box-shadow: inset 0 4px 15px rgba(50,30,10,0.3);
}
.scn-clarence-prophecy-letter .window-bars {
  position: absolute;
  top: 5%;
  left: 25%;
  width: 50%;
  height: 40%;
  background: rgba(0,0,0,0.1);
  border: 4px solid #5c4032;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-clarence-prophecy-letter .window-bars::after {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 4px;
  height: 100%;
  background: #5c4032;
  transform: translateX(-50%);
}
.scn-clarence-prophecy-letter .desk {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 30%;
  height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-clarence-prophecy-letter .letter {
  position: absolute;
  bottom: 38%;
  left: 42%;
  width: 16%;
  height: 12%;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4bfa0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cpl-letter 3s ease-in-out infinite alternate;
}
.scn-clarence-prophecy-letter .shadow-letter {
  position: absolute;
  bottom: 37%;
  left: 43%;
  width: 14%;
  height: 10%;
  background: rgba(0,0,0,0.15);
  border-radius: 2px;
  filter: blur(3px);
  animation: cpl-shadow-letter 3s ease-in-out infinite alternate;
}
.scn-clarence-prophecy-letter .figure-clarence {
  position: absolute;
  bottom: 22%;
  left: 22%;
  width: 18%;
  height: 50%;
  background: linear-gradient(180deg, #3d2b1c 0%, #1f140a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: cpl-figure 4s ease-in-out infinite;
}
.scn-clarence-prophecy-letter .dust {
  position: absolute;
  top: 10%;
  left: 0;
  width: 4px;
  height: 4px;
  box-shadow: 30px 40px 0 rgba(255, 220, 150, 0.4), 70px 20px 0 rgba(255, 220, 150, 0.3), 120px 60px 0 rgba(255, 220, 150, 0.2);
  border-radius: 50%;
  background: transparent;
  animation: cpl-dust 15s linear infinite;
}
.scn-clarence-prophecy-letter .cross-row {
  position: absolute;
  bottom: 40%;
  right: 15%;
  width: 30%;
  height: 6%;
  background: linear-gradient(90deg, #7a5a3a 0%, #5c4032 50%, #7a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
  animation: cpl-cross-row 5s ease-in-out infinite alternate;
}
@keyframes cpl-letter {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(2px,-2px) rotate(2deg); }
  50% { transform: translate(-1px,0) rotate(-1deg); }
  75% { transform: translate(3px,1px) rotate(3deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes cpl-shadow-letter {
  0% { transform: translate(0,0) scale(1); opacity: 0.5; }
  50% { transform: translate(4px,-4px) scale(0.95); opacity: 0.7; }
  100% { transform: translate(2px,-2px) scale(1.02); opacity: 0.4; }
}
@keyframes cpl-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2%) rotate(2deg); }
  60% { transform: translateY(1%) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cpl-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0.3; }
  50% { transform: translateX(50px) translateY(-30px); opacity: 0.6; }
  100% { transform: translateX(100px) translateY(-60px); opacity: 0.1; }
}
@keyframes cpl-cross-row {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}

/* Scene: richard-blames-queen (tense, sunlit) */
.scn-richard-blames-queen {
  background: 
    linear-gradient(180deg, #e3cba8 0%, #bca57e 50%, #8b6f4d 100%),
    radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-richard-blames-queen .backdrop {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c8a87c 0%, #a08060 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-richard-blames-queen .floor {
  position: absolute;
  bottom: 0%;
  left: 0%;
  right: 0%;
  height: 20%;
  background: linear-gradient(180deg, #6b4d32 0%, #3d2b1c 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-richard-blames-queen .figure-richard {
  position: absolute;
  bottom: 18%;
  left: 15%;
  width: 20%;
  height: 55%;
  background: linear-gradient(180deg, #2d1f12 0%, #1a110a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: rbq-figure-richard 3s ease-in-out infinite;
}
.scn-richard-blames-queen .shadow-richard {
  position: absolute;
  bottom: 10%;
  left: 12%;
  width: 25%;
  height: 30%;
  background: rgba(0,0,0,0.25);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  filter: blur(6px);
  transform: skewX(-10deg);
  animation: rbq-shadow-richard 3.5s ease-in-out infinite;
}
.scn-richard-blames-queen .figure-queen {
  position: absolute;
  bottom: 18%;
  right: 20%;
  width: 18%;
  height: 50%;
  background: linear-gradient(180deg, #5c4032 0%, #3d2b1c 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: rbq-figure-queen 3.2s ease-in-out infinite;
}
.scn-richard-blames-queen .crown {
  position: absolute;
  bottom: 58%;
  right: 27%;
  width: 8%;
  height: 8%;
  background: #c8a020;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: rbq-crown 2s ease-in-out infinite alternate;
}
.scn-richard-blames-queen .sunbeam {
  position: absolute;
  top: 0%;
  left: 25%;
  width: 8px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255, 240, 180, 0.3), transparent);
  transform: rotate(20deg);
  filter: blur(3px);
  animation: rbq-sunbeam 5s ease-in-out infinite alternate;
}
.scn-richard-blames-queen .dust-mote {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 3px;
  height: 3px;
  background: rgba(255, 230, 160, 0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: rbq-dust 8s linear infinite, rbq-dust-opacity 3s ease-in-out infinite;
}
@keyframes rbq-figure-richard {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8%) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-4%) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rbq-shadow-richard {
  0% { transform: skewX(-10deg) translateX(0); opacity: 0.6; }
  50% { transform: skewX(-15deg) translateX(5px); opacity: 0.8; }
  100% { transform: skewX(-8deg) translateX(-3px); opacity: 0.4; }
}
@keyframes rbq-figure-queen {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3%) rotate(1deg); }
  60% { transform: translateY(2%) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rbq-crown {
  0% { transform: rotate(-5deg) scale(0.9); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes rbq-sunbeam {
  0% { transform: rotate(18deg) scaleY(0.8); opacity: 0.6; }
  50% { transform: rotate(22deg) scaleY(1.1); opacity: 1; }
  100% { transform: rotate(20deg) scaleY(0.9); opacity: 0.7; }
}
@keyframes rbq-dust {
  0% { transform: translate(0,0); }
  100% { transform: translate(40px, -30px); }
}
@keyframes rbq-dust-opacity {
  0% { opacity: 0.2; }
  50% { opacity: 0.8; }
  100% { opacity: 0.3; }
}

/* Scene: clarence-secure-jest (tense, sunlit) */
.scn-clarence-secure-jest {
  background: 
    linear-gradient(180deg, #dcc8a8 0%, #bc9e7a 50%, #8b6f4d 100%),
    radial-gradient(ellipse at 40% 10%, #fff5c0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-clarence-secure-jest .corridor {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(135deg, #c8a87c 0%, #a08060 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
}
.scn-clarence-secure-jest .floor {
  position: absolute;
  bottom: 0%;
  left: 0%;
  right: 0%;
  height: 25%;
  background: linear-gradient(180deg, #8b6f4d 0%, #5c4032 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-clarence-secure-jest .figure-herald {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 15%;
  height: 45%;
  background: linear-gradient(180deg, #3d2b1c 0%, #1f140a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: csj-herald 3s ease-in-out infinite;
}
.scn-clarence-secure-jest .figure-hastings {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 17%;
  height: 48%;
  background: linear-gradient(180deg, #4a3520 0%, #2d1f12 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: csj-hastings 4s ease-in-out infinite;
}
.scn-clarence-secure-jest .letter {
  position: absolute;
  bottom: 35%;
  left: 28%;
  width: 12%;
  height: 10%;
  background: linear-gradient(135deg, #f0dcb8 0%, #d4bfa0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: csj-letter 3.5s ease-in-out infinite alternate;
}
.scn-clarence-secure-jest .shadow-herald {
  position: absolute;
  bottom: 8%;
  left: 12%;
  width: 20%;
  height: 25%;
  background: rgba(0,0,0,0.2);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  filter: blur(5px);
  transform: skewX(-5deg);
  animation: csj-shadow-herald 3s ease-in-out infinite alternate;
}
.scn-clarence-secure-jest .doorway {
  position: absolute;
  top: 0%;
  left: 50%;
  width: 30%;
  height: 60%;
  background: rgba(0,0,0,0.1);
  border: 4px solid #5c4032;
  border-radius: 8% 8% 4% 4%;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-clarence-secure-jest .sunbeam {
  position: absolute;
  top: 0%;
  left: 10%;
  width: 6px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255, 240, 180, 0.3), transparent);
  transform: rotate(8deg);
  filter: blur(2px);
  animation: csj-sunbeam 6s ease-in-out infinite alternate;
}
.scn-clarence-secure-jest .dust-particle {
  position: absolute;
  top: 20%;
  left: 20%;
  width: 3px;
  height: 3px;
  background: rgba(255, 230, 160, 0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: csj-dust 10s linear infinite, csj-dust-fade 4s ease-in-out infinite;
}
@keyframes csj-herald {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5%) rotate(2deg); }
  60% { transform: translateX(-3%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes csj-hastings {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2%) rotate(1deg); }
  50% { transform: translateY(1%) rotate(-2deg); }
  75% { transform: translateY(-1%) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes csj-letter {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(3px,-2px) rotate(3deg); }
  100% { transform: translate(-1px,1px) rotate(-2deg); }
}
@keyframes csj-shadow-herald {
  0% { transform: skewX(-5deg) translateX(0); opacity: 0.5; }
  50% { transform: skewX(-10deg) translateX(8px); opacity: 0.7; }
  100% { transform: skewX(-3deg) translateX(-4px); opacity: 0.3; }
}
@keyframes csj-sunbeam {
  0% { transform: rotate(6deg) scaleY(0.9); opacity: 0.6; }
  50% { transform: rotate(10deg) scaleY(1.1); opacity: 1; }
  100% { transform: rotate(8deg) scaleY(0.95); opacity: 0.7; }
}
@keyframes csj-dust {
  0% { transform: translate(0,0); }
  100% { transform: translate(30px, -40px); }
}
@keyframes csj-dust-fade {
  0% { opacity: 0.1; }
  50% { opacity: 0.8; }
  100% { opacity: 0.2; }
}

/* catesby-reports-buckingham-captured – bright interior, mixed mood */
.scn-catesby-reports-buckingham-captured {
  background: linear-gradient(180deg, #f5f0e0 0%, #d4b88c 50%, #b09060 100%), radial-gradient(ellipse at 50% 80%, #e0d0b0 0%, transparent 70%);
}
.scn-catesby-reports-buckingham-captured .ca-bg-wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #c8b890 0%, #e8dcc8 100%); border-bottom: 4px solid #a08860;
}
.scn-catesby-reports-buckingham-captured .ca-bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b09060 0%, #8a7050 100%);
}
.scn-catesby-reports-buckingham-captured .ca-throne {
  position:absolute; bottom:28%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6020 0%, #604010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 20px rgba(0,0,0,.5); animation: ca-throne 8s ease-in-out infinite alternate;
}
.scn-catesby-reports-buckingham-captured .ca-banner-a {
  position:absolute; top:10%; left:20%; width:60px; height:90px; background: linear-gradient(180deg, #a02618 0%, #701810 100%); border-radius: 10% 10% 30% 30%; transform-origin: top center; animation: ca-banner-a 6s ease-in-out infinite;
}
.scn-catesby-reports-buckingham-captured .ca-banner-b {
  position:absolute; top:10%; right:20%; width:60px; height:90px; background: linear-gradient(180deg, #a02618 0%, #701810 100%); border-radius: 10% 10% 30% 30%; transform-origin: top center; animation: ca-banner-b 7s ease-in-out infinite reverse;
}
.scn-catesby-reports-buckingham-captured .ca-figure {
  position:absolute; bottom:30%; left:45%; width:20px; 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: ca-figure-bow 5s ease-in-out infinite;
}
.scn-catesby-reports-buckingham-captured .ca-crown {
  position:absolute; bottom:48%; left:50%; width:22px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #d0a030 0%, #b08020 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 0 10px 2px #d0a030; animation: ca-crown-glow 4s ease-in-out infinite alternate;
}
.scn-catesby-reports-buckingham-captured .ca-window-light {
  position:absolute; top:14%; left:55%; width:50px; height:70px; background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #f0d8a0 60%, transparent 100%); border-radius: 10%; opacity: 0.6; animation: ca-light-pulse 12s ease-in-out infinite;
}
@keyframes ca-throne { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ca-banner-a { 0% { transform: rotate(0deg); } 25% { transform: rotate(-4deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes ca-banner-b { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes ca-figure-bow { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(-4deg); } 70% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ca-crown-glow { 0% { box-shadow: 0 0 8px 2px #d0a030, 0 0 16px 4px rgba(208,160,48,.4); } 50% { box-shadow: 0 0 14px 4px #e0b040, 0 0 28px 8px rgba(224,176,64,.5); } 100% { box-shadow: 0 0 10px 3px #d0a030, 0 0 20px 5px rgba(208,160,48,.3); } }
@keyframes ca-light-pulse { 0%,100% { opacity: 0.4; } 50% { opacity: 0.8; } }

/* flourish-exeunt – urgent, bright interior */
.scn-flourish-exeunt {
  background: linear-gradient(180deg, #f5e8d0 0%, #c8b890 50%, #a08860 100%), radial-gradient(ellipse at 40% 60%, #e0d0b0 0%, transparent 60%);
}
.scn-flourish-exeunt .fl-bg-wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #b8a080 0%, #d8c8a8 100%); border-bottom: 3px solid #907050;
}
.scn-flourish-exeunt .fl-bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08860 0%, #806040 100%);
}
.scn-flourish-exeunt .fl-table {
  position:absolute; bottom:25%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-flourish-exeunt .fl-map {
  position:absolute; bottom:33%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%); border-radius: 2px; transform-origin: center; animation: fl-map-flap 3s ease-in-out infinite;
}
.scn-flourish-exeunt .fl-figure-derby {
  position:absolute; bottom:25%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-figure-gesture 2s ease-in-out infinite;
}
.scn-flourish-exeunt .fl-figure-urs {
  position:absolute; bottom:25%; right:30%; width:22px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-figure-gesture 2.5s ease-in-out infinite reverse;
}
.scn-flourish-exeunt .fl-document {
  position:absolute; bottom:34%; left:38%; width:30px; height:20px; background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: fl-doc-slide 4s ease-in-out infinite;
}
.scn-flourish-exeunt .fl-candle {
  position:absolute; bottom:31%; left:50%; width:6px; height:16px; transform:translateX(20px); background: linear-gradient(180deg, #e0b040 0%, #a08020 100%); border-radius: 2px; box-shadow: 0 0 8px 2px #e0b040; animation: fl-candle-flicker 1.5s ease-in-out infinite;
}
@keyframes fl-map-flap { 0% { transform: translateX(-50%) rotateX(0deg); } 50% { transform: translateX(-50%) rotateX(-10deg) translateY(-2px); } 100% { transform: translateX(-50%) rotateX(0deg); } }
@keyframes fl-figure-gesture { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-5deg); } 50% { transform: translateY(-1px) rotate(3deg); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fl-doc-slide { 0% { transform: translateX(0); } 20% { transform: translateX(-20px); } 40% { transform: translateX(0); } 60% { transform: translateX(20px); } 80% { transform: translateX(0); } 100% { transform: translateX(0); } }
@keyframes fl-candle-flicker { 0%,100% { opacity: .8; transform: scaleY(1); } 25% { opacity: 1; transform: scaleY(1.1); } 50% { opacity: .6; transform: scaleY(.95); } 75% { opacity: .9; transform: scaleY(1.05); } }

/* urswick-answers – informative, dim interior */
.scn-urswick-answers {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #3a1a0a 100%), radial-gradient(ellipse at 50% 40%, #b06020 0%, transparent 60%);
}
.scn-urswick-answers .ur-bg-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); opacity: .6;
}
.scn-urswick-answers .ur-wall {
  position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-bottom: 3px solid #2a1a0a;
}
.scn-urswick-answers .ur-table {
  position:absolute; bottom:20%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 3px; box-shadow: 0 3px 8px rgba(0,0,0,.5);
}
.scn-urswick-answers .ur-candle {
  position:absolute; bottom:29%; left:50%; width:5px; height:20px; transform:translateX(-10px); background: linear-gradient(180deg, #e0b040 0%, #a08020 100%); border-radius: 2px; box-shadow: 0 0 12px 3px #e0b040; animation: ur-candle-flick 3s ease-in-out infinite;
}
.scn-urswick-answers .ur-scroll {
  position:absolute; bottom:25%; left:55%; width:40px; height:20px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius: 2px; transform-origin: left center; animation: ur-scroll-unroll 8s ease-in-out infinite;
}
.scn-urswick-answers .ur-figure {
  position:absolute; bottom:20%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ur-figure-nod 6s ease-in-out infinite;
}
.scn-urswick-answers .ur-hands {
  position:absolute; bottom:24%; left:35%; width:20px; height:14px; background: #4a3a2a; border-radius: 40% 40% 30% 30%; animation: ur-hands-move 7s ease-in-out infinite;
}
.scn-urswick-answers .ur-halo {
  position:absolute; bottom:30%; left:50%; width:30px; height:30px; background: radial-gradient(circle, rgba(224,176,64,.3) 0%, transparent 70%); border-radius: 50%; animation: ur-halo-pulse 5s ease-in-out infinite;
}
@keyframes ur-candle-flick { 0%,100% { transform: translateX(-10px) scaleY(1); opacity: .85; } 30% { transform: translateX(-10px) scaleY(1.1) rotate(2deg); opacity: 1; } 60% { transform: translateX(-10px) scaleY(.95) rotate(-1deg); opacity: .7; } }
@keyframes ur-scroll-unroll { 0% { transform: scaleX(0.2); opacity: .7; } 50% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(0.2); opacity: .7; } }
@keyframes ur-figure-nod { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ur-hands-move { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(-5deg); } 60% { transform: translateX(-5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ur-halo-pulse { 0%,100% { opacity: .3; transform: scale(1); } 50% { opacity: .6; transform: scale(1.3); } }

/* derby-return-message – hopeful, dim interior with doorway light */
.scn-derby-return-message {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 50%, #4a2a0a 100%), radial-gradient(ellipse at 70% 50%, #d08040 0%, transparent 70%);
}
.scn-derby-return-message .dr-bg-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 100%); opacity: .5;
}
.scn-derby-return-message .dr-wall {
  position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 100%); border-bottom: 3px solid #2a1a0a;
}
.scn-derby-return-message .dr-doorway {
  position:absolute; bottom:15%; left:50%; width:70px; height:100px; transform:translateX(-50%); background: #1a0a00; border-radius: 5px 5px 0 0; box-shadow: inset 0 0 30px rgba(200,150,50,.2);
}
.scn-derby-return-message .dr-light {
  position:absolute; bottom:15%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(240,200,120,0.6) 0%, transparent 80%); animation: dr-light-pulse 10s ease-in-out infinite;
}
.scn-derby-return-message .dr-figure-sender {
  position:absolute; bottom:20%; left:25%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-figure-bow 4s ease-in-out infinite;
}
.scn-derby-return-message .dr-figure-receiver {
  position:absolute; bottom:20%; right:25%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-figure-bow 4.5s ease-in-out infinite reverse;
}
.scn-derby-return-message .dr-letter {
  position:absolute; bottom:30%; left:30%; width:28px; height:18px; background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: dr-letter-pass 6s ease-in-out infinite;
}
.scn-derby-return-message .dr-shadow {
  position:absolute; bottom:10%; left:30%; width:30px; height:10px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px); animation: dr-shadow-shrink 6s ease-in-out infinite;
}
@keyframes dr-light-pulse { 0%,100% { opacity: .3; } 50% { opacity: .8; } }
@keyframes dr-figure-bow { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-3deg); } 60% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dr-letter-pass { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(20px) rotate(5deg); } 50% { transform: translateX(40px) rotate(-5deg); } 75% { transform: translateX(20px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dr-shadow-shrink { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.6); } }

.scn-richard-wine-orders { background: linear-gradient(180deg, #0d0808 0%, #1a1010 30%, #2a1a10 70%, #1a0e0a 100%), radial-gradient(ellipse at 50% 60%, #2a1a10 0%, transparent 70%); }

.scn-richard-wine-orders .tent-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #1a1210 0%, #241a12 50%, #1a1210 100%); border-radius:0 0 30% 30% / 0 0 15% 15%; animation: rwo-wall 18s ease-in-out infinite alternate; }

.scn-richard-wine-orders .pole-l { position:absolute; bottom:15%; left:12%; width:6px; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius:20% / 10%; transform:rotate(3deg); animation: rwo-pole 12s ease-in-out infinite alternate; }

.scn-richard-wine-orders .pole-r { position:absolute; bottom:15%; right:12%; width:6px; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius:20% / 10%; transform:rotate(-3deg); animation: rwo-pole 14s ease-in-out infinite alternate-reverse; }

.scn-richard-wine-orders .table { position:absolute; bottom:24%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:4% / 30%; box-shadow:0 -4px 12px rgba(0,0,0,0.5); }

.scn-richard-wine-orders .wine-bowl { position:absolute; bottom:30%; left:50%; width:30px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #6a3a20 0%, #3a1a0a 70%); border-radius:50% / 30% 30% 50% 50%; box-shadow:0 2px 8px rgba(0,0,0,0.4); animation: rwo-bowl 5s ease-in-out infinite; }

.scn-richard-wine-orders .figure-silhouette { position:absolute; bottom:22%; left:38%; width:22px; height:48px; background: linear-gradient(180deg, #0a0606 0%, #000 100%); border-radius:45% 55% 50% 50% / 60% 55% 40% 45%; transform-origin:bottom center; animation: rwo-fig 6s ease-in-out infinite; }

.scn-richard-wine-orders .candle { position:absolute; bottom:32%; left:58%; width:4px; height:12px; background: linear-gradient(180deg, #c0a060 0%, #8a6030 60%, #4a2a10 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; animation: rwo-candle 2s ease-in-out infinite alternate; }

.scn-richard-wine-orders .candle-glow { position:absolute; bottom:38%; left:58%; width:40px; height:40px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(240,180,80,0.6) 0%, rgba(240,180,80,0.15) 40%, transparent 70%); border-radius:50%; animation: rwo-glow 3s ease-in-out infinite alternate; }

@keyframes rwo-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rwo-pole { 0% { transform:rotate(2deg) scaleY(1) } 50% { transform:rotate(4deg) scaleY(0.98) } 100% { transform:rotate(1deg) scaleY(1) } }
@keyframes rwo-bowl { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-1px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes rwo-fig { 0% { transform:translateX(0) rotate(-2deg) } 30% { transform:translateX(4px) rotate(-1deg) } 60% { transform:translateX(8px) rotate(2deg) } 100% { transform:translateX(12px) rotate(0deg) } }
@keyframes rwo-candle { 0% { transform:scaleY(1) rotate(-2deg); opacity:0.8 } 50% { transform:scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform:scaleY(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes rwo-glow { 0% { transform:translate(-50%, -50%) scale(0.95); opacity:0.7 } 50% { transform:translate(-50%, -50%) scale(1.15); opacity:1 } 100% { transform:translate(-50%, -50%) scale(1.05); opacity:0.8 } }

.scn-richmond-tent-encounter { background: linear-gradient(180deg, #0d0808 0%, #1a1010 25%, #2a1810 60%, #1a0e0a 100%), radial-gradient(ellipse at 60% 50%, #2a1a12 0%, transparent 65%); }

.scn-richmond-tent-encounter .tent-bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #1a1210 0%, #221812 40%, #1a1210 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; animation: rte-bg 20s ease-in-out infinite alternate; }

.scn-richmond-tent-encounter .flap-l { position:absolute; bottom:10%; left:5%; width:20%; height:55%; background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%); border-radius:0 60% 40% 0 / 0 50% 30% 0; transform-origin:left center; animation: rte-flap-l 16s ease-in-out infinite alternate; }

.scn-richmond-tent-encounter .flap-r { position:absolute; bottom:10%; right:5%; width:20%; height:55%; background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%); border-radius:60% 0 0 40% / 50% 0 0 30%; transform-origin:right center; animation: rte-flap-r 18s ease-in-out infinite alternate; }

.scn-richmond-tent-encounter .figure-richmond { position:absolute; bottom:16%; left:35%; width:24px; height:52px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius:50% 45% 45% 50% / 55% 50% 40% 45%; transform-origin:bottom center; animation: rte-fig-l 7s ease-in-out infinite; }

.scn-richmond-tent-encounter .figure-derby { position:absolute; bottom:16%; right:35%; width:26px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #080606 100%); border-radius:45% 50% 50% 45% / 55% 50% 40% 45%; transform-origin:bottom center; animation: rte-fig-r 8s ease-in-out infinite; }

.scn-richmond-tent-encounter .lantern { position:absolute; bottom:30%; left:48%; width:10px; height:16px; background: linear-gradient(180deg, #c0a060 0%, #8a6030 60%, #5a3a1a 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow:0 0 8px 2px rgba(200,160,80,0.3); animation: rte-lantern 4s ease-in-out infinite alternate; }

.scn-richmond-tent-encounter .lantern-halo { position:absolute; bottom:30%; left:48%; width:70px; height:70px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, rgba(200,160,80,0.1) 35%, transparent 65%); border-radius:50%; animation: rte-halo 5s ease-in-out infinite alternate; }

@keyframes rte-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rte-flap-l { 0% { transform:rotateY(0deg) } 50% { transform:rotateY(8deg) } 100% { transform:rotateY(-4deg) } }
@keyframes rte-flap-r { 0% { transform:rotateY(0deg) } 50% { transform:rotateY(-10deg) } 100% { transform:rotateY(6deg) } }
@keyframes rte-fig-l { 0% { transform:translateY(0) rotate(-2deg) } 35% { transform:translateY(-2px) rotate(1deg) } 70% { transform:translateY(-1px) rotate(3deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes rte-fig-r { 0% { transform:translateY(0) rotate(2deg) } 40% { transform:translateY(-2px) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(-3deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes rte-lantern { 0% { transform:scaleY(1) rotate(-3deg); opacity:0.85 } 50% { transform:scaleY(1.08) rotate(3deg); opacity:1 } 100% { transform:scaleY(0.95) rotate(-2deg); opacity:0.9 } }
@keyframes rte-halo { 0% { transform:translate(-50%, -50%) scale(0.95); opacity:0.6 } 50% { transform:translate(-50%, -50%) scale(1.2); opacity:0.9 } 100% { transform:translate(-50%, -50%) scale(1.05); opacity:0.7 } }

.scn-richmond-tent-preparation { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 20%, #4a3a4a 45%, #8a6a4a 70%, #c0a060 100%), radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, transparent 60%); }

.scn-richmond-tent-preparation .dawn-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 30%, #8a6a4a 60%, #c0a060 100%); border-radius:0 0 50% 50% / 0 0 60% 60%; animation: rtp-sky 14s ease-in-out infinite alternate; }

.scn-richmond-tent-preparation .tent-ceiling { position:absolute; top:0; left:0; right:0; bottom:60%; background: linear-gradient(180deg, #1a1010 0%, #2a1a12 40%, #3a2a1a 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; animation: rtp-ceiling 20s ease-in-out infinite alternate; }

.scn-richmond-tent-preparation .armor-stand { position:absolute; bottom:25%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a120a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow:0 4px 10px rgba(0,0,0,0.5); animation: rtp-stand 9s ease-in-out infinite; }

.scn-richmond-tent-preparation .helmet { position:absolute; bottom:50%; left:50%; width:22px; height:18px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, #4a3a2a 70%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 2px 6px rgba(0,0,0,0.4), inset 0 -2px 6px rgba(200,180,140,0.2); animation: rtp-helmet 6s ease-in-out infinite alternate; }

.scn-richmond-tent-preparation .figure-richmond { position:absolute; bottom:18%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius:50% 45% 45% 50% / 55% 50% 40% 45%; transform-origin:bottom center; animation: rtp-fig 8s ease-in-out infinite; }

.scn-richmond-tent-preparation .sword { position:absolute; bottom:20%; left:55%; width:4px; height:44px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 60%, #2a1a10 100%); border-radius:20% / 10%; transform:rotate(-15deg); transform-origin:bottom center; animation: rtp-sword 5s ease-in-out infinite alternate; }

.scn-richmond-tent-preparation .pole-l { position:absolute; bottom:15%; left:10%; width:5px; height:65%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:20% / 10%; transform:rotate(4deg); animation: rtp-pole 16s ease-in-out infinite alternate; }

@keyframes rtp-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:1 } }
@keyframes rtp-ceiling { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(0.97) } 100% { transform:translateY(1px) scaleY(1) } }
@keyframes rtp-stand { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes rtp-helmet { 0% { transform:translateX(-50%) rotate(-2deg); opacity:0.85 } 50% { transform:translateX(-50%) rotate(2deg); opacity:1 } 100% { transform:translateX(-50%) rotate(-1deg); opacity:0.9 } }
@keyframes rtp-fig { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 30% { transform:translateX(3px) translateY(-1px) rotate(1deg) } 60% { transform:translateX(6px) translateY(0) rotate(2deg) } 100% { transform:translateX(9px) translateY(0) rotate(0deg) } }
@keyframes rtp-sword { 0% { transform:rotate(-18deg) scaleY(1) } 50% { transform:rotate(-12deg) scaleY(1.03) } 100% { transform:rotate(-15deg) scaleY(0.97) } }
@keyframes rtp-pole { 0% { transform:rotate(3deg) scaleY(1) } 50% { transform:rotate(6deg) scaleY(0.96) } 100% { transform:rotate(2deg) scaleY(1) } }

.scn-richmond-tent-goodnight { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 15%, #4a3a4a 40%, #7a5a4a 65%, #b09060 100%), radial-gradient(ellipse at 30% 40%, #3a2a4a 0%, transparent 70%); }

.scn-richmond-tent-goodnight .dawn-light { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, #2a2a4a 0%, #5a4a5a 30%, #9a7a5a 60%, #d0b070 100%); border-radius:0 0 30% 70% / 0 0 40% 60%; animation: rtg-light 16s ease-in-out infinite alternate; }

.scn-richmond-tent-goodnight .tent-interior { position:absolute; top:0; left:0; right:0; bottom:55%; background: linear-gradient(180deg, #1a1010 0%, #2a1a12 35%, #1a1210 100%); border-radius:0 0 40% 40% / 0 0 50% 50%; animation: rtg-interior 22s ease-in-out infinite alternate; }

.scn-richmond-tent-goodnight .figure-a { position:absolute; bottom:18%; left:34%; width:22px; height:48px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius:50% 45% 45% 50% / 55% 50% 40% 45%; transform-origin:bottom center; animation: rtg-fig-a 8s ease-in-out infinite; }

.scn-richmond-tent-goodnight .figure-b { position:absolute; bottom:18%; right:34%; width:20px; height:46px; background: linear-gradient(180deg, #1a1210 0%, #080606 100%); border-radius:45% 50% 50% 45% / 50% 55% 45% 40%; transform-origin:bottom center; animation: rtg-fig-b 9s ease-in-out infinite; }

.scn-richmond-tent-goodnight .embrace-glow { position:absolute; bottom:20%; left:50%; width:60px; height:60px; transform:translate(-50%, -30%); background: radial-gradient(circle, rgba(200,160,80,0.25) 0%, rgba(200,160,80,0.08) 35%, transparent 65%); border-radius:50%; animation: rtg-embrace 7s ease-in-out infinite alternate; }

.scn-richmond-tent-goodnight .pole-l { position:absolute; bottom:12%; left:8%; width:5px; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:20% / 10%; transform:rotate(5deg); animation: rtg-pole 18s ease-in-out infinite alternate; }

.scn-richmond-tent-goodnight .pole-r { position:absolute; bottom:12%; right:8%; width:5px; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:20% / 10%; transform:rotate(-5deg); animation: rtg-pole 20s ease-in-out infinite alternate-reverse; }

@keyframes rtg-light { 0% { opacity:0.6 } 50% { opacity:0.85 } 100% { opacity:1 } }
@keyframes rtg-interior { 0% { transform:translateY(0) scaleY(1); opacity:0.9 } 50% { transform:translateY(-2px) scaleY(0.96); opacity:0.95 } 100% { transform:translateY(1px) scaleY(1); opacity:0.9 } }
@keyframes rtg-fig-a { 0% { transform:translateY(0) rotate(-1deg) } 35% { transform:translateY(-2px) rotate(2deg) } 70% { transform:translateY(-1px) rotate(-2deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes rtg-fig-b { 0% { transform:translateY(0) rotate(1deg) } 30% { transform:translateY(-2px) rotate(-2deg) } 65% { transform:translateY(-1px) rotate(3deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes rtg-embrace { 0% { transform:translate(-50%, -30%) scale(0.95); opacity:0.5 } 50% { transform:translate(-50%, -30%) scale(1.15); opacity:0.85 } 100% { transform:translate(-50%, -30%) scale(1.05); opacity:0.65 } }
@keyframes rtg-pole { 0% { transform:rotate(4deg) scaleY(1) } 50% { transform:rotate(7deg) scaleY(0.95) } 100% { transform:rotate(3deg) scaleY(1) } }

.scn-buckingham-claims-earldom {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a0845c 100%),
    radial-gradient(ellipse at 30% 60%, #decbb0 0%, transparent 70%);
}
.scn-buckingham-claims-earldom .bg-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d4c4a8, #b8a88c 80%); }
.scn-buckingham-claims-earldom .bg-floor { position:absolute; inset:50% 0 0 0; background: linear-gradient(180deg, #8b7355 0%, #6b5438 100%); border-radius: 20% 20% 0 0; }
.scn-buckingham-claims-earldom .throne { position:absolute; bottom:38%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6342 0%, #4a3825 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: bce-throne 8s ease-in-out infinite alternate; }
.scn-buckingham-claims-earldom .figure-kneel { position:absolute; bottom:30%; left:44%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bce-kneel 6s ease-in-out infinite; }
.scn-buckingham-claims-earldom .banner { position:absolute; top:10%; right:10%; width:40px; height:60px; background: linear-gradient(90deg, #b85c3a 0%, #8a4420 100%); border-radius: 0 0 20% 20%; transform-origin: top left; animation: bce-banner 10s ease-in-out infinite alternate; }
.scn-buckingham-claims-earldom .window-light { position:absolute; top:20%; left:10%; width:50px; height:70px; background: radial-gradient(ellipse, #fef6e4 0%, #e8dcc8 50%, transparent 100%); border-radius: 10%; filter: blur(4px); animation: bce-window 4s ease-in-out infinite alternate; }
.scn-buckingham-claims-earldom .crown { position:absolute; top:18%; left:48%; width:20px; height:12px; background: #c8a94a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 0 8px #dbb86e; animation: bce-crown 5s ease-in-out infinite; }
@keyframes bce-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes bce-kneel { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes bce-banner { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-2deg); } }
@keyframes bce-window { 0% { opacity:0.7; } 50% { opacity:1; box-shadow: 0 0 20px #fef6e4; } 100% { opacity:0.8; } }
@keyframes bce-crown { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-richard-prophecy {
  background: 
    linear-gradient(180deg, #c8b8a0 0%, #a89278 50%, #74664c 100%),
    radial-gradient(ellipse at 70% 50%, #d4c8b0 0%, transparent 60%);
}
.scn-richard-prophecy .bg-chamber { position:absolute; inset:0 0 55% 0; background: linear-gradient(90deg, #b8a890, #a09078 50%, #887a62); }
.scn-richard-prophecy .table { position:absolute; bottom:30%; left:30%; width:100px; height:30px; background: linear-gradient(180deg, #78654a, #4a3825); border-radius: 0 0 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-richard-prophecy .figure-profile { position:absolute; bottom:28%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a10 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rp-fig 6s ease-in-out infinite; }
.scn-richard-prophecy .crown-tilt { position:absolute; top:15%; left:50%; width:30px; height:18px; background: #c8a94a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-20deg); animation: rp-crown 10s ease-in-out infinite; }
.scn-richard-prophecy .orb { position:absolute; bottom:40%; left:55%; width:24px; height:24px; background: radial-gradient(circle, #b0d0e8 0%, #5080a8 100%); border-radius: 50%; box-shadow: 0 0 12px #5090b8; animation: rp-orb 4s ease-in-out infinite alternate; }
.scn-richard-prophecy .stars { position:absolute; top:10%; left:20%; width:10px; height:10px; background: #f0e4c0; border-radius: 50%; box-shadow: 20px 30px 0 #f0e4c0, 50px 10px 0 #f0e4c0, 80px 40px 0 #f0e4c0; animation: rp-stars 3s ease-in-out infinite alternate; }
.scn-richard-prophecy .curtain { position:absolute; inset:0 80% 0 0; background: linear-gradient(90deg, #4a3a2a, transparent); animation: rp-curtain 8s ease-in-out infinite; }
@keyframes rp-fig { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes rp-crown { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes rp-orb { 0% { box-shadow: 0 0 12px #5090b8; } 50% { box-shadow: 0 0 24px #70b0d8; transform: scale(1.05); } 100% { box-shadow: 0 0 12px #5090b8; } }
@keyframes rp-stars { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes rp-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

.scn-richard-avoids {
  background: 
    linear-gradient(180deg, #d4c4a8 0%, #b8a88c 60%, #8a7a62 100%),
    radial-gradient(ellipse at 40% 50%, #dcccb0 0%, transparent 60%);
}
.scn-richard-avoids .bg-room { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8b8a0, #a89878); }
.scn-richard-avoids .figure-turn { position:absolute; bottom:30%; right:20%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a10, #0a0805); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: scaleX(-1); animation: ra-turn 5s ease-in-out infinite alternate; }
.scn-richard-avoids .arm-extend { position:absolute; bottom:40%; right:10%; width:30px; height:6px; background: #0a0805; border-radius: 10% 0 0 10%; transform-origin: right center; animation: ra-arm 3s ease-in-out infinite; }
.scn-richard-avoids .letter { position:absolute; bottom:40%; left:45%; width:40px; height:28px; background: #f0e4c0; border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ra-letter 7s ease-in-out infinite; }
.scn-richard-avoids .chair-empty { position:absolute; bottom:30%; left:15%; width:50px; height:60px; background: linear-gradient(180deg, #78654a, #4a3825); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: ra-chair 9s ease-in-out infinite; }
.scn-richard-avoids .door { position:absolute; top:10%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #6b5438, #3a2a1a); border-radius: 20% 0 0 20%; box-shadow: inset 2px 0 0 #8a7a62; animation: ra-door 12s ease-in-out infinite; }
@keyframes ra-turn { 0% { transform: scaleX(-1) rotate(0deg); } 50% { transform: scaleX(-1) rotate(-5deg); } 100% { transform: scaleX(-1) rotate(0deg); } }
@keyframes ra-arm { 0% { transform: rotate(20deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(20deg); } }
@keyframes ra-letter { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ra-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ra-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(10deg); } 100% { transform: rotateY(0deg); } }

.scn-richard-repeats-time {
  background: 
    linear-gradient(180deg, #e0d0b8 0%, #b8a88c 50%, #8a7a62 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-richard-repeats-time .bg-hall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c8b8a0, #a89878); }
.scn-richard-repeats-time .clock-grand { position:absolute; bottom:25%; left:50%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #6b5438, #3a2a1a); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 10px rgba(0,0,0,.4); }
.scn-richard-repeats-time .clock-face { position:absolute; bottom:48%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: #f0e4c0; border-radius: 50%; border: 4px solid #4a3825; animation: rrt-face 2s steps(60) infinite; }
.scn-richard-repeats-time .figure-slouch { position:absolute; bottom:30%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a10, #0a0805); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(10deg); animation: rrt-slouch 6s ease-in-out infinite; }
.scn-richard-repeats-time .chair { position:absolute; bottom:30%; left:28%; width:40px; height:50px; background: linear-gradient(180deg, #78654a, #4a3825); border-radius: 10% 10% 30% 30%; }
.scn-richard-repeats-time .pendulum { position:absolute; bottom:30%; left:50%; width:8px; height:60px; transform-origin: top center; background: #a08060; border-radius: 50% 50% 0 0; animation: rrt-pendulum 1.5s ease-in-out infinite alternate; }
.scn-richard-repeats-time .shadows { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 10%, rgba(0,0,0,0.1) 10%, rgba(0,0,0,0.1) 20%); animation: rrt-shadows 8s linear infinite; }
@keyframes rrt-face { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes rrt-slouch { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes rrt-pendulum { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes rrt-shadows { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }

/* richard-asks-happiness */
.scn-richard-asks-happiness{background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%),radial-gradient(ellipse at 50% 80%,#5a3a1a 0%,transparent 60%)}
.scn-richard-asks-happiness .wall{position:absolute;inset:0}
.scn-richard-asks-happiness .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%);border-radius:20% 80% 0 0/10% 30% 0 0}
.scn-richard-asks-happiness .throne{position:absolute;bottom:30%;left:20%;width:60px;height:90px;background:linear-gradient(90deg,#6a4a3a 0%,#4a2a1a 100%);border-radius:10% 10% 5% 5%;box-shadow:2px 4px 8px rgba(0,0,0,.5)}
.scn-richard-asks-happiness .richard{position:absolute;bottom:30%;left:25%;width:40px;height:70px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rha-f 4s ease-in-out infinite}
.scn-richard-asks-happiness .tyrrel{position:absolute;bottom:30%;left:55%;width:35px;height:55px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rha-k 6s ease-in-out infinite}
.scn-richard-asks-happiness .candle{position:absolute;bottom:45%;left:75%;width:8px;height:20px;background:linear-gradient(180deg,#e0a060 0%,#c08040 100%);border-radius:30% 30% 10% 10%;box-shadow:0 0 6px 2px #c08040;animation:rha-c .8s ease-in-out infinite alternate}
.scn-richard-asks-happiness .glow{position:absolute;bottom:40%;left:70%;width:60px;height:60px;background:radial-gradient(circle,rgba(255,200,100,.3) 0%,transparent 70%);border-radius:50%;animation:rha-g 3s ease-in-out infinite alternate}
@keyframes rha-f{0%{transform:translateY(0);opacity:.9}50%{transform:translateY(-2px);opacity:1}100%{transform:translateY(0);opacity:.9}}
@keyframes rha-k{0%{transform:scaleY(.95);opacity:.85}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.95);opacity:.85}}
@keyframes rha-c{0%{transform:scaleY(.9) translateY(0);opacity:.8}50%{transform:scaleY(1.1) translateY(-1px);opacity:1}100%{transform:scaleY(.95) translateY(.5px);opacity:.9}}
@keyframes rha-g{0%{transform:scale(.95);opacity:.5}50%{transform:scale(1.05);opacity:.8}100%{transform:scale(.95);opacity:.5}}

/* richard-plans-reward */
.scn-richard-plans-reward{background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%),radial-gradient(ellipse at 50% 80%,#5a3a1a 0%,transparent 60%)}
.scn-richard-plans-reward .wall{position:absolute;inset:0}
.scn-richard-plans-reward .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%);border-radius:20% 80% 0 0/10% 30% 0 0}
.scn-richard-plans-reward .table{position:absolute;bottom:30%;left:40%;width:80px;height:15px;background:linear-gradient(180deg,#6a4a3a 0%,#4a2a1a 100%);border-radius:5%;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.scn-richard-plans-reward .goblet{position:absolute;bottom:34%;left:48%;width:12px;height:20px;background:linear-gradient(180deg,#c0a060 0%,#a08040 100%);border-radius:40% 40% 20% 20%;box-shadow:0 0 8px 2px rgba(192,160,96,.4);animation:rpr-go 6s ease-in-out infinite}
.scn-richard-plans-reward .richard{position:absolute;bottom:30%;left:25%;width:40px;height:70px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rpr-f 4s ease-in-out infinite}
.scn-richard-plans-reward .candle{position:absolute;bottom:45%;left:70%;width:8px;height:20px;background:linear-gradient(180deg,#e0a060 0%,#c08040 100%);border-radius:30% 30% 10% 10%;box-shadow:0 0 6px 2px #c08040;animation:rpr-c .8s ease-in-out infinite alternate}
.scn-richard-plans-reward .glow{position:absolute;bottom:40%;left:65%;width:60px;height:60px;background:radial-gradient(circle,rgba(255,200,100,.3) 0%,transparent 70%);border-radius:50%;animation:rpr-g 3s ease-in-out infinite alternate}
@keyframes rpr-go{0%{transform:translateY(0) rotate(0);opacity:.7}50%{transform:translateY(-2px) rotate(3deg);opacity:1}100%{transform:translateY(0) rotate(0);opacity:.7}}
@keyframes rpr-f{0%{transform:translateY(0);opacity:.9}50%{transform:translateY(-2px);opacity:1}100%{transform:translateY(0);opacity:.9}}
@keyframes rpr-c{0%{transform:scaleY(.9) translateY(0);opacity:.8}50%{transform:scaleY(1.1) translateY(-1px);opacity:1}100%{transform:scaleY(.95) translateY(.5px);opacity:.9}}
@keyframes rpr-g{0%{transform:scale(.95);opacity:.5}50%{transform:scale(1.05);opacity:.8}100%{transform:scale(.95);opacity:.5}}

/* richard-soliloquy-no-foes */
.scn-richard-soliloquy-no-foes{background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%),radial-gradient(ellipse at 50% 80%,#4a2a3a 0%,transparent 60%)}
.scn-richard-soliloquy-no-foes .wall{position:absolute;inset:0}
.scn-richard-soliloquy-no-foes .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2a2a 0%,#1a0a0a 100%);border-radius:20% 80% 0 0/10% 30% 0 0}
.scn-richard-soliloquy-no-foes .window{position:absolute;top:20%;right:20%;width:40px;height:50px;background:radial-gradient(circle at 50% 50%,#4a5a6a 0%,#2a3a4a 100%);border:3px solid #4a3a2a;border-radius:10%;box-shadow:inset 0 0 20px rgba(100,150,200,.2);animation:rsn-w 15s ease-in-out infinite}
.scn-richard-soliloquy-no-foes .richard{position:absolute;bottom:30%;left:35%;width:40px;height:70px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rsn-f 5s ease-in-out infinite}
.scn-richard-soliloquy-no-foes .candle{position:absolute;bottom:45%;left:55%;width:8px;height:20px;background:linear-gradient(180deg,#e0a060 0%,#c08040 100%);border-radius:30% 30% 10% 10%;box-shadow:0 0 6px 2px #c08040;animation:rsn-c .8s ease-in-out infinite alternate}
.scn-richard-soliloquy-no-foes .glow{position:absolute;bottom:40%;left:50%;width:60px;height:60px;background:radial-gradient(circle,rgba(255,200,100,.3) 0%,transparent 70%);border-radius:50%;animation:rsn-g 3s ease-in-out infinite alternate}
@keyframes rsn-w{0%{opacity:.6;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.05)}100%{opacity:.6;transform:scaleY(1)}}
@keyframes rsn-f{0%{transform:translateY(0);opacity:.9}50%{transform:translateY(-2px);opacity:1}100%{transform:translateY(0);opacity:.9}}
@keyframes rsn-c{0%{transform:scaleY(.9) translateY(0);opacity:.8}50%{transform:scaleY(1.1) translateY(-1px);opacity:1}100%{transform:scaleY(.95) translateY(.5px);opacity:.9}}
@keyframes rsn-g{0%{transform:scale(.95);opacity:.5}50%{transform:scale(1.05);opacity:.8}100%{transform:scale(.95);opacity:.5}}

/* catesby-returns-bad-news */
.scn-catesby-returns-bad-news{background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%),radial-gradient(ellipse at 50% 80%,#5a3a1a 0%,transparent 60%)}
.scn-catesby-returns-bad-news .wall{position:absolute;inset:0}
.scn-catesby-returns-bad-news .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%);border-radius:20% 80% 0 0/10% 30% 0 0}
.scn-catesby-returns-bad-news .table{position:absolute;bottom:30%;left:35%;width:100px;height:15px;background:linear-gradient(180deg,#6a4a3a 0%,#4a2a1a 100%);border-radius:5%;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.scn-catesby-returns-bad-news .richard{position:absolute;bottom:30%;left:20%;width:40px;height:70px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:crb-f 4s ease-in-out infinite}
.scn-catesby-returns-bad-news .catesby{position:absolute;bottom:30%;left:55%;width:35px;height:60px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:crb-k 6s ease-in-out infinite;transform:scaleX(-1)}
.scn-catesby-returns-bad-news .candle{position:absolute;bottom:45%;left:75%;width:8px;height:20px;background:linear-gradient(180deg,#e0a060 0%,#c08040 100%);border-radius:30% 30% 10% 10%;box-shadow:0 0 6px 2px #c08040;animation:crb-c .8s ease-in-out infinite alternate}
.scn-catesby-returns-bad-news .glow{position:absolute;bottom:40%;left:70%;width:60px;height:60px;background:radial-gradient(circle,rgba(255,200,100,.3) 0%,transparent 70%);border-radius:50%;animation:crb-g 3s ease-in-out infinite alternate}
@keyframes crb-f{0%{transform:translateY(0);opacity:.9}50%{transform:translateY(-2px);opacity:1}100%{transform:translateY(0);opacity:.9}}
@keyframes crb-k{0%{transform:translateY(0) scaleX(-1);opacity:.85}50%{transform:translateY(-3px) scaleX(-1);opacity:1}100%{transform:translateY(0) scaleX(-1);opacity:.85}}
@keyframes crb-c{0%{transform:scaleY(.9) translateY(0);opacity:.8}50%{transform:scaleY(1.1) translateY(-1px);opacity:1}100%{transform:scaleY(.95) translateY(.5px);opacity:.9}}
@keyframes crb-g{0%{transform:scale(.95);opacity:.5}50%{transform:scale(1.05);opacity:.8}100%{transform:scale(.95);opacity:.5}}

.scn-exeunt-all-but-buckingham { background: linear-gradient(180deg, #f5f0e0 0%, #d4c9a8 50%, #c0b49a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-exeunt-all-but-buckingham .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e3d8c0 0%, #c9b89a 100%); }
.scn-exeunt-all-but-buckingham .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5a40 100%); }
.scn-exeunt-all-but-buckingham .door-left { position:absolute; left:10%; bottom:30%; width:80px; height:150px; background: linear-gradient(180deg, #5c4a32 0%, #4a3a22 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.2); animation: buck-door 8s ease-in-out infinite; }
.scn-exeunt-all-but-buckingham .window-right { position:absolute; right:15%; bottom:40%; width:60px; height:80px; background: linear-gradient(180deg, #fff8e0 0%, #e0d0a0 100%); border: 4px solid #5c4a32; border-radius: 2px; animation: buck-window 5s ease-in-out infinite; }
.scn-exeunt-all-but-buckingham .figure-buck { position:absolute; bottom:30%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: buck-walk 6s ease-in-out infinite; }
.scn-exeunt-all-but-buckingham .shadow-buck { position:absolute; bottom:30%; left:20%; width:30px; height:10px; background: rgba(0,0,0,0.2); border-radius: 50%; transform: translateY(-2px); animation: buck-shadow 6s ease-in-out infinite; }
@keyframes buck-walk { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(20px) rotate(1deg); } 60% { transform: translateX(40px) rotate(-1deg); } 100% { transform: translateX(80px) rotate(0); } }
@keyframes buck-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.4; } 30% { transform: translateX(20px) scaleX(1.2); opacity:0.3; } 60% { transform: translateX(40px) scaleX(0.8); opacity:0.5; } 100% { transform: translateX(80px) scaleX(1); opacity:0.4; } }
@keyframes buck-window { 0% { opacity:0.9; } 50% { opacity:1; box-shadow: 0 0 10px #fff8e0; } 100% { opacity:0.9; } }
@keyframes buck-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }

.scn-tyrrel-reports { background: linear-gradient(180deg, #1a1420 0%, #2a1e2e 50%, #1a0e18 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%); }
.scn-tyrrel-reports .bg-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%); }
.scn-tyrrel-reports .floor-dim { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1e2e 0%, #1a0e18 100%); }
.scn-tyrrel-reports .desk { position:absolute; bottom:20%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: tyr-desk 6s ease-in-out infinite; }
.scn-tyrrel-reports .candle { position:absolute; bottom:35%; left:35%; width:8px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 20px 8px rgba(200,150,80,0.6), 0 0 40px 16px rgba(200,150,80,0.3); animation: tyr-candle 2s ease-in-out infinite alternate; }
.scn-tyrrel-reports .tyrrel-figure { position:absolute; bottom:20%; left:50%; width:28px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tyr-figure 5s ease-in-out infinite; }
.scn-tyrrel-reports .shadow-tyr { position:absolute; bottom:20%; left:50%; width:30px; height:8px; background: rgba(0,0,0,0.4); border-radius: 50%; transform: translateX(-50%); animation: tyr-shadow 5s ease-in-out infinite; }
@keyframes tyr-candle { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes tyr-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(5px) rotate(1deg); } 60% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes tyr-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity:0.4; } 30% { transform: translateX(-50%) scaleX(1.1); opacity:0.3; } 60% { transform: translateX(-50%) scaleX(0.9); opacity:0.5; } 100% { transform: translateX(-50%) scaleX(1); opacity:0.4; } }
@keyframes tyr-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-dighton-forrest-detail { background: linear-gradient(180deg, #0a0a14 0%, #1a1620 50%, #2a1e28 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-dighton-forrest-detail .bg-room { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a14 0%, #1a1620 100%); }
.scn-dighton-forrest-detail .bed-wood { position:absolute; bottom:10%; left:15%; right:15%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 8px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-dighton-forrest-detail .mattress { position:absolute; bottom:15%; left:18%; right:18%; height:35%; background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.2); animation: dfd-mattress 8s ease-in-out infinite; }
.scn-dighton-forrest-detail .pillow { position:absolute; bottom:30%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #f0e8e0 0%, #d0c8c0 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dighton-forrest-detail .child-left { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background: radial-gradient(circle at 50% 30%, #f0e8e0 30%, #d0c8c0 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: dfd-left 6s ease-in-out infinite; }
.scn-dighton-forrest-detail .child-right { position:absolute; bottom:25%; left:45%; width:20px; height:40px; background: radial-gradient(circle at 50% 30%, #f0e8e0 30%, #d0c8c0 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: dfd-right 6s ease-in-out infinite; }
.scn-dighton-forrest-detail .book { position:absolute; bottom:32%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: dfd-book 12s linear infinite; }
@keyframes dfd-left { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes dfd-right { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dfd-book { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dfd-mattress { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-dighton-smothers { background: linear-gradient(180deg, #0a0a0f 0%, #1a1418 40%, #2a1e22 100%), radial-gradient(ellipse at 50% 60%, #4a2a2a 0%, transparent 70%); }
.scn-dighton-smothers .bg-dark-close { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a0f 0%, #1a1418 100%); }
.scn-dighton-smothers .bed-close { position:absolute; bottom:10%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 12px; }
.scn-dighton-smothers .pillow-close { position:absolute; bottom:30%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 100%); border-radius: 50%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: dsm-pillow 4s ease-in-out infinite alternate; }
.scn-dighton-smothers .child-head { position:absolute; bottom:35%; left:40%; width:30px; height:25px; background: radial-gradient(circle at 50% 40%, #e0d0c0 0%, #c0b0a0 100%); border-radius: 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3); animation: dsm-head 5s ease-in-out infinite; }
.scn-dighton-smothers .hand-dighton { position:absolute; bottom:40%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: bottom right; animation: dsm-hand 3s ease-in-out infinite; }
.scn-dighton-smothers .shadow-hand { position:absolute; bottom:35%; left:38%; width:50px; height:20px; background: rgba(0,0,0,0.4); border-radius: 50%; transform: rotate(-20deg); animation: dsm-shadow 3s ease-in-out infinite; }
@keyframes dsm-pillow { 0% { transform: scaleY(1); opacity:0.9; } 100% { transform: scaleY(0.95); opacity:1; } }
@keyframes dsm-head { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dsm-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes dsm-shadow { 0% { transform: rotate(-20deg) scale(1); opacity:0.4; } 50% { transform: rotate(-25deg) scale(1.1); opacity:0.6; } 100% { transform: rotate(-20deg) scale(1); opacity:0.4; } }

.scn-richard-asks-mother {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a0 50%, #c8a880 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%);
}
.scn-richard-asks-mother .window {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #ffd700 0%, #ffb347 100%);
  border-radius: 4px; box-shadow: 0 0 40px rgba(255,215,0,0.5);
  animation: sram-window 4s ease-in-out infinite alternate;
}
.scn-richard-asks-mother .light-beam {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: sram-beam 6s ease-in-out infinite alternate;
}
.scn-richard-asks-mother .mother {
  position: absolute; bottom: 30%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sram-mother 5s ease-in-out infinite;
}
.scn-richard-asks-mother .richard {
  position: absolute; bottom: 25%; right: 15%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg) skewX(-5deg);
  transform-origin: bottom center;
  animation: sram-richard 3s ease-in-out infinite;
}
.scn-richard-asks-mother .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 0 0;
}
.scn-richard-asks-mother .pillar-left,
.scn-richard-asks-mother .pillar-right {
  position: absolute; top: 0; width: 8%; height: 100%;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: sram-pillar 8s ease-in-out infinite;
}
.scn-richard-asks-mother .pillar-left { left: 5%; }
.scn-richard-asks-mother .pillar-right { right: 5%; box-shadow: inset 4px 0 8px rgba(0,0,0,0.2); animation-direction: reverse; }
@keyframes sram-window {
  0% { opacity:0.8; transform:scaleY(1); }
  50% { opacity:1; transform:scaleY(1.02); }
  100% { opacity:0.85; transform:scaleY(1); }
}
@keyframes sram-beam {
  0% { opacity:0.3; transform:rotate(-2deg); }
  50% { opacity:0.5; transform:rotate(2deg); }
  100% { opacity:0.35; transform:rotate(-1deg); }
}
@keyframes sram-mother {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sram-richard {
  0% { transform: rotate(10deg) skewX(-5deg) translateY(0); }
  50% { transform: rotate(8deg) skewX(-3deg) translateY(-3px); }
  100% { transform: rotate(10deg) skewX(-5deg) translateY(0); }
}
@keyframes sram-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}

.scn-richard-devil-to-good {
  background: linear-gradient(180deg, #ffe8a0 0%, #ffcc66 30%, #d9a040 100%),
              radial-gradient(circle at 50% 20%, #fff8dc 0%, transparent 60%);
}
.scn-richard-devil-to-good .sun {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle, #fff4b0 0%, #ffcc00 40%, transparent 70%);
  border-radius: 50%;
  animation: rdtg-sun 6s ease-in-out infinite alternate;
}
.scn-richard-devil-to-good .devil-shadow {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 160px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 70%);
  filter: blur(8px);
  animation: rdtg-devil 5s ease-in-out infinite;
}
.scn-richard-devil-to-good .richard-profile {
  position: absolute; bottom: 30%; left: 5%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: rdtg-richard 4s ease-in-out infinite;
}
.scn-richard-devil-to-good .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
}
.scn-richard-devil-to-good .light-ray {
  position: absolute; top: 10%; width: 15%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: rdtg-ray 7s ease-in-out infinite alternate;
}
.scn-richard-devil-to-good .light-ray.left { left: 10%; }
.scn-richard-devil-to-good .light-ray.right { right: 10%; left: auto; animation-delay: -3s; }
.scn-richard-devil-to-good .pedestal {
  position: absolute; bottom: 20%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: rdtg-pedestal 8s ease-in-out infinite;
}
.scn-richard-devil-to-good .book {
  position: absolute; bottom: 25%; right: 18%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 1px; transform: rotate(-15deg);
  animation: rdtg-book 6s ease-in-out infinite;
}
@keyframes rdtg-sun {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(0.98); opacity:0.85; }
}
@keyframes rdtg-devil {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes rdtg-richard {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rdtg-ray {
  0% { opacity:0.2; transform: rotate(-3deg); }
  50% { opacity:0.4; transform: rotate(3deg); }
  100% { opacity:0.25; transform: rotate(-2deg); }
}
@keyframes rdtg-pedestal {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes rdtg-book {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

.scn-richard-happy-mother {
  background: linear-gradient(180deg, #fff5e0 0%, #ffe0a0 40%, #f0c060 100%),
              radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 60%);
}
.scn-richard-happy-mother .figure {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rhm-figure 4s ease-in-out infinite;
}
.scn-richard-happy-mother .halo {
  position: absolute; bottom: 50%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,215,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: rhm-halo 3s ease-in-out infinite alternate;
}
.scn-richard-happy-mother .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
}
.scn-richard-happy-mother .sunburst {
  position: absolute; top: 10%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: conic-gradient(from 0deg, rgba(255,200,100,0.3) 0deg, transparent 60deg);
  border-radius: 50%;
  animation: rhm-sunburst 8s linear infinite;
}
.scn-richard-happy-mother .ray {
  position: absolute; top: 15%; width: 10%; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  clip-path: polygon(50% 0, 100% 100%, 0% 100%);
  animation: rhm-ray 6s ease-in-out infinite alternate;
}
.scn-richard-happy-mother .ray.left { left: 20%; }
.scn-richard-happy-mother .ray.right { right: 20%; left: auto; animation-delay: -3s; }
.scn-richard-happy-mother .step {
  position: absolute; height: 8px; border-radius: 2px;
}
.scn-richard-happy-mother .step.front {
  bottom: 30%; left: 40%; width: 20%;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
}
.scn-richard-happy-mother .step.back {
  bottom: 33%; left: 35%; width: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
}
@keyframes rhm-figure {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-5px) scale(1.03); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes rhm-halo {
  0% { opacity:0.6; transform: translate(-50%,-50%) scale(1); }
  50% { opacity:0.9; transform: translate(-50%,-50%) scale(1.1); }
  100% { opacity:0.7; transform: translate(-50%,-50%) scale(1); }
}
@keyframes rhm-sunburst {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes rhm-ray {
  0% { opacity:0.2; transform: rotate(-5deg); }
  50% { opacity:0.4; transform: rotate(5deg); }
  100% { opacity:0.25; transform: rotate(-3deg); }
}

.scn-ratcliff-reports-navy {
  background: linear-gradient(180deg, #e8d8c0 0%, #d0b8a0 50%, #b89880 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-ratcliff-reports-navy .throne {
  position: absolute; bottom: 25%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #8a6a4a 0%, #604020 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: rrn-throne 5s ease-in-out infinite;
}
.scn-ratcliff-reports-navy .ratcliff {
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) skewX(5deg);
  animation: rrn-ratcliff 2s ease-in-out infinite alternate;
}
.scn-ratcliff-reports-navy .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 15px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-ratcliff-reports-navy .map {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: rrn-map 3s ease-in-out infinite;
}
.scn-ratcliff-reports-navy .window {
  position: absolute; top: 10%; left: 60%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border: 4px solid #8a6a4a; border-radius: 4px;
  animation: rrn-window 6s ease-in-out infinite alternate;
}
.scn-ratcliff-reports-navy .window-light {
  position: absolute; top: 10%; left: 62%; width: 16%; height: 28%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.3) 0%, transparent 70%);
  animation: rrn-light 4s ease-in-out infinite alternate;
}
.scn-ratcliff-reports-navy .crown {
  position: absolute; top: 5%; left: 10%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 0 0; transform: rotate(15deg);
  animation: rrn-crown 7s ease-in-out infinite;
}
@keyframes rrn-throne {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes rrn-ratcliff {
  0% { transform: rotate(-10deg) skewX(5deg) translateY(0); }
  50% { transform: rotate(-8deg) skewX(3deg) translateY(-4px); }
  100% { transform: rotate(-10deg) skewX(5deg) translateY(0); }
}
@keyframes rrn-map {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rrn-window {
  0% { opacity:0.7; background-position:0% 0%; }
  50% { opacity:1; background-position:100% 100%; }
  100% { opacity:0.8; background-position:0% 0%; }
}
@keyframes rrn-light {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.1); }
  100% { opacity:0.35; transform: scale(1); }
}
@keyframes rrn-crown {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-elizabeth-pities-margaret { background: linear-gradient(180deg, #e8d4b8 0%, #d4bc9a 40%, #b89870 100%), radial-gradient(ellipse at 70% 30%, #f0e0c8 0%, transparent 60%); }
.scn-elizabeth-pities-margaret .wall-warm { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #c8a87a 0%, #b89870 100%); }
.scn-elizabeth-pities-margaret .window-arch { position:absolute; top:8%; left:60%; width:25%; height:50%; background:radial-gradient(ellipse at 50% 40%, #f5ecd8 0%, #e8d4b8 60%, transparent 100%); border-radius:40% 40% 0 0 / 50% 50% 0 0; box-shadow:inset 0 0 30px rgba(245,236,216,.6); animation:epm-window 8s ease-in-out infinite alternate; }
.scn-elizabeth-pities-margaret .light-shaft { position:absolute; top:12%; left:62%; width:20%; height:70%; background:linear-gradient(180deg, rgba(245,236,216,.35) 0%, rgba(245,236,216,.05) 100%); clip-path:polygon(10% 0, 90% 0, 70% 100%, 30% 100%); animation:epm-shaft 10s ease-in-out infinite alternate; }
.scn-elizabeth-pities-margaret .floor-wood { position:absolute; bottom:0; left:0; right:0; height:30%; background:repeating-linear-gradient(90deg, #7a5a3a 0px, #8a6a4a 4px, #7a5a3a 8px); animation:epm-floor 20s linear infinite; }
.scn-elizabeth-pities-margaret .figure-margaret { position:absolute; bottom:26%; left:30%; width:24px; height:48px; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:epm-margaret 6s ease-in-out infinite; }
.scn-elizabeth-pities-margaret .figure-elizabeth { position:absolute; bottom:28%; left:48%; width:22px; height:44px; background:linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:epm-elizabeth 5s ease-in-out infinite; }
.scn-elizabeth-pities-margaret .chair-back { position:absolute; bottom:26%; left:26%; width:30px; height:36px; background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation:epm-chair 7s ease-in-out infinite; }
.scn-elizabeth-pities-margaret .dust-drift { position:absolute; top:18%; left:40%; width:100px; height:60px; background:radial-gradient(ellipse, rgba(245,236,216,.15) 0%, transparent 70%); filter:blur(10px); animation:epm-dust 30s linear infinite; }
@keyframes epm-window { 0% { opacity:.85; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:.9; transform:scaleY(.98) } }
@keyframes epm-shaft { 0% { opacity:.3; transform:translateX(-4px) scaleX(1) } 50% { opacity:.6; transform:translateX(0) scaleX(1.05) } 100% { opacity:.35; transform:translateX(4px) scaleX(.95) } }
@keyframes epm-floor { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes epm-margaret { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-3px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes epm-elizabeth { 0% { transform:translateX(0) rotate(0) scaleY(1) } 33% { transform:translateX(4px) rotate(2deg) scaleY(1.02) } 66% { transform:translateX(-2px) rotate(-1deg) scaleY(.98) } 100% { transform:translateX(0) rotate(0) scaleY(1) } }
@keyframes epm-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes epm-dust { 0% { transform:translateX(-20px) translateY(0); opacity:.3 } 25% { transform:translateX(10px) translateY(-6px); opacity:.5 } 50% { transform:translateX(30px) translateY(2px); opacity:.4 } 75% { transform:translateX(50px) translateY(-4px); opacity:.6 } 100% { transform:translateX(80px) translateY(0); opacity:.3 } }

.scn-richard-feigns-piety { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a24 50%, #0a0a0e 100%), radial-gradient(ellipse at 50% 60%, #4a4a5a 0%, transparent 70%); }
.scn-richard-feigns-piety .wall-dark { position:absolute; inset:0 0 28% 0; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-richard-feigns-piety .light-stripe { position:absolute; top:10%; left:30%; width:8%; height:75%; background:linear-gradient(180deg, rgba(240,232,224,.5) 0%, rgba(240,232,224,.05) 100%); clip-path:polygon(30% 0, 70% 0, 90% 100%, 10% 100%); animation:rfp-stripe 4s ease-in-out infinite alternate; }
.scn-richard-feigns-piety .floor-tile { position:absolute; bottom:0; left:0; right:0; height:28%; background:repeating-conic-gradient(#3a3a4a 0% 25%, #2a2a3a 0% 50%) 0 0 / 20px 20px; animation:rfp-floor 15s linear infinite; }
.scn-richard-feigns-piety .figure-praying { position:absolute; bottom:22%; left:46%; width:26px; height:52px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow:-8px 0 12px rgba(0,0,0,.5); animation:rfp-pray 2.5s ease-in-out infinite; }
.scn-richard-feigns-piety .book-open { position:absolute; bottom:26%; left:48%; width:16px; height:10px; background:linear-gradient(180deg, #c8a87a 0%, #8a6a3a 100%); border-radius:4% 4% 20% 20% / 10% 10% 30% 30%; transform:rotate(-8deg); box-shadow:0 2px 6px rgba(0,0,0,.4); animation:rfp-book 4s ease-in-out infinite; }
.scn-richard-feigns-piety .shadow-cast { position:absolute; bottom:5%; left:36%; width:60px; height:20px; background:radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); animation:rfp-shadow 8s ease-in-out infinite alternate; }
.scn-richard-feigns-piety .cross-altar { position:absolute; top:16%; left:52%; width:6px; height:30px; background:linear-gradient(180deg, #d4b88a 0%, #a08050 100%); border-radius:2px; transform:translateX(-50%); box-shadow:0 0 12px rgba(200,168,122,.4); animation:rfp-cross 6s ease-in-out infinite alternate; }
@keyframes rfp-stripe { 0% { opacity:.3; transform:translateX(-6px) skewX(-2deg) } 50% { opacity:.7; transform:translateX(0) skewX(0) } 100% { opacity:.4; transform:translateX(6px) skewX(2deg) } }
@keyframes rfp-floor { 0% { background-position:0 0 } 100% { background-position:40px 40px } }
@keyframes rfp-pray { 0% { transform:translateX(0) rotate(0) translateY(0) } 30% { transform:translateX(-2px) rotate(-1deg) translateY(-2px) } 60% { transform:translateX(2px) rotate(1deg) translateY(-1px) } 100% { transform:translateX(0) rotate(0) translateY(0) } }
@keyframes rfp-book { 0% { transform:rotate(-8deg) translateY(0) } 50% { transform:rotate(-6deg) translateY(-1px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes rfp-shadow { 0% { transform:scaleX(1) scaleY(1); opacity:.6 } 50% { transform:scaleX(1.15) scaleY(.9); opacity:.8 } 100% { transform:scaleX(.9) scaleY(1.1); opacity:.5 } }
@keyframes rfp-cross { 0% { opacity:.6; transform:translateX(-50%) scaleY(1) } 50% { opacity:1; transform:translateX(-50%) scaleY(1.05) } 100% { opacity:.7; transform:translateX(-50%) scaleY(.95) } }

.scn-catesby-summons-king { background: linear-gradient(180deg, #e8d8b8 0%, #d4c4a0 40%, #b8a07a 100%), radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 70%); }
.scn-catesby-summons-king .wall-panel { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #c8b89a 0%, #a89070 100%); }
.scn-catesby-summons-king .pillar-left { position:absolute; top:0; left:18%; width:6%; height:85%; background:linear-gradient(180deg, #d4c4a0 0%, #b8a07a 50%, #907050 100%); box-shadow:4px 0 8px rgba(0,0,0,.2); animation:csk-pillar 15s ease-in-out infinite alternate; }
.scn-catesby-summons-king .pillar-right { position:absolute; top:0; right:18%; width:6%; height:85%; background:linear-gradient(180deg, #d4c4a0 0%, #b8a07a 50%, #907050 100%); box-shadow:-4px 0 8px rgba(0,0,0,.2); animation:csk-pillar 15s ease-in-out infinite alternate-reverse; }
.scn-catesby-summons-king .arch-over { position:absolute; top:0; left:15%; width:70%; height:30%; background:radial-gradient(ellipse at 50% 100%, transparent 50%, #b8a07a 50.5%, transparent 51%); animation:csk-arch 12s ease-in-out infinite; }
.scn-catesby-summons-king .floor-marble { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(90deg, #b8a890 0%, #d4c8b0 30%, #b8a890 60%, #c8b8a0 100%); box-shadow:inset 0 6px 12px rgba(0,0,0,.15); animation:csk-floor 10s ease-in-out infinite alternate; }
.scn-catesby-summons-king .figure-herald { position:absolute; bottom:22%; left:50%; width:22px; height:48px; transform:translateX(-50%); background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:csk-herald 8s ease-in-out infinite; }
.scn-catesby-summons-king .sunburst { position:absolute; top:8%; left:42%; width:16%; height:20%; background:radial-gradient(ellipse, rgba(255,232,180,.6) 0%, rgba(255,232,180,.1) 50%, transparent 100%); filter:blur(6px); animation:csk-sun 14s ease-in-out infinite alternate; }
@keyframes csk-pillar { 0% { opacity:.85; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:.9; transform:scaleY(.98) } }
@keyframes csk-arch { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes csk-floor { 0% { background-position:0 0 } 50% { background-position:20px 0 } 100% { background-position:0 0 } }
@keyframes csk-herald { 0% { transform:translateX(-50%) rotate(0) translateY(0) } 25% { transform:translateX(-48%) rotate(2deg) translateY(-2px) } 50% { transform:translateX(-50%) rotate(0) translateY(0) } 75% { transform:translateX(-52%) rotate(-2deg) translateY(-1px) } 100% { transform:translateX(-50%) rotate(0) translateY(0) } }
@keyframes csk-sun { 0% { opacity:.4; transform:scale(1) translateY(0) } 50% { opacity:.7; transform:scale(1.1) translateY(-4px) } 100% { opacity:.5; transform:scale(.95) translateY(2px) } }

.scn-richard-soliloquy-hypocrisy { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0e0e18 100%), radial-gradient(ellipse at 70% 40%, #4a4a6a 0%, transparent 70%); }
.scn-richard-soliloquy-hypocrisy .wall-sombre { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-richard-soliloquy-hypocrisy .window-barred { position:absolute; top:12%; right:10%; width:18%; height:40%; background:linear-gradient(135deg, #4a4a6a 0%, #6a6a8a 40%, #4a4a6a 100%); border-radius:8% 8% 4% 4%; box-shadow:inset 0 0 20px rgba(100,100,140,.5); animation:rsh-window 7s ease-in-out infinite alternate; }
.scn-richard-soliloquy-hypocrisy .light-slant { position:absolute; top:14%; right:12%; width:14%; height:70%; background:linear-gradient(180deg, rgba(180,180,200,.25) 0%, rgba(180,180,200,.02) 100%); clip-path:polygon(20% 0, 80% 0, 100% 100%, 0 100%); animation:rsh-slant 20s ease-in-out infinite alternate; }
.scn-richard-soliloquy-hypocrisy .floor-stone { position:absolute; bottom:0; left:0; right:0; height:30%; background:repeating-linear-gradient(90deg, #3a3a4a 0px, #4a4a5a 6px, #3a3a4a 12px); box-shadow:inset 0 8px 16px rgba(0,0,0,.4); animation:rsh-floor 25s linear infinite; }
.scn-richard-soliloquy-hypocrisy .table-oak { position:absolute; bottom:22%; left:28%; width:40%; height:12%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:6% 6% 4% 4% / 30% 30% 20% 20%; box-shadow:0 6px 12px rgba(0,0,0,.6); animation:rsh-table 9s ease-in-out infinite; }
.scn-richard-soliloquy-hypocrisy .figure-richard { position:absolute; bottom:24%; left:38%; width:24px; height:50px; background:linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow:-6px 0 10px rgba(0,0,0,.4); animation:rsh-richard 9s ease-in-out infinite; }
.scn-richard-soliloquy-hypocrisy .shadow-loom { position:absolute; bottom:4%; left:32%; width:70px; height:28px; background:radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%); animation:rsh-loom 14s ease-in-out infinite alternate; }
.scn-richard-soliloquy-hypocrisy .candle-flicker { position:absolute; bottom:30%; left:32%; width:8px; height:12px; background:radial-gradient(ellipse, #e8c080 0%, #c8a060 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 6px rgba(200,160,96,.5), 0 0 40px 12px rgba(200,160,96,.2); animation:rsh-candle 2s ease-in-out infinite alternate; }
@keyframes rsh-window { 0% { opacity:.7; transform:scaleX(1) } 50% { opacity:1; transform:scaleX(1.03) } 100% { opacity:.8; transform:scaleX(.97) } }
@keyframes rsh-slant { 0% { opacity:.2; transform:translateX(-8px) rotate(-1deg) } 50% { opacity:.5; transform:translateX(0) rotate(0) } 100% { opacity:.3; transform:translateX(8px) rotate(1deg) } }
@keyframes rsh-floor { 0% { background-position:0 0 } 100% { background-position:24px 0 } }
@keyframes rsh-table { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(.5deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes rsh-richard { 0% { transform:translateX(0) rotate(0) scaleY(1) } 25% { transform:translateX(-3px) rotate(-1deg) scaleY(1.01) } 50% { transform:translateX(0) rotate(0) scaleY(1) } 75% { transform:translateX(3px) rotate(1deg) scaleY(.99) } 100% { transform:translateX(0) rotate(0) scaleY(1) } }
@keyframes rsh-loom { 0% { transform:scaleX(1) scaleY(1); opacity:.5 } 50% { transform:scaleX(1.2) scaleY(.85); opacity:.7 } 100% { transform:scaleX(.9) scaleY(1.1); opacity:.4 } }
@keyframes rsh-candle { 0% { opacity:.7; transform:translateY(0) scale(1) } 25% { opacity:.9; transform:translateY(-2px) scale(1.08) } 50% { opacity:.8; transform:translateY(1px) scale(.95) } 75% { opacity:1; transform:translateY(-3px) scale(1.12) } 100% { opacity:.7; transform:translateY(0) scale(1) } }

.scn-richard-names-plantagenet {
  background: linear-gradient(180deg, #f4d9a0 0%, #e0b76e 40%, #c8964a 70%, #a06e30 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d8 0%, transparent 60%);
  position: relative;
}
.scn-richard-names-plantagenet .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f9e6b0 0%, #ffd180 50%, #e8b050 100%);
  animation: rnp-sky 8s ease-in-out infinite alternate;
}
.scn-richard-names-plantagenet .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6020 0%, #503010 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-richard-names-plantagenet .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rnp-figL 3s ease-in-out infinite alternate;
}
.scn-richard-names-plantagenet .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rnp-figR 3s ease-in-out infinite alternate;
}
.scn-richard-names-plantagenet .spit {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c89850 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,150,80,0.6);
  animation: rnp-spit 1.5s ease-in-out infinite;
}
.scn-richard-names-plantagenet .shadow-left {
  position: absolute; bottom: 20%; left: 28%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: rnp-shadL 3s ease-in-out infinite alternate;
}
.scn-richard-names-plantagenet .shadow-right {
  position: absolute; bottom: 20%; right: 28%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: rnp-shadR 3s ease-in-out infinite alternate;
}
@keyframes rnp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rnp-figL { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes rnp-figR { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rnp-spit { 0% { transform: translate(-20px, -10px) scale(0.5); opacity: 0; } 50% { transform: translate(0px, -5px) scale(1); opacity: 1; } 100% { transform: translate(20px, 0px) scale(0.3); opacity: 0; } }
@keyframes rnp-shadL { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.3; } }
@keyframes rnp-shadR { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(0.8); opacity: 0.5; } 100% { transform: scaleX(1.1); opacity: 0.3; } }

.scn-anne-spits-revulsion {
  background: linear-gradient(180deg, #ffc080 0%, #e8a060 30%, #b07040 60%, #603020 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 50%);
  position: relative;
}
.scn-anne-spits-revulsion .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0c890 0%, #d8a068 50%, #b07840 100%);
  animation: asr-sky 10s ease-in-out infinite alternate;
}
.scn-anne-spits-revulsion .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #402810 0%, #201000 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-anne-spits-revulsion .figure-anne {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asr-fig 4s ease-in-out infinite alternate;
}
.scn-anne-spits-revulsion .hand {
  position: absolute; bottom: 55%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  transform-origin: bottom right;
  animation: asr-hand 4s ease-in-out infinite alternate;
}
.scn-anne-spits-revulsion .spit {
  position: absolute; bottom: 50%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #a0d0a0 0%, #408030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(64,128,48,0.5);
  animation: asr-spit 2s ease-in-out infinite;
}
.scn-anne-spits-revulsion .hair {
  position: absolute; bottom: 70%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #1a0a0a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: asr-hair 6s ease-in-out infinite alternate;
}
@keyframes asr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes asr-fig { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(2deg); } }
@keyframes asr-hand { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(30deg) translate(5px,-3px); } 100% { transform: rotate(0deg); } }
@keyframes asr-spit { 0% { transform: translate(-10px,-10px) scale(0.3); opacity:0; } 50% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(15px,5px) scale(0.5); opacity:0; } }
@keyframes asr-hair { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) rotate(2deg); } 100% { transform: scaleX(0.9); } }

.scn-richard-weeps-for-anne {
  background: linear-gradient(180deg, #f5d4a0 0%, #e0b060 40%, #c09040 70%, #906020 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 50%);
  position: relative;
}
.scn-richard-weeps-for-anne .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f9d6a0 0%, #ffc060 50%, #e8a040 100%);
  animation: rwa-sky 12s ease-in-out infinite alternate;
}
.scn-richard-weeps-for-anne .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a10 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-richard-weeps-for-anne .figure-richard {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: rwa-fig 5s ease-in-out infinite;
}
.scn-richard-weeps-for-anne .tear-1,
.scn-richard-weeps-for-anne .tear-2,
.scn-richard-weeps-for-anne .tear-3 {
  position: absolute; width: 4px; height: 8px;
  background: linear-gradient(180deg, rgba(200,200,255,0.8) 0%, rgba(100,100,200,0.5) 100%);
  border-radius: 50%;
  animation: rwa-tear 3s ease-in-out infinite;
}
.scn-richard-weeps-for-anne .tear-1 { left: 48%; bottom: 40%; animation-delay: 0s; }
.scn-richard-weeps-for-anne .tear-2 { left: 52%; bottom: 42%; animation-delay: 1s; }
.scn-richard-weeps-for-anne .tear-3 { left: 50%; bottom: 38%; animation-delay: 2s; }
.scn-richard-weeps-for-anne .shadow-under {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: rwa-shadow 5s ease-in-out infinite;
}
.scn-richard-weeps-for-anne .cloud {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rwa-cloud 30s linear infinite;
}
@keyframes rwa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rwa-fig { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } }
@keyframes rwa-tear { 0% { transform: translateY(0) scaleY(1); opacity: 1; } 50% { transform: translateY(10px) scaleY(0.5); opacity: 0.5; } 100% { transform: translateY(20px) scaleY(0.2); opacity: 0; } }
@keyframes rwa-shadow { 0%,100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } }
@keyframes rwa-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-richard-offers-sword {
  background: linear-gradient(180deg, #f0c890 0%, #d8a060 40%, #b07840 70%, #704020 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 50%);
  position: relative;
}
.scn-richard-offers-sword .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5d6a0 0%, #e8b860 50%, #c89040 100%);
  animation: ros-sky 9s ease-in-out infinite alternate;
}
.scn-richard-offers-sword .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a00 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-richard-offers-sword .sword {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 100px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  transform: translateX(-50%) rotate(-20deg);
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(255,255,255,0.3);
  animation: ros-sword 4s ease-in-out infinite;
}
.scn-richard-offers-sword .hand-richard {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: ros-handR 4s ease-in-out infinite alternate;
}
.scn-richard-offers-sword .hand-anne {
  position: absolute; bottom: 35%; right: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: ros-handL 4s ease-in-out infinite alternate;
}
.scn-richard-offers-sword .glint {
  position: absolute; bottom: 55%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0) 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ros-glint 2s ease-in-out infinite;
}
.scn-richard-offers-sword .shadow-sword {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 4px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  transform: translateX(-50%) rotate(-20deg);
  animation: ros-shad 4s ease-in-out infinite;
}
@keyframes ros-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ros-sword { 0%,100% { transform: translateX(-50%) rotate(-20deg); } 50% { transform: translateX(-50%) rotate(-15deg) translateY(-2px); } }
@keyframes ros-handR { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-3deg); } }
@keyframes ros-handL { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg) translateX(-2px); } 100% { transform: rotate(3deg); } }
@keyframes ros-glint { 0% { opacity: 0; transform: translateX(-50%) scale(0.5); } 50% { opacity: 1; transform: translateX(-50%) scale(1.5); } 100% { opacity: 0; transform: translateX(-50%) scale(0.5); } }
@keyframes ros-shad { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-richard-waking-nightmare-2 {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #1a1a30 40%, #2a1a3a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-richard-waking-nightmare-2 .bg {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,0.02) 0px, transparent 4px, transparent 8px);
  animation: rn2-bg 12s ease-in-out infinite alternate;
}
.scn-richard-waking-nightmare-2 .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #12121c 0%, #1a1a2a 100%);
  border-bottom: 2px solid #2a2a3a;
  animation: rn2-wall 8s ease-in-out infinite alternate;
}
.scn-richard-waking-nightmare-2 .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1c1418 0%, #0c080a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: rn2-floor 10s ease-in-out infinite alternate;
}
.scn-richard-waking-nightmare-2 .window-glow {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c08040 0%, #6a4020 60%, transparent 80%);
  border-radius: 6px;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3);
  animation: rn2-window 4s ease-in-out infinite alternate;
}
.scn-richard-waking-nightmare-2 .figure {
  position: absolute;
  bottom: 32%;
  left: 38%;
  width: 28px;
  height: 64px;
  background: #0e0a10;
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: rn2-figure 3s ease-in-out infinite;
}
.scn-richard-waking-nightmare-2 .shadow {
  position: absolute;
  bottom: 30%;
  left: 34%;
  width: 28px;
  height: 64px;
  background: rgba(10,8,14,0.4);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  filter: blur(4px);
  transform-origin: bottom center;
  animation: rn2-shadow 3s ease-in-out infinite;
  opacity: 0.6;
}
.scn-richard-waking-nightmare-2 .candle {
  position: absolute;
  bottom: 34%;
  left: 48%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,160,64,0.7);
  animation: rn2-candle 2s ease-in-out infinite alternate;
}
@keyframes rn2-bg {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes rn2-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes rn2-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.99); }
  100% { transform: scaleY(1); }
}
@keyframes rn2-window {
  0% { box-shadow: 0 0 20px 6px #a06030, 0 0 40px 12px rgba(160,96,48,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px #e0a050, 0 0 80px 24px rgba(224,160,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #a06030, 0 0 50px 16px rgba(160,96,48,0.35); opacity: 0.85; }
}
@keyframes rn2-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  40% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  70% { transform: translateX(-1px) translateY(0) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rn2-shadow {
  0% { transform: translateX(-4px) translateY(0) scale(1); }
  50% { transform: translateX(-6px) translateY(2px) scale(0.95); }
  100% { transform: translateX(-4px) translateY(0) scale(1); }
}
@keyframes rn2-candle {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

.scn-richard-waking-nightmare-3 {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #12121c 40%, #1a0e20 100%),
    radial-gradient(ellipse at 30% 60%, #1a0e20 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-richard-waking-nightmare-3 .bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 40%, rgba(200,100,40,0.05) 0%, transparent 70%);
  animation: rn3-bg 15s ease-in-out infinite alternate;
}
.scn-richard-waking-nightmare-3 .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #1a1018 0%, #0c080c 100%);
  border-top: 1px solid #2a1a22;
}
.scn-richard-waking-nightmare-3 .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 26px;
  height: 60px;
  background: #0e0a10;
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn3-figure 5s ease-in-out infinite;
}
.scn-richard-waking-nightmare-3 .tongue-1,
.scn-richard-waking-nightmare-3 .tongue-2,
.scn-richard-waking-nightmare-3 .tongue-3,
.scn-richard-waking-nightmare-3 .tongue-4 {
  position: absolute;
  width: 14px;
  height: 22px;
  background: linear-gradient(180deg, #ffaa44 0%, #ff6600 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.8;
  animation: rn3-tongue 3s ease-in-out infinite;
}
.scn-richard-waking-nightmare-3 .tongue-1 { top: 40%; left: 35%; animation-delay: 0s; }
.scn-richard-waking-nightmare-3 .tongue-2 { top: 45%; left: 55%; animation-delay: 0.75s; }
.scn-richard-waking-nightmare-3 .tongue-3 { top: 35%; left: 45%; animation-delay: 1.5s; }
.scn-richard-waking-nightmare-3 .tongue-4 { top: 50%; left: 40%; animation-delay: 2.25s; }
@keyframes rn3-bg {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes rn3-figure {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(3px) rotate(2deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rn3-tongue {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-8px) scale(1.3); opacity: 1; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.7; }
}

.scn-richard-ratcliff-conversation {
  background: 
    linear-gradient(180deg, #0a0a18 0%, #1a1a2e 40%, #2a1a2a 100%),
    radial-gradient(ellipse at 20% 50%, #2a1a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-richard-ratcliff-conversation .bg {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.01) 0px, transparent 6px, transparent 12px);
  animation: rc-bg 20s linear infinite;
}
.scn-richard-ratcliff-conversation .tent-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1c1824 0%, #100e18 100%);
  border-bottom: 2px solid #2a2330;
  clip-path: polygon(5% 0, 95% 0, 75% 100%, 25% 100%);
  animation: rc-wall 10s ease-in-out infinite alternate;
}
.scn-richard-ratcliff-conversation .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #18101a 0%, #0c080e 100%);
}
.scn-richard-ratcliff-conversation .figure-richard {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 28px;
  height: 60px;
  background: #0e0a10;
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-richard 4s ease-in-out infinite;
}
.scn-richard-ratcliff-conversation .figure-ratcliff {
  position: absolute;
  bottom: 28%;
  left: 60%;
  width: 26px;
  height: 58px;
  background: #100c14;
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-ratcliff 6s ease-in-out infinite;
}
.scn-richard-ratcliff-conversation .ghost-1,
.scn-richard-ratcliff-conversation .ghost-2,
.scn-richard-ratcliff-conversation .ghost-3 {
  position: absolute;
  width: 22px;
  height: 36px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,255,0.15) 0%, rgba(200,220,255,0.05) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: rc-ghost 8s ease-in-out infinite;
}
.scn-richard-ratcliff-conversation .ghost-1 { top: 35%; left: 20%; animation-delay: 0s; }
.scn-richard-ratcliff-conversation .ghost-2 { top: 40%; left: 45%; animation-delay: 2.7s; }
.scn-richard-ratcliff-conversation .ghost-3 { top: 50%; left: 72%; animation-delay: 5.3s; }
@keyframes rc-bg {
  0% { background-position: 0 0; }
  100% { background-position: 100px 100px; }
}
@keyframes rc-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes rc-richard {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(2deg); }
  60% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rc-ratcliff {
  0% { transform: translateX(-10px) rotate(-3deg); opacity: 0.5; }
  40% { transform: translateX(0) rotate(0deg); opacity: 1; }
  100% { transform: translateX(10px) rotate(3deg); opacity: 0.5; }
}
@keyframes rc-ghost {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.3; }
}

.scn-richmond-morning-tent {
  background: 
    linear-gradient(180deg, #1a2030 0%, #3a4a5a 25%, #c06020 55%, #e0a030 75%, #ffe0a0 100%),
    radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-richmond-morning-tent .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(255,255,200,0.1) 0%, transparent 60%);
  animation: rmt-bg 20s ease-in-out infinite alternate;
}
.scn-richmond-morning-tent .tent {
  position: absolute;
  top: 0;
  left: 10%;
  width: 80%;
  height: 70%;
  background: linear-gradient(180deg, #b0a088 0%, #8a7a6a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: rmt-tent 15s ease-in-out infinite alternate;
}
.scn-richmond-morning-tent .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-top: 2px solid #5a7a4a;
}
.scn-richmond-morning-tent .figure {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 26px;
  height: 60px;
  background: #1a1a22;
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rmt-figure 6s ease-in-out infinite;
}
.scn-richmond-morning-tent .sunlight {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 25%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255,230,160,0.4) 0%, rgba(255,230,160,0) 100%);
  transform: rotate(10deg);
  animation: rmt-sunlight 12s ease-in-out infinite alternate;
}
.scn-richmond-morning-tent .glow {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255,220,120,0.3) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: rmt-glow 8s ease-in-out infinite alternate;
}
@keyframes rmt-bg {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rmt-tent {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes rmt-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rmt-sunlight {
  0% { opacity: 0.3; transform: rotate(8deg) scaleY(1); }
  50% { opacity: 0.7; transform: rotate(12deg) scaleY(1.1); }
  100% { opacity: 0.4; transform: rotate(10deg) scaleY(0.95); }
}
@keyframes rmt-glow {
  0% { opacity: 0.4; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.5; transform: translateX(-50%) scale(1); }
}

.scn-richard-sun-absence { background: linear-gradient(180deg, #252535 0%, #353545 50%, #454555 100%), radial-gradient(ellipse at 50% 0%, #606070 0%, transparent 70%); }
.scn-richard-sun-absence .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%); animation: rsa-sky 15s ease-in-out infinite alternate; }
.scn-richard-sun-absence .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 80% 0 0; animation: rsa-ground 10s ease-in-out infinite; }
.scn-richard-sun-absence .castle-tower { position:absolute; bottom:35%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: rsa-tower 12s ease-in-out infinite alternate; }
.scn-richard-sun-absence .figure { position:absolute; bottom:30%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%; transform: translateX(-50%); animation: rsa-figure 8s ease-in-out infinite; }
.scn-richard-sun-absence .spear { position:absolute; bottom:38%; left:52%; width:4px; height:50px; background: linear-gradient(180deg, #5a5a5a 0%, #2a2a2a 100%); border-radius: 2px; transform: rotate(-10deg); transform-origin: bottom center; animation: rsa-spear 6s ease-in-out infinite alternate; }
.scn-richard-sun-absence .flag { position:absolute; bottom:60%; left:52%; width:16px; height:12px; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 0 80% 80% 0; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform-origin: left center; animation: rsa-flag 3s ease-in-out infinite alternate; }
.scn-richard-sun-absence .cloud-a { position:absolute; top:15%; left:10%; width:80px; height:20px; background: rgba(255,255,255,0.15); border-radius: 50%; filter: blur(5px); animation: rsa-cloud-a 40s linear infinite; }
.scn-richard-sun-absence .cloud-b { position:absolute; top:25%; right:5%; width:60px; height:15px; background: rgba(255,255,255,0.1); border-radius: 50%; filter: blur(4px); animation: rsa-cloud-b 50s linear infinite reverse; }
@keyframes rsa-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes rsa-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rsa-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes rsa-figure { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } }
@keyframes rsa-spear { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-12deg); } 100% { transform: rotate(-8deg); } }
@keyframes rsa-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes rsa-cloud-a { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes rsa-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-richard-battle-orders { background: linear-gradient(180deg, #2a2a35 0%, #3a3a45 100%), radial-gradient(ellipse at 50% 100%, #4a4a55 0%, transparent 60%); }
.scn-richard-battle-orders .tent-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: rbo-tent 15s ease-in-out infinite; }
.scn-richard-battle-orders .tent-floor { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 0 0 10% 10%; }
.scn-richard-battle-orders .table { position:absolute; bottom:18%; left:35%; right:35%; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rbo-table 8s ease-in-out infinite alternate; }
.scn-richard-battle-orders .map { position:absolute; bottom:22%; left:38%; right:38%; height:16px; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform-origin: top center; animation: rbo-map 6s ease-in-out infinite alternate; }
.scn-richard-battle-orders .figure-left { position:absolute; bottom:15%; left:20%; width:18px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%; animation: rbo-fig-l 7s ease-in-out infinite; }
.scn-richard-battle-orders .figure-right { position:absolute; bottom:15%; right:20%; width:18px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 50% 60%; animation: rbo-fig-r 7s ease-in-out infinite 0.5s; }
.scn-richard-battle-orders .lantern { position:absolute; top:25%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #c8a050 0%, #8a6a30 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 5px rgba(200,160,80,0.5); transform: translateX(-50%); animation: rbo-lantern 3s ease-in-out infinite alternate; }
@keyframes rbo-tent { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes rbo-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rbo-map { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes rbo-fig-l { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes rbo-fig-r { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes rbo-lantern { 0% { box-shadow: 0 0 15px 3px rgba(200,160,80,0.4); opacity:.8; } 50% { box-shadow: 0 0 25px 8px rgba(200,160,80,0.7); opacity:1; } 100% { box-shadow: 0 0 15px 3px rgba(200,160,80,0.4); opacity:.8; } }

.scn-richard-oration-to-army { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%); }
.scn-richard-oration-to-army .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%); animation: roa-sky 12s ease-in-out infinite alternate; }
.scn-richard-oration-to-army .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0; animation: roa-ground 20s ease-in-out infinite alternate; }
.scn-richard-oration-to-army .mound { position:absolute; bottom:30%; left:40%; right:35%; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0; animation: roa-mound 15s ease-in-out infinite; }
.scn-richard-oration-to-army .richard-figure { position:absolute; bottom:38%; left:50%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%; transform: translateX(-50%); animation: roa-richard 9s ease-in-out infinite; }
.scn-richard-oration-to-army .banner { position:absolute; bottom:50%; left:48%; width:20px; height:25px; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 0 80% 80% 0; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform-origin: bottom left; animation: roa-banner 4s ease-in-out infinite alternate; }
.scn-richard-oration-to-army .horse-left { position:absolute; bottom:28%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%; transform: scale(0.8); animation: roa-horse-l 12s ease-in-out infinite; }
.scn-richard-oration-to-army .horse-right { position:absolute; bottom:28%; right:25%; width:30px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 50% 60%; transform: scale(0.8); animation: roa-horse-r 12s ease-in-out infinite 6s; }
@keyframes roa-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes roa-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes roa-mound { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes roa-richard { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(3deg); } }
@keyframes roa-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes roa-horse-l { 0%,100% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.8) translateY(-2px); } }
@keyframes roa-horse-r { 0%,100% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.8) translateY(-2px); } }

.scn-richard-oration-contempt { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%); }
.scn-richard-oration-contempt .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%); animation: roc-bg 20s ease-in-out infinite alternate; }
.scn-richard-oration-contempt .bg-mid { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #1a1a2a 100%); animation: roc-bg2 15s ease-in-out infinite; }
.scn-richard-oration-contempt .head-profile { position:absolute; bottom:30%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 30% 40% 50% / 60% 40% 50% 60%; animation: roc-head 10s ease-in-out infinite; }
.scn-richard-oration-contempt .arm-pointing { position:absolute; bottom:25%; left:55%; width:6px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 3px; transform-origin: bottom left; transform: rotate(-30deg); animation: roc-arm 5s ease-in-out infinite alternate; }
.scn-richard-oration-contempt .flag-rags { position:absolute; bottom:45%; left:70%; width:20px; height:30px; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 0 80% 50% 80% / 0 60% 40% 60%; box-shadow: 0 0 4px rgba(0,0,0,.3); transform-origin: bottom left; animation: roc-flag 3s ease-in-out infinite alternate; }
.scn-richard-oration-contempt .soldier-1 { position:absolute; bottom:10%; left:20%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%; animation: roc-sold1 8s ease-in-out infinite; }
.scn-richard-oration-contempt .soldier-2 { position:absolute; bottom:12%; left:30%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%; animation: roc-sold2 8s ease-in-out infinite 2s; }
@keyframes roc-bg { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes roc-bg2 { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes roc-head { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes roc-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-25deg); } }
@keyframes roc-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes roc-sold1 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes roc-sold2 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* Scene: margaret-reflects */
.scn-margaret-reflects {
  background: linear-gradient(180deg, #0d0a1a 0%, #1a1228 50%, #0d0a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1430 0%, transparent 60%);
}
.scn-margaret-reflects .bg-deep { position: absolute; inset: 0; background: linear-gradient(135deg, #0d0a1a 0%, #150d1f 100%); animation: mr-bg 20s ease-in-out infinite alternate; }
.scn-margaret-reflects .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #1a1228 0%, #0d0a1a 100%); border-radius: 30% 30% 0 0; }
.scn-margaret-reflects .mirror-frame { position: absolute; left: 55%; top: 15%; width: 20%; height: 45%; background: linear-gradient(135deg, #2a1a3a 0%, #1a1228 100%); border: 2px solid #3a2a4a; border-radius: 10% 10% 2% 2%; box-shadow: inset 0 0 30px #0d0a1a; }
.scn-margaret-reflects .reflection { position: absolute; left: 55%; top: 15%; width: 20%; height: 45%; background: linear-gradient(180deg, rgba(40,25,60,0.5) 0%, rgba(20,15,30,0.8) 100%); border-radius: 10% 10% 2% 2%; opacity: 0.5; animation: mr-reflection 6s ease-in-out infinite alternate; }
.scn-margaret-reflects .figure { position: absolute; bottom: 12%; left: 18%; width: 14%; height: 45%; background: linear-gradient(180deg, #1a1228 0%, #0d0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mr-figure 8s ease-in-out infinite; }
.scn-margaret-reflects .crown { position: absolute; bottom: 58%; left: 16%; width: 8%; height: 8%; background: radial-gradient(circle, #4a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; clip-path: polygon(20% 30%, 40% 10%, 60% 30%, 80% 10%, 100% 30%, 90% 60%, 60% 80%, 40% 80%, 10% 60%); animation: mr-crown 5s ease-in-out infinite alternate; }
.scn-margaret-reflects .tear { position: absolute; bottom: 28%; left: 20%; width: 4px; height: 10px; background: linear-gradient(180deg, #6a4a7a 0%, #3a2a4a 100%); border-radius: 50%; animation: mr-tear 2s ease-in-out infinite; }
@keyframes mr-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mr-reflection { 0% { opacity: 0.4; transform: scale(1) translateX(0); } 50% { opacity: 0.6; transform: scale(1.03) translateX(2px); } 100% { opacity: 0.3; transform: scale(0.97) translateX(-2px); } }
@keyframes mr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mr-crown { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(2px); } }
@keyframes mr-tear { 0% { transform: translate(0, 0); opacity: 1; } 50% { transform: translate(3px, -4px); opacity: 0.6; } 100% { transform: translate(6px, -8px); opacity: 0; } }

/* Scene: margaret-asks-where */
.scn-margaret-asks-where {
  background: linear-gradient(180deg, #0f0c1c 0%, #1c1630 50%, #0f0c1c 100%), radial-gradient(ellipse at 70% 40%, #2a2040 0%, transparent 70%);
}
.scn-margaret-asks-where .bg { position: absolute; inset:0; background: linear-gradient(135deg, #0f0c1c 0%, #1a1228 100%); animation: mw-bg 25s ease-in-out infinite alternate; }
.scn-margaret-asks-where .floor { position: absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #1c1630 0%, #0f0c1c 100%); border-radius: 20% 20% 0 0; }
.scn-margaret-asks-where .figure { position: absolute; bottom:10%; left:20%; width:12%; height:50%; background: linear-gradient(180deg, #1a1228 0%, #0d0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mw-figure 8s ease-in-out infinite; }
.scn-margaret-asks-where .arm { position: absolute; bottom:40%; left:32%; width:6%; height:20%; background: linear-gradient(180deg, #1a1228 0%, #0d0a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: left center; animation: mw-arm 6s ease-in-out infinite alternate; }
.scn-margaret-asks-where .child1, .scn-margaret-asks-where .child2, .scn-margaret-asks-where .child3 { position: absolute; bottom:15%; width:6%; height:20%; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; background: linear-gradient(180deg, rgba(30,20,40,0.8) 0%, rgba(10,8,20,0.9) 100%); animation: mw-child 4s ease-in-out infinite alternate; }
.scn-margaret-asks-where .child1 { left:45%; animation-delay: 0s; }
.scn-margaret-asks-where .child2 { left:55%; animation-delay: 0.5s; }
.scn-margaret-asks-where .child3 { left:65%; animation-delay: 1s; }
.scn-margaret-asks-where .crown-floor { position: absolute; bottom:8%; left:40%; width:6%; height:6%; background: radial-gradient(circle, #4a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; clip-path: polygon(20% 30%, 40% 10%, 60% 30%, 80% 10%, 100% 30%, 90% 60%, 60% 80%, 40% 80%, 10% 60%); animation: mw-crown 7s ease-in-out infinite alternate; }
@keyframes mw-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mw-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mw-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(0deg); } }
@keyframes mw-child { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-4px) scale(1.05); opacity: 0.9; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }
@keyframes mw-crown { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }

/* Scene: margaret-declines */
.scn-margaret-declines {
  background: linear-gradient(180deg, #0a0715 0%, #150f25 50%, #0a0715 100%), radial-gradient(ellipse at 40% 60%, #1f1635 0%, transparent 60%);
}
.scn-margaret-declines .bg { position: absolute; inset:0; background: linear-gradient(135deg, #0a0715 0%, #120d1e 100%); animation: md-bg 18s ease-in-out infinite alternate; }
.scn-margaret-declines .floor { position: absolute; bottom:0; left:0; right:0; height:16%; background: linear-gradient(180deg, #150f25 0%, #0a0715 100%); border-radius: 40% 40% 0 0; }
.scn-margaret-declines .figure { position: absolute; bottom:16%; right:25%; width:12%; height:45%; background: linear-gradient(180deg, #1a1228 0%, #0d0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: md-figure 8s ease-in-out infinite; }
.scn-margaret-declines .shadow { position: absolute; bottom:16%; left:10%; width:40%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); border-radius: 50%; filter: blur(10px); animation: md-shadow 10s ease-in-out infinite alternate; }
.scn-margaret-declines .falling-crown { position: absolute; top:10%; left:50%; width:8%; height:8%; background: radial-gradient(circle, #4a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; clip-path: polygon(20% 30%, 40% 10%, 60% 30%, 80% 10%, 100% 30%, 90% 60%, 60% 80%, 40% 80%, 10% 60%); animation: md-fall 4s ease-in-out infinite; }
.scn-margaret-declines .chain { position: absolute; top:12%; left:52%; width:2px; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1228 100%); border-radius: 20%; animation: md-chain 4s ease-in-out infinite; }
@keyframes md-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes md-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(1.1) translateX(10px); opacity: 0.7; } 100% { transform: scaleX(0.9) translateX(-10px); opacity: 0.4; } }
@keyframes md-fall { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(20px) rotate(180deg); } 100% { transform: translateY(40px) rotate(360deg); } }
@keyframes md-chain { 0% { transform: scaleY(1); opacity: 1; } 50% { transform: scaleY(1.5); opacity: 0.8; } 100% { transform: scaleY(1); opacity: 1; } }

/* Scene: margaret-wheel */
.scn-margaret-wheel {
  background: linear-gradient(180deg, #0c0814 0%, #1a1030 50%, #0c0814 100%), radial-gradient(ellipse at 50% 40%, #2a1a3a 0%, transparent 70%);
}
.scn-margaret-wheel .bg { position: absolute; inset:0; background: linear-gradient(135deg, #0c0814 0%, #140f24 100%); animation: mwh-bg 30s ease-in-out infinite alternate; }
.scn-margaret-wheel .ground { position: absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1030 0%, #0c0814 100%); border-radius: 40% 40% 0 0; }
.scn-margaret-wheel .wheel { position: absolute; top:10%; left:25%; width:50%; height:50%; animation: mwh-rotate 15s linear infinite; }
.scn-margaret-wheel .rim { position: absolute; inset:0; background: radial-gradient(circle, transparent 30%, #2a1a3a 30%, #1a1030 50%, transparent 50%); border: 3px solid #3a2a4a; border-radius: 50%; }
.scn-margaret-wheel .spoke1, .scn-margaret-wheel .spoke2, .scn-margaret-wheel .spoke3, .scn-margaret-wheel .spoke4 { position: absolute; top:0; left:50%; width:3px; height:50%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); transform-origin: center bottom; border-radius: 20%; }
.scn-margaret-wheel .spoke1 { transform: rotate(0deg); }
.scn-margaret-wheel .spoke2 { transform: rotate(45deg); }
.scn-margaret-wheel .spoke3 { transform: rotate(90deg); }
.scn-margaret-wheel .spoke4 { transform: rotate(135deg); }
.scn-margaret-wheel .figure { position: absolute; bottom:10%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #1a1228 0%, #0d0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mwh-figure 6s ease-in-out infinite; }
.scn-margaret-wheel .chain { position: absolute; bottom:40%; left:49%; width:2px; height:30%; background: linear-gradient(180deg, #3a2a4a 0%, #1a1030 100%); animation: mwh-chain 8s ease-in-out infinite alternate; }
@keyframes mwh-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mwh-rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes mwh-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mwh-chain { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.coin { position: absolute; pointer-events: none; }
.col { position: absolute; pointer-events: none; }
.petal { position: absolute; pointer-events: none; }
.silhouette { position: absolute; pointer-events: none; }
.sleeping { position: absolute; pointer-events: none; }
.wisp { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-richard-woos-anne { background: linear-gradient(180deg, #4a4a56 0%, #3a3a46 40%, #2a2a36 100%), radial-gradient(ellipse at 30% 50%, #5a5a66 0%, transparent 70%); }
.scn-richard-woos-anne .bg-street-grey { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a56 0%, #2a2a36 100%); border-radius: 4% 4% 0 0; }
.scn-richard-woos-anne .corpse-bier { position:absolute; bottom:22%; left:30%; width:45%; height:16%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 20% 20%; transform: rotate(-2deg); animation: rwa-bier 8s ease-in-out infinite; }
.scn-richard-woos-anne .figure-anne { position:absolute; bottom:38%; left:28%; width:28px; height:56px; background: linear-gradient(180deg, #3a3a48 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rwa-figureA 5s ease-in-out infinite; }
.scn-richard-woos-anne .figure-ri-woo { position:absolute; bottom:34%; right:28%; width:32px; height:58px; background: linear-gradient(180deg, #2a2a38 0%, #0a0a16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rwa-figureR 6s ease-in-out infinite; }
.scn-richard-woos-anne .mourning-veil { position:absolute; bottom:40%; left:26%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(150,150,180,.3) 0%, transparent 100%); filter: blur(8px); animation: rwa-veil 10s ease-in-out infinite alternate; }
.scn-richard-woos-anne .stone-wall { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #3a3a46 0px, #3a3a46 8px, #4a4a56 8px, #4a4a56 16px), linear-gradient(180deg, #3a3a46 0%, #2a2a36 100%); border-radius: 10% 10% 0 0; animation: rwa-wall 20s ease-in-out infinite; }
.scn-richard-woos-anne .distant-tower { position:absolute; top:10%; right:10%; width:20px; height:50px; background: linear-gradient(180deg, #4a4a56 0%, #2a2a36 100%); border-radius: 20% 20% 10% 10%; transform: skewY(-3deg); animation: rwa-tower 25s ease-in-out infinite alternate; }
@keyframes rwa-bier   { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rwa-figureA{ 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(-1deg) } }
@keyframes rwa-figureR{ 0% { transform: translateY(0) rotate(2deg) } 20% { transform: translateY(-2px) rotate(-1deg) } 40% { transform: translateY(0) rotate(1deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 80% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes rwa-veil   { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.1) } 100% { opacity:.3; transform: scaleY(0.9) } }
@keyframes rwa-wall   { 0% { background-position: 0 0 } 100% { background-position: 32px 0 } }
@keyframes rwa-tower  { 0% { transform: skewY(-3deg) scaleY(1) } 50% { transform: skewY(-3deg) scaleY(1.02) } 100% { transform: skewY(-3deg) scaleY(1) } }

/* pomfret-executions */

.scn-anne-accepts-ring {
  background: radial-gradient(ellipse at 50% 100%, #c8a06e 0%, transparent 60%),
              linear-gradient(180deg, #d4c0a0 0%, #b09070 40%, #806050 100%);
}
.scn-anne-accepts-ring .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(255, 230, 180, 0.3) 0%, transparent 60%);
  animation: ar-bg 12s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #b8a080 0%, #9a7a5a 50%, #7a5a3a 100%);
}
.scn-anne-accepts-ring .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
}
.scn-anne-accepts-ring .window-overcast {
  position: absolute; top: 12%; left: 28%; width: 28%; height: 38%;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b89a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255, 240, 200, 0.4);
  animation: ar-window 10s ease-in-out infinite;
}
.scn-anne-accepts-ring .kneeler {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ar-kneel 3s ease-in-out infinite;
}
.scn-anne-accepts-ring .stander {
  position: absolute; bottom: 28%; right: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ar-stand 4s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .ring-glow {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.5);
  animation: ar-ring 2s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .soft-shadow {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ar-shadow 5s ease-in-out infinite;
}
@keyframes ar-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ar-window {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.02); opacity: 0.9; }
  100% { transform: scaleY(0.98); opacity: 0.7; }
}
@keyframes ar-kneel {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes ar-stand {
  0% { transform: rotate(0deg) translateY(0); }
  100% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes ar-ring {
  0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.45); opacity: 0.8; }
}
@keyframes ar-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
}

.scn-richard-accuses-hastings {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 60%);
}
.scn-richard-accuses-hastings .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-richard-accuses-hastings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
.scn-richard-accuses-hastings .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 15px;
  background: linear-gradient(90deg, #5a4030 0%, #7a6050 50%, #5a4030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(5deg);
}
.scn-richard-accuses-hastings .strawberries {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #a05030 0%, #603020 60%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rah-strawberry 5s ease-in-out infinite;
}
.scn-richard-accuses-hastings .richard {
  position: absolute; bottom: 18%; left: 30%; width: 20px; 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: rah-richard 4s ease-in-out infinite;
}
.scn-richard-accuses-hastings .hastings {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 58px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rah-hastings 5s ease-in-out infinite;
}
.scn-richard-accuses-hastings .buckingham {
  position: absolute; bottom: 20%; left: 42%; width: 16px; height: 55px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rah-buckingham 4.5s ease-in-out infinite 0.5s;
}
.scn-richard-accuses-hastings .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd060 0%, #b08030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3);
  animation: rah-candle 3s ease-in-out infinite alternate;
}
@keyframes rah-strawberry { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes rah-richard { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rah-hastings { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes rah-buckingham { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rah-candle { 0% { opacity: 0.8; transform: scaleY(1) rotate(-2deg); } 50% { opacity: 1; transform: scaleY(1.05) rotate(2deg); } 100% { opacity: 0.9; transform: scaleY(1) rotate(0); } }

/* richard-pretends-piety */

.scn-duchess-curses-richard {
  background: linear-gradient(180deg, #1a1423 0%, #2d1f2a 40%, #3b2a30 100%), radial-gradient(ellipse at 40% 60%, #5a3a3a 0%, transparent 70%);
}
.scn-duchess-curses-richard .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e26 0%, #1f141f 100%);
  animation: dcr-wall 12s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%);
  border-top: 2px solid #3a2020;
}
.scn-duchess-curses-richard .window-bars {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 40%;
  background: repeating-linear-gradient(0deg, #2a2a2a 0px, #2a2a2a 4px, transparent 4px, transparent 20px);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: dcr-bars 8s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .candle-glow {
  position: absolute; bottom: 38%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #b87a4a 0%, #8a5a3a 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.6;
  animation: dcr-candle 4s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .figure-duchess {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2030 0%, #1a1018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dcr-duchess 5s ease-in-out infinite;
}
.scn-duchess-curses-richard .figure-richard {
  position: absolute; bottom: 28%; right: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: dcr-richard 7s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .shadow-curse {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(80,20,20,0.6) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dcr-shad 6s ease-in-out infinite;
}
.scn-duchess-curses-richard .dust-motes {
  position: absolute; top: 10%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dcr-dust 15s linear infinite;
}
@keyframes dcr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dcr-bars {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes dcr-candle {
  0% { transform: scale(1) translate(0,0); opacity: 0.5; }
  50% { transform: scale(1.1) translate(-2px,-2px); opacity: 0.7; }
  100% { transform: scale(0.95) translate(1px,1px); opacity: 0.6; }
}
@keyframes dcr-duchess {
  0% { transform: translate(0,0) rotate(-2deg); }
  25% { transform: translate(3px,-2px) rotate(0deg); }
  50% { transform: translate(-2px,-3px) rotate(2deg); }
  75% { transform: translate(2px,-1px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(-2deg); }
}
@keyframes dcr-richard {
  0% { transform: scaleX(-1) translate(0,0); }
  50% { transform: scaleX(-1) translate(-5px, 3px); }
  100% { transform: scaleX(-1) translate(0,0); }
}
@keyframes dcr-shad {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes dcr-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  50% { transform: translate(20px,30px) scale(1.5); opacity: 0.1; }
  100% { transform: translate(40px,60px) scale(0.8); opacity: 0.3; }
}

/* Scene: item-crown-princes-murdered */

.scn-richmond-crowned { background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 80%); }
.scn-richmond-crowned .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9aa8 0%, #6a7a8a 100%); animation: rc-sky 15s ease-in-out infinite alternate; }
.scn-richmond-crowned .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(200,210,220,0.3) 0%, transparent 70%); filter: blur(10px); animation: rc-mist 20s ease-in-out infinite; }
.scn-richmond-crowned .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #4a5a4a 0%, #5a6a5a 30%, #6a7a6a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); animation: rc-ground 12s ease-in-out infinite alternate; }
.scn-richmond-crowned .figure { position:absolute; bottom:30%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc-figure 6s ease-in-out infinite; }
.scn-richmond-crowned .crown { position:absolute; bottom:68%; left:48%; width:20px; height:8px; background: linear-gradient(180deg, #c8b060 0%, #a08040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.5), 0 0 12px 4px rgba(200,176,96,0.4); animation: rc-crown 4s ease-in-out infinite; }
.scn-richmond-crowned .banner { position:absolute; bottom:55%; left:60%; width:12px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(5deg); transform-origin: bottom; animation: rc-banner-sway 5s ease-in-out infinite; }
.scn-richmond-crowned .banner::after { content:''; position:absolute; top:0; left:-2px; width:24px; height:16px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 2px; }
.scn-richmond-crowned .sword { position:absolute; bottom:45%; left:35%; width:4px; height:50px; background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%); transform: rotate(-15deg); transform-origin: bottom; animation: rc-sword 7s ease-in-out infinite; }
.scn-richmond-crowned .cloud-a { position:absolute; top:15%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(8px); animation: rc-drift-a 40s linear infinite; }
.scn-richmond-crowned .cloud-b { position:absolute; top:25%; right:20%; width:50px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(6px); animation: rc-drift-b 55s linear infinite reverse; }
@keyframes rc-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes rc-mist { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes rc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rc-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes rc-crown { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes rc-banner-sway { 0% { transform: rotate(3deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(3deg) } }
@keyframes rc-sword { 0% { transform: rotate(-18deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-18deg) } }
@keyframes rc-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes rc-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* ===== duchess-laments-sons ===== */
.scn-duchess-laments-sons {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, transparent 70%);
}
.scn-duchess-laments-sons .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: dls-wall 20s ease-in-out infinite alternate;
}
.scn-duchess-laments-sons .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
}
.scn-duchess-laments-sons .frame {
  position: absolute; bottom: 30%; width: 12%; height: 45%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 50%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,.6);
}
.scn-duchess-laments-sons .frame-left { left: 15%; transform: perspective(800px) rotateY(15deg); }
.scn-duchess-laments-sons .frame-right { right: 15%; transform: perspective(800px) rotateY(-15deg); }
.scn-duchess-laments-sons .figure {
  position: absolute; bottom: 10%; left: 50%; width: 20%; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dls-figure 12s ease-in-out infinite;
}
.scn-duchess-laments-sons .mirror {
  position: absolute; bottom: 40%; width: 10%; height: 30%;
  background: radial-gradient(circle at 50% 40%, #8a6a3a 0%, #4a2a0a 70%);
  border-radius: 4px;
  box-shadow: 0 0 30px 6px rgba(138,106,58,.3);
  animation: dls-mirror 8s ease-in-out infinite alternate;
}
.scn-duchess-laments-sons .mirror.left { left: 16%; }
.scn-duchess-laments-sons .mirror.right { right: 16%; }
.scn-duchess-laments-sons .candle {
  position: absolute; bottom: 48%; left: 50%; width: 4px; height: 12%;
  background: linear-gradient(180deg, #c8a060 0%, #a07030 100%);
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-duchess-laments-sons .glow {
  position: absolute; bottom: 48%; left: 50%; width: 40%; height: 30%;
  transform: translate(-50%, 30%);
  background: radial-gradient(ellipse at 50% 0%, #c8a060 0%, transparent 70%);
  animation: dls-glow 6s ease-in-out infinite alternate;
}
@keyframes dls-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dls-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 33% { transform: translateX(-48%) translateY(-2px) rotate(1deg) } 66% { transform: translateX(-52%) translateY(-1px) rotate(-1.5deg) } }
@keyframes dls-mirror { 0% { box-shadow: 0 0 20px 3px rgba(138,106,58,.4); opacity: .7 } 50% { box-shadow: 0 0 40px 10px rgba(138,106,58,.6); opacity: 1 } 100% { box-shadow: 0 0 20px 5px rgba(138,106,58,.3); opacity: .8 } }
@keyframes dls-glow { 0% { opacity: .5; transform: translate(-50%, 30%) scale(1) } 50% { opacity: .8; transform: translate(-50%, 25%) scale(1.1) } 100% { opacity: .6; transform: translate(-50%, 30%) scale(.95) } }

/* ===== children-mourn ===== */
.scn-children-mourn {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-children-mourn .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 50%, #3a2a1a 70%, #2a1a0a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
}
.scn-children-mourn .niche-left,
.scn-children-mourn .niche-right {
  position: absolute; bottom: 20%; width: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #1a0a0a 0%, #2a1a0a 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-children-mourn .niche-left { left: 15%; }
.scn-children-mourn .niche-right { right: 15%; }
.scn-children-mourn .child {
  position: absolute; bottom: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cm-child 10s ease-in-out infinite;
}
.scn-children-mourn .child-left { left: 20%; animation-delay: 0s; }
.scn-children-mourn .child-right { right: 20%; animation-delay: -5s; }
.scn-children-mourn .tear {
  position: absolute; width: 4px; height: 8px;
  background: radial-gradient(circle, #8a7a5a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: cm-tear 6s ease-in-out infinite;
}
.scn-children-mourn .tear-a { bottom: 15%; left: 22%; animation-duration: 4s; }
.scn-children-mourn .tear-b { bottom: 18%; left: 25%; animation-duration: 5s; animation-delay: -2s; }
.scn-children-mourn .tear-c { bottom: 12%; right: 24%; animation-duration: 4.5s; animation-delay: -1s; }
@keyframes cm-child { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(2deg) } }
@keyframes cm-tear { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(15px) scale(1.5); opacity: .5 } 100% { transform: translateY(30px) scale(.5); opacity: 0 } }

/* ===== queen-drowned-in-tears ===== */
.scn-queen-drowned-in-tears {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 30%, #4a3a2a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 20%, #5a3a1a 0%, transparent 70%);
}
.scn-queen-drowned-in-tears .shaft {
  position: absolute; top: 0; left: 50%; width: 30%; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 40px 60px rgba(0,0,0,.8);
  animation: qdt-shaft 20s ease-in-out infinite alternate;
}
.scn-queen-drowned-in-tears .queen-figure {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 10px 30px rgba(0,0,0,.7);
  animation: qdt-queen 8s ease-in-out infinite;
}
.scn-queen-drowned-in-tears .tear-drop {
  position: absolute; top: 20%; left: 50%; width: 6px; height: 10px;
  background: radial-gradient(circle, #8a7a5a 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: qdt-drop 4s ease-in infinite;
}
.scn-queen-drowned-in-tears .drop1 { margin-left: -3px; animation-delay: 0s; }
.scn-queen-drowned-in-tears .drop2 { margin-left: 12px; animation-delay: -1.5s; }
.scn-queen-drowned-in-tears .drop3 { margin-left: -18px; animation-delay: -3s; }
.scn-queen-drowned-in-tears .pool {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  border-radius: 50%;
}
.scn-queen-drowned-in-tears .pool-rim {
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #1a0a0a 80%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: qdt-pool-rim 10s ease-in-out infinite alternate;
}
.scn-queen-drowned-in-tears .pool-wave {
  background: rgba(90,74,58,.3);
  filter: blur(8px);
  animation: qdt-pool-wave 6s ease-in-out infinite;
}
.scn-queen-drowned-in-tears .moon-reflect {
  position: absolute; bottom: 12%; left: 50%; width: 10%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8b080 0%, transparent 70%);
  border-radius: 50%;
  animation: qdt-moon 8s ease-in-out infinite alternate;
}
@keyframes qdt-shaft { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes qdt-queen { 0%,100% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-48%) rotate(2deg) } 66% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes qdt-drop { 0% { transform: translateY(0) scale(1); opacity: .8 } 30% { transform: translateY(20px) scale(1.2); opacity: .6 } 60% { transform: translateY(60px) scale(1.5); opacity: .3 } 100% { transform: translateY(120px) scale(.8); opacity: 0 } }
@keyframes qdt-pool-rim { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(.98) } }
@keyframes qdt-pool-wave { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.02) } 100% { transform: translateX(-5px) scale(.98) } }
@keyframes qdt-moon { 0% { opacity: .2 } 50% { opacity: .6 } 100% { opacity: .3 } }

/* ===== threefold-grief ===== */
.scn-threefold-grief {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 30%, #3a2a1a 60%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-threefold-grief .bg-arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
}
.scn-threefold-grief .dais {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,.5);
}
.scn-threefold-grief .figure {
  position: absolute; bottom: 15%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tg-figure 12s ease-in-out infinite;
}
.scn-threefold-grief .mother {
  left: 50%; transform: translateX(-50%);
  width: 22%; height: 55%;
  animation-duration: 14s;
}
.scn-threefold-grief .l-orphan {
  left: 20%;
  animation-delay: -4s;
}
.scn-threefold-grief .r-orphan {
  right: 20%;
  animation-delay: -8s;
}
.scn-threefold-grief .veil {
  position: absolute; bottom: 50%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tg-veil 8s ease-in-out infinite;
}
.scn-threefold-grief .shadow-l,
.scn-threefold-grief .shadow-r {
  position: absolute; bottom: 5%; width: 8%; height: 20%;
  background: rgba(0,0,0,.5);
  filter: blur(6px);
  border-radius: 50%;
  animation: tg-shadow 12s ease-in-out infinite alternate;
}
.scn-threefold-grief .shadow-l { left: 18%; }
.scn-threefold-grief .shadow-r { right: 18%; animation-delay: -6s; }
@keyframes tg-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(-2deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(0deg) translateY(0) } 75% { transform: translateX(-52%) rotate(2deg) translateY(-1px) } }
@keyframes tg-veil { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(2deg) } }
@keyframes tg-shadow { 0% { transform: scaleX(1); opacity: .4 } 50% { transform: scaleX(1.2); opacity: .6 } 100% { transform: scaleX(.8); opacity: .5 } }

.scn-derby-promises { background: linear-gradient(180deg, #1e1a18 0%, #2b241f 40%, #3d322a 70%, #201c18 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%); }
.scn-derby-promises .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3d322a 0%, #2b241f 50%, #1e1a18 100%); }
.scn-derby-promises .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2f2821 0%, #1a1612 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-derby-promises .desk { position:absolute; bottom:28%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3d322a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: dp-desk 14s ease-in-out infinite; }
.scn-derby-promises .candle { position:absolute; bottom:38%; left:50%; width:8px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a06a 0%, #8a7048 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px 6px #c8a06a44, 0 0 24px 12px #c8a06a33; animation: dp-candle 3s ease-in-out infinite alternate; }
.scn-derby-promises .letter { position:absolute; bottom:32%; left:48%; width:28px; height:20px; background: #c8b898; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform: rotate(2deg); animation: dp-letter 6s ease-in-out infinite; }
.scn-derby-promises .queen { position:absolute; bottom:27%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-queen 8s ease-in-out infinite; }
.scn-derby-promises .shadow { position:absolute; bottom:28%; left:58%; width:70px; height:50px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform: skewX(-20deg); animation: dp-shadow 8s ease-in-out infinite; }
@keyframes dp-desk { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes dp-candle { 0% { opacity:.8; box-shadow: 0 0 10px 4px #c8a06a44; } 50% { opacity:1; box-shadow: 0 0 18px 8px #c8a06a66; } 100% { opacity:.85; box-shadow: 0 0 12px 5px #c8a06a44; } }
@keyframes dp-letter { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes dp-queen { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(1deg); } 75% { transform: translateX(4px) rotate(0deg); } }
@keyframes dp-shadow { 0%,100% { opacity:.5; } 50% { opacity:.7; } }

.scn-buckingham-led-to-execution { background: linear-gradient(180deg, #0d0d12 0%, #15141c 40%, #1d1c28 70%, #0f0e14 100%), radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 70%); }
.scn-buckingham-led-to-execution .cell { position:absolute; inset:0; background: linear-gradient(180deg, #1d1c28 0%, #0d0d12 100%); }
.scn-buckingham-led-to-execution .bars { position:absolute; left:30%; right:30%; top:10%; bottom:20%; border: 3px solid #3a3a4a; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 4px, transparent 4px, transparent 18px); opacity:.6; animation: ble-bars 12s ease-in-out infinite; }
.scn-buckingham-led-to-execution .torch { position:absolute; left:70%; top:30%; width:6px; height:24px; background: linear-gradient(180deg, #c08040 0%, #8a6030 100%); border-radius: 3px; box-shadow: 0 0 20px 10px #c0804066, 0 0 40px 20px #c0804033; animation: ble-torch 4s ease-in-out infinite alternate; }
.scn-buckingham-led-to-execution .guard { position:absolute; bottom:20%; left:60%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ble-guard 6s ease-in-out infinite; }
.scn-buckingham-led-to-execution .prisoner { position:absolute; bottom:20%; left:40%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ble-prisoner 8s ease-in-out infinite; }
.scn-buckingham-led-to-execution .shackle { position:absolute; bottom:28%; left:42%; width:10px; height:4px; background: #4a4a5a; border-radius:2px; box-shadow: 2px 0 0 #4a4a5a; animation: ble-shackle 2s linear infinite; }
@keyframes ble-bars { 0%,100% { opacity:.5; } 50% { opacity:.7; } }
@keyframes ble-torch { 0% { opacity:.7; box-shadow: 0 0 15px 6px #c0804066; } 50% { opacity:1; box-shadow: 0 0 30px 15px #c08040aa; } 100% { opacity:.8; box-shadow: 0 0 20px 8px #c0804066; } }
@keyframes ble-guard { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } }
@keyframes ble-prisoner { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(-2px) rotate(-2deg) scaleY(0.98); } 50% { transform: translateX(0) rotate(0deg) scaleY(1); } 75% { transform: translateX(2px) rotate(1deg) scaleY(0.99); } }
@keyframes ble-shackle { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-buckingham-recalls-curse { background: linear-gradient(180deg, #0d0a12 0%, #14111c 40%, #1a1622 70%, #0e0c14 100%), radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 60%); }
.scn-buckingham-recalls-curse .dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1622 0%, #0d0a12 100%); }
.scn-buckingham-recalls-curse .beam { position:absolute; top:0; left:40%; width:4px; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, transparent 80%); animation: brc-beam 8s ease-in-out infinite; }
.scn-buckingham-recalls-curse .figure { position:absolute; bottom:20%; left:48%; width:20px; height:38px; background: linear-gradient(180deg, #2a1e2a 0%, #120a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brc-figure 10s ease-in-out infinite; }
.scn-buckingham-recalls-curse .skull { position:absolute; bottom:22%; left:52%; width:12px; height:16px; background: #5a4a4a; border-radius:50% 50% 40% 40%; box-shadow: 0 0 6px 2px rgba(255,255,240,.1); animation: brc-skull 15s ease-in-out infinite; }
.scn-buckingham-recalls-curse .chain { position:absolute; bottom:30%; left:45%; width:8px; height:20px; background: radial-gradient(circle at 50% 0, #4a4a5a 0%, transparent 100%); background-size: 8px 4px; background-repeat: repeat-y; animation: brc-chain 3s ease-in-out infinite; }
.scn-buckingham-recalls-curse .dust { position:absolute; top:30%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,255,240,.08) 0%, transparent 70%); animation: brc-dust 20s linear infinite; }
@keyframes brc-beam { 0%,100% { opacity:.4; } 50% { opacity:.7; } }
@keyframes brc-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes brc-skull { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }
@keyframes brc-chain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
@keyframes brc-dust { 0% { transform: translate(0,0) scale(1); opacity:.5; } 50% { transform: translate(20px,-10px) scale(1.5); opacity:.2; } 100% { transform: translate(40px,-20px) scale(2); opacity:0; } }

.scn-richmond-oration { background: linear-gradient(180deg, #2a1e1a 0%, #4a2a1e 30%, #6a3a2a 55%, #4a2a1e 80%, #1a1210 100%), radial-gradient(ellipse at 50% 0%, #d06a3a 0%, transparent 60%); }
.scn-richmond-oration .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #6a3a2a 0%, #a06a4a 40%, #d08a5a 60%, #a06a4a 80%, #6a3a2a 100%); animation: ro-sky 20s ease-in-out infinite alternate; }
.scn-richmond-oration .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-richmond-oration .tent { position:absolute; bottom:45%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); clip-path: polygon(20% 100%, 80% 100%, 50% 0); transform: scaleX(1.2); animation: ro-tent 14s ease-in-out infinite; }
.scn-richmond-oration .banner { position:absolute; bottom:50%; left:50%; width:8px; height:30px; background: #5a2a2a; border-radius:2px; transform-origin: bottom center; animation: ro-banner 4s ease-in-out infinite; }
.scn-richmond-oration .soldier-a { position:absolute; bottom:30%; left:30%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ro-soldier 8s ease-in-out infinite; }
.scn-richmond-oration .soldier-b { position:absolute; bottom:28%; left:45%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ro-soldier 8s ease-in-out infinite 2s; }
.scn-richmond-oration .soldier-c { position:absolute; bottom:32%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ro-soldier 8s ease-in-out infinite 4s; }
.scn-richmond-oration .campfire { position:absolute; bottom:25%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #ffa04a 0%, #d07030 40%, #8a4018 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ffa04a66; animation: ro-fire 3s ease-in-out infinite alternate; }
@keyframes ro-sky { 0% { background-position: 0% 0%; } 50% { background-position: 50% 10%; } 100% { background-position: 100% 0%; } }
@keyframes ro-tent { 0%,100% { transform: scaleX(1.2) translateY(0); } 50% { transform: scaleX(1.2) translateY(-3px); } }
@keyframes ro-banner { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes ro-soldier { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(0deg); } }
@keyframes ro-fire { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.9; transform: scale(0.95); } }

/* anne-laments */
.scn-anne-laments { background: linear-gradient(180deg, #0f0c2e 0%, #1a1740 30%, #2a214a 70%, #1a1630 100%), radial-gradient(ellipse at 50% 20%, rgba(60,50,90,0.3) 0%, transparent 60%); }
.scn-anne-laments .wall-bg { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, #2a2040 0%, #1a1630 100%); }
.scn-anne-laments .window { position:absolute; top:10%; left:65%; width:60px; height:90px; background: linear-gradient(180deg, #3a4a6a 0%, #5a6a8a 50%, #3a4a6a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 20px rgba(100,140,200,0.3), 0 0 40px rgba(100,140,200,0.1); animation: al-window 8s ease-in-out infinite; }
.scn-anne-laments .bed { position:absolute; bottom:15%; left:10%; width:200px; height:140px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 30px rgba(0,0,0,0.6); }
.scn-anne-laments .figure { position:absolute; bottom:30%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: al-figure 6s ease-in-out infinite; }
.scn-anne-laments .candle { position:absolute; bottom:38%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #d0b060 0%, #806040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 15px rgba(200,160,80,0.3); animation: al-candle 4s ease-in-out infinite alternate; }
.scn-anne-laments .shadow { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-anne-laments .motes { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 45% 38%, rgba(220,200,180,0.08) 0%, transparent 80%); animation: al-motes 12s linear infinite; }
@keyframes al-window { 0%,100% { opacity:0.6; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-2px); } }
@keyframes al-figure { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } }
@keyframes al-candle { 0%,100% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1) translateY(-1px); } }
@keyframes al-motes { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* duchess-bids-farewell */
.scn-duchess-bids-farewell { background: linear-gradient(180deg, #1a1410 0%, #2a2018 30%, #3a2a20 70%, #2a1a10 100%), radial-gradient(ellipse at 30% 50%, rgba(60,40,30,0.4) 0%, transparent 70%); }
.scn-duchess-bids-farewell .floor { position:absolute; bottom:0; left:0; width:100%; height:35%; background: linear-gradient(0deg, #2a1a10 0%, #3a2a1a 100%); border-radius: 0 0 20% 20%; }
.scn-duchess-bids-farewell .door { position:absolute; top:10%; right:15%; width:80px; height:160px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: inset -5px 0 15px rgba(0,0,0,0.5); }
.scn-duchess-bids-farewell .figure-a { position:absolute; bottom:35%; left:25%; width:35px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: db-walk1 10s ease-in-out infinite; }
.scn-duchess-bids-farewell .figure-b { position:absolute; bottom:35%; left:45%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: db-walk2 10s ease-in-out infinite reverse; }
.scn-duchess-bids-farewell .figure-c { position:absolute; bottom:35%; left:65%; width:35px; height:60px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: db-walk3 10s ease-in-out infinite alternate; }
.scn-duchess-bids-farewell .light-shaft { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(180,160,140,0.15) 0%, transparent 80%); animation: db-light 8s ease-in-out infinite alternate; }
.scn-duchess-bids-farewell .dust { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 40% 50%, rgba(200,180,160,0.06) 0%, transparent 60%); animation: db-dust 15s linear infinite; }
@keyframes db-walk1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(10px) rotate(-2deg); } }
@keyframes db-walk2 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(-2deg); } 50% { transform: translateX(-20px) rotate(0deg); } 75% { transform: translateX(-10px) rotate(2deg); } }
@keyframes db-walk3 { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(15px) scale(1.05); } }
@keyframes db-light { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }
@keyframes db-dust { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }

/* queen-laments-tower */
.scn-queen-laments-tower { background: linear-gradient(180deg, #12141a 0%, #1a1c24 30%, #222840 70%, #141820 100%), radial-gradient(ellipse at 50% 30%, rgba(40,50,80,0.3) 0%, transparent 60%); }
.scn-queen-laments-tower .tower-wall { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, #1a1c24 0%, #222840 100%); }
.scn-queen-laments-tower .window { position:absolute; top:12%; left:50%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 50%, #2a3a5a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(100,130,180,0.3); animation: ql-window 12s ease-in-out infinite; }
.scn-queen-laments-tower .figure { position:absolute; bottom:25%; left:30%; width:45px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: ql-figure 6s ease-in-out infinite alternate; }
.scn-queen-laments-tower .cradle { position:absolute; bottom:15%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 50% 50%; animation: ql-cradle 4s ease-in-out infinite; }
.scn-queen-laments-tower .chain { position:absolute; top:0%; left:50%; width:4px; height:30%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 2px; transform: translateX(-50%); animation: ql-chain 8s ease-in-out infinite; }
.scn-queen-laments-tower .tear { position:absolute; bottom:30%; left:38%; width:8px; height:12px; background: radial-gradient(circle, rgba(180,200,220,0.6) 0%, transparent 70%); border-radius: 50%; animation: ql-tear 3s ease-in-out infinite; }
.scn-queen-laments-tower .stone-texture { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(30,35,50,0.1) 20px, rgba(30,35,50,0.1) 21px); opacity:0.4; }
@keyframes ql-window { 0%,100% { opacity:0.5; transform: translateX(-50%) translateY(0); } 50% { opacity:0.8; transform: translateX(-50%) translateY(-2px); } }
@keyframes ql-figure { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(4deg) translateY(-3px); } }
@keyframes ql-cradle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes ql-chain { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes ql-tear { 0%,100% { opacity:0; transform: translateY(0); } 30% { opacity:0.8; } 60% { opacity:0.4; transform: translateY(10px); } }

/* richard-on-throne */
.scn-richard-on-throne { background: linear-gradient(180deg, #e0d0b0 0%, #c8b890 30%, #a08868 60%, #705848 100%), radial-gradient(ellipse at 50% 0%, rgba(255,230,200,0.4) 0%, transparent 70%); }
.scn-richard-on-throne .throne-bg { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(180deg, #d8c8a0 0%, #b8a080 100%); }
.scn-richard-on-throne .throne { position:absolute; bottom:30%; left:50%; width:120px; height:140px; transform: translateX(-50%); background: linear-gradient(135deg, #d0a060 0%, #b08040 50%, #8a6020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 40px rgba(0,0,0,0.3); animation: rt-throne 6s ease-in-out infinite; }
.scn-richard-on-throne .king { position:absolute; bottom:38%; left:50%; width:40px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: rt-king 4s ease-in-out infinite alternate; }
.scn-richard-on-throne .courtier-l { position:absolute; bottom:28%; left:18%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: rt-court-l 8s ease-in-out infinite; }
.scn-richard-on-throne .courtier-r { position:absolute; bottom:28%; right:18%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: rt-court-r 8s ease-in-out infinite; }
.scn-richard-on-throne .pillar-l { position:absolute; top:0; left:8%; width:30px; height:100%; background: linear-gradient(90deg, #a08868 0%, #b8a080 50%, #a08868 100%); border-radius: 5%; box-shadow: 5px 0 20px rgba(0,0,0,0.2); }
.scn-richard-on-throne .pillar-r { position:absolute; top:0; right:8%; width:30px; height:100%; background: linear-gradient(90deg, #a08868 0%, #b8a080 50%, #a08868 100%); border-radius: 5%; box-shadow: -5px 0 20px rgba(0,0,0,0.2); }
.scn-richard-on-throne .floor { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #705848 0%, #5a4430 100%); border-radius: 10% 10% 0 0; }
.scn-richard-on-throne .glow { position:absolute; top:30%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at center, rgba(255,220,150,0.15) 0%, transparent 60%); animation: rt-glow 5s ease-in-out infinite alternate; }
@keyframes rt-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes rt-king { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } }
@keyframes rt-court-l { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } }
@keyframes rt-court-r { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } }
@keyframes rt-glow { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }

.scn-brakenbury-comforts {
  background: linear-gradient(180deg, #2b1a1a 0%, #1a1010 40%, #0d0808 100%), radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 60%);
}
.scn-brakenbury-comforts .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2222 0%, #2a1515 100%);
}
.scn-brakenbury-comforts .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e0e 0%, #120808 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
}
.scn-brakenbury-comforts .candle {
  position: absolute; bottom: 28%; left: 24%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8c080 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 18px 6px #a06030, 0 0 36px 12px rgba(160,96,48,0.5);
  animation: bk1-candle 2s ease-in-out infinite alternate;
}
.scn-brakenbury-comforts .figure {
  position: absolute; bottom: 24%; left: 30%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bk1-figure 4s ease-in-out infinite;
}
.scn-brakenbury-comforts .shadow {
  position: absolute; bottom: 0; left: 20%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(5px);
  animation: bk1-shadow 4s ease-in-out infinite alternate;
}
@keyframes bk1-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.7; }
}
@keyframes bk1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  75% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bk1-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  100% { transform: scaleX(1.2) translateX(10px); opacity: 0.6; }
}

.scn-clarence-sleeps {
  background: linear-gradient(180deg, #0a0a1a 0%, #0f0a1a 50%, #1a1020 100%), radial-gradient(ellipse at 50% 80%, #1a1020 0%, transparent 70%);
}
.scn-clarence-sleeps .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0a1a 0%, #080508 100%);
  animation: cs-deep 20s ease-in-out infinite alternate;
}
.scn-clarence-sleeps .bed-frame {
  position: absolute; bottom: 10%; left: 50%; width: 70%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: cs-bed 8s ease-in-out infinite;
}
.scn-clarence-sleeps .pillow {
  position: absolute; bottom: 40%; left: 50%; width: 30%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: cs-pillow 6s ease-in-out infinite alternate;
}
.scn-clarence-sleeps .blanket {
  position: absolute; bottom: 12%; left: 50%; width: 60%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: cs-blanket 12s ease-in-out infinite;
}
.scn-clarence-sleeps .sleeper {
  position: absolute; bottom: 38%; left: 50%; width: 22px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: cs-sleeper 4s ease-in-out infinite alternate;
}
@keyframes cs-deep { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cs-bed { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes cs-pillow { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(2px); } }
@keyframes cs-blanket { 0% { opacity: 0.9; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.02); } 100% { opacity: 0.85; transform: translateX(-50%) scale(0.98); } }
@keyframes cs-sleeper { 0% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(2deg); } }

.scn-murderers-in-tower {
  background: linear-gradient(180deg, #080808 0%, #121212 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, transparent 60%);
}
.scn-murderers-in-tower .bg-tower {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0f0f 0%, #080808 100%);
  animation: mt3-bg 6s ease-in-out infinite alternate;
}
.scn-murderers-in-tower .door {
  position: absolute; bottom: 5%; left: 50%; width: 30%; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e0e 0%, #0d0606 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 30% 30%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.8);
  animation: mt3-door 10s ease-in-out infinite;
}
.scn-murderers-in-tower .figure-a {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mt3-fig 3s ease-in-out infinite;
}
.scn-murderers-in-tower .figure-b {
  position: absolute; bottom: 18%; left: 56%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1414 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mt3-fig 3s ease-in-out infinite reverse;
}
.scn-murderers-in-tower .dagger {
  position: absolute; bottom: 40%; left: 42%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-30deg);
  box-shadow: 0 0 4px 1px rgba(90,58,58,0.3);
  animation: mt3-dagger 2s ease-in-out infinite alternate;
}
@keyframes mt3-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mt3-door { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.96); } }
@keyframes mt3-fig { 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(0deg); } }
@keyframes mt3-dagger { 0% { transform: rotate(-30deg) translateY(0); } 100% { transform: rotate(-20deg) translateY(-2px); } }

.scn-brakenbury-surrenders-keys {
  background: linear-gradient(180deg, #1a0e0e 0%, #120808 50%, #0a0404 100%), radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 60%);
}
.scn-brakenbury-surrenders-keys .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1212 0%, #0d0808 100%);
}
.scn-brakenbury-surrenders-keys .door-recess {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 65%;
  background: linear-gradient(180deg, #0f0a0a 0%, #080404 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
  animation: bk4-door 12s ease-in-out infinite;
}
.scn-brakenbury-surrenders-keys .figure-bk {
  position: absolute; bottom: 18%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bk4-fig 5s ease-in-out infinite alternate;
}
.scn-brakenbury-surrenders-keys .hand-keys {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: left bottom;
  animation: bk4-hand 3s ease-in-out infinite;
}
.scn-brakenbury-surrenders-keys .keys {
  position: absolute; bottom: 32%; left: 52%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #a08060 0%, #706050 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 0 4px 1px rgba(160,128,96,0.3);
  animation: bk4-keys 3s ease-in-out infinite alternate;
}
@keyframes bk4-door { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes bk4-fig { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes bk4-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes bk4-keys { 0% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(-1px) rotate(5deg); } }

/* Scene: prince-goes-to-tower */
.scn-prince-goes-to-tower {
  background: linear-gradient(180deg, #d4e4f0 0%, #a3c4db 50%, #6a8bac 100%), radial-gradient(ellipse at 20% 70%, #fff8e0 0%, transparent 60%);
}
.scn-prince-goes-to-tower .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c2d8e8 0%, #9bb7d0 100%);
  animation: pgtt-sky 10s ease-in-out infinite alternate;
}
.scn-prince-goes-to-tower .tower {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(180deg, #b8a88a 0%, #9a825e 60%, #7a6040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.3);
  animation: pgtt-tower 14s ease-in-out infinite;
}
.scn-prince-goes-to-tower .tower-roof {
  position: absolute; bottom: calc(20% + 120px); left: 50%; transform: translateX(-50%);
  width: 80px; height: 40px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  animation: pgtt-tower 14s ease-in-out infinite;
}
.scn-prince-goes-to-tower .prince {
  position: absolute; bottom: 20%; left: 10%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pgtt-walk 6s ease-in-out infinite;
}
.scn-prince-goes-to-tower .guard {
  position: absolute; bottom: 20%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: pgtt-stand 8s ease-in-out infinite alternate;
}
.scn-prince-goes-to-tower .guard.left {
  left: 30%; animation-delay: 0s;
}
.scn-prince-goes-to-tower .guard.right {
  right: 30%; animation-delay: 0.5s;
}
.scn-prince-goes-to-tower .shadow {
  position: absolute; bottom: 18%; left: 8%; width: 80px; height: 6px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: pgtt-shadow 6s ease-in-out infinite;
}
@keyframes pgtt-sky { 0%{ opacity:0.85; } 50%{ opacity:1; } 100%{ opacity:0.75; } }
@keyframes pgtt-tower { 0%{ transform: translateX(-50%) translateY(0); } 50%{ transform: translateX(-50%) translateY(-2px); } 100%{ transform: translateX(-50%) translateY(1px); } }
@keyframes pgtt-walk { 0%{ transform: translateX(0) translateY(0) rotate(-2deg); } 25%{ transform: translateX(6px) translateY(-2px) rotate(2deg); } 50%{ transform: translateX(12px) translateY(0) rotate(-1deg); } 75%{ transform: translateX(18px) translateY(-1px) rotate(1deg); } 100%{ transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes pgtt-stand { 0%{ transform: scaleY(1); } 50%{ transform: scaleY(1.05); } 100%{ transform: scaleY(0.98); } }
@keyframes pgtt-shadow { 0%{ width:80px; opacity:0.3; } 50%{ width:60px; opacity:0.5; } 100%{ width:80px; opacity:0.2; } }

/* Scene: buckingham-notes-treason */
.scn-buckingham-notes-treason {
  background: linear-gradient(180deg, #2c1e14 0%, #4a3222 50%, #1c0e08 100%), radial-gradient(ellipse at 50% 30%, #6a4a32 0%, transparent 70%);
}
.scn-buckingham-notes-treason .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: bnt-wall 20s ease-in-out infinite alternate;
}
.scn-buckingham-notes-treason .table {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-buckingham-notes-treason .candle {
  position: absolute; bottom: 35%; left: 40%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 6px rgba(200,176,128,0.5);
}
.scn-buckingham-notes-treason .flame {
  position: absolute; bottom: calc(35% + 30px); left: 40%; width: 10px; height: 14px;
  margin-left: -1px;
  background: radial-gradient(ellipse at 50% 20%, #ffe080 0%, #f0a030 40%, #c06020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  animation: bnt-flame 1.5s ease-in-out infinite alternate;
}
.scn-buckingham-notes-treason .buckingham {
  position: absolute; bottom: 25%; right: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bnt-buck 4s ease-in-out infinite;
}
.scn-buckingham-notes-treason .inkwell {
  position: absolute; bottom: 33%; left: 48%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #4a3a2a 0%, #1a0e08 100%);
  border-radius: 40%;
}
.scn-buckingham-notes-treason .paper {
  position: absolute; bottom: 31%; left: 30%; width: 28px; height: 10px;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 100%);
  transform: rotate(-10deg);
  border-radius: 2px;
  animation: bnt-paper 7s ease-in-out infinite alternate;
}
@keyframes bnt-wall { 0%{ opacity:0.9; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes bnt-flame { 0%{ transform: scaleY(1) rotate(-2deg); opacity:0.9; } 50%{ transform: scaleY(1.2) rotate(0deg); opacity:1; } 100%{ transform: scaleY(0.9) rotate(2deg); opacity:0.8; } }
@keyframes bnt-buck { 0%{ transform: translateX(0); } 30%{ transform: translateX(-4px) translateY(0) rotate(-2deg); } 60%{ transform: translateX(2px) translateY(0) rotate(1deg); } 100%{ transform: translateX(0); } }
@keyframes bnt-paper { 0%{ transform: rotate(-10deg) translateY(0); } 50%{ transform: rotate(-12deg) translateY(-2px); } 100%{ transform: rotate(-8deg) translateY(0); } }

/* Scene: catesby-probed */
.scn-catesby-probed {
  background: linear-gradient(180deg, #1e1410 0%, #2c1e18 30%, #1a0e0a 100%), radial-gradient(ellipse at 30% 40%, #3a2218 0%, transparent 60%);
}
.scn-catesby-probed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 20% 20% 0 0;
}
.scn-catesby-probed .door {
  position: absolute; bottom: 25%; right: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3222 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.5);
}
.scn-catesby-probed .candle-a {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 100%);
  border-radius: 2px;
}
.scn-catesby-probed .candle-b {
  position: absolute; bottom: 40%; left: 25%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 100%);
  border-radius: 2px;
  animation: cp-candle 6s ease-in-out infinite alternate;
}
.scn-catesby-probed .catesby {
  position: absolute; bottom: 15%; left: 10%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1e1e 0%, #0e0808 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: cp-catesby 5s ease-in-out infinite;
}
.scn-catesby-probed .lord {
  position: absolute; bottom: 15%; right: 15%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  animation: cp-lord 7s ease-in-out infinite;
}
.scn-catesby-probed .shadow-lord {
  position: absolute; bottom: 15%; right: 10%; width: 50px; height: 8px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: cp-shadow 7s ease-in-out infinite;
}
@keyframes cp-candle { 0%{ opacity:0.7; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes cp-catesby { 0%{ transform: rotate(0deg) translateY(0); } 25%{ transform: rotate(2deg) translateY(-1px); } 50%{ transform: rotate(-1deg) translateY(1px); } 75%{ transform: rotate(-2deg) translateY(-1px); } 100%{ transform: rotate(0); } }
@keyframes cp-lord { 0%{ transform: translateX(0) rotate(0); } 50%{ transform: translateX(-5px) rotate(3deg); } 100%{ transform: translateX(0) rotate(0); } }
@keyframes cp-shadow { 0%{ width:50px; opacity:0.5; } 50%{ width:60px; opacity:0.7; } 100%{ width:45px; opacity:0.4; } }

/* Scene: buckingham-sends-catesby */
.scn-buckingham-sends-catesby {
  background: linear-gradient(180deg, #1e1410 0%, #2c1e18 40%, #120a06 100%), radial-gradient(ellipse at 50% 50%, #3a2218 0%, transparent 80%);
}
.scn-buckingham-sends-catesby .bg-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  animation: bsc-arch 15s ease-in-out infinite alternate;
}
.scn-buckingham-sends-catesby .column {
  position: absolute; top: 0; bottom: 30%; width: 14px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 6px;
}
.scn-buckingham-sends-catesby .column.left { left: 8%; }
.scn-buckingham-sends-catesby .column.right { right: 8%; }
.scn-buckingham-sends-catesby .torch {
  position: absolute; bottom: 45%; left: 15%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a40 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 0 12px 4px rgba(200,168,112,0.6);
  animation: bsc-torch 3s ease-in-out infinite alternate;
}
.scn-buckingham-sends-catesby .buckingham {
  position: absolute; bottom: 20%; left: 15%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1e1e 0%, #0e0808 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bsc-turn 8s ease-in-out infinite;
}
.scn-buckingham-sends-catesby .capesby {
  position: absolute; bottom: 20%; right: 20%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: bsc-step 6s ease-in-out infinite;
}
.scn-buckingham-sends-catesby .doorway {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e0e06 0%, #0e0602 100%);
  border-radius: 0 0 4px 4px;
  border: 2px solid #3a2212;
}
@keyframes bsc-arch { 0%{ opacity:0.9; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes bsc-torch { 0%{ transform: scaleY(1) translateY(0); opacity:0.9; } 50%{ transform: scaleY(1.1) translateY(-2px); opacity:1; } 100%{ transform: scaleY(0.95) translateY(0); opacity:0.8; } }
@keyframes bsc-turn { 0%{ transform: rotate(0deg); } 30%{ transform: rotate(5deg); } 60%{ transform: rotate(-3deg); } 100%{ transform: rotate(0); } }
@keyframes bsc-step { 0%{ transform: translateX(0) translateY(0); } 25%{ transform: translateX(4px) translateY(-1px); } 50%{ transform: translateX(8px) translateY(0); } 75%{ transform: translateX(4px) translateY(-1px); } 100%{ transform: translateX(0); } }

.scn-richard-asks-favour {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-richard-asks-favour .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%);
  animation: raf-wall 20s ease-in-out infinite alternate;
}
.scn-richard-asks-favour .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a0e06 0%, #2a1a0e 100%);
}
.scn-richard-asks-favour .candle {
  position: absolute; bottom: 45%; left: 60%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px; box-shadow: 0 0 18px 6px #ffc060;
  animation: raf-candle 2s ease-in-out infinite alternate;
}
.scn-richard-asks-favour .richard-sil {
  position: absolute; bottom: 38%; left: 25%; width: 22px; height: 50px;
  background: #0a0606; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: raf-richard 4s ease-in-out infinite;
}
.scn-richard-asks-favour .kneeler {
  position: absolute; bottom: 38%; left: 45%; width: 18px; height: 30px;
  background: #1a0e0e; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: raf-kneel 3s ease-in-out infinite;
}
.scn-richard-asks-favour .shadow {
  position: absolute; bottom: 40%; left: 20%; right: 30%; height: 20px;
  background: rgba(10,6,6,0.6); border-radius: 50%; filter: blur(8px);
  animation: raf-shadow 5s ease-in-out infinite alternate;
}
@keyframes raf-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes raf-candle { 0% { transform: scaleY(1); opacity:0.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.6 } }
@keyframes raf-richard { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes raf-kneel { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(1px) rotate(-2deg) } }
@keyframes raf-shadow { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(5px) scaleX(1.1) } }

.scn-anne-consents {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 60%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-anne-consents .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%);
}
.scn-anne-consents .window {
  position: absolute; top: 15%; left: 60%; width: 50px; height: 70px;
  background: radial-gradient(circle, #c0a080 0%, #8a7050 70%);
  border-radius: 10%; box-shadow: inset 0 0 20px #4a3a2a;
  animation: ac-window 8s ease-in-out infinite alternate;
}
.scn-anne-consents .table {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 6px;
  background: #1a0e06; border-radius: 2px;
}
.scn-anne-consents .candle {
  position: absolute; bottom: 40%; left: 45%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 1px; box-shadow: 0 0 12px 4px #ffc060;
  animation: ac-candle 3s ease-in-out infinite alternate;
}
.scn-anne-consents .anne-sil {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 42px;
  background: #0a0606; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ac-anne 6s ease-in-out infinite;
}
.scn-anne-consents .curtain {
  position: absolute; top: 0; left: 55%; width: 8px; height: 100%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; animation: ac-curtain 12s ease-in-out infinite alternate;
}
@keyframes ac-window { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes ac-candle { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.05); opacity:0.95 } 100% { transform: scaleY(0.95); opacity:0.7 } }
@keyframes ac-anne { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ac-curtain { 0% { transform: translateX(0) } 100% { transform: translateX(6px) } }

.scn-richard-post-anne {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 80%);
}
.scn-richard-post-anne .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0e06 0%, #2a1a0e 100%);
}
.scn-richard-post-anne .drape {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(90deg, #5a2a1a 0%, #3a1a0e 50%, #5a2a1a 100%);
  border-radius: 0 0 30% 30%; animation: rpa-drape 15s ease-in-out infinite alternate;
}
.scn-richard-post-anne .spotlight {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 70%;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%);
  opacity:0.3; animation: rpa-spot 4s ease-in-out infinite alternate;
}
.scn-richard-post-anne .richard-dance {
  position: absolute; bottom: 32%; left: 40%; width: 24px; height: 50px;
  background: #0a0606; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpa-dance 2s ease-in-out infinite;
}
.scn-richard-post-anne .crown {
  position: absolute; bottom: 62%; left: 42%; width: 20px; height: 12px;
  background: linear-gradient(135deg, #c0a040 0%, #806020 100%);
  border-radius: 50% 50% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: rpa-crown 3s ease-in-out infinite alternate;
}
.scn-richard-post-anne .confetti-a {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: #c0a040; animation: rpa-confetti 6s linear infinite;
}
.scn-richard-post-anne .confetti-b {
  position: absolute; top: 30%; left: 80%; width: 4px; height: 4px;
  background: #a0c040; animation: rpa-confetti 6s linear infinite 2s;
}
@keyframes rpa-drape { 0% { transform: translateY(0) } 100% { transform: translateY(-5px) } }
@keyframes rpa-spot { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.2 } }
@keyframes rpa-dance { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes rpa-crown { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(10deg) } }
@keyframes rpa-confetti { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(80vh) rotate(360deg) } }

.scn-richard-self-admiration {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-richard-self-admiration .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%);
}
.scn-richard-self-admiration .mirror {
  position: absolute; top: 15%; left: 35%; right: 35%; bottom: 40%;
  background: radial-gradient(ellipse, #6a5a4a 0%, #3a2a1a 70%);
  border-radius: 50%; border: 4px solid #5a3a2a; box-shadow: inset 0 0 20px #1a0e06;
  animation: rsa-mirror 10s ease-in-out infinite alternate;
}
.scn-richard-self-admiration .richard-face {
  position: absolute; bottom: 35%; left: 20%; width: 20px; height: 40px;
  background: #0a0606; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsa-richard 4s ease-in-out infinite;
}
.scn-richard-self-admiration .reflection {
  position: absolute; bottom: 40%; left: 40%; width: 20px; height: 40px;
  background: #0a0606; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; transform: scaleX(-1);
  animation: rsa-reflect 4s ease-in-out infinite 0.5s;
}
.scn-richard-self-admiration .lamp {
  position: absolute; bottom: 40%; right: 25%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 1px; box-shadow: 0 0 12px 4px #ffc060;
  animation: rsa-lamp 3s ease-in-out infinite alternate;
}
.scn-richard-self-admiration .shadow-cast {
  position: absolute; bottom: 30%; left: 15%; right: 30%; height: 12px;
  background: rgba(10,6,6,0.5); border-radius: 50%; filter: blur(6px);
  animation: rsa-shadow 5s ease-in-out infinite alternate;
}
@keyframes rsa-mirror { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rsa-richard { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes rsa-reflect { 0%,100% { transform: scaleX(-1) translateY(0) rotate(2deg) } 50% { transform: scaleX(-1) translateY(-2px) rotate(-2deg) } }
@keyframes rsa-lamp { 0% { transform: scaleY(1); opacity:0.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.6 } }
@keyframes rsa-shadow { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(4px) scaleX(1.2) } }

/* Scene 1: rivers-comforts-queen */
.scn-rivers-comforts-queen {
  background: linear-gradient(180deg, #f9f2dc 0%, #e8dcc8 40%, #d4c4a6 100%), radial-gradient(ellipse at 70% 30%, #fffbe6 0%, transparent 60%);
}
.scn-rivers-comforts-queen .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #dac8b4 0%, #ecdcc8 50%, #dac8b4 100%); opacity: 0.8;
}
.scn-rivers-comforts-queen .window-frame {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 40%; border: 8px solid #7a6a5a; background: transparent; border-radius: 4px; box-shadow: inset 0 0 0 4px #a09080;
}
.scn-rivers-comforts-queen .window-light {
  position: absolute; top: 14%; left: 37%; width: 26%; height: 36%; background: linear-gradient(180deg, #fffce6 0%, #e8ddc0 100%); border-radius: 2px; animation: rcq-light 8s ease-in-out infinite alternate;
}
.scn-rivers-comforts-queen .queen-silhouette {
  position: absolute; bottom: 25%; left: 22%; width: 18%; height: 55%; background: linear-gradient(180deg, #5a3e2e 0%, #3e2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcq-queen 6s ease-in-out infinite alternate;
}
.scn-rivers-comforts-queen .chair {
  position: absolute; bottom: 20%; right: 28%; width: 20%; height: 40%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
}
.scn-rivers-comforts-queen .cushion {
  position: absolute; bottom: 32%; right: 31%; width: 14%; height: 16%; background: radial-gradient(circle at 50% 30%, #c8553d 0%, #8a3525 100%); border-radius: 30% 30% 40% 40%; animation: rcq-cushion 4s ease-in-out infinite alternate;
}
.scn-rivers-comforts-queen .candle {
  position: absolute; bottom: 48%; left: 48%; width: 4%; height: 12%; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: rcq-candle 3s ease-in-out infinite;
}
.scn-rivers-comforts-queen .candle-glow {
  position: absolute; bottom: 50%; left: 46%; width: 10%; height: 16%; background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: rcq-glow 2s ease-in-out infinite alternate;
}

@keyframes rcq-light {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.9; transform: scale(0.97); }
}
@keyframes rcq-queen {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(1px) rotate(0); }
}
@keyframes rcq-cushion {
  0% { transform: scale(1); }
  50% { transform: scale(1.05) rotate(2deg); }
  100% { transform: scale(0.98); }
}
@keyframes rcq-candle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(-1deg); }
}
@keyframes rcq-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

/* Scene 2: buckingham-urges-crown */
.scn-buckingham-urges-crown {
  background: linear-gradient(0deg, #4a3828 0%, #7a6040 30%, #b09870 60%, #e8d8b8 100%), radial-gradient(ellipse at 50% 20%, #ffe8b8 0%, transparent 60%);
}
.scn-buckingham-urges-crown .throne {
  position: absolute; bottom: 32%; left: 20%; width: 35%; height: 50%; background: linear-gradient(180deg, #8a7048 0%, #604828 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-buckingham-urges-crown .crown {
  position: absolute; top: 8%; left: 28%; width: 20%; height: 10%; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 15% 0%, 35% 30%, 50% 0%, 65% 30%, 85% 0%, 100% 100%); animation: buc-crown 5s ease-in-out infinite alternate;
}
.scn-buckingham-urges-crown .buckingham {
  position: absolute; bottom: 25%; left: 58%; width: 20%; height: 45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: buc-figure 7s ease-in-out infinite alternate;
}
.scn-buckingham-urges-crown .kingly-robe {
  position: absolute; bottom: 28%; left: 22%; width: 28%; height: 35%; background: linear-gradient(180deg, #702243 0%, #4a1028 100%); border-radius: 0 30% 40% 10%; opacity: 0.8; animation: buc-robe 6s ease-in-out infinite;
}
.scn-buckingham-urges-crown .floor-tile {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 18%; background: repeating-linear-gradient(90deg, #8a7050 0px, #8a7050 15px, #b09870 15px, #b09870 30px); border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-buckingham-urges-crown .pillar {
  position: absolute; top: 0; left: 5%; width: 8%; height: 100%; background: linear-gradient(90deg, #c8b090 0%, #e0d0b8 50%, #c8b090 100%); border-radius: 6px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.1);
}
.scn-buckingham-urges-crown .sunray {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 20%; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,180,0.4) 0%, transparent 70%); filter: blur(8px); animation: buc-sunray 10s linear infinite alternate;
}

@keyframes buc-crown {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-4px) rotate(4deg) scale(1.03); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes buc-figure {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes buc-robe {
  0% { transform: rotate(0) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes buc-sunray {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}

/* Scene 3: duchess-blesses-richard */
.scn-duchess-blesses-richard {
  background: linear-gradient(180deg, #1a1a32 0%, #2a2a4e 30%, #3e3e5e 60%, #5a5a7a 100%), radial-gradient(ellipse at 60% 40%, #6a4a6a 0%, transparent 70%);
}
.scn-duchess-blesses-richard .richard-silhouette {
  position: absolute; bottom: 22%; left: 25%; width: 20%; height: 55%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; animation: dbr-richard 4s ease-in-out infinite alternate;
}
.scn-duchess-blesses-richard .duchess-hand {
  position: absolute; bottom: 50%; left: 48%; width: 8%; height: 18%; background: linear-gradient(180deg, #d4b89a 0%, #b89878 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: dbr-hand 3s ease-in-out infinite;
}
.scn-duchess-blesses-richard .blessing-light {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 30%; background: radial-gradient(circle, rgba(255,220,180,0.4) 0%, transparent 70%); filter: blur(10px); animation: dbr-light 4s ease-in-out infinite alternate;
}
.scn-duchess-blesses-richard .floor-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); border-radius: 50% 50% 0 0;
}
.scn-duchess-blesses-richard .archway {
  position: absolute; top: 0; left: 20%; width: 60%; height: 70%; border: 6px solid #4a3a3a; border-radius: 40% 40% 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-duchess-blesses-richard .candle-stand {
  position: absolute; bottom: 10%; left: 60%; width: 6%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 10% 10% 5% 5%; animation: dbr-stand 6s ease-in-out infinite;
}
@keyframes dbr-richard {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-6px) rotate(-3deg) scale(0.98); }
  100% { transform: translateX(3px) rotate(2deg); }
}
@keyframes dbr-hand {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(4deg) translateY(1px); }
}
@keyframes dbr-light {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes dbr-stand {
  0% { transform: rotate(0); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg); }
}

/* Scene 4: buckingham-proposes-council */
.scn-buckingham-proposes-council {
  background: linear-gradient(180deg, #eddcc8 0%, #dcc8b0 40%, #c0a888 100%), radial-gradient(ellipse at 50% 20%, #fff4dc 0%, transparent 60%);
}
.scn-buckingham-proposes-council .council-table {
  position: absolute; bottom: 28%; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-buckingham-proposes-council .peer-left {
  position: absolute; bottom: 33%; left: 15%; width: 12%; height: 45%; background: linear-gradient(180deg, #5a3e2e 0%, #3a2212 100%); border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%; animation: bpc-peer 8s ease-in-out infinite alternate;
}
.scn-buckingham-proposes-council .peer-right {
  position: absolute; bottom: 35%; right: 15%; width: 12%; height: 40%; background: linear-gradient(180deg, #5a3e2e 0%, #3a2212 100%); border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%; animation: bpc-peer 8s ease-in-out infinite alternate-reverse;
}
.scn-buckingham-proposes-council .buckingham-center {
  position: absolute; bottom: 38%; left: 42%; width: 16%; height: 50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: bpc-center 5s ease-in-out infinite;
}
.scn-buckingham-proposes-council .window-arch {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 45%; border: 6px solid #7a6a5a; border-radius: 50% 50% 0 0; background: linear-gradient(180deg, #fffce6 0%, #e0d0b8 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-buckingham-proposes-council .morning-light {
  position: absolute; top: 8%; left: 32%; width: 36%; height: 40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.4) 0%, transparent 70%); filter: blur(6px); animation: bpc-light 12s linear infinite alternate;
}
.scn-buckingham-proposes-council .parchment {
  position: absolute; bottom: 32%; left: 25%; width: 20%; height: 4%; background: #f0e0c0; border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: bpc-parchment 3s ease-in-out infinite;
}
.scn-buckingham-proposes-council .inkwell {
  position: absolute; bottom: 31%; left: 50%; width: 4%; height: 6%; background: #2a1a0e; border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

@keyframes bpc-peer {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bpc-center {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-2px) rotate(0); }
}
@keyframes bpc-light {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes bpc-parchment {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}

/* prince-questions-history: calm sunlit interior with record */
.scn-prince-questions-history {
  background: linear-gradient(180deg, #f9e8c8 0%, #e0c8a0 50%, #c8b088 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 50%);
}
.scn-prince-questions-history .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d7b0 0%, #d6c09a 100%); }
.scn-prince-questions-history .window { position:absolute; top:10%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.6); animation: ph-window 6s ease-in-out infinite; }
.scn-prince-questions-history .desk { position:absolute; bottom:30%; left:15%; width:50%; height:20%; background: linear-gradient(180deg, #8b7355 0%, #6b5340 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-prince-questions-history .book { position:absolute; bottom:33%; left:30%; width:15%; height:10%; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; transform: skewX(-5deg); animation: ph-book 8s ease-in-out infinite alternate; }
.scn-prince-questions-history .sunbeam { position:absolute; top:8%; left:22%; width:12%; height:55%; background: linear-gradient(180deg, rgba(255,255,220,.5) 0%, rgba(255,255,200,.1) 100%); filter: blur(4px); animation: ph-beam 10s ease-in-out infinite alternate; }
.scn-prince-questions-history .leaf { position:absolute; bottom:45%; left:22%; width:8px; height:12px; background: #5a7a3a; border-radius: 50% 50% 0 50%; transform:rotate(30deg); animation: ph-leaf 12s ease-in-out infinite; }
@keyframes ph-window { 0% { opacity:.9; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.95; filter:brightness(1) } }
@keyframes ph-book { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-2px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes ph-beam { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.5; transform: translateX(5px) } 100% { opacity:.4; transform: translateX(-3px) } }
@keyframes ph-leaf { 0% { transform: rotate(30deg) translate(0,0) } 50% { transform: rotate(20deg) translate(2px,-3px) } 100% { transform: rotate(30deg) translate(0,0) } }

/* richard-aside-so-wise: dark mood under harsh sunlit courtyard */
.scn-richard-aside-so-wise {
  background: linear-gradient(180deg, #d6c8b0 0%, #b8a88a 40%, #8a7a6a 100%), radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 60%);
}
.scn-richard-aside-so-wise .courtyard { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b89a 0%, #a8987a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-richard-aside-so-wise .sun { position:absolute; top:5%; left:15%; width:10%; height:10%; background: radial-gradient(circle, #fff8d0 0%, #f0d080 60%, transparent 100%); border-radius: 50%; animation: ra-sun 14s ease-in-out infinite alternate; }
.scn-richard-aside-so-wise .figure { position:absolute; bottom:20%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ra-figure 4s ease-in-out infinite; }
.scn-richard-aside-so-wise .shadow { position:absolute; bottom:20%; left:38%; width:30%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(4px); transform: skewX(-15deg); animation: ra-shadow 4s ease-in-out infinite; }
.scn-richard-aside-so-wise .dagger { position:absolute; bottom:30%; left:42%; width:2%; height:12%; background: linear-gradient(180deg, #8a8a8a 0%, #5a5a5a 100%); border-radius: 0 0 50% 50%; transform:rotate(-20deg); animation: ra-dagger 3s ease-in-out infinite alternate; }
.scn-richard-aside-so-wise .collar { position:absolute; bottom:40%; left:40%; width:12%; height:4%; background: linear-gradient(90deg, #702243 0%, #5e1a1d 100%); border-radius: 20% 20% 0 0; animation: ra-collar 2s ease-in-out infinite; }
@keyframes ra-sun { 0% { transform: scale(1); filter:brightness(1) } 50% { transform: scale(1.02); filter:brightness(1.2) } 100% { transform: scale(0.98); filter:brightness(0.9) } }
@keyframes ra-figure { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(2deg) translateX(3px) } 50% { transform: rotate(0deg) translateX(6px) } 75% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes ra-shadow { 0% { opacity:.3; transform: skewX(-15deg) scaleX(1) } 50% { opacity:.5; transform: skewX(-12deg) scaleX(1.1) } 100% { opacity:.4; transform: skewX(-15deg) scaleX(1) } }
@keyframes ra-dagger { 0% { transform: rotate(-20deg) translateY(0) } 100% { transform: rotate(-15deg) translateY(-2px) } }
@keyframes ra-collar { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.85; transform: scaleY(1) } }

/* prince-continues: calm sunlit monument to Caesar */
.scn-prince-continues {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 50%, #b8a890 100%), radial-gradient(ellipse at 50% 20%, #fffce8 0%, transparent 70%);
}
.scn-prince-continues .pedestal { position:absolute; bottom:25%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-prince-continues .bust { position:absolute; bottom:43%; left:38%; width:24%; height:20%; background: radial-gradient(ellipse at 50% 40%, #d4c8b0 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pc-bust 10s ease-in-out infinite alternate; }
.scn-prince-continues .laurel-left { position:absolute; bottom:48%; left:36%; width:8%; height:6%; background: linear-gradient(135deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50% 0 0 50%; transform: rotate(-30deg); animation: pc-laurel 6s ease-in-out infinite alternate; }
.scn-prince-continues .laurel-right { position:absolute; bottom:48%; right:36%; width:8%; height:6%; background: linear-gradient(225deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 0 50% 50% 0; transform: rotate(30deg); animation: pc-laurel 6s ease-in-out infinite alternate-reverse; }
.scn-prince-continues .sunlight { position:absolute; top:5%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, rgba(255,255,220,.6) 0%, transparent 100%); filter: blur(8px); animation: pc-sunlight 12s ease-in-out infinite; }
.scn-prince-continues .inscription { position:absolute; bottom:27%; left:35%; width:30%; height:4%; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform: perspective(200px) rotateX(5deg); animation: pc-inscript 9s ease-in-out infinite alternate; }
@keyframes pc-bust { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes pc-laurel { 0% { opacity:.7; filter:brightness(0.8) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.8; filter:brightness(0.9) } }
@keyframes pc-sunlight { 0% { opacity:.4; transform: translateX(0) scaleX(1) } 50% { opacity:.6; transform: translateX(10px) scaleX(1.1) } 100% { opacity:.5; transform: translateX(-5px) scaleX(0.95) } }
@keyframes pc-inscript { 0% { filter:brightness(0.8) } 50% { filter:brightness(1.2) } 100% { filter:brightness(0.9) } }

/* young-york-enters: tense sunlit corridor with entering figure */
.scn-young-york-enters {
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 50%, #6a5a4a 100%), radial-gradient(ellipse at 70% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-young-york-enters .corridor { position:absolute; inset:0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); }
.scn-young-york-enters .door { position:absolute; bottom:20%; left:55%; width:30%; height:60%; background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: yy-door 5s ease-in-out infinite; }
.scn-young-york-enters .figure { position:absolute; bottom:20%; left:52%; width:15%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: yy-figure 2s ease-in-out infinite alternate; }
.scn-young-york-enters .shadow-stretch { position:absolute; bottom:18%; left:50%; width:40%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(6px); transform: skewX(-10deg); animation: yy-shadow 2s ease-in-out infinite alternate; }
.scn-young-york-enters .crown { position:absolute; bottom:60%; left:56%; width:8%; height:6%; background: linear-gradient(135deg, #d4a060 0%, #b08040 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%, 100% 100%); animation: yy-crown 3s ease-in-out infinite; }
.scn-young-york-enters .sword { position:absolute; bottom:35%; left:58%; width:2%; height:25%; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 0 0 50% 50%; transform:rotate(15deg); animation: yy-sword 1.5s ease-in-out infinite alternate; }
@keyframes yy-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes yy-figure { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(8px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(0.98) } }
@keyframes yy-shadow { 0% { opacity:.4; transform: skewX(-10deg) scaleX(1) } 50% { opacity:.6; transform: skewX(-8deg) scaleX(1.1) } 100% { opacity:.3; transform: skewX(-10deg) scaleX(0.95) } }
@keyframes yy-crown { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(-2deg) scale(0.95) } }
@keyframes yy-sword { 0% { transform: rotate(15deg) translateY(0) } 100% { transform: rotate(20deg) translateY(-3px) } }

/* duchess-laments */
.scn-duchess-laments {
  background: linear-gradient(180deg, #1e1b2a 0%, #2a2438 40%, #3a2e4a 70%, #2a1e2e 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a5a 0%, transparent 60%);
}
.scn-duchess-laments .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2238 0%, #1a1628 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-duchess-laments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1c1424 0%, #2a2040 100%);
  border-radius: 20% 20% 0 0;
}
.scn-duchess-laments .window {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #c8a878 0%, #8a7050 60%, #4a3a2a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 20px 6px rgba(200,168,120,0.2);
  animation: dl-window 12s ease-in-out infinite alternate;
}
.scn-duchess-laments .candle {
  position: absolute; bottom: 22%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #b08050 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-duchess-laments .candle-glow {
  position: absolute; bottom: 24%; left: 53%; width: 40px; height: 60px;
  background: radial-gradient(circle, #f0c060 0%, #c88840 40%, transparent 70%);
  filter: blur(8px);
  animation: dl-glow 3s ease-in-out infinite alternate;
}
.scn-duchess-laments .figure {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dl-figure 8s ease-in-out infinite;
}
.scn-duchess-laments .chair {
  position: absolute; bottom: 24%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-duchess-laments .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: dl-shadow 8s ease-in-out infinite;
}
@keyframes dl-window {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.85; transform: scale(0.97); }
}
@keyframes dl-glow {
  0% { opacity: 0.6; transform: scale(0.9) rotate(-2deg); }
  50% { opacity: 1; transform: scale(1.1) rotate(0deg); }
  100% { opacity: 0.7; transform: scale(0.95) rotate(2deg); }
}
@keyframes dl-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(-3px) translateY(2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dl-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}

/* queen-flees-sanctuary */
.scn-queen-flees-sanctuary {
  background: linear-gradient(90deg, #2a1e2e 0%, #3a2a44 30%, #4a3a5a 50%, #3a2a44 70%, #2a1e2e 100%),
              radial-gradient(ellipse at 50% 40%, #5a4a6a 0%, transparent 70%);
}
.scn-queen-flees-sanctuary .door {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px rgba(0,0,0,0.5);
}
.scn-queen-flees-sanctuary .door-frame {
  position: absolute; bottom: 18%; left: 38%; width: 34%; height: 64%;
  border: 6px solid #8a6a4a;
  border-radius: 4% 4% 12% 12%;
  background: transparent;
  box-shadow: 0 0 0 2px #5a3a2a;
}
.scn-queen-flees-sanctuary .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a1220 0%, #2a1e34 100%);
  border-radius: 30% 30% 0 0;
}
.scn-queen-flees-sanctuary .queen {
  position: absolute; bottom: 25%; left: 30%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #6a4a5a 0%, #3a2a38 50%, #1a1018 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: qfs-queen 2s ease-in-out infinite alternate;
}
.scn-queen-flees-sanctuary .child {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a5a 0%, #2a1e2a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qfs-child 2.3s ease-in-out infinite alternate;
}
.scn-queen-flees-sanctuary .torch {
  position: absolute; bottom: 20%; left: 60%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e0a060 0%, #805030 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-queen-flees-sanctuary .torch-glow {
  position: absolute; bottom: 25%; left: 57%; width: 50px; height: 70px;
  background: radial-gradient(circle, #ffc080 0%, #d08040 40%, transparent 80%);
  filter: blur(10px);
  animation: qfs-torchglow 1.5s ease-in-out infinite alternate;
}
.scn-queen-flees-sanctuary .shadow-woman {
  position: absolute; bottom: 24%; left: 45%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: qfs-shadow 2.5s ease-in-out infinite alternate;
}
@keyframes qfs-queen {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(8px) translateY(-6px) rotate(0deg); }
  100% { transform: translateX(2px) translateY(-2px) rotate(3deg); }
}
@keyframes qfs-child {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(5px) translateY(-4px) rotate(-1deg); }
  100% { transform: translateX(-3px) translateY(1px) rotate(0deg); }
}
@keyframes qfs-torchglow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes qfs-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

/* prince-edward-welcome */
.scn-prince-edward-welcome {
  background: linear-gradient(180deg, #7ab8d4 0%, #b8d8e8 30%, #e0e8d8 60%, #d0c8a8 100%),
              radial-gradient(ellipse at 50% 20%, #a0d0e0 0%, transparent 60%);
}
.scn-prince-edward-welcome .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ab0d0 0%, #c0e0f0 100%);
  animation: pew-sky 15s ease-in-out infinite alternate;
}
.scn-prince-edward-welcome .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a0a87c 0%, #6a7a4a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
}
.scn-prince-edward-welcome .prince {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #f0e8c8 0%, #c0b898 50%, #907858 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: pew-prince 8s ease-in-out infinite;
}
.scn-prince-edward-welcome .uncle {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #a89870 0%, #685840 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: pew-uncle 8s ease-in-out infinite 1s;
}
.scn-prince-edward-welcome .castle-wall {
  position: absolute; bottom: 38%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.1);
}
.scn-prince-edward-welcome .banner {
  position: absolute; top: 18%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #b87878 0%, #684848 100%); /* dust rose */
  border-radius: 0 0 20% 20%;
  transform-origin: top center;
  animation: pew-banner 5s ease-in-out infinite alternate;
}
.scn-prince-edward-welcome .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,220,0.4) 0%, transparent 80%);
  filter: blur(20px);
  animation: pew-sunbeam 9s ease-in-out infinite alternate;
}
@keyframes pew-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pew-prince {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  33% { transform: translateX(3px) translateY(-2px) rotate(-1deg); }
  66% { transform: translateX(-2px) translateY(1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes pew-uncle {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  33% { transform: translateX(-3px) translateY(-3px) rotate(1deg); }
  66% { transform: translateX(2px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes pew-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes pew-sunbeam {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

/* richard-warns-prince */
.scn-richard-warns-prince {
  background: linear-gradient(180deg, #b8d8e0 0%, #d8e8f0 30%, #f0e8d0 60%, #c8b888 100%),
              radial-gradient(ellipse at 50% 30%, #d0e0e8 0%, transparent 60%);
}
.scn-richard-warns-prince .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8ac0d8 0%, #c8e0f0 100%);
  animation: rwp-sky 20s ease-in-out infinite alternate;
}
.scn-richard-warns-prince .ground-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8a7a5a 0%, #a89870 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-richard-warns-prince .richard-figure {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: rwp-richard 3s ease-in-out infinite alternate;
}
.scn-richard-warns-prince .prince-small {
  position: absolute; bottom: 30%; left: 45%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #c0b098 0%, #887868 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: rwp-prince 3.5s ease-in-out infinite alternate 0.5s;
}
.scn-richard-warns-prince .shadow-sharp {
  position: absolute; bottom: 27%; left: 35%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: rwp-shadow 4s ease-in-out infinite alternate;
}
.scn-richard-warns-prince .spear {
  position: absolute; bottom: 35%; left: 35%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: rwp-spear 5s ease-in-out infinite;
}
.scn-richard-warns-prince .dust {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: rwp-dust 10s linear infinite;
}
@keyframes rwp-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rwp-richard {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1); }
  50% { transform: translateX(-5px) translateY(-4px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1); }
}
@keyframes rwp-prince {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes rwp-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes rwp-spear {
  0% { transform: rotate(-3deg); }
  33% { transform: rotate(2deg); }
  66% { transform: rotate(-4deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes rwp-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(30px) scale(1.2); opacity: 0.4; }
  100% { transform: translateX(60px) scale(1); opacity: 0.2; }
}

/* Scene 1: funny, sunlit – soft golds and bouncy animation */
.scn-young-york-teases-richard {
  background:
    radial-gradient(ellipse at 30% 20%, #fce6c0 0%, #e6c080 30%, transparent 70%),
    linear-gradient(180deg, #f5e3c0 0%, #d9b27a 100%);
}
.scn-young-york-teases-richard .floor {
  position: absolute; bottom: 0%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a070 0%, #a07a50 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
}
.scn-young-york-teases-richard .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5e0b0 0%, #e0c090 100%);
  border-bottom: 4px solid #b09060;
}
.scn-young-york-teases-richard .throne {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-70%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,.3);
  animation: yyt-throne 6s ease-in-out infinite;
}
.scn-young-york-teases-richard .richard {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-70%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: yyt-richard 3s ease-in-out infinite;
}
.scn-young-york-teases-richard .young-york-t {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-30%);
  width: 22px; height: 36px;
  background: linear-gradient(180deg, #7a2a2a 0%, #4a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yyt-york 2s ease-in-out infinite;
}
.scn-young-york-teases-richard .shadow-t {
  position: absolute; bottom: 0%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.15) 0%, transparent 100%);
  animation: yyt-shadow 4s ease-in-out infinite;
}
.scn-young-york-teases-richard .cushion {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 12px;
  background: linear-gradient(135deg, #b08050 0%, #8a6040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: yyt-cushion 5s ease-in-out infinite;
}
@keyframes yyt-throne {
  0%,100% { transform: translateX(-70%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-70%) translateY(-4px) rotate(1deg); }
}
@keyframes yyt-richard {
  0%,100% { transform: translateX(-70%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-70%) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(-70%) translateY(-1px) rotate(2deg); }
}
@keyframes yyt-york {
  0%,100% { transform: translateX(-30%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-30%) translateY(-3px) rotate(-3deg); }
  50% { transform: translateX(-30%) translateY(-1px) rotate(3deg); }
  75% { transform: translateX(-30%) translateY(-2px) rotate(-2deg); }
}
@keyframes yyt-shadow {
  0%,100% { opacity: 1; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
}
@keyframes yyt-cushion {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.9) translateY(2px); }
}

/* Scene 2: tense, sunlit – sharp shadows, faster animations */
.scn-young-york-asks-dagger {
  background:
    radial-gradient(ellipse at 60% 10%, #f0d8a0 0%, #d0b070 40%, transparent 70%),
    linear-gradient(180deg, #e8d4a0 0%, #c8a860 100%);
}
.scn-young-york-asks-dagger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #b8985a 0%, #8a7038 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-young-york-asks-dagger .wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #e8d0a0 0%, #d0b080 100%);
  border-bottom: 6px solid #a88a50;
}
.scn-young-york-asks-dagger .richard-d {
  position: absolute; bottom: 8%; left: 55%; width: 32px; height: 48px;
  background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: yyd-richard 0.8s step-start infinite;
}
.scn-young-york-asks-dagger .young-york-d {
  position: absolute; bottom: 8%; left: 30%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #7a2a2a 0%, #401010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yyd-york 1.2s ease-in-out infinite alternate;
}
.scn-young-york-asks-dagger .dagger {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 50%, #d0d0d0 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 0 6px rgba(255,255,200,.5);
  transform: rotate(15deg);
  animation: yyd-dagger 0.6s ease-in-out infinite alternate;
}
.scn-young-york-asks-dagger .belt {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 3px;
  animation: yyd-belt 1s ease-in-out infinite;
}
.scn-young-york-asks-dagger .shadow-d {
  position: absolute; bottom: 0%; left: 20%; width: 160px; height: 25px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.25) 0%, transparent 100%);
  animation: yyd-shadow 2s ease-in-out infinite alternate;
}
.scn-young-york-asks-dagger .pillar {
  position: absolute; bottom: 28%; left: 80%; width: 20px; height: 72%;
  background: linear-gradient(90deg, #b09870 0%, #d0b890 50%, #b09870 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,.1);
  animation: yyd-pillar 4s ease-in-out infinite;
}
@keyframes yyd-richard {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes yyd-york {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(-4px) translateY(-2px); }
}
@keyframes yyd-dagger {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-3px); }
}
@keyframes yyd-belt {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.8); }
}
@keyframes yyd-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 1; transform: scaleX(1.3); }
}
@keyframes yyd-pillar {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}

/* Scene 3: tense, sunlit – more angular, faster */
.scn-young-york-taunts {
  background:
    radial-gradient(ellipse at 40% 5%, #f5e0b0 0%, #d8b870 40%, transparent 70%),
    linear-gradient(180deg, #e8d0a0 0%, #c8a860 100%);
}
.scn-young-york-taunts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b09050 0%, #887030 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
}
.scn-young-york-taunts .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e0c890 0%, #c8a870 100%);
  border-bottom: 4px solid #9a8040;
}
.scn-young-york-taunts .richard-t {
  position: absolute; bottom: 5%; left: 60%; width: 30px; height: 46px;
  background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: yyt2-richard 0.6s steps(2) infinite;
}
.scn-young-york-taunts .young-york-t2 {
  position: absolute; bottom: 5%; left: 35%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #7a2a2a 0%, #401010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yyt2-york 1.4s ease-in-out infinite alternate;
}
.scn-young-york-taunts .sword {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #b0b0b0 0%, #d0d0d0 30%, #a0a0a0 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  box-shadow: 0 0 4px rgba(255,255,200,.3);
  animation: yyt2-sword 0.9s ease-in-out infinite alternate;
}
.scn-young-york-taunts .belt {
  position: absolute; bottom: 22%; left: 42%; width: 28px; height: 5px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
}
.scn-young-york-taunts .shadow-t2 {
  position: absolute; bottom: 0%; left: 25%; width: 140px; height: 18px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.2) 0%, transparent 100%);
  animation: yyt2-shadow 2.5s ease-in-out infinite alternate;
}
.scn-young-york-taunts .arch {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #b09870 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.2;
  animation: yyt2-arch 5s ease-in-out infinite;
}
@keyframes yyt2-richard {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(0) rotate(2deg); }
}
@keyframes yyt2-york {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(-5px) translateY(-3px); }
}
@keyframes yyt2-sword {
  0% { transform: rotate(-25deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(-2px); }
}
@keyframes yyt2-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  100% { opacity: 1; transform: scaleX(1.4); }
}
@keyframes yyt2-arch {
  0%,100% { opacity: 0.1; }
  50% { opacity: 0.3; }
}

/* Scene 4: tense, sunlit – slight overhead composition with mocking gesture */
.scn-prince-defends {
  background:
    radial-gradient(ellipse at 50% 15%, #fdeac8 0%, #dec088 40%, transparent 70%),
    linear-gradient(180deg, #ecdaa0 0%, #c8a860 100%);
}
.scn-prince-defends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8985a 0%, #8a7038 100%);
  border-radius: 25% 25% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
}
.scn-prince-defends .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #ecd8a0 0%, #d0b070 100%);
  border-bottom: 5px solid #a88a50;
}
.scn-prince-defends .prince {
  position: absolute; bottom: 5%; left: 45%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pd-prince 1.6s ease-in-out infinite alternate;
}
.scn-prince-defends .young-york-p {
  position: absolute; bottom: 3%; left: 30%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #7a2a2a 0%, #401010 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  animation: pd-york 0.8s ease-in-out infinite alternate;
}
.scn-prince-defends .richard-p {
  position: absolute; bottom: 3%; left: 58%; width: 30px; height: 46px;
  background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pd-richard 1s steps(2) infinite;
}
.scn-prince-defends .shadow-p {
  position: absolute; bottom: 0%; left: 20%; width: 160px; height: 15px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.2) 0%, transparent 100%);
}
.scn-prince-defends .column {
  position: absolute; bottom: 20%; left: 75%; width: 18px; height: 75%;
  background: linear-gradient(90deg, #b09870 0%, #d0b890 60%, #b09870 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,.1);
  animation: pd-column 3s ease-in-out infinite;
}
.scn-prince-defends .ape-shadow {
  position: absolute; bottom: 0%; left: 45%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.15) 0%, transparent 100%);
  animation: pd-ape 2s ease-in-out infinite alternate;
}
@keyframes pd-prince {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(-3px) translateY(-2px); }
}
@keyframes pd-york {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(4px) rotate(5deg); }
}
@keyframes pd-richard {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(0) rotate(2deg); }
}
@keyframes pd-column {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
}
@keyframes pd-ape {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(1.5); opacity: 0.3; }
}

/* Scene: margaret-warns-buckingham */
.scn-margaret-warns-buckingham {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0d0d1a 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-margaret-warns-buckingham .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(90deg, #3a2a2a 0%, #4a3a2a 50%, #3a2a2a 100%);
  border-bottom: 2px solid #5a4a3a;
}
.scn-margaret-warns-buckingham .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-margaret-warns-buckingham .figure-margaret {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: mwb-figure 6s ease-in-out infinite;
}
.scn-margaret-warns-buckingham .spider-web {
  position: absolute; top: 20%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  border: 1px solid rgba(200,180,140,0.2);
  border-radius: 50%;
  animation: mwb-web 12s linear infinite;
}
.scn-margaret-warns-buckingham .spider-body {
  position: absolute; top: 55%; left: 60%; width: 12px; height: 12px;
  background: #2a1a1a;
  border-radius: 50%;
  animation: mwb-spider 8s ease-in-out infinite;
}
.scn-margaret-warns-buckingham .candle {
  position: absolute; bottom: 40%; left: 25%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #d4a050 0%, #8a6020 100%);
  border-radius: 2px 2px 0 0;
}
.scn-margaret-warns-buckingham .candle-glow {
  position: absolute; bottom: 40%; left: 25%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  animation: mwb-glow 3s ease-in-out infinite alternate;
}
@keyframes mwb-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes mwb-web {
  0% { transform: rotate(0deg) scale(1); opacity: 0.3; }
  50% { transform: rotate(180deg) scale(1.1); opacity: 0.5; }
  100% { transform: rotate(360deg) scale(1); opacity: 0.3; }
}
@keyframes mwb-spider {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.2); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes mwb-glow {
  0% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.3); }
}

/* Scene: buckingham-dismisses */
.scn-buckingham-dismisses {
  background:
    linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 70% 50%, #6a5a4a 0%, transparent 50%);
}
.scn-buckingham-dismisses .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(90deg, #4a3a3a 0%, #5a4a4a 50%, #4a3a3a 100%);
}
.scn-buckingham-dismisses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-buckingham-dismisses .throne {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-buckingham-dismisses .figure-buckingham {
  position: absolute; bottom: 25%; left: 32%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bd-buck 4s ease-in-out infinite;
}
.scn-buckingham-dismisses .figure-margaret-kneeling {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bd-kneel 3s ease-in-out infinite alternate;
}
.scn-buckingham-dismisses .candelabra {
  position: absolute; bottom: 40%; left: 60%; width: 8px; height: 24px;
  background: #8a703a;
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.5);
  animation: bd-candelabra 5s ease-in-out infinite;
}
.scn-buckingham-dismisses .shadow {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: bd-shadow 6s ease-in-out infinite;
}
@keyframes bd-buck {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes bd-kneel {
  0% { transform: scaleY(1) translateY(0); }
  100% { transform: scaleY(0.8) translateY(5px); }
}
@keyframes bd-candelabra {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); }
  50% { opacity: 1; box-shadow: 0 0 16px 6px rgba(200,160,80,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); }
}
@keyframes bd-shadow {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.8; }
}

/* Scene: richard-scorns-margaret */
.scn-richard-scorns-margaret {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 40%, #0a0a2a 100%),
    radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 60%);
}
.scn-richard-scorns-margaret .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #3a2a2a 0%, #5a4a3a 50%, #3a2a2a 100%);
}
.scn-richard-scorns-margaret .dais {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-richard-scorns-margaret .figure-richard {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: rs-richard 5s ease-in-out infinite;
}
.scn-richard-scorns-margaret .figure-margaret-small {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rs-marg 4s ease-in-out infinite alternate;
}
.scn-richard-scorns-margaret .eagle {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  filter: blur(2px);
  animation: rs-eagle 20s linear infinite;
}
.scn-richard-scorns-margaret .light-ray {
  position: absolute; top: 0; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, transparent 100%);
  animation: rs-ray 8s ease-in-out infinite alternate;
}
.scn-richard-scorns-margaret .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
@keyframes rs-richard {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.1) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes rs-marg {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-5px) scaleY(0.9); }
}
@keyframes rs-eagle {
  0% { transform: translateX(-100px) rotate(10deg) scale(0.8); }
  50% { transform: translateX(0) rotate(0deg) scale(1); }
  100% { transform: translateX(100px) rotate(-10deg) scale(0.8); }
}
@keyframes rs-ray {
  0% { opacity: 0.3; transform: scaleY(1); }
  100% { opacity: 0.6; transform: scaleY(1.2); }
}

/* Scene: margaret-warns-buckingham-again */
.scn-margaret-warns-buckingham-again {
  background:
    linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-margaret-warns-buckingham-again .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(90deg, #4a3a3a 0%, #5a4a3a 50%, #4a3a3a 100%);
}
.scn-margaret-warns-buckingham-again .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-margaret-warns-buckingham-again .figure-margaret-left {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mwa-left 5s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham-again .figure-buckingham-right {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mwa-right 5s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham-again .handshake {
  position: absolute; bottom: 40%; left: 43%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: mwa-hand 4s ease-in-out infinite;
}
.scn-margaret-warns-buckingham-again .candle {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #d4a050 0%, #8a6020 100%);
  border-radius: 2px;
}
.scn-margaret-warns-buckingham-again .candle-glow {
  position: absolute; bottom: 40%; left: 48%; width: 50px; height: 50px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, transparent 70%);
  animation: mwa-glow 3s ease-in-out infinite alternate;
}
.scn-margaret-warns-buckingham-again .web-remnant {
  position: absolute; top: 20%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,140,0.1) 0%, transparent 70%);
  border: 1px solid rgba(200,180,140,0.1);
  border-radius: 50%;
  opacity: 0.3;
  animation: mwa-web 30s linear infinite;
}
@keyframes mwa-left {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(5px) translateY(-2px); }
}
@keyframes mwa-right {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(-5px) translateY(-2px); }
}
@keyframes mwa-hand {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes mwa-glow {
  0% { opacity: 0.4; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.2); }
}
@keyframes mwa-web {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Scene: richard-mocks-shore (sunlit, funny) */
.scn-richard-mocks-shore {
  background:
    linear-gradient(180deg, #ffe7b0 0%, #ffd080 30%, #c89650 70%, #8a6030 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-richard-mocks-shore .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, transparent 100%); }
.scn-richard-mocks-shore .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff4a0 0%, #ffd060 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,96,.6); animation: rms-sun 4s ease-in-out infinite alternate; }
.scn-richard-mocks-shore .dais { position:absolute; bottom:20%; left:50%; width:200px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c89650 0%, #a07030 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-richard-mocks-shore .figure-richard { position:absolute; bottom:27%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rms-bow 3s ease-in-out infinite; }
.scn-richard-mocks-shore .figure-lady { position:absolute; bottom:28%; right:40%; width:28px; height:65px; background: linear-gradient(180deg, #b87878 0%, #905050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rms-dance 2.5s ease-in-out infinite; }
.scn-richard-mocks-shore .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #c8553d 0%, #8a3020 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: rms-curtain 8s ease-in-out infinite; }
.scn-richard-mocks-shore .curtain-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #c8553d 0%, #8a3020 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); animation: rms-curtain 8s ease-in-out infinite reverse; }
.scn-richard-mocks-shore .rose { position:absolute; bottom:22%; left:55%; width:8px; height:10px; background: radial-gradient(circle at 50% 30%, #e06040 0%, #b03020 70%); border-radius: 50% 50% 40% 40%; animation: rms-rose 2s ease-in-out infinite; }
@keyframes rms-sun { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.2) translateY(-5px); opacity:1; } 100% { transform: scale(0.9) translateY(3px); opacity:0.85; } }
@keyframes rms-bow { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-15deg) translateY(4px); } 60% { transform: rotate(0deg) translateY(0); } 100% { transform: rotate(10deg) translateY(2px); } }
@keyframes rms-dance { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-5deg); } 50% { transform: translateX(-4px) rotate(5deg); } 75% { transform: translateX(6px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rms-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(10%); } 100% { transform: translateX(0); } }
@keyframes rms-rose { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.4) rotate(20deg); } 100% { transform: scale(1) rotate(-10deg); } }

/* Scene: brakenbury-withdraws (tense, sunlit) */
.scn-brakenbury-withdraws {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d0b080 40%, #a08050 70%, #605030 100%),
    radial-gradient(ellipse at 30% 70%, #c0a070 0%, transparent 60%);
}
.scn-brakenbury-withdraws .wall-bg { position:absolute; inset:0 30% 0 30%; background: linear-gradient(90deg, #b09870 0%, #c8b090 50%, #b09870 100%); clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); }
.scn-brakenbury-withdraws .shadow-hard { position:absolute; bottom:20%; left:35%; width:120px; height:200px; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: bw-shadow 5s ease-in-out infinite alternate; }
.scn-brakenbury-withdraws .figure-brakenbury { position:absolute; bottom:15%; left:35%; width:32px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bw-tense 2s ease-in-out infinite; }
.scn-brakenbury-withdraws .figure-duke { position:absolute; bottom:15%; right:35%; width:34px; height:82px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bw-tense 2s ease-in-out infinite reverse; }
.scn-brakenbury-withdraws .sword-hilt { position:absolute; bottom:35%; right:32%; width:4px; height:20px; background: linear-gradient(180deg, #c0a060 0%, #806030 100%); border-radius: 2px; box-shadow: 0 0 8px 2px rgba(192,160,96,.5); animation: bw-glint 1.5s ease-in-out infinite; }
.scn-brakenbury-withdraws .chain { position:absolute; bottom:40%; left:45%; width:30px; height:4px; background: repeating-linear-gradient(90deg, #a08050 0px, #a08050 4px, transparent 4px, transparent 8px); animation: bw-chain 3s ease-in-out infinite; }
@keyframes bw-shadow { 0% { transform: skewX(0deg) translateX(0); } 100% { transform: skewX(10deg) translateX(20px); } }
@keyframes bw-tense { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bw-glint { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.3; transform: scaleY(1); } }
@keyframes bw-chain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

/* Scene: clarence-farewell (tense, sunlit) */
.scn-clarence-farewell {
  background:
    linear-gradient(180deg, #d4a870 0%, #b08050 30%, #7a5030 60%, #4a2a10 100%),
    radial-gradient(ellipse at 80% 20%, #e0c080 0%, transparent 50%);
}
.scn-clarence-farewell .sky-gloom { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0a080 0%, #908060 40%, transparent 100%); }
.scn-clarence-farewell .road { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #7a5030 0%, #5a3010 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); }
.scn-clarence-farewell .figure-clarence { position:absolute; bottom:25%; left:30%; width:30px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-walk 4s ease-in-out infinite; }
.scn-clarence-farewell .figure-gloster { position:absolute; bottom:25%; right:30%; width:32px; height:78px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-stand 3s ease-in-out infinite; }
.scn-clarence-farewell .crown-shadow { position:absolute; bottom:40%; left:45%; width:20px; height:15px; background: radial-gradient(ellipse, #c0a060 0%, #806030 100%); border-radius: 50%; filter: blur(3px); animation: cf-crown 5s ease-in-out infinite; }
.scn-clarence-farewell .bird-flee { position:absolute; top:15%; left:10%; width:12px; height:8px; background: radial-gradient(ellipse, #4a3a2a 0%, transparent 80%); animation: cf-bird 8s linear infinite; }
@keyframes cf-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(15px) rotate(2deg) scaleX(0.95); } 50% { transform: translateX(30px) rotate(0deg) scaleX(1); } 75% { transform: translateX(45px) rotate(-2deg) scaleX(0.95); } 100% { transform: translateX(60px) rotate(0deg); } }
@keyframes cf-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cf-crown { 0% { transform: scale(1) translateY(0); opacity:0.6; } 50% { transform: scale(1.2) translateY(-10px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:0.6; } }
@keyframes cf-bird { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20vw) translateY(-30px); } 100% { transform: translateX(40vw) translateY(0); } }

/* Scene: hastings-arrival (calm, sunlit) */
.scn-hastings-arrival {
  background:
    linear-gradient(180deg, #f5e8c8 0%, #e0d0a0 40%, #b8a070 70%, #806040 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-hastings-arrival .sky-calm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b0d0f0 0%, #d0e8ff 40%, transparent 100%); }
.scn-hastings-arrival .ground { position:absolute; bottom:15%; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 60% 0 0; }
.scn-hastings-arrival .figure-hastings { position:absolute; bottom:20%; left:30%; width:30px; height:72px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-approach 6s ease-in-out infinite; }
.scn-hastings-arrival .figure-chamberlain { position:absolute; bottom:20%; right:30%; width:30px; height:72px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-greet 4s ease-in-out infinite; }
.scn-hastings-arrival .gate-arch { position:absolute; bottom:22%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #a08050 0%, #806030 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; }
.scn-hastings-arrival .tree { position:absolute; bottom:25%; right:15%; width:10px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20%; transform-origin: bottom center; animation: ha-tree 8s ease-in-out infinite; }
.scn-hastings-arrival .cloud-drift { position:absolute; top:12%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(5px); animation: ha-cloud 30s linear infinite; }
@keyframes ha-approach { 0% { transform: translateX(-20px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(-20px) rotate(0deg); } }
@keyframes ha-greet { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ha-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes ha-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-margaret-banished {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #6a3a1a 40%, #4a2a0a 100%),
    radial-gradient(ellipse at 50% 80%, #8a5a2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-margaret-banished .ma1-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  opacity: 0.6; animation: ma1-bg-pulse 8s ease-in-out infinite alternate;
}
.scn-margaret-banished .ma1-wall {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a2a0a 0%, #3a1a0a 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-margaret-banished .ma1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-margaret-banished .ma1-window {
  position: absolute; bottom: 45%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%); background: radial-gradient(circle, #d09040 0%, #a06020 70%);
  border-radius: 10% 10% 5% 5%; border: 4px solid #3a1a0a;
  box-shadow: 0 0 30px 10px #a06020, 0 0 60px 20px rgba(160,96,32,0.5);
  animation: ma1-window-glow 4s ease-in-out infinite alternate;
}
.scn-margaret-banished .ma1-figure {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ma1-figure-bow 5s ease-in-out infinite;
}
.scn-margaret-banished .ma1-candle {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 20%; box-shadow: 0 0 8px 2px #f0d080, 0 0 16px 6px rgba(240,208,128,0.4);
  animation: ma1-candle-flicker 0.5s ease-in-out infinite alternate;
}
.scn-margaret-banished .ma1-shadow {
  position: absolute; bottom: 30%; left: 28%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: ma1-shadow-sway 5s ease-in-out infinite;
}
@keyframes ma1-bg-pulse { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes ma1-window-glow { 0% { box-shadow: 0 0 20px 5px #a06020, 0 0 40px 10px rgba(160,96,32,0.3) } 50% { box-shadow: 0 0 40px 15px #d09040, 0 0 80px 30px rgba(208,144,64,0.5) } 100% { box-shadow: 0 0 25px 8px #a06020, 0 0 50px 15px rgba(160,96,32,0.4) } }
@keyframes ma1-figure-bow { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ma1-candle-flicker { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1.1) } }
@keyframes ma1-shadow-sway { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(2px) scaleX(1.1) } 100% { transform: translateX(-2px) scaleX(0.9) } }

.scn-derby-margaret {
  background:
    linear-gradient(180deg, #4a1a0a 0%, #7a3a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #9a5a2a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-derby-margaret .ma2-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a0a00 0%, #1a0000 100%);
  opacity: 0.7; animation: ma2-bg-flash 6s ease-in-out infinite alternate;
}
.scn-derby-margaret .ma2-table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-derby-margaret .ma2-figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ma2-figure-left 4s ease-in-out infinite;
}
.scn-derby-margaret .ma2-figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ma2-figure-right 4.5s ease-in-out infinite;
}
.scn-derby-margaret .ma2-lamp {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 16px;
  transform: translateX(-50%); background: radial-gradient(circle, #f0c060 0%, #c08020 70%);
  border-radius: 40%; box-shadow: 0 0 20px 6px #c08020, 0 0 40px 12px rgba(192,128,32,0.4);
  animation: ma2-lamp-flicker 0.8s ease-in-out infinite alternate;
}
.scn-derby-margaret .ma2-shadow-left {
  position: absolute; bottom: 25%; left: 18%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(3px);
  animation: ma2-shadow-sway 4s ease-in-out infinite;
}
.scn-derby-margaret .ma2-shadow-right {
  position: absolute; bottom: 25%; right: 18%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(3px);
  animation: ma2-shadow-sway 4.5s ease-in-out infinite reverse;
}
@keyframes ma2-bg-flash { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.65 } }
@keyframes ma2-figure-left { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(3deg) } 60% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ma2-figure-right { 0% { transform: translateX(0) rotate(0deg) } 40% { transform: translateX(-10px) rotate(-4deg) } 70% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ma2-lamp-flicker { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.85) } 100% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes ma2-shadow-sway { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(1.1) } 100% { transform: translateX(-4px) scaleX(0.9) } }

.scn-margaret-laments-rutland {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 90%, #7a4a2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-margaret-laments-rutland .ma3-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  opacity: 0.5; animation: ma3-bg-sigh 10s ease-in-out infinite alternate;
}
.scn-margaret-laments-rutland .ma3-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
}
.scn-margaret-laments-rutland .ma3-figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ma3-figure-kneel 7s ease-in-out infinite;
}
.scn-margaret-laments-rutland .ma3-child {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: ma3-child-tilt 7s ease-in-out infinite;
}
.scn-margaret-laments-rutland .ma3-candle {
  position: absolute; bottom: 32%; left: 30%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0c060 0%, #b08030 100%);
  border-radius: 10%; box-shadow: 0 0 12px 4px #b08030, 0 0 24px 8px rgba(176,128,48,0.3);
  animation: ma3-candle-flicker 0.6s ease-in-out infinite alternate;
}
.scn-margaret-laments-rutland .ma3-tear {
  position: absolute; bottom: 35%; left: 38%; width: 4px; height: 6px;
  background: radial-gradient(circle, #d0c080 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 6px 2px #d0c080;
  animation: ma3-tear-fall 4s ease-in-out infinite;
}
.scn-margaret-laments-rutland .ma3-tear:last-child {
  left: 42%; animation-delay: 0.5s;
}
@keyframes ma3-bg-sigh { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.45 } }
@keyframes ma3-figure-kneel { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(-1deg) } 60% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ma3-child-tilt { 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 ma3-candle-flicker { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.85) } 100% { transform: scaleY(1.1) } }
@keyframes ma3-tear-fall { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(10px) scale(0.5); opacity: 0.6 } 100% { transform: translateY(20px) scale(0.2); opacity: 0 } }

.scn-margaret-curses-all {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #6a3a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-margaret-curses-all .ma4-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  opacity: 0.65; animation: ma4-bg-swirl 9s ease-in-out infinite alternate;
}
.scn-margaret-curses-all .ma4-throne {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
}
.scn-margaret-curses-all .ma4-figure {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ma4-figure-reach 6s ease-in-out infinite;
}
.scn-margaret-curses-all .ma4-arms {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 20px;
  transform: translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: ma4-arms-throw 6s ease-in-out infinite;
}
.scn-margaret-curses-all .ma4-shadows {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, rgba(0,0,0,0.5) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 50%, rgba(0,0,0,0.5) 0%, transparent 60%);
  filter: blur(10px); animation: ma4-shadows-pulse 8s ease-in-out infinite alternate;
}
.scn-margaret-curses-all .ma4-light {
  position: absolute; top: 20%; left: 50%; width: 10px; height: 10px;
  transform: translateX(-50%); background: radial-gradient(circle, #f0c060 0%, #c08020 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08020, 0 0 60px 20px rgba(192,128,32,0.3);
  animation: ma4-light-pulse 4s ease-in-out infinite alternate;
}
@keyframes ma4-bg-swirl { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.55 } }
@keyframes ma4-figure-reach { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(-5deg) translateY(-5px) } 60% { transform: translateX(-50%) rotate(5deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ma4-arms-throw { 0% { transform: translateX(-50%) rotate(-10deg) scale(1) } 50% { transform: translateX(-50%) rotate(15deg) scale(1.2) } 100% { transform: translateX(-50%) rotate(-10deg) scale(1) } }
@keyframes ma4-shadows-pulse { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes ma4-light-pulse { 0% { box-shadow: 0 0 20px 5px #c08020, 0 0 40px 10px rgba(192,128,32,0.3) } 50% { box-shadow: 0 0 40px 15px #f0c060, 0 0 80px 30px rgba(240,192,96,0.5) } 100% { box-shadow: 0 0 25px 8px #c08020, 0 0 50px 15px rgba(192,128,32,0.4) } }

.scn-richard-hints {
  background: linear-gradient(180deg, #d4c4a8 0%, #a88a6a 60%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-richard-hints .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b89878 0%, #a08060 100%); }
.scn-richard-hints .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); }
.scn-richard-hints .window { position:absolute; top:12%; left:20%; width:20%; height:30%; background: radial-gradient(circle at 50% 30%, #fff0d0 0%, #d0b090 70%); border-radius:4px; box-shadow: inset 0 0 20px #c8a880, 0 0 30px #c8a880; animation: rh-window 8s ease-in-out infinite alternate; }
.scn-richard-hints .table { position:absolute; bottom:26%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius:6px; }
.scn-richard-hints .figure-richard { position:absolute; bottom:28%; left:40%; width:12%; height:36%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rh-fig-r 5s ease-in-out infinite; }
.scn-richard-hints .figure-buckingham { position:absolute; bottom:28%; right:35%; width:11%; height:34%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rh-fig-b 6s ease-in-out infinite; }
.scn-richard-hints .candle { position:absolute; bottom:32%; left:48%; width:2%; height:6%; background: linear-gradient(180deg, #f0d080 0%, #c09040 100%); border-radius:2px; box-shadow: 0 0 20px 6px #f0d080; animation: rh-candle 2s ease-in-out infinite alternate; }
.scn-richard-hints .shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: rh-shadow 8s ease-in-out infinite; }
@keyframes rh-window { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.75; transform: scaleY(0.98); } }
@keyframes rh-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rh-fig-b { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rh-candle { 0% { transform: scaleX(1) scaleY(1); opacity:0.8; } 50% { transform: scaleX(0.95) scaleY(1.2); opacity:1; } 100% { transform: scaleX(1) scaleY(1); opacity:0.85; } }
@keyframes rh-shadow { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }

.scn-richard-says-plainly {
  background: linear-gradient(180deg, #c8b090 0%, #9a7a5a 50%, #6a4a2a 100%),
              radial-gradient(ellipse at 60% 40%, #f0d8b8 0%, transparent 50%);
}
.scn-richard-says-plainly .bg { position:absolute; inset:0; background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%); }
.scn-richard-says-plainly .chair { position:absolute; bottom:20%; left:45%; width:18%; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
.scn-richard-says-plainly .figure { position:absolute; bottom:22%; left:48%; width:12%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rsp-fig 3s ease-in-out infinite; }
.scn-richard-says-plainly .goblet { position:absolute; bottom:30%; left:52%; width:4%; height:10%; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: rsp-goblet 4s ease-in-out infinite; }
.scn-richard-says-plainly .candle { position:absolute; bottom:34%; left:42%; width:2%; height:8%; background: linear-gradient(180deg, #f0d080 0%, #c09040 100%); border-radius:2px; box-shadow: 0 0 20px 6px #f0d080; animation: rsp-candle 2s ease-in-out infinite alternate; }
.scn-richard-says-plainly .shadow { position:absolute; bottom:0; left:0; right:0; height:80%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.35) 0%, transparent 70%); }
.scn-richard-says-plainly .light-beam { position:absolute; top:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(240,216,184,0.3) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: rsp-beam 5s ease-in-out infinite; }
@keyframes rsp-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rsp-goblet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rsp-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.3); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.85; } }
@keyframes rsp-beam { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-buckingham-hedges {
  background: linear-gradient(180deg, #b8a080 0%, #907050 50%, #604030 100%),
              radial-gradient(ellipse at 40% 50%, #e0c8a8 0%, transparent 40%);
}
.scn-buckingham-hedges .bg { position:absolute; inset:0; background: linear-gradient(90deg, #8a6a4a 0%, #7a5a3a 50%, #6a4a2a 100%); }
.scn-buckingham-hedges .door-frame { position:absolute; top:10%; left:30%; width:40%; height:80%; border: 6px solid #5a3a2a; border-radius: 20% 20% 0 0; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); animation: bh-door 8s ease-in-out infinite; }
.scn-buckingham-hedges .figure-richard { position:absolute; bottom:20%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bh-r 3s ease-in-out infinite; }
.scn-buckingham-hedges .figure-buckingham { position:absolute; bottom:22%; right:38%; width:11%; height:36%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bh-b 5s ease-in-out infinite; }
.scn-buckingham-hedges .light-slash { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(240,216,184,0.2) 0%, transparent 50%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: bh-slash 7s ease-in-out infinite; }
.scn-buckingham-hedges .shadow { position:absolute; bottom:0; left:0; right:0; height:70%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%); }
@keyframes bh-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes bh-r { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-4px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bh-b { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(3px) rotate(1deg); } 70% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bh-slash { 0% { opacity:0.1; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

.scn-page-suggests-tyrrel {
  background: linear-gradient(180deg, #c8b090 0%, #a08060 50%, #705040 100%),
              radial-gradient(ellipse at 50% 30%, #f0d8b8 0%, transparent 50%);
}
.scn-page-suggests-tyrrel .bg { position:absolute; inset:0; background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%); }
.scn-page-suggests-tyrrel .chair { position:absolute; bottom:20%; left:40%; width:15%; height:22%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 15% 15% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-page-suggests-tyrrel .figure-richard { position:absolute; bottom:22%; left:42%; width:12%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pst-r 4s ease-in-out infinite; }
.scn-page-suggests-tyrrel .figure-page { position:absolute; bottom:24%; right:30%; width:9%; height:34%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pst-p 5s ease-in-out infinite; }
.scn-page-suggests-tyrrel .pointing-arm { position:absolute; bottom:32%; right:38%; width:8%; height:4%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); transform-origin: bottom center; animation: pst-arm 3s ease-in-out infinite alternate; }
.scn-page-suggests-tyrrel .candle { position:absolute; bottom:34%; left:34%; width:2%; height:8%; background: linear-gradient(180deg, #f0d080 0%, #c09040 100%); border-radius:2px; box-shadow: 0 0 20px 6px #f0d080; animation: pst-candle 2s ease-in-out infinite alternate; }
.scn-page-suggests-tyrrel .shadow { position:absolute; bottom:0; left:0; right:0; height:70%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%); }
@keyframes pst-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pst-p { 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 pst-arm { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.1); } 100% { transform: rotate(15deg) scaleX(1); } }
@keyframes pst-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.85; } }

.scn-richmond-prays {
  background: 
    linear-gradient(180deg, #0b0b1a 0%, #1a152b 40%, #2a1f3a 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, transparent 70%);
}
.scn-richmond-prays .bg-vault {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 0%, #1a152b 20%, transparent 60%);
  animation: rp-vault 12s ease-in-out infinite alternate;
}
.scn-richmond-prays .pillar-left,
.scn-richmond-prays .pillar-right {
  position: absolute; bottom: 0; width: 18px; height: 60%;
  background: linear-gradient(180deg, #2a1f3a 0%, #0b0b1a 100%);
  border-radius: 6px 6px 0 0;
}
.scn-richmond-prays .pillar-left { left: 15%; }
.scn-richmond-prays .pillar-right { right: 15%; }
.scn-richmond-prays .arch {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, transparent 40%, #2a1f3a 41%, #0b0b1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: rp-arch 8s ease-in-out infinite alternate;
}
.scn-richmond-prays .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a152b 0%, #0b0b1a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-richmond-prays .kneeling-figure {
  position: absolute; bottom: 12%; left: 45%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #0b0b1a 0%, #1a152b 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-kneel 6s ease-in-out infinite;
}
.scn-richmond-prays .light-shaft {
  position: absolute; top: 0; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(180,150,200,.15) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: rp-shaft 10s ease-in-out infinite alternate;
}
.scn-richmond-prays .altar-candle {
  position: absolute; bottom: 16%; left: 48%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b09040 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.6), 0 0 40px 12px rgba(200,160,80,.3);
  animation: rp-candle 3s ease-in-out infinite alternate;
}
@keyframes rp-vault { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes rp-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes rp-kneel { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes rp-shaft { 0% { opacity: .2; transform: scaleX(.9) } 50% { opacity: .5; transform: scaleX(1.1) } 100% { opacity: .3; transform: scaleX(1) } }
@keyframes rp-candle { 0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: .85; transform: scaleY(.95) } }

.scn-ghost-of-edward {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 60%, #1a2a3a 0%, transparent 70%);
}
.scn-ghost-of-edward .bg-night {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 70%);
  animation: ge-night 20s ease-in-out infinite alternate;
}
.scn-ghost-of-edward .ghost-body {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, rgba(160,180,200,.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: ge-float 7s ease-in-out infinite;
}
.scn-ghost-of-edward .ghost-crown {
  position: absolute; bottom: 76%; left: 46%; width: 18px; height: 12px;
  background: radial-gradient(ellipse, rgba(200,210,230,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ge-crown 5s ease-in-out infinite alternate;
}
.scn-ghost-of-edward .ghost-chain {
  position: absolute; bottom: 35%; left: 42%; width: 16px; height: 30px;
  background: repeating-linear-gradient(0deg, rgba(180,200,220,.2) 0px, transparent 4px, transparent 8px);
  border-radius: 2px;
  animation: ge-chain 4s ease-in-out infinite;
}
.scn-ghost-of-edward .ghost-mist {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse, rgba(200,210,230,.1) 0%, transparent 70%);
  filter: blur(10px);
  animation: ge-mist 15s ease-in-out infinite alternate;
}
.scn-ghost-of-edward .dark-throne {
  position: absolute; bottom: 0; left: 35%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.8);
}
@keyframes ge-night { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes ge-float { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(2deg) } }
@keyframes ge-crown { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(.95) } }
@keyframes ge-chain { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes ge-mist { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }

.scn-ghost-of-henry {
  background: 
    linear-gradient(180deg, #0a0a10 0%, #151520 40%, #222233 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 60%);
}
.scn-ghost-of-henry .bg-abyss {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 80%);
  animation: gh-abyss 18s ease-in-out infinite alternate;
}
.scn-ghost-of-henry .ghost-harry {
  position: absolute; bottom: 22%; left: 38%; width: 44px; height: 72px;
  background: linear-gradient(180deg, rgba(180,200,220,.25) 0%, rgba(140,160,180,.1) 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  filter: blur(2px);
  animation: gh-float 8s ease-in-out infinite;
}
.scn-ghost-of-henry .hole {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 50%, transparent 70%);
  border-radius: 50%;
  animation: gh-hole 4s ease-in-out infinite alternate;
}
.scn-ghost-of-henry .hole-1 { bottom: 55%; left: 42%; animation-delay: 0s; }
.scn-ghost-of-henry .hole-2 { bottom: 50%; left: 52%; animation-delay: 1s; }
.scn-ghost-of-henry .hole-3 { bottom: 35%; left: 46%; animation-delay: 2s; }
.scn-ghost-of-henry .hole-4 { bottom: 60%; left: 48%; animation-delay: .5s; }
.scn-ghost-of-henry .blood-drip {
  position: absolute; bottom: 20%; left: 44%; width: 2px; height: 30px;
  background: linear-gradient(180deg, transparent, rgba(120,30,30,.4) 100%);
  border-radius: 1px;
  animation: gh-drip 6s ease-in-out infinite;
}
@keyframes gh-abyss { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes gh-float { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-6px) rotate(1deg) } }
@keyframes gh-hole { 0% { transform: scale(1); opacity: .5 } 50% { transform: scale(1.5); opacity: .8 } 100% { transform: scale(.8); opacity: .3 } }
@keyframes gh-drip { 0%,100% { opacity: .2; transform: scaleY(1) } 50% { opacity: .6; transform: scaleY(1.2) } }

.scn-ghost-of-clarence {
  background: 
    linear-gradient(180deg, #050510 0%, #0f0f20 40%, #1a1a30 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 70%);
}
.scn-ghost-of-clarence .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #1a1a3a 0%, transparent 80%);
  animation: gc-deep 20s ease-in-out infinite alternate;
}
.scn-ghost-of-clarence .ghost-clarence {
  position: absolute; bottom: 18%; left: 36%; width: 46px; height: 76px;
  background: linear-gradient(180deg, rgba(180,200,230,.2) 0%, rgba(140,180,220,.1) 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  filter: blur(4px);
  animation: gc-float 9s ease-in-out infinite;
}
.scn-ghost-of-clarence .water-wash {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(180,200,230,.15) 100%);
  border-radius: 40% 60% 0 0;
  animation: gc-wash 7s ease-in-out infinite alternate;
}
.scn-ghost-of-clarence .bubble {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(200,220,255,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: gc-bubble 5s ease-in-out infinite;
}
.scn-ghost-of-clarence .bubble-1 { bottom: 60%; left: 30%; animation-delay: 0s; }
.scn-ghost-of-clarence .bubble-2 { bottom: 50%; left: 55%; animation-delay: 2s; }
.scn-ghost-of-clarence .wine-stain {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60,20,40,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: gc-stain 12s ease-in-out infinite;
}
.scn-ghost-of-clarence .mist-flow {
  position: absolute; bottom: 30%; left: 0; width: 100%; height: 50%;
  background: linear-gradient(90deg, transparent, rgba(180,200,230,.05) 50%, transparent);
  filter: blur(8px);
  animation: gc-mist 15s ease-in-out infinite alternate;
}
@keyframes gc-deep { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes gc-float { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-7px) rotate(2deg) } }
@keyframes gc-wash { 0% { transform: scaleY(.8); opacity: .4 } 50% { transform: scaleY(1.1); opacity: .7 } 100% { transform: scaleY(.9); opacity: .5 } }
@keyframes gc-bubble { 0%,100% { transform: translateY(0) scale(1); opacity: .3 } 50% { transform: translateY(-10px) scale(1.3); opacity: .7 } }
@keyframes gc-stain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes gc-mist { 0% { transform: translateX(-10px) } 100% { transform: translateX(10px) } }

/* dorset-warned */
.scn-dorset-warned {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2e 40%, #1c1628 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-dorset-warned .bg { position:absolute; inset:0; background:inherit; opacity:.6; }
.scn-dorset-warned .wall { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #2a1e2e 0%, #1a1423 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-dorset-warned .door { position:absolute; bottom:15%; left:20%; width:35%; height:70%; background: linear-gradient(180deg, #3a2a3a 0%, #1c1628 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); transform-origin: left bottom; animation: dw-door 8s ease-in-out infinite alternate; }
.scn-dorset-warned .figure-main { position:absolute; bottom:20%; left:45%; width:18%; height:45%; background: linear-gradient(180deg, #2a1e2e 0%, #0e0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -5px 0 15px rgba(0,0,0,.4); transform-origin: bottom center; animation: dw-figure 6s ease-in-out infinite; }
.scn-dorset-warned .figure-shadow { position:absolute; bottom:18%; left:35%; width:14%; height:40%; background: linear-gradient(180deg, #1a1423 0%, #08040a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.5; transform-origin: bottom center; animation: dw-shadow 6s ease-in-out infinite alternate; }
.scn-dorset-warned .candle { position:absolute; bottom:28%; left:60%; width:4%; height:10%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 70%, #5e1a1d 100%); border-radius: 50%/20% 20% 40% 40%; box-shadow: 0 0 20px 8px rgba(200,85,61,.5), 0 0 40px 16px rgba(200,85,61,.2); animation: dw-candle 3s ease-in-out infinite alternate; }
@keyframes dw-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95) rotateY(2deg); } 100% { transform: scaleX(1); } }
@keyframes dw-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(-2deg); } 66% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dw-shadow { 0% { opacity:.4; transform: scaleX(.9); } 50% { opacity:.6; transform: scaleX(1); } 100% { opacity:.4; transform: scaleX(.9); } }
@keyframes dw-candle { 0% { box-shadow: 0 0 15px 5px rgba(200,85,61,.4); } 50% { box-shadow: 0 0 30px 12px rgba(200,85,61,.7); } 100% { box-shadow: 0 0 20px 8px rgba(200,85,61,.5); } }

/* derby-advises-flight */
.scn-derby-advises-flight {
  background: linear-gradient(180deg, #1a1a2e 0%, #16162a 40%, #120e1e 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, transparent 80%);
}
.scn-derby-advises-flight .bg { position:absolute; inset:0; background:inherit; opacity:.5; }
.scn-derby-advises-flight .wall { position:absolute; inset:5% 10% 10% 10%; background: linear-gradient(135deg, #1e1e32 0%, #121020 100%); border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-derby-advises-flight .window { position:absolute; top:10%; right:15%; width:30%; height:40%; background: linear-gradient(180deg, #1a2040 0%, #2a3050 100%); border-radius: 10px; box-shadow: 0 0 20px rgba(0,20,80,.3); animation: da-window 12s ease-in-out infinite alternate; }
.scn-derby-advises-flight .curtain-left { position:absolute; top:10%; right:40%; width:10%; height:45%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius: 0 40% 40% 0 / 20%; transform-origin: top right; animation: da-curtain-l 10s ease-in-out infinite alternate; }
.scn-derby-advises-flight .curtain-right { position:absolute; top:10%; right:8%; width:10%; height:45%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius: 40% 0 0 40% / 20%; transform-origin: top left; animation: da-curtain-r 12s ease-in-out infinite alternate; }
.scn-derby-advises-flight .desk { position:absolute; bottom:10%; left:15%; width:50%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-derby-advises-flight .figure { position:absolute; bottom:12%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -4px 0 12px rgba(0,0,0,.4); transform-origin: bottom center; animation: da-figure 8s ease-in-out infinite; }
.scn-derby-advises-flight .letter { position:absolute; bottom:14%; left:45%; width:10%; height:6%; background: linear-gradient(135deg, #b87878 0%, #8a5a5a 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 1px 1px 4px rgba(0,0,0,.4); animation: da-letter 5s ease-in-out infinite alternate; }
@keyframes da-window { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes da-curtain-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(0deg); } }
@keyframes da-curtain-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(0deg); } }
@keyframes da-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 da-letter { 0% { transform: rotate(-10deg) translateY(0); opacity:.8; } 50% { transform: rotate(-5deg) translateY(-3px); opacity:1; } 100% { transform: rotate(-10deg) translateY(0); opacity:.8; } }

/* anne-consents-to-crown */
.scn-anne-consents-to-crown {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #120a18 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-anne-consents-to-crown .bg { position:absolute; inset:0; background:inherit; opacity:.5; }
.scn-anne-consents-to-crown .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a30 0%, #120a18 100%); border-radius: 20% 20% 0 0; }
.scn-anne-consents-to-crown .cushion { position:absolute; bottom:18%; left:50%; width:40%; height:12%; transform: translateX(-50%); background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ac-cushion 7s ease-in-out infinite alternate; }
.scn-anne-consents-to-crown .crown { position:absolute; bottom:28%; left:50%; width:30%; height:12%; transform: translateX(-50%); background: linear-gradient(135deg, #c0a060 0%, #806030 50%, #c0a060 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,160,96,.4), 0 0 60px 20px rgba(192,160,96,.2); clip-path: polygon(10% 100%, 0% 40%, 20% 30%, 30% 0%, 50% 10%, 70% 0%, 80% 30%, 100% 40%, 90% 100%); animation: ac-crown 4s ease-in-out infinite alternate; }
.scn-anne-consents-to-crown .hand { position:absolute; bottom:30%; left:30%; width:10%; height:15%; background: radial-gradient(ellipse at 50% 80%, #b87878 0%, #5a3a3a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: bottom center; animation: ac-hand 6s ease-in-out infinite; }
.scn-anne-consents-to-crown .figure { position:absolute; bottom:15%; left:20%; width:25%; height:55%; background: linear-gradient(180deg, #2a1a30 0%, #120a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -5px 0 15px rgba(0,0,0,.5); transform-origin: bottom center; animation: ac-figure 8s ease-in-out infinite alternate; }
@keyframes ac-cushion { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ac-crown { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.03); } 100% { transform: translateX(-50%) rotate(-2deg) scale(1); } }
@keyframes ac-hand { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(10deg); } 66% { transform: translateX(-5px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ac-figure { 0% { transform: translateX(-5px); opacity:.9; } 50% { transform: translateX(5px); opacity:1; } 100% { transform: translateX(-5px); opacity:.9; } }

/* anne-recalls-curses */
.scn-anne-recalls-curses {
  background: linear-gradient(180deg, #0a0810 0%, #1a1220 40%, #0a0810 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a30 0%, transparent 80%);
}
.scn-anne-recalls-curses .bg { position:absolute; inset:0; background:inherit; opacity:.4; }
.scn-anne-recalls-curses .wall { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #1a1220 0%, #0a0810 100%); border-radius: 6px; box-shadow: inset 0 0 50px rgba(0,0,0,.8); }
.scn-anne-recalls-curses .shroud { position:absolute; bottom:10%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.6); opacity:.7; animation: ar-shroud 10s ease-in-out infinite alternate; }
.scn-anne-recalls-curses .bloodstain { position:absolute; bottom:40%; left:40%; width:20%; height:8%; background: radial-gradient(ellipse, #5e1a1d 0%, #3a0e10 60%, transparent 100%); border-radius: 50%; opacity:.6; animation: ar-blood 8s ease-in-out infinite; }
.scn-anne-recalls-curses .figure { position:absolute; bottom:15%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #1a1220 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -4px 0 12px rgba(0,0,0,.5); transform-origin: bottom center; animation: ar-figure 12s ease-in-out infinite; }
.scn-anne-recalls-curses .hand { position:absolute; bottom:30%; left:35%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 80%, #b87878 0%, #4a2a2a 100%); border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%; transform-origin: bottom center; animation: ar-hand 6s ease-in-out infinite alternate; }
.scn-anne-recalls-curses .teardrop { position:absolute; bottom:60%; left:25%; width:3%; height:5%; background: radial-gradient(ellipse, #8a8aba 0%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; opacity:.5; animation: ar-tear 4s ease-in-out infinite; }
@keyframes ar-shroud { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes ar-blood { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.4; transform: scale(1); } }
@keyframes ar-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ar-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ar-tear { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-10px) scale(1.3); opacity:.7; } 100% { transform: translateY(0) scale(1); opacity:.3; } }

.scn-margaret-curses-rivers {
  background: 
    linear-gradient(135deg, #2a1e1e 0%, #3a2a2a 40%, #4a3a3a 100%),
    radial-gradient(circle at 70% 50%, #5a4a3a 0%, transparent 60%);
}
.scn-margaret-curses-rivers .interior-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1e1e 100%);
}
.scn-margaret-curses-rivers .wall {
  position: absolute; inset: 20% 0 30% 0; left: 10%; right: 10%;
  background: linear-gradient(90deg, #4a3a3a 0%, #5a4a3a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-margaret-curses-rivers .window {
  position: absolute; top: 25%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #6a5a4a 0%, #8a7a6a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(200,180,160,0.3), 0 0 40px rgba(200,180,160,0.1);
  animation: s1-window 6s ease-in-out infinite;
}
.scn-margaret-curses-rivers .figure-margaret {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #1a1212 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 3s ease-in-out infinite alternate;
}
.scn-margaret-curses-rivers .table {
  position: absolute; bottom: 22%; right: 25%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-margaret-curses-rivers .candle {
  position: absolute; bottom: 40%; right: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: s1-candle 2s ease-in-out infinite;
}
.scn-margaret-curses-rivers .candle-glow {
  position: absolute; bottom: 38%; right: 34%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: s1-candle-glow 2s ease-in-out infinite;
}
.scn-margaret-curses-rivers .shadow {
  position: absolute; bottom: 20%; right: 15%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: s1-shadow 3s ease-in-out infinite alternate;
}
@keyframes s1-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes s1-figure { 0% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-4px) rotate(2deg); } }
@keyframes s1-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes s1-candle-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes s1-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 100% { opacity: 0.7; transform: scaleX(1.1); } }

.scn-margaret-curses-richard {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(circle at 30% 50%, #4a4a5e 0%, transparent 70%);
}
.scn-margaret-curses-richard .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-margaret-curses-richard .wall {
  position: absolute; inset: 10% 0 30% 0; left: 5%; right: 5%;
  background: linear-gradient(90deg, #3a3a4e 0%, #4a4a5e 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-margaret-curses-richard .light-ray {
  position: absolute; top: 15%; left: 30%; width: 4px; height: 60%;
  background: linear-gradient(135deg, rgba(200,200,220,0.3) 0%, transparent 100%);
  transform: rotate(-15deg);
  transform-origin: top left;
  animation: s2-ray 4s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard .figure-margaret {
  position: absolute; bottom: 25%; left: 25%; width: 55px; height: 130px;
  background: radial-gradient(ellipse at 50% 50%, #1a1212 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure 2.5s ease-in-out infinite;
}
.scn-margaret-curses-richard .figure-richard {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-richard 3s ease-in-out infinite;
}
.scn-margaret-curses-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-margaret-curses-richard .shadow-richard {
  position: absolute; bottom: 18%; right: 15%; width: 70px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: s2-shadow 3s ease-in-out infinite;
}
@keyframes s2-ray { 0% { opacity: 0.1; transform: rotate(-15deg) scaleY(0.8); } 100% { opacity: 0.4; transform: rotate(-10deg) scaleY(1.2); } }
@keyframes s2-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes s2-richard { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes s2-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-queen-elizabeth-sad {
  background: 
    linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%),
    radial-gradient(circle at 70% 30%, #5a5a6a 0%, transparent 70%);
}
.scn-queen-elizabeth-sad .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
}
.scn-queen-elizabeth-sad .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: s3-throne 5s ease-in-out infinite;
}
.scn-queen-elizabeth-sad .figure-queen {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 90px;
  background: radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s3-queen 4s ease-in-out infinite;
}
.scn-queen-elizabeth-sad .crown {
  position: absolute; bottom: 65%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #b0a060 0%, #806030 100%);
  border-radius: 20% 20% 10% 10%;
  animation: s3-crown 4s ease-in-out infinite;
}
.scn-queen-elizabeth-sad .window {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #7a6a5a 0%, #9a8a7a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(180,160,140,0.2);
  animation: s3-window 8s ease-in-out infinite alternate;
}
.scn-queen-elizabeth-sad .tear {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #aaccee 0%, #88aacc 100%);
  border-radius: 50%;
  animation: s3-tear 3s ease-in-out infinite;
}
.scn-queen-elizabeth-sad .shadow-queen {
  position: absolute; bottom: 12%; left: 40%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: s3-shadow-queen 4s ease-in-out infinite;
}
@keyframes s3-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes s3-queen { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s3-crown { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes s3-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes s3-tear { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(4px) scaleY(1.2); opacity: 0.8; } 100% { transform: translateY(0) scaleY(1); opacity: 0.4; } }
@keyframes s3-shadow-queen { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-margaret-confronts-all {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(circle at 50% 40%, #4a4a5e 0%, transparent 70%);
}
.scn-margaret-confronts-all .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-margaret-confronts-all .light-source {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(220,200,180,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: s4-light 6s ease-in-out infinite alternate;
}
.scn-margaret-confronts-all .figure-margaret {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 110px;
  background: radial-gradient(ellipse at 50% 30%, #1a1212 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-figure 2.5s ease-in-out infinite;
}
.scn-margaret-confronts-all .figure-rivers {
  position: absolute; bottom: 18%; left: 35%; width: 45px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-figure 3s ease-in-out infinite 0.5s;
}
.scn-margaret-confronts-all .figure-hastings {
  position: absolute; bottom: 18%; left: 50%; width: 45px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-figure 3s ease-in-out infinite 1s;
}
.scn-margaret-confronts-all .figure-dorset {
  position: absolute; bottom: 18%; right: 25%; width: 45px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-figure 3s ease-in-out infinite 1.5s;
}
.scn-margaret-confronts-all .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 0 0;
}
.scn-margaret-confronts-all .shadow-group {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: s4-shadow 3s ease-in-out infinite;
}
@keyframes s4-light { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.7; transform: scale(1.3); } }
@keyframes s4-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-richard-dismisses-mayor { background: linear-gradient(125deg, #1a1423 0%, #2a1e2e 40%, #3a2835 100%), radial-gradient(ellipse at 30% 80%, #3a2a33 0%, transparent 70%); }
.scn-richard-dismisses-mayor .bg-dark { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 80%, #221a2a 0%, #0d0a12 80%); animation:rd-bg 20s ease-in-out infinite; }
.scn-richard-dismisses-mayor .wall-panel { position:absolute; top:20%; left:10%; right:10%; height:55%; background:linear-gradient(180deg, #4a3a44 0%, #2a1e2a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); }
.scn-richard-dismisses-mayor .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #1a1410 0%, #0d0806 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-richard-dismisses-mayor .table { position:absolute; bottom:25%; left:35%; width:30%; height:12%; background:linear-gradient(180deg, #5a4235 0%, #3a2a1e 100%); border-radius:6% 6% 0 0; transform:perspective(800px) rotateX(30deg); }
.scn-richard-dismisses-mayor .candle { position:absolute; bottom:30%; left:50%; width:4px; height:18px; background:linear-gradient(0deg, #c8a060 0%, #e8d090 100%); border-radius:50% 50% 10% 10%; transform:translateX(-50%); }
.scn-richard-dismisses-mayor .glow-candle { position:absolute; bottom:32%; left:50%; width:40px; height:40px; transform:translate(-50%,50%); background:radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0) 70%); animation:rd-glow 4s ease-in-out infinite alternate; }
.scn-richard-dismisses-mayor .silhouette-richard { position:absolute; bottom:20%; left:25%; width:40px; height:80px; background:linear-gradient(180deg, #0d0a0a 0%, #1a1414 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rd-richard 6s ease-in-out infinite; }
.scn-richard-dismisses-mayor .silhouette-mayor { position:absolute; bottom:20%; right:20%; width:45px; height:82px; background:linear-gradient(180deg, #0f0c0c 0%, #1c1616 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rd-mayor 7s ease-in-out infinite; }
@keyframes rd-bg { 0%,100% { opacity:0.8; } 50% { opacity:0.95; } }
@keyframes rd-glow { 0% { transform:translate(-50%,50%) scale(0.9); opacity:0.7; } 50% { transform:translate(-50%,50%) scale(1.2); opacity:1; } 100% { transform:translate(-50%,50%) scale(0.95); opacity:0.8; } }
@keyframes rd-richard { 0% { transform:translateY(0) rotate(-1deg); } 30% { transform:translateY(-2px) rotate(0.5deg); } 60% { transform:translateY(1px) rotate(1deg); } 100% { transform:translateY(0) rotate(-0.5deg); } }
@keyframes rd-mayor { 0% { transform:translateY(0) rotate(0.5deg); } 50% { transform:translateY(-3px) rotate(-1deg); } 100% { transform:translateY(2px) rotate(0.5deg); } }

.scn-richard-instructs-buckingham { background: linear-gradient(180deg, #12101a 0%, #1a1825 50%, #252030 100%), radial-gradient(ellipse at 70% 20%, #2a2440 0%, transparent 60%); }
.scn-richard-instructs-buckingham .bg-deep { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%, #1a1a2e 0%, #0a0a14 100%); animation:rb-bg 25s ease-in-out infinite alternate; }
.scn-richard-instructs-buckingham .arch-window { position:absolute; top:10%; right:12%; width:100px; height:180px; background:radial-gradient(ellipse at 50% 0%, #2a2a40 0%, #0a0a14 70%); border-radius:50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 60px rgba(0,0,0,0.8), 0 0 40px 10px rgba(100,120,200,0.15); animation:rb-window 30s ease-in-out infinite; }
.scn-richard-instructs-buckingham .moonlight { position:absolute; top:10%; right:12%; width:100px; height:180px; background:linear-gradient(180deg, rgba(180,200,255,0.25) 0%, transparent 70%); border-radius:50% 50% 0 0 / 60% 60% 0 0; animation:rb-moonlight 12s ease-in-out infinite alternate; }
.scn-richard-instructs-buckingham .desk { position:absolute; bottom:28%; left:15%; width:60%; height:10%; background:linear-gradient(180deg, #3a2a20 0%, #1a100a 100%); border-radius:4% 4% 20% 20%; transform:perspective(600px) rotateX(20deg); box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-richard-instructs-buckingham .scroll { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background:linear-gradient(180deg, #c8b888 0%, #a09070 100%); border-radius:10% 10% 10% 10% / 50% 50% 50% 50%; transform:rotate(-5deg); animation:rb-scroll 8s ease-in-out infinite; }
.scn-richard-instructs-buckingham .figure-richard { position:absolute; bottom:18%; left:35%; width:50px; height:90px; background:linear-gradient(180deg, #1a1414 0%, #0d0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rb-r 6s ease-in-out infinite; }
.scn-richard-instructs-buckingham .figure-buckingham { position:absolute; bottom:18%; right:25%; width:46px; height:86px; background:linear-gradient(180deg, #1c1616 0%, #0f0c0c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rb-b 7s ease-in-out infinite; }
.scn-richard-instructs-buckingham .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
@keyframes rb-bg { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes rb-window { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02) translateY(-2px); } 100% { transform:scaleY(1); } }
@keyframes rb-moonlight { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes rb-scroll { 0% { transform:rotate(-5deg) translateY(0); } 25% { transform:rotate(-3deg) translateY(-2px); } 50% { transform:rotate(-5deg) translateY(0); } 75% { transform:rotate(-7deg) translateY(-1px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes rb-r { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(-3px) rotate(1deg) scale(1.01); } 66% { transform:translateY(2px) rotate(-1deg) scale(0.99); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes rb-b { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-0.5deg); } 100% { transform:translateY(2px) rotate(1deg); } }

.scn-richard-hints-bastardy { background: linear-gradient(180deg, #0f0b15 0%, #1a1425 40%, #2a1e35 80%, #1a1425 100%), radial-gradient(ellipse at 50% 30%, #2a2035 0%, transparent 60%); }
.scn-richard-hints-bastardy .bg-void { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, #0f0a1a 0%, #050308 100%); animation:rh-bg 30s ease-in-out infinite; }
.scn-richard-hints-bastardy .light-beam { position:absolute; top:5%; left:40%; width:20%; height:90%; background:linear-gradient(180deg, rgba(200,200,255,0.15) 0%, transparent 50%, transparent 100%); transform:skewX(-5deg); animation:rh-beam 10s ease-in-out infinite alternate; }
.scn-richard-hints-bastardy .wall-stone { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(0deg, #2a1e2a 0%, #1a121a 50%, #0d080d 100%); border-radius:60% 60% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 60px rgba(0,0,0,0.8); }
.scn-richard-hints-bastardy .figure-richard { position:absolute; bottom:18%; left:35%; width:48px; height:92px; background:linear-gradient(180deg, #1c1414 0%, #0d0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rh-fig 5s ease-in-out infinite; }
.scn-richard-hints-bastardy .hand-gesture { position:absolute; bottom:40%; left:42%; width:14px; height:20px; background:linear-gradient(180deg, #1c1414 0%, #0d0808 100%); border-radius:50% 50% 40% 40%; transform:rotate(15deg); animation:rh-hand 4s ease-in-out infinite; }
.scn-richard-hints-bastardy .dust-particles { position:absolute; top:20%; left:30%; right:30%; height:60%; background:radial-gradient(circle at 20% 30%, rgba(200,200,255,0.08) 0%, transparent 20%), radial-gradient(circle at 80% 40%, rgba(200,200,255,0.06) 0%, transparent 15%), radial-gradient(circle at 50% 70%, rgba(200,200,255,0.04) 0%, transparent 10%); animation:rh-dust 20s linear infinite; }
@keyframes rh-bg { 0%,100% { opacity:0.85; } 50% { opacity:0.95; } }
@keyframes rh-beam { 0% { opacity:0.4; transform:skewX(-5deg) translateX(-5px); } 50% { opacity:0.8; transform:skewX(-3deg) translateX(2px); } 100% { opacity:0.5; transform:skewX(-5deg) translateX(5px); } }
@keyframes rh-fig { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(1deg); } 50% { transform:translateY(0) rotate(0deg) scale(1.01); } 75% { transform:translateY(2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes rh-hand { 0% { transform:rotate(15deg) translateY(0); } 33% { transform:rotate(20deg) translateY(-1px); } 66% { transform:rotate(10deg) translateY(1px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes rh-dust { 0% { background-position:0% 0%, 0% 0%, 0% 0%; } 100% { background-position:30% 50%, 70% 30%, 50% 80%; } }

.scn-buckingham-promises { background: linear-gradient(180deg, #12101a 0%, #1e1a2a 50%, #2a2435 100%), radial-gradient(ellipse at 60% 30%, #2a1e30 0%, transparent 70%); }
.scn-buckingham-promises .bg-night { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 60%, #1a1220 0%, #0a0610 100%); animation:bp-bg 25s ease-in-out infinite; }
.scn-buckingham-promises .door-frame { position:absolute; bottom:0; left:50%; width:100px; height:70%; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a30 0%, #1a121a 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -20px 60px rgba(0,0,0,0.8); }
.scn-buckingham-promises .threshold { position:absolute; bottom:30%; left:50%; width:100px; height:8px; transform:translateX(-50%); background:linear-gradient(90deg, #4a3a3a 0%, #6a5a5a 50%, #4a3a3a 100%); border-radius:4px; }
.scn-buckingham-promises .figure-buckingham { position:absolute; bottom:20%; left:48%; width:46px; height:88px; background:linear-gradient(180deg, #1c1616 0%, #0d0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bp-fig 6s ease-in-out infinite; }
.scn-buckingham-promises .hand-pledge { position:absolute; bottom:55%; left:52%; width:12px; height:16px; background:linear-gradient(180deg, #1c1616 0%, #0d0a0a 100%); border-radius:50% 50% 40% 40%; transform:rotate(30deg) scale(1.2); animation:bp-hand 4s ease-in-out infinite; }
.scn-buckingham-promises .lantern { position:absolute; top:15%; left:42%; width:8px; height:20px; background:linear-gradient(0deg, #c8a860 0%, #e8d090 100%); border-radius:30% 30% 10% 10%; animation:bp-lantern 5s ease-in-out infinite; }
.scn-buckingham-promises .lantern-glow { position:absolute; top:17%; left:42%; width:50px; height:50px; transform:translate(-50%,-50%); background:radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0) 70%); animation:bp-glow 4s ease-in-out infinite alternate; }
.scn-buckingham-promises .shadow-legs { position:absolute; bottom:0; left:40%; right:40%; height:25%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); border-radius:50% 50% 0 0 / 40% 40% 0 0; }
@keyframes bp-bg { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes bp-fig { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-3px) rotate(1deg) scale(1.01); } 60% { transform:translateY(2px) rotate(-0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes bp-hand { 0% { transform:rotate(30deg) scale(1.2) translateY(0); } 33% { transform:rotate(35deg) scale(1.25) translateY(-1px); } 66% { transform:rotate(25deg) scale(1.15) translateY(1px); } 100% { transform:rotate(30deg) scale(1.2) translateY(0); } }
@keyframes bp-lantern { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes bp-glow { 0% { transform:translate(-50%,-50%) scale(0.9); opacity:0.6; } 50% { transform:translate(-50%,-50%) scale(1.3); opacity:0.9; } 100% { transform:translate(-50%,-50%) scale(1); opacity:0.7; } }

/* Scene 1: richard-frustrated */
.scn-richard-frustrated { background: linear-gradient(180deg, #1e1a2a 0%, #2c2438 40%, #1a1420 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 70%); }
.scn-richard-frustrated .hall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2430 0%, #1a1620 50%, #14101a 100%); animation: rf-hall-pulse 8s ease-in-out infinite alternate; }
.scn-richard-frustrated .hall-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a2a1a 0%, #2a1a10 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-richard-frustrated .richard-figure { position:absolute; bottom:30%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rf-figure-shift 4s ease-in-out infinite; }
.scn-richard-frustrated .follower { position:absolute; bottom:30%; width:30px; height:50px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; }
.scn-richard-frustrated .f1 { left:55%; animation: rf-follower-bob 3.5s ease-in-out infinite; }
.scn-richard-frustrated .f2 { left:68%; animation: rf-follower-bob 4s ease-in-out infinite 0.5s; }
.scn-richard-frustrated .cap { position:absolute; width:18px; height:10px; background: #5a3a2a; border-radius: 50% 50% 20% 20%; animation: rf-cap-toss 2s ease-out infinite; }
.scn-richard-frustrated .c1 { bottom:58%; left:50%; animation-delay:0s; }
.scn-richard-frustrated .c2 { bottom:62%; left:60%; animation-delay:1s; }
.scn-richard-frustrated .torch-glow { position:absolute; bottom:50%; left:15%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 30%, rgba(200,120,40,0.4) 0%, transparent 70%); animation: rf-torch-flicker 2s ease-in-out infinite alternate; }
.scn-richard-frustrated .torch-flame { position:absolute; bottom:52%; left:15%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #ffa040 0%, #b06020 60%, transparent 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,160,64,0.5), 0 0 40px 16px rgba(200,100,30,0.3); animation: rf-flame-dance 0.8s ease-in-out infinite alternate; }
@keyframes rf-hall-pulse { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes rf-figure-shift { 0%,100%{transform:translateX(0) translateY(0) rotate(1deg)} 25%{transform:translateX(-3px) translateY(-1px) rotate(-1deg)} 75%{transform:translateX(3px) translateY(-1px) rotate(1deg)} }
@keyframes rf-follower-bob { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-4px) rotate(2deg)} }
@keyframes rf-cap-toss { 0%{transform:translateY(0) scale(1) rotate(0); opacity:1} 50%{transform:translateY(-30px) scale(1.2) rotate(30deg); opacity:1} 100%{transform:translateY(20px) scale(0.8) rotate(60deg); opacity:0} }
@keyframes rf-torch-flicker { 0%{opacity:0.6; transform:scale(1)} 100%{opacity:1; transform:scale(1.05)} }
@keyframes rf-flame-dance { 0%{transform:translate(0,0) scale(1) rotate(-2deg)} 100%{transform:translate(2px,-2px) scale(1.1) rotate(3deg)} }

/* Scene 2: plan-for-piety */
.scn-plan-for-piety { background: linear-gradient(180deg, #1a1a28 0%, #26203a 50%, #1a1428 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%); }
.scn-plan-for-piety .chapel-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: pp-chapel-breathe 12s ease-in-out infinite alternate; }
.scn-plan-for-piety .chapel-arch { position:absolute; top:0; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-plan-for-piety .prayer-book { position:absolute; bottom:30%; left:50%; width:20px; height:26px; transform:translate(-50%,0); background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: pp-book-lift 6s ease-in-out infinite; }
.scn-plan-for-piety .hand-left { position:absolute; bottom:30%; left:46%; width:10px; height:14px; background: #3a2a2a; border-radius: 50% 50% 40% 40%; transform: rotate(10deg); animation: pp-hand-clasp 4s ease-in-out infinite; }
.scn-plan-for-piety .hand-right { position:absolute; bottom:30%; left:52%; width:10px; height:14px; background: #3a2a2a; border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); animation: pp-hand-clasp 4s ease-in-out infinite 2s; }
.scn-plan-for-piety .churchman-left { position:absolute; bottom:30%; left:28%; width:22px; height:60px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-5deg); animation: pp-churchman-sway 7s ease-in-out infinite; }
.scn-plan-for-piety .churchman-right { position:absolute; bottom:30%; right:28%; width:22px; height:60px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 30% 30% 20% 20%; transform: rotate(5deg); animation: pp-churchman-sway 7s ease-in-out infinite -3.5s; }
.scn-plan-for-piety .light-shaft { position:absolute; top:0; left:40%; right:40%; height:100%; background: linear-gradient(180deg, rgba(200,180,240,0.15) 0%, transparent 70%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: pp-shaft-fade 10s ease-in-out infinite alternate; }
@keyframes pp-chapel-breathe { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes pp-book-lift { 0%,100%{transform:translate(-50%,0) rotate(0)} 50%{transform:translate(-50%,-3px) rotate(2deg)} }
@keyframes pp-hand-clasp { 0%,100%{transform:rotate(0)} 50%{transform:rotate(15deg)} }
@keyframes pp-churchman-sway { 0%,100%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} }
@keyframes pp-shaft-fade { 0%{opacity:0.4} 100%{opacity:0.8} }

/* Scene 3: catesby-intercepts */
.scn-catesby-intercepts { background: linear-gradient(180deg, #1a1a2e 0%, #22223a 50%, #161626 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 60%); }
.scn-catesby-intercepts .corridor-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1e1e2e 0%, #28283e 40%, #1e1e2e 100%); animation: ci-corridor-shift 12s ease-in-out infinite alternate; }
.scn-catesby-intercepts .corridor-wall { position:absolute; bottom:20%; left:0; right:0; height:80%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-catesby-intercepts .catesby-figure { position:absolute; bottom:30%; left:35%; width:28px; height:55px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ci-bow 5s ease-in-out infinite; }
.scn-catesby-intercepts .duke-m { position:absolute; bottom:30%; right:20%; width:45px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; opacity:0.8; }
.scn-catesby-intercepts .friar-left { position:absolute; bottom:30%; right:10%; width:25px; height:65px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20%; transform:rotate(5deg); animation: ci-friar-sway 8s ease-in-out infinite; }
.scn-catesby-intercepts .friar-right { position:absolute; bottom:30%; right:2%; width:25px; height:65px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20%; transform:rotate(-5deg); animation: ci-friar-sway 8s ease-in-out infinite -4s; }
.scn-catesby-intercepts .door-frame { position:absolute; bottom:20%; right:0; width:50%; height:80%; border: 3px solid #3a2a1a; border-right: none; border-radius: 0 0 0 20%; box-shadow: inset 5px 0 15px rgba(0,0,0,0.6); }
.scn-catesby-intercepts .candle-glow { position:absolute; bottom:40%; right:25%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(220,180,120,0.4) 0%, transparent 70%); animation: ci-candle-flicker 2.5s ease-in-out infinite alternate; }
.scn-catesby-intercepts .candle-flame { position:absolute; bottom:42%; right:25%; width:6px; height:12px; background: radial-gradient(circle at 50% 30%, #ffc080 0%, #b06020 60%, transparent 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 10px 4px rgba(255,192,128,0.5); animation: ci-flame-dance 0.6s ease-in-out infinite alternate; }
@keyframes ci-corridor-shift { 0%{opacity:0.9; transform:scale(1)} 100%{opacity:0.95; transform:scale(1.02)} }
@keyframes ci-bow { 0%,100%{transform:translate(0,0) rotate(0)} 30%{transform:translate(5px,0) rotate(15deg)} 60%{transform:translate(0,0) rotate(-5deg)} }
@keyframes ci-friar-sway { 0%,100%{transform:rotate(5deg)} 50%{transform:rotate(-5deg)} }
@keyframes ci-candle-flicker { 0%{opacity:0.5; transform:scale(1)} 100%{opacity:1; transform:scale(1.1)} }
@keyframes ci-flame-dance { 0%{transform:translate(0,0) scale(1) rotate(-2deg)} 100%{transform:translate(1px,-2px) scale(1.1) rotate(3deg)} }

/* Scene 4: buckingham-insists */
.scn-buckingham-insists { background: linear-gradient(180deg, #1a1a2a 0%, #22223a 40%, #12121e 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%); }
.scn-buckingham-insists .street-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #2a2a3e 0%, #1e1e2e 50%, #161626 100%); animation: bi-street-pulse 10s ease-in-out infinite alternate; }
.scn-buckingham-insists .street-cobbles { position:absolute; bottom:0; left:0; right:0; height:35%; background: repeating-linear-gradient(0deg, #2a2a2a 0px, #1a1a1a 3px, #2a2a2a 6px); opacity:0.7; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-buckingham-insists .buckingham-figure { position:absolute; bottom:35%; left:50%; width:35px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: bi-buck-stand 6s ease-in-out infinite; }
.scn-buckingham-insists .citizen { position:absolute; bottom:35%; width:28px; height:50px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; }
.scn-buckingham-insists .c1 { left:30%; animation: bi-citizen-walk 4s ease-in-out infinite; }
.scn-buckingham-insists .c2 { left:40%; animation: bi-citizen-walk 4s ease-in-out infinite 1s; }
.scn-buckingham-insists .c3 { left:60%; animation: bi-citizen-walk 4s ease-in-out infinite 2s; }
.scn-buckingham-insists .mayor-figure { position:absolute; bottom:35%; left:20%; width:32px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; animation: bi-mayor-bob 3.5s ease-in-out infinite; }
.scn-buckingham-insists .lantern-pole { position:absolute; bottom:40%; left:70%; width:4px; height:60px; background: #1a1a2a; border-radius: 2px; transform-origin: bottom center; animation: bi-pole-sway 5s ease-in-out infinite; }
.scn-buckingham-insists .lantern { position:absolute; bottom:60%; left:70%; width:12px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b08040 70%); border-radius: 20% 20% 15% 15%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.5), 0 0 40px 12px rgba(200,128,64,0.3); animation: bi-lantern-swing 5s ease-in-out infinite; }
@keyframes bi-street-pulse { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes bi-buck-stand { 0%,100%{transform:translateX(-50%) rotate(0)} 50%{transform:translateX(-50%) translateY(-2px) rotate(2deg)} }
@keyframes bi-citizen-walk { 0%,100%{transform:translateY(0) rotate(0)} 25%{transform:translateY(-3px) rotate(3deg)} 50%{transform:translateY(0) rotate(0)} 75%{transform:translateY(-3px) rotate(-3deg)} }
@keyframes bi-mayor-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes bi-pole-sway { 0%,100%{transform:rotate(0)} 50%{transform:rotate(3deg)} }
@keyframes bi-lantern-swing { 0%,100%{transform:translateX(-50%) rotate(-5deg)} 50%{transform:translateX(-50%) rotate(5deg)} }

.scn-stanley-news-dorset {
  background: 
    linear-gradient(180deg, #2a1e0e 0%, #3b2814 30%, #4e341c 60%, #5a3a1e 100%),
    radial-gradient(ellipse at 40% 20%, #c98a3e 0%, transparent 60%);
}
.scn-stanley-news-dorset .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #3b2814, #4e341c); opacity: 0.8;
}
.scn-stanley-news-dorset .window {
  position: absolute; top: 18%; left: 55%; width: 60px; height: 80px; background: radial-gradient(circle at 50% 50%, #d4a45a 0%, #7a5a2e 100%); border: 4px solid #2a1e0e; border-radius: 4px; box-shadow: 0 0 20px 6px #d4a45a; animation: st-glow 4s ease-in-out infinite alternate;
}
.scn-stanley-news-dorset .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 14px; background: #4a3420; border-radius: 2px; box-shadow: 0 4px 8px #1a120a;
}
.scn-stanley-news-dorset .candle {
  position: absolute; bottom: 34%; left: 35%; width: 8px; height: 24px; background: linear-gradient(180deg, #f0d080, #b08850); border-radius: 2px; box-shadow: 0 0 16px 6px #f0d080; animation: st-candle 3s ease-in-out infinite alternate;
}
.scn-stanley-news-dorset .letter {
  position: absolute; bottom: 24%; left: 32%; width: 40px; height: 50px; background: #e8d8b8; border: 2px solid #8a7a5a; border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px #1a120a; animation: st-letter 10s ease-in-out infinite;
}
.scn-stanley-news-dorset .figure.standing {
  position: absolute; bottom: 22%; left: 58%; width: 22px; height: 60px; background: linear-gradient(180deg, #2a1e0e 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-standing 5s ease-in-out infinite;
}
.scn-stanley-news-dorset .figure.seated {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 40px; background: linear-gradient(180deg, #2a1e0e 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: st-seated 4s ease-in-out infinite;
}
.scn-stanley-news-dorset .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 40px; background: rgba(10,6,4,0.5); border-radius: 50%; filter: blur(8px); animation: st-shadow 6s ease-in-out infinite;
}
@keyframes st-glow { 0% { box-shadow: 0 0 12px 4px #d4a45a; opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px #e0b86a; opacity: 1; } 100% { box-shadow: 0 0 18px 6px #c8964a; opacity: 0.9; } }
@keyframes st-candle { 0% { height: 24px; opacity: 0.9; transform: scaleY(1); } 50% { height: 30px; opacity: 1; transform: scaleY(1.1); } 100% { height: 24px; opacity: 0.9; transform: scaleY(1); } }
@keyframes st-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes st-standing { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes st-seated { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes st-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } 100% { opacity: 0.5; transform: scaleX(1); } }

.scn-richard-plans-anne-death {
  background: 
    linear-gradient(180deg, #1a120a 0%, #2a1e0e 40%, #302014 80%, #1a0e06 100%),
    radial-gradient(ellipse at 60% 30%, #b88a3a 0%, transparent 50%);
}
.scn-richard-plans-anne-death .wall-deep {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1e0e, #1a120a); opacity: 0.7;
}
.scn-richard-plans-anne-death .desk {
  position: absolute; bottom: 20%; left: 25%; width: 140px; height: 16px; background: #3a2818; border-radius: 4px; box-shadow: 0 4px 12px #0a0604;
}
.scn-richard-plans-anne-death .candle-desk {
  position: absolute; bottom: 36%; left: 30%; width: 10px; height: 28px; background: linear-gradient(180deg, #f0c060, #b08030); border-radius: 2px; box-shadow: 0 0 20px 8px #f0c060; animation: rp-candle 3.5s ease-in-out infinite alternate;
}
.scn-richard-plans-anne-death .inkwell {
  position: absolute; bottom: 24%; left: 40%; width: 18px; height: 16px; background: #1a120a; border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 4px #0a0604;
}
.scn-richard-plans-anne-death .paper {
  position: absolute; bottom: 22%; left: 26%; width: 50px; height: 36px; background: #d4c4a4; border: 1px solid #8a7a5a; border-radius: 2px; transform: rotate(2deg); animation: rp-paper 8s ease-in-out infinite;
}
.scn-richard-plans-anne-death .vial {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 20px; background: linear-gradient(180deg, #6a5020, #4a3a10); border-radius: 2px 2px 4px 4px; box-shadow: 0 2px 4px #0a0604; animation: rp-vial 6s ease-in-out infinite;
}
.scn-richard-plans-anne-death .figure-richard {
  position: absolute; bottom: 18%; left: 50%; width: 26px; height: 56px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-figure 5s ease-in-out infinite;
}
.scn-richard-plans-anne-death .shadow-cast {
  position: absolute; bottom: 16%; left: 45%; width: 100px; height: 50px; background: rgba(10,6,4,0.6); border-radius: 50%; filter: blur(10px); animation: rp-shadow 7s ease-in-out infinite;
}
@keyframes rp-candle { 0% { height: 28px; transform: scaleY(1); box-shadow: 0 0 12px 4px #f0c060; } 50% { height: 34px; transform: scaleY(1.2); box-shadow: 0 0 30px 10px #f0c060; } 100% { height: 28px; transform: scaleY(1); box-shadow: 0 0 16px 6px #f0c060; } }
@keyframes rp-paper { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes rp-vial { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes rp-figure { 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(-1deg); } }
@keyframes rp-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.3); } 100% { opacity: 0.5; transform: scaleX(1); } }

.scn-richard-resolves {
  background: 
    linear-gradient(180deg, #0e0a06 0%, #1a120a 40%, #2a1a0e 80%, #1a0e06 100%),
    radial-gradient(ellipse at 30% 50%, #6a4a1e 0%, transparent 60%);
}
.scn-richard-resolves .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a120a, #0e0a06); opacity: 0.8;
}
.scn-richard-resolves .throne {
  position: absolute; bottom: 18%; left: 25%; width: 80px; height: 90px; background: linear-gradient(180deg, #4a3420, #2a1e0e); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 8px 16px #0a0604; transform: scale(0.95); animation: rr-throne 12s ease-in-out infinite;
}
.scn-richard-resolves .crown {
  position: absolute; bottom: 60%; left: 30%; width: 30px; height: 20px; background: linear-gradient(180deg, #e0c070, #a08040); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 0 20px 6px #e0c070; animation: rr-crown 4s ease-in-out infinite alternate;
}
.scn-richard-resolves .dagger {
  position: absolute; bottom: 40%; left: 45%; width: 6px; height: 36px; background: linear-gradient(180deg, #b0a090, #706050); border-radius: 2px 2px 50% 50%; transform: rotate(20deg); box-shadow: 0 0 8px 2px #b0a090; animation: rr-dagger 6s ease-in-out infinite;
}
.scn-richard-resolves .figure-richard-rr {
  position: absolute; bottom: 14%; left: 40%; width: 28px; height: 64px; background: linear-gradient(180deg, #1a120a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr-figure 5s ease-in-out infinite;
}
.scn-richard-resolves .mirror-frame {
  position: absolute; top: 12%; right: 15%; width: 50px; height: 70px; background: #3a2818; border: 6px solid #2a1e0e; border-radius: 4px; box-shadow: inset 0 0 20px #1a120a; overflow: hidden;
}
.scn-richard-resolves .mirror-frame::after {
  content: ''; display: block; width: 100%; height: 100%; background: radial-gradient(ellipse at 50% 50%, #706050 0%, #2a1e0e 100%); opacity: 0.6;
}
.scn-richard-resolves .gleam {
  position: absolute; top: 15%; right: 18%; width: 20px; height: 30px; background: radial-gradient(ellipse at 50% 50%, #e0c070 0%, transparent 80%); opacity: 0.3; filter: blur(4px); animation: rr-gleam 3s ease-in-out infinite alternate;
}
@keyframes rr-throne { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(0.95) translateY(-3px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes rr-crown { 0% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 12px 4px #e0c070; } 50% { transform: translateY(-4px) rotate(2deg); box-shadow: 0 0 30px 10px #f0d080; } 100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 16px 6px #e0c070; } }
@keyframes rr-dagger { 0% { transform: rotate(20deg) translateX(0); } 25% { transform: rotate(22deg) translateX(3px); } 50% { transform: rotate(20deg) translateX(0); } 75% { transform: rotate(18deg) translateX(-3px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes rr-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes rr-gleam { 0% { opacity: 0.2; transform: scale(0.8); } 100% { opacity: 0.4; transform: scale(1.2); } }

.scn-tyrrel-enters {
  background: 
    linear-gradient(180deg, #1a120a 0%, #2a1e0e 30%, #3a2818 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 20% 40%, #b88a3a 0%, transparent 55%);
}
.scn-tyrrel-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a1e0e, #1a120a); box-shadow: inset 0 10px 20px #0e0a06;
}
.scn-tyrrel-enters .door {
  position: absolute; bottom: 18%; left: 8%; width: 50px; height: 90px; background: #4a3420; border: 4px solid #2a1e0e; border-radius: 2px; box-shadow: 0 4px 12px #0a0604; transform: scale(1,1);
}
.scn-tyrrel-enters .door-glow {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 80px; background: radial-gradient(ellipse at 50% 50%, #e0b86a 0%, transparent 70%); opacity: 0.4; filter: blur(6px); animation: te-door-glow 4s ease-in-out infinite alternate;
}
.scn-tyrrel-enters .figure-richard-te {
  position: absolute; bottom: 16%; left: 45%; width: 26px; height: 58px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-richard 5s ease-in-out infinite;
}
.scn-tyrrel-enters .figure-tyrrel {
  position: absolute; bottom: 16%; left: 15%; width: 24px; height: 56px; background: linear-gradient(180deg, #2a1e0e 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-tyrrel 6s ease-in-out infinite;
}
.scn-tyrrel-enters .chandelier {
  position: absolute; top: 6%; left: 40%; width: 60px; height: 40px; background: radial-gradient(ellipse at 50% 0%, #6a4a1e 0%, transparent 100%); box-shadow: 0 0 30px 12px #c88a3a; border-radius: 50% 50% 40% 40%; animation: te-chandelier 8s ease-in-out infinite alternate;
}
.scn-tyrrel-enters .table-te {
  position: absolute; bottom: 18%; left: 55%; width: 80px; height: 12px; background: #3a2818; border-radius: 2px; box-shadow: 0 4px 8px #0a0604;
}
@keyframes te-door-glow { 0% { opacity: 0.3; transform: scaleX(0.9); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(0.9); } }
@keyframes te-richard { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes te-tyrrel { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes te-chandelier { 0% { transform: rotate(-2deg); box-shadow: 0 0 20px 8px #c88a3a; } 50% { transform: rotate(2deg); box-shadow: 0 0 40px 16px #e0b86a; } 100% { transform: rotate(-2deg); box-shadow: 0 0 24px 10px #c88a3a; } }

/* clarence-dream-wrecks */
.scn-clarence-dream-wrecks { background: linear-gradient(180deg, #0a0a1a 0%, #0d1624 40%, #0f1a2e 70%, #09101e 100%), radial-gradient(ellipse at 50% 80%, #14223a 0%, transparent 60%); }
.scn-clarence-dream-wrecks .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,20,0.6) 0%, rgba(5,10,25,0.8) 100%); animation: cr-shimmer 12s ease-in-out infinite alternate; }
.scn-clarence-dream-wrecks .seabed { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a1a 0%, #0d1a0d 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); }
.scn-clarence-dream-wrecks .wreck-hull { position:absolute; bottom:20%; left:30%; width:55%; height:30%; background: linear-gradient(120deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 60% 30% 10% / 30% 70% 20% 20%; transform: rotate(-5deg); box-shadow: 0 0 30px rgba(0,0,0,0.8); animation: cr-sway 15s ease-in-out infinite; }
.scn-clarence-dream-wrecks .gold-pile { position:absolute; bottom:15%; left:55%; width:12%; height:8%; background: radial-gradient(circle, #b8860b 0%, #daa520 40%, #8b6508 100%); border-radius: 50% 40% 30% 50%; box-shadow: 0 0 20px #b8860b; animation: cr-glow 5s ease-in-out infinite alternate; }
.scn-clarence-dream-wrecks .skull { position:absolute; bottom:18%; left:45%; width:5%; height:7%; background: linear-gradient(180deg, #e8e0d0 0%, #b0a090 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(15deg); box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); }
.scn-clarence-dream-wrecks .fish { position:absolute; top:40%; left:20%; width:6%; height:3%; background: linear-gradient(90deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; transform: rotate(-10deg); animation: cr-swim 8s ease-in-out infinite; }
.scn-clarence-dream-wrecks .bubble { position:absolute; width:2%; height:2%; background: radial-gradient(circle, rgba(200,230,255,0.4) 0%, transparent 100%); border-radius: 50%; animation: cr-bubble 6s ease-in-out infinite; }
.scn-clarence-dream-wrecks .bubble-a { bottom:10%; left:35%; animation-duration: 6s; animation-delay: 0s; }
.scn-clarence-dream-wrecks .bubble-b { bottom:20%; left:60%; width:1.5%; height:1.5%; animation-duration: 8s; animation-delay: 2s; }
@keyframes cr-shimmer { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cr-sway { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(2px); } }
@keyframes cr-glow { 0% { box-shadow: 0 0 10px #b8860b; } 100% { box-shadow: 0 0 30px #ffd700; } }
@keyframes cr-swim { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(10px); } 50% { transform: rotate(5deg) translateX(20px); } 75% { transform: rotate(10deg) translateX(10px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes cr-bubble { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-30px) scale(1.2); opacity:1; } 100% { transform: translateY(-60px) scale(0.8); opacity:0; } }

/* clarence-dream-afterlife */
.scn-clarence-dream-afterlife { background: linear-gradient(180deg, #0a0e1a 0%, #0a141e 40%, #0f1a2a 80%, #050a12 100%), radial-gradient(ellipse at 50% 30%, #1a2a3a 0%, transparent 60%); }
.scn-clarence-dream-afterlife .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,10,0.8) 0%, rgba(5,10,20,0.9) 100%); animation: af-pulse 10s ease-in-out infinite alternate; }
.scn-clarence-dream-afterlife .figure-soul { position:absolute; bottom:20%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: af-reach 6s ease-in-out infinite; box-shadow: 0 0 20px rgba(100,150,200,0.3); }
.scn-clarence-dream-afterlife .chain { position:absolute; bottom:18%; left:43%; width:2%; height:20%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10%; box-shadow: 2px 0 4px rgba(0,0,0,0.5); animation: af-clink 4s ease-in-out infinite; }
.scn-clarence-dream-afterlife .bubble-up { position:absolute; width:2%; height:2%; background: radial-gradient(circle, rgba(180,220,255,0.3) 0%, transparent 100%); border-radius: 50%; animation: af-float 8s ease-in-out infinite; }
.scn-clarence-dream-afterlife .bubble-a { bottom:10%; left:50%; animation-delay:0s; }
.scn-clarence-dream-afterlife .bubble-b { bottom:15%; left:55%; width:1.5%; height:1.5%; animation-delay:3s; }
.scn-clarence-dream-afterlife .light-ray { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(180,220,255,0.1) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: af-ray 5s ease-in-out infinite alternate; }
.scn-clarence-dream-afterlife .shadow-hand { position:absolute; bottom:18%; left:52%; width:6%; height:10%; background: radial-gradient(ellipse at 50% 80%, #0a0a1a 0%, transparent 100%); border-radius: 50%; transform: rotate(20deg); animation: af-grasp 7s ease-in-out infinite; }
@keyframes af-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes af-reach { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(-10px) rotate(-1deg); } 75% { transform: translateY(-5px) rotate(1deg); } }
@keyframes af-clink { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes af-float { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-40px) scale(1.3); opacity:0.8; } 100% { transform: translateY(-80px) scale(0.6); opacity:0; } }
@keyframes af-ray { 0% { opacity:0.2; } 100% { opacity:0.6; } }
@keyframes af-grasp { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(5px); } }

/* clarence-dream-warwick */
.scn-clarence-dream-warwick { background: linear-gradient(180deg, #0a0a1a 0%, #0f1020 40%, #1a1a2a 80%, #0a0a15 100%), radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 60%); }
.scn-clarence-dream-warwick .bg-styx { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,20,0.5) 0%, rgba(5,5,15,0.8) 100%); }
.scn-clarence-dream-warwick .shore-bg { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.8); }
.scn-clarence-dream-warwick .river-surface { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #0a1a2a 0%, #0a121a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: wk-flow 10s ease-in-out infinite; }
.scn-clarence-dream-warwick .ferry-boat { position:absolute; bottom:28%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.8); animation: wk-rock 6s ease-in-out infinite; }
.scn-clarence-dream-warwick .ferryman { position:absolute; bottom:30%; left:55%; width:6%; height:18%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wk-pole 5s ease-in-out infinite; }
.scn-clarence-dream-warwick .pole { position:absolute; bottom:30%; left:57%; width:1.5%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 5%; transform: rotate(10deg); transform-origin: bottom center; animation: wk-polemove 5s ease-in-out infinite; }
.scn-clarence-dream-warwick .lantern-glow { position:absolute; bottom:35%; left:35%; width:3%; height:3%; background: radial-gradient(circle, #ffa500 0%, #d08000 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffa500; animation: wk-flicker 3s ease-in-out infinite alternate; }
.scn-clarence-dream-warwick .mist { position:absolute; top:20%; width:40%; height:15%; background: linear-gradient(180deg, rgba(100,120,150,0.2) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); }
.scn-clarence-dream-warwick .mist-a { left:10%; animation: wk-drift 20s linear infinite; }
.scn-clarence-dream-warwick .mist-b { right:10%; width:30%; animation: wk-drift 25s linear infinite reverse; }
@keyframes wk-flow { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes wk-rock { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes wk-pole { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes wk-polemove { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(5deg); } }
@keyframes wk-flicker { 0% { opacity:0.7; box-shadow: 0 0 20px 5px #ffa500; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffa500; } 100% { opacity:0.8; box-shadow: 0 0 25px 8px #ffa500; } }
@keyframes wk-drift { 0% { transform: translateX(0); } 100% { transform: translateX(100px); } }

/* clarence-dream-edward */
.scn-clarence-dream-edward { background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 40%, #2a1a1a 80%, #0a0505 100%), radial-gradient(ellipse at 50% 50%, #2a1010 0%, transparent 60%); }
.scn-clarence-dream-edward .bg-hell { position:absolute; inset:0; background: linear-gradient(180deg, rgba(5,0,0,0.6) 0%, rgba(20,5,5,0.9) 100%); animation: ed-pulse 8s ease-in-out infinite alternate; }
.scn-clarence-dream-edward .ground-fury { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 30% 40% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.9); }
.scn-clarence-dream-edward .angel-figure { position:absolute; bottom:25%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); box-shadow: 0 0 30px rgba(100,120,200,0.3); animation: ed-float 7s ease-in-out infinite; }
.scn-clarence-dream-edward .angel-hair { position:absolute; bottom:45%; left:42%; width:8%; height:10%; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: rotate(-10deg); box-shadow: 0 0 20px #702243; animation: ed-hair 4s ease-in-out infinite alternate; }
.scn-clarence-dream-edward .fury { position:absolute; bottom:10%; width:8%; height:15%; background: linear-gradient(180deg, #3a1a1a 0%, #2a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 10px rgba(100,0,0,0.5); }
.scn-clarence-dream-edward .fury-a { left:20%; transform: rotate(15deg); animation: ed-scuttle 5s ease-in-out infinite; }
.scn-clarence-dream-edward .fury-b { right:20%; transform: rotate(-10deg); animation: ed-scuttle 6s ease-in-out infinite reverse; }
.scn-clarence-dream-edward .torch-flame { position:absolute; bottom:20%; left:60%; width:3%; height:8%; background: radial-gradient(ellipse at 50% 100%, #ff6600 0%, #cc3300 50%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: ed-fire 2s ease-in-out infinite alternate; }
.scn-clarence-dream-edward .sparks { position:absolute; bottom:25%; left:60%; width:1%; height:1%; background: #ffaa00; border-radius: 50%; box-shadow: 0 0 6px 2px #ffaa00; animation: ed-spark 4s ease-in-out infinite; }
@keyframes ed-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ed-float { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-8px); } }
@keyframes ed-hair { 0% { transform: rotate(-10deg) scaleX(1); } 100% { transform: rotate(5deg) scaleX(1.1); } }
@keyframes ed-scuttle { 0%,100% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } }
@keyframes ed-fire { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.3); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.9; } }
@keyframes ed-spark { 0% { transform: translateY(0) scale(1); opacity:0; } 50% { transform: translateY(-20px) scale(1.5); opacity:1; } 100% { transform: translateY(-40px) scale(0.5); opacity:0; } }

/* Scene 1: hastings-dismisses-fear — calm dim interior */
.scn-hastings-dismisses-fear {
  background: 
    linear-gradient(180deg, #2a1e0e 0%, #1a1208 40%, #0f0903 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-hastings-dismisses-fear .scn-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(50,40,30,.1) 4px, rgba(50,40,30,.1) 5px);
  animation: hdf-bg 20s ease-in-out infinite;
}
.scn-hastings-dismisses-fear .scn-wall {
  position: absolute; bottom: 50%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e0e 100%);
  border-radius: 12% 12% 8% 8% / 40% 40% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.6);
  animation: hdf-wall 15s ease-in-out infinite alternate;
}
.scn-hastings-dismisses-fear .scn-table {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4% / 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-hastings-dismisses-fear .scn-candle {
  position: absolute; bottom: 38%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 60%, #6a4030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 16px 6px #d09040, 0 0 32px 12px rgba(200,140,60,.3);
  animation: hdf-candle 3s ease-in-out infinite alternate;
}
.scn-hastings-dismisses-fear .scn-seated {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hdf-seated 6s ease-in-out infinite;
}
.scn-hastings-dismisses-fear .scn-shadow {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: hdf-shadow 8s ease-in-out infinite alternate;
}
.scn-hastings-dismisses-fear .scn-ember {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 4px;
  background: #ffc080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffa060;
  animation: hdf-ember 2s ease-in-out infinite;
}
@keyframes hdf-bg { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes hdf-wall { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes hdf-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(.98); opacity:.85 } }
@keyframes hdf-seated { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(1px) translateY(-1px) rotate(1deg) } }
@keyframes hdf-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.2) } }
@keyframes hdf-ember { 0%,100% { transform: translate(0,0) scale(1) } 25% { transform: translate(1px,-2px) scale(1.1) } 50% { transform: translate(-1px,-4px) scale(.9) } 75% { transform: translate(2px,-1px) scale(1.05) } }

/* Scene 2: hastings-dismisses-messenger — calm, two figures */
.scn-hastings-dismisses-messenger {
  background: 
    linear-gradient(180deg, #1a180e 0%, #120e08 40%, #0a0703 100%),
    radial-gradient(ellipse at 30% 80%, #3a2818 0%, transparent 60%);
}
.scn-hastings-dismisses-messenger .scn-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(60,50,30,.1) 8px, rgba(60,50,30,.1) 9px);
  animation: hdm-bg 25s linear infinite;
}
.scn-hastings-dismisses-messenger .scn-arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #4a3520 0%, transparent 80%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: hdm-arch 20s ease-in-out infinite alternate;
}
.scn-hastings-dismisses-messenger .scn-figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1e0e 0%, #0f0803 100%);
  border-radius: 35% 25% 20% 40% / 60% 40% 30% 50%;
  transform-origin: bottom center;
  animation: hdm-fig-l 4s ease-in-out infinite;
}
.scn-hastings-dismisses-messenger .scn-figure-right {
  position: absolute; bottom: 26%; left: 55%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #1a140a 0%, #0a0602 100%);
  border-radius: 25% 35% 40% 20% / 40% 60% 50% 30%;
  transform-origin: bottom center;
  animation: hdm-fig-r 4.5s ease-in-out infinite;
}
.scn-hastings-dismisses-messenger .scn-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-hastings-dismisses-messenger .scn-torch {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0a060 0%, #a07040 60%, #4a3020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(180,120,60,.3);
  animation: hdm-torch 3s ease-in-out infinite alternate;
}
.scn-hastings-dismisses-messenger .scn-smoke {
  position: absolute; bottom: 55%; left: 23%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hdm-smoke 8s ease-in-out infinite alternate;
}
@keyframes hdm-bg { 0% { opacity:.4 } 100% { opacity:.6 } }
@keyframes hdm-arch { 0% { transform: scaleY(.95) } 100% { transform: scaleY(1.05) } }
@keyframes hdm-fig-l { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes hdm-fig-r { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes hdm-torch { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.08); opacity:1 } 100% { transform: scaleY(.95); opacity:.85 } }
@keyframes hdm-smoke { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-8px) scale(1.2); opacity:.7 } 100% { transform: translateY(0) scale(.9); opacity:.4 } }

/* Scene 3: catesby-sounds-hastings — tense, sharp shadows */
.scn-catesby-sounds-hastings {
  background:
    linear-gradient(180deg, #1e1410 0%, #0e0806 40%, #050302 100%),
    radial-gradient(ellipse at 60% 80%, #3a2518 0%, transparent 50%);
}
.scn-catesby-sounds-hastings .scn-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(255,200,100,.02) 10px, rgba(255,200,100,.02) 11px);
  animation: csh-bg 5s ease-in-out infinite alternate;
}
.scn-catesby-sounds-hastings .scn-chair {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 4px 0 12px rgba(0,0,0,.7);
  transform: rotate(-5deg);
}
.scn-catesby-sounds-hastings .scn-figure-a {
  position: absolute; bottom: 22%; left: 20%; width: 34px; height: 50px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0604 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: csh-fig-a 2s ease-in-out infinite;
}
.scn-catesby-sounds-hastings .scn-figure-b {
  position: absolute; bottom: 18%; left: 55%; width: 36px; height: 52px;
  background: linear-gradient(180deg, #2a1e0e 0%, #120a06 100%);
  border-radius: 30% 40% 40% 30% / 50% 60% 50% 40%;
  transform-origin: bottom center;
  animation: csh-fig-b 2.5s ease-in-out infinite;
}
.scn-catesby-sounds-hastings .scn-table {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-catesby-sounds-hastings .scn-candle {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d0a0 0%, #b08050 60%, #5a3020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 14px rgba(180,100,40,.3);
  animation: csh-candle 0.8s ease-in-out infinite alternate;
}
.scn-catesby-sounds-hastings .scn-dagger {
  position: absolute; bottom: 24%; left: 38%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #808080 0%, #404040 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(-30deg);
  box-shadow: 0 0 6px 2px rgba(200,200,200,.3);
  animation: csh-dagger 1.2s ease-in-out infinite alternate;
}
@keyframes csh-bg { 0% { opacity:.3 } 100% { opacity:.7 } }
@keyframes csh-fig-a { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes csh-fig-b { 0%,100% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(3px) rotate(-2deg) } }
@keyframes csh-candle { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.12); opacity:1 } 100% { transform: scaleY(.9); opacity:.6 } }
@keyframes csh-dagger { 0% { transform: rotate(-25deg) } 100% { transform: rotate(-35deg) } }

/* Scene 4: catesby-probes — tense, close-up on table */
.scn-catesby-probes {
  background:
    linear-gradient(180deg, #1e1410 0%, #0e0806 40%, #050302 100%),
    radial-gradient(ellipse at 50% 90%, #2a1e0e 0%, transparent 60%);
}
.scn-catesby-probes .scn-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 6px, rgba(200,150,80,.02) 6px, rgba(200,150,80,.02) 7px);
  animation: cpr-bg 10s ease-in-out infinite alternate;
}
.scn-catesby-probes .scn-parchment {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(135deg, #c0a080 0%, #a08060 50%, #907050 100%);
  border-radius: 2% / 5%;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  transform: rotate(-2deg);
  animation: cpr-parchment 15s ease-in-out infinite alternate;
}
.scn-catesby-probes .scn-hand {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #c0a090 0%, #8a6a5a 100%);
  border-radius: 50% 40% 10% 30% / 50% 40% 30% 40%;
  transform: rotate(-20deg);
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3);
  animation: cpr-hand 3s ease-in-out infinite alternate;
}
.scn-catesby-probes .scn-crown {
  position: absolute; bottom: 35%; left: 55%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #d0b060 0%, #b09040 100%);
  clip-path: polygon(0% 100%, 25% 20%, 50% 100%, 75% 20%, 100% 100%);
  filter: drop-shadow(0 0 6px #e0c070);
  animation: cpr-crown 4s ease-in-out infinite;
}
.scn-catesby-probes .scn-ink {
  position: absolute; bottom: 20%; left: 30%; width: 14px; height: 14px;
  background: radial-gradient(circle, #203060 0%, #101830 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: cpr-ink 12s ease-in-out infinite alternate;
}
.scn-catesby-probes .scn-quill {
  position: absolute; bottom: 30%; left: 28%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #f0e8e0 0%, #c0b0a0 60%, #6a5a4a 100%);
  transform: rotate(25deg);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: cpr-quill 2s ease-in-out infinite alternate;
}
.scn-catesby-probes .scn-wax {
  position: absolute; bottom: 20%; left: 45%; width: 12px; height: 4px;
  background: linear-gradient(90deg, #a0553d 0%, #c87050 100%);
  border-radius: 50% / 100%;
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  animation: cpr-wax 6s ease-in-out infinite alternate;
}
@keyframes cpr-bg { 0% { opacity:.4 } 100% { opacity:.6 } }
@keyframes cpr-parchment { 0% { transform: rotate(-3deg) scale(1) } 100% { transform: rotate(0deg) scale(1.02) } }
@keyframes cpr-hand { 0% { transform: rotate(-25deg) translate(0,0) } 100% { transform: rotate(-15deg) translate(2px,-1px) } }
@keyframes cpr-crown { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes cpr-ink { 0% { transform: scale(1) } 100% { transform: scale(1.1) } }
@keyframes cpr-quill { 0% { transform: rotate(20deg) } 100% { transform: rotate(30deg) } }
@keyframes cpr-wax { 0% { transform: translateY(0) scaleX(1) } 100% { transform: translateY(-1px) scaleX(1.2) } }

.scn-king-edward-reproaches {
  background: linear-gradient(135deg, #3a2a1a 0%, #1a140e 40%, #2a1f14 100%),
              radial-gradient(ellipse at 70% 30%, #8a6a3a 0%, transparent 60%);
}
.scn-king-edward-reproaches .ke1-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1f14 0%, #1a140e 100%);
  animation: ke1-wall 12s ease-in-out infinite alternate;
}
.scn-king-edward-reproaches .ke1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a140e 0%, #0f0c08 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-king-edward-reproaches .ke1-window {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 0 20px rgba(160,128,80,0.5);
  animation: ke1-window 8s ease-in-out infinite alternate;
}
.scn-king-edward-reproaches .ke1-throne {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2518 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  animation: ke1-throne 6s ease-in-out infinite;
}
.scn-king-edward-reproaches .ke1-king {
  position: absolute; bottom: 32%; left: 33%; width: 50px; height: 90px;
  background: radial-gradient(ellipse at 50% 20%, #2a1f14 0%, #1a140e 70%);
  border-radius: 40% 40% 35% 35% / 55% 55% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: ke1-king 4s ease-in-out infinite;
}
.scn-king-edward-reproaches .ke1-light {
  position: absolute; top: 8%; left: 58%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(200,170,100,0.2) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: ke1-light 10s ease-in-out infinite alternate;
}
.scn-king-edward-reproaches .ke1-shadow {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ke1-shadow 5s ease-in-out infinite alternate;
}

@keyframes ke1-wall {
  0% { opacity: 0.9; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes ke1-window {
  0% { box-shadow: inset 0 0 15px rgba(160,128,80,0.4); }
  50% { box-shadow: inset 0 0 30px rgba(180,150,90,0.7); }
  100% { box-shadow: inset 0 0 20px rgba(160,128,80,0.5); }
}
@keyframes ke1-throne {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ke1-king {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ke1-light {
  0% { opacity: 0.3; transform: skewX(-10deg) translateX(-5px); }
  50% { opacity: 0.6; transform: skewX(-8deg) translateX(5px); }
  100% { opacity: 0.4; transform: skewX(-12deg) translateX(0); }
}
@keyframes ke1-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-king-edward-regret {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #241911 100%),
              radial-gradient(ellipse at 60% 20%, #7a5a30 0%, transparent 60%);
}
.scn-king-edward-regret .ke2-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  animation: ke2-wall 15s ease-in-out infinite alternate;
}
.scn-king-edward-regret .ke2-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
}
.scn-king-edward-regret .ke2-window {
  position: absolute; top: 15%; left: 20%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4e2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(138,106,64,0.5);
  animation: ke2-window 10s ease-in-out infinite alternate;
}
.scn-king-edward-regret .ke2-throne {
  position: absolute; bottom: 30%; left: 35%; width: 90px; height: 130px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 15% 15% 8% 8%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.7);
  animation: ke2-throne 5s ease-in-out infinite;
}
.scn-king-edward-regret .ke2-king {
  position: absolute; bottom: 32%; left: 38%; width: 45px; height: 85px;
  background: radial-gradient(ellipse at 50% 30%, #2a1f14 0%, #1a140e 70%);
  border-radius: 45% 45% 40% 40% / 50% 50% 35% 35%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: ke2-king 3s ease-in-out infinite;
}
.scn-king-edward-regret .ke2-light {
  position: absolute; top: 12%; left: 17%; width: 50px; height: 180px;
  background: linear-gradient(180deg, rgba(180,150,90,0.15) 0%, transparent 80%);
  transform: skewX(-8deg);
  animation: ke2-light 12s ease-in-out infinite alternate;
}
.scn-king-edward-regret .ke2-glow {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b89450 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(184,148,80,0.3);
  animation: ke2-glow 4s ease-in-out infinite alternate;
}

@keyframes ke2-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes ke2-window {
  0% { box-shadow: inset 0 0 10px rgba(138,106,64,0.4); }
  50% { box-shadow: inset 0 0 25px rgba(160,125,80,0.7); }
  100% { box-shadow: inset 0 0 15px rgba(138,106,64,0.5); }
}
@keyframes ke2-throne {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.005) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ke2-king {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ke2-light {
  0% { opacity: 0.2; transform: skewX(-8deg) translateX(-3px); }
  50% { opacity: 0.5; transform: skewX(-6deg) translateX(5px); }
  100% { opacity: 0.3; transform: skewX(-10deg) translateX(0); }
}
@keyframes ke2-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-buckingham-after-king-exit {
  background: linear-gradient(135deg, #2a2220 0%, #1a1512 40%, #2e2420 100%),
              radial-gradient(ellipse at 50% 30%, #8a6050 0%, transparent 70%);
}
.scn-buckingham-after-king-exit .bk-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2220 0%, #1a1512 100%);
  animation: bk-wall 8s ease-in-out infinite alternate;
}
.scn-buckingham-after-king-exit .bk-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1512 0%, #0f0c0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-buckingham-after-king-exit .bk-column {
  position: absolute; bottom: 25%; left: 10%; width: 20px; height: 200px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f18 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: bk-column 10s ease-in-out infinite alternate;
}
.scn-buckingham-after-king-exit .bk-buckingham {
  position: absolute; bottom: 27%; left: 30%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 20%, #3a2a24 0%, #1f1510 70%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: bk-buckingham 2s ease-in-out infinite;
}
.scn-buckingham-after-king-exit .bk-courtier {
  position: absolute; bottom: 27%; left: 55%; width: 35px; height: 75px;
  background: radial-gradient(ellipse at 50% 20%, #2a1f1a 0%, #1a120e 70%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  transform: scaleX(-1);
  animation: bk-courtier 3s ease-in-out infinite alternate;
}
.scn-buckingham-after-king-exit .bk-shadows {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: bk-shadows 4s ease-in-out infinite alternate;
}
.scn-buckingham-after-king-exit .bk-light {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 250px;
  background: linear-gradient(180deg, rgba(200,170,100,0.15) 0%, transparent 80%);
  transform: skewX(-5deg);
  animation: bk-light 9s ease-in-out infinite alternate;
}

@keyframes bk-wall {
  0% { opacity: 0.9; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes bk-column {
  0% { box-shadow: 0 0 8px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 0 15px rgba(0,0,0,0.7); }
  100% { box-shadow: 0 0 10px rgba(0,0,0,0.5); }
}
@keyframes bk-buckingham {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bk-courtier {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-3px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes bk-shadows {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.2); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes bk-light {
  0% { opacity: 0.2; transform: skewX(-5deg) translateX(-5px); }
  50% { opacity: 0.5; transform: skewX(-3deg) translateX(5px); }
  100% { opacity: 0.3; transform: skewX(-7deg) translateX(0); }
}

.scn-duchess-of-york-children {
  background: linear-gradient(180deg, #2e251e 0%, #1a1410 50%, #21170f 100%),
              radial-gradient(ellipse at 60% 40%, #7a5a30 0%, transparent 60%);
}
.scn-duchess-of-york-children .dy-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e251e 0%, #1a1410 100%);
  animation: dy-wall 10s ease-in-out infinite alternate;
}
.scn-duchess-of-york-children .dy-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-duchess-of-york-children .dy-window {
  position: absolute; top: 12%; left: 50%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4e2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(138,106,64,0.4);
  animation: dy-window 6s ease-in-out infinite alternate;
}
.scn-duchess-of-york-children .dy-duchess {
  position: absolute; bottom: 32%; left: 25%; width: 45px; height: 85px;
  background: radial-gradient(ellipse at 50% 20%, #3a2a1f 0%, #1f1510 70%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: dy-duchess 5s ease-in-out infinite;
}
.scn-duchess-of-york-children .dy-child1 {
  position: absolute; bottom: 30%; left: 50%; width: 25px; height: 45px;
  background: radial-gradient(ellipse at 50% 20%, #2a1f14 0%, #1a140e 70%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  box-shadow: 0 0 5px rgba(0,0,0,0.4);
  animation: dy-child1 4s ease-in-out infinite;
}
.scn-duchess-of-york-children .dy-child2 {
  position: absolute; bottom: 30%; left: 65%; width: 22px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #2a1f14 0%, #1a140e 70%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  box-shadow: 0 0 5px rgba(0,0,0,0.4);
  animation: dy-child2 4.5s ease-in-out infinite 0.5s;
}
.scn-duchess-of-york-children .dy-glow {
  position: absolute; bottom: 35%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #b89450 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px rgba(184,148,80,0.2);
  animation: dy-glow 7s ease-in-out infinite alternate;
}

@keyframes dy-wall {
  0% { opacity: 0.9; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes dy-window {
  0% { box-shadow: inset 0 0 10px rgba(138,106,64,0.3); }
  50% { box-shadow: inset 0 0 20px rgba(160,125,80,0.6); }
  100% { box-shadow: inset 0 0 15px rgba(138,106,64,0.5); }
}
@keyframes dy-duchess {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes dy-child1 {
  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 dy-child2 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-3deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dy-glow {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

.scn-clarence-argues-law {
  background: linear-gradient(180deg, #2b1f14 0%, #1a120a 40%, #0d0805 100%),
              radial-gradient(ellipse at 50% 70%, #4a3525 0%, transparent 60%);
}
.scn-clarence-argues-law .bg-wall { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, #33261a 0px, #33261a 4px, #2b1f14 4px, #2b1f14 8px); opacity: 0.6; }
.scn-clarence-argues-law .shadow-cast { position: absolute; left: 20%; bottom: 0; width: 60%; height: 70%; background: radial-gradient(ellipse at 30% 100%, #000 0%, transparent 70%); animation: arg-shadow 6s ease-in-out infinite alternate; }
.scn-clarence-argues-law .figure-clarence { position: absolute; bottom: 5%; left: 50%; width: 40%; height: 75%; transform: translateX(-42%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 50%, #1a120a 100%); border-radius: 60% 60% 40% 40% / 80% 80% 50% 50%; animation: arg-figure 4s ease-in-out infinite; }
.scn-clarence-argues-law .cloak { position: absolute; bottom: 5%; left: 34%; width: 32%; height: 20%; background: linear-gradient(135deg, #5e4a3a 0%, #3a2a1a 100%); border-radius: 20% 80% 50% 50% / 60% 30% 70% 40%; transform-origin: top center; animation: arg-cloak 5s ease-in-out infinite alternate; }
.scn-clarence-argues-law .arm-raising { position: absolute; bottom: 40%; left: 55%; width: 10%; height: 35%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3520 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: arg-arm 3s ease-in-out infinite; }
.scn-clarence-argues-law .candle { position: absolute; top: 15%; right: 25%; width: 2%; height: 12%; background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 8px #d09050; animation: arg-flicker 2s ease-in-out infinite; }
.scn-clarence-argues-law .candle-glow { position: absolute; top: 10%; right: 20%; width: 15%; height: 25%; background: radial-gradient(ellipse, #f0c070 0%, #d09050 30%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: arg-glow 1.5s ease-in-out infinite alternate; }
.scn-clarence-argues-law .bookshelf { position: absolute; top: 8%; right: 5%; width: 25%; height: 40%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.5); }
.scn-clarence-argues-law .table-edge { position: absolute; bottom: 20%; left: 15%; width: 70%; height: 3%; background: linear-gradient(90deg, #5e4a3a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.7); animation: arg-table 8s ease-in-out infinite; }
@keyframes arg-shadow { 0% { opacity: 0.7; transform: scaleX(1) } 50% { opacity: 0.9; transform: scaleX(1.1) } 100% { opacity: 0.6; transform: scaleX(0.95) } }
@keyframes arg-figure { 0% { transform: translateX(-42%) rotate(0deg) } 50% { transform: translateX(-40%) rotate(1deg) } 100% { transform: translateX(-44%) rotate(-1deg) } }
@keyframes arg-cloak { 0% { transform: rotate(0deg) scaleY(1) } 100% { transform: rotate(3deg) scaleY(0.95) } }
@keyframes arg-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes arg-flicker { 0%, 100% { opacity: 1; transform: scaleY(1) } 25% { opacity: 0.85; transform: scaleY(0.95) } 75% { opacity: 0.9; transform: scaleY(1.05) } }
@keyframes arg-glow { 0% { opacity: 0.6; transform: scale(0.8) } 100% { opacity: 1; transform: scale(1.2) } }
@keyframes arg-table { 0%, 100% { transform: translateX(0) } 50% { transform: translateX(-2px) scaleY(0.9) } }

.scn-murderers-accuse-clarence {
  background: linear-gradient(180deg, #1f1a14 0%, #120e0a 50%, #080605 100%),
              radial-gradient(ellipse at 20% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-murderers-accuse-clarence .bg-dungeon { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #2a1f14 0px, #2a1f14 3px, #1a120a 3px, #1a120a 6px); opacity: 0.5; }
.scn-murderers-accuse-clarence .floor-shadow { position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%); }
.scn-murderers-accuse-clarence .figure-clarence { position: absolute; bottom: 5%; left: 50%; width: 30%; height: 60%; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; animation: acc1-figc 5s ease-in-out infinite; }
.scn-murderers-accuse-clarence .figure-murderer-left { position: absolute; bottom: 5%; left: 15%; width: 22%; height: 65%; background: linear-gradient(180deg, #2a1e14 0%, #110a05 100%); border-radius: 40% 60% 30% 50% / 60% 80% 40% 50%; transform: skewX(5deg); animation: acc1-figl 6s ease-in-out infinite alternate; }
.scn-murderers-accuse-clarence .figure-murderer-right { position: absolute; bottom: 5%; right: 15%; width: 22%; height: 70%; background: linear-gradient(180deg, #2a1e14 0%, #110a05 100%); border-radius: 60% 40% 50% 30% / 80% 60% 50% 40%; transform: skewX(-5deg); animation: acc1-figr 6s ease-in-out infinite alternate; }
.scn-murderers-accuse-clarence .torch-left { position: absolute; bottom: 50%; left: 8%; width: 3%; height: 20%; background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 10px #c08040; animation: acc1-torch 2s ease-in-out infinite; }
.scn-murderers-accuse-clarence .torch-right { position: absolute; bottom: 50%; right: 8%; width: 3%; height: 20%; background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 10px #c08040; animation: acc1-torch 2.5s ease-in-out infinite reverse; }
.scn-murderers-accuse-clarence .torch-glow-left { position: absolute; bottom: 40%; left: 4%; width: 12%; height: 30%; background: radial-gradient(ellipse, #c08040 0%, transparent 70%); filter: blur(6px); animation: acc1-glow 1.8s ease-in-out infinite alternate; }
.scn-murderers-accuse-clarence .torch-glow-right { position: absolute; bottom: 40%; right: 4%; width: 12%; height: 30%; background: radial-gradient(ellipse, #c08040 0%, transparent 70%); filter: blur(6px); animation: acc1-glow 2.2s ease-in-out infinite alternate; }
@keyframes acc1-figc { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes acc1-figl { 0% { transform: skewX(5deg) translateX(0) } 100% { transform: skewX(3deg) translateX(-5px) } }
@keyframes acc1-figr { 0% { transform: skewX(-5deg) translateX(0) } 100% { transform: skewX(-3deg) translateX(5px) } }
@keyframes acc1-torch { 0%, 100% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(0.9) rotate(2deg) } }
@keyframes acc1-glow { 0% { opacity: 0.5; transform: scale(0.9) } 100% { opacity: 1; transform: scale(1.1) } }

.scn-murderers-accuse-clarence-II {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #050302 100%),
              radial-gradient(ellipse at 80% 30%, #2a1f14 0%, transparent 60%);
}
.scn-murderers-accuse-clarence-II .bg-stone { position: absolute; inset: 0; background: repeating-conic-gradient(#2a1f14 0% 25%, transparent 0% 50%) 0 0 / 8px 8px; opacity: 0.4; }
.scn-murderers-accuse-clarence-II .vertical-chain { position: absolute; top: 0; left: 30%; width: 4%; height: 100%; background: repeating-linear-gradient(0deg, #5e4a3a 0px, #5e4a3a 6px, transparent 6px, transparent 10px); opacity: 0.5; }
.scn-murderers-accuse-clarence-II .figure-clarence-kneeling { position: absolute; bottom: 5%; left: 45%; width: 25%; height: 40%; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; animation: acc2-fig 3s ease-in-out infinite; }
.scn-murderers-accuse-clarence-II .blade-held { position: absolute; bottom: 30%; left: 60%; width: 2%; height: 35%; background: linear-gradient(180deg, #a09080 0%, #605040 100%); border-radius: 10%; transform: rotate(15deg); box-shadow: 0 0 10px 2px #c0a080; animation: acc2-blade 2s ease-in-out infinite alternate; }
.scn-murderers-accuse-clarence-II .hand-restraining { position: absolute; bottom: 25%; left: 55%; width: 8%; height: 12%; background: radial-gradient(circle at 30% 30%, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30%; animation: acc2-hand 4s ease-in-out infinite; }
.scn-murderers-accuse-clarence-II .sparks { position: absolute; top: 20%; left: 20%; width: 60%; height: 40%; background: radial-gradient(circle at 10% 30%, #d09050 0%, transparent 5%), radial-gradient(circle at 70% 50%, #c08040 0%, transparent 6%), radial-gradient(circle at 40% 80%, #e0a060 0%, transparent 4%); animation: acc2-sparks 1s steps(3) infinite; }
.scn-murderers-accuse-clarence-II .shadow-accuser { position: absolute; bottom: 5%; left: 15%; width: 20%; height: 60%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 20% 80% 40% 60% / 60% 40% 60% 40%; animation: acc2-shadow 5s ease-in-out infinite alternate; }
.scn-murderers-accuse-clarence-II .floor-pattern { position: absolute; bottom: 0; left: 0; width: 100%; height: 8%; background: repeating-linear-gradient(45deg, #2a1f14 0px, #2a1f14 4px, #1a120a 4px, #1a120a 8px); opacity: 0.3; }
@keyframes acc2-fig { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-48%) translateY(-3px) } 100% { transform: translateX(-52%) translateY(2px) } }
@keyframes acc2-blade { 0% { transform: rotate(12deg) scaleY(1) } 100% { transform: rotate(20deg) scaleY(1.05) } }
@keyframes acc2-hand { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes acc2-sparks { 0% { opacity: 0.8 } 33% { opacity: 0.5 } 66% { opacity: 1 } 100% { opacity: 0.3 } }
@keyframes acc2-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.15) translateX(5px) } }

.scn-clarence-argues-providence {
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 40%, #0d0a06 100%),
              radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-clarence-argues-providence .bg-vault { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%); }
.scn-clarence-argues-providence .light-beams { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(200,180,140,0.15) 0%, transparent 50%), repeating-linear-gradient(45deg, transparent 0%, transparent 40%, rgba(200,180,140,0.05) 40%, rgba(200,180,140,0.05) 42%, transparent 42%, transparent 100%); animation: pro-beams 8s ease-in-out infinite alternate; }
.scn-clarence-argues-providence .figure-providence { position: absolute; bottom: 5%; left: 50%; width: 35%; height: 75%; transform: translateX(-50%); background: linear-gradient(180deg, #5e4a3a 0%, #2a1a10 100%); border-radius: 40% 60% 30% 50% / 70% 80% 40% 50%; animation: pro-fig 6s ease-in-out infinite; }
.scn-clarence-argues-providence .arms-outstretched { position: absolute; bottom: 50%; left: 40%; width: 20%; height: 30%; background: linear-gradient(135deg, #6a4a2a 0%, #4a3520 100%); border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%; transform: rotate(-20deg); transform-origin: right center; animation: pro-arms 4s ease-in-out infinite alternate; }
.scn-clarence-argues-providence .halo-back { position: absolute; top: 10%; left: 35%; width: 30%; height: 30%; background: radial-gradient(circle, #d0c0a0 0%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: pro-halo 5s ease-in-out infinite; }
.scn-clarence-argues-providence .dust-motes { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 20% 30%, rgba(220,200,160,0.08) 0%, transparent 2%), radial-gradient(circle at 70% 60%, rgba(220,200,160,0.12) 0%, transparent 3%), radial-gradient(circle at 40% 80%, rgba(220,200,160,0.06) 0%, transparent 1%); animation: pro-dust 10s linear infinite; }
.scn-clarence-argues-providence .floor-reflection { position: absolute; bottom: 0; left: 20%; width: 60%; height: 10%; background: radial-gradient(ellipse at 50% 100%, #2a1a10 0%, transparent 70%); animation: pro-reflection 7s ease-in-out infinite alternate; }
@keyframes pro-beams { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.02) } 100% { opacity: 0.4; transform: scale(0.98) } }
@keyframes pro-fig { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes pro-arms { 0% { transform: rotate(-20deg) } 100% { transform: rotate(-10deg) } }
@keyframes pro-halo { 0% { opacity: 0.4; transform: scale(0.8) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(0.9) } }
@keyframes pro-dust { 0% { transform: translateX(0) translateY(0) } 100% { transform: translateX(-20px) translateY(-30px) } }
@keyframes pro-reflection { 0% { opacity: 0.5; transform: scaleX(1) } 100% { opacity: 0.8; transform: scaleX(1.1) } }

.scn-head-of-hastings {
  background: linear-gradient(145deg, #1e1814 0%, #2a2018 40%, #1a1410 100%),
              radial-gradient(ellipse at 30% 70%, #3a2a20 0%, transparent 60%);
}
.scn-head-of-hastings .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e16 0%, #1a140e 100%); animation: hh-wall 15s ease-in-out infinite alternate; }
.scn-head-of-hastings .table { position:absolute; bottom:12%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6); }
.scn-head-of-hastings .head { position:absolute; bottom:22%; left:40%; width:60px; height:70px; background: radial-gradient(ellipse 60% 70% at 30% 40%, #4a3a2a 0%, transparent 80%), linear-gradient(135deg, #5a4a3a 0%, #2a1e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); animation: hh-head 6s ease-in-out infinite; }
.scn-head-of-hastings .hand { position:absolute; bottom:20%; left:52%; width:40px; height:50px; background: linear-gradient(135deg, #3a2a1e 0%, #1e1610 100%); border-radius: 30% 40% 40% 30% / 50% 50% 50% 50%; transform: rotate(-20deg); animation: hh-hand 4s ease-in-out infinite alternate; }
.scn-head-of-hastings .candle-glow { position:absolute; bottom:30%; left:60%; width:120px; height:120px; background: radial-gradient(circle, #c88545 0%, #8a5a30 30%, transparent 70%); opacity:0.5; animation: hh-glow 3s ease-in-out infinite alternate; }
.scn-head-of-hastings .candle { position:absolute; bottom:30%; left:62%; width:8px; height:30px; background: linear-gradient(180deg, #e0b080 0%, #8a5a30 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 12px 4px #c88545; animation: hh-candle 2s ease-in-out infinite alternate; }
.scn-head-of-hastings .cloth { position:absolute; bottom:15%; left:30%; width:80px; height:40px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1e18 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; transform: rotate(5deg); opacity:0.8; animation: hh-cloth 8s ease-in-out infinite; }
@keyframes hh-wall { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes hh-head { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes hh-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(3px) } 100% { transform: rotate(-22deg) translateX(0) } }
@keyframes hh-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.45; transform: scale(.95) } }
@keyframes hh-candle { 0% { height:28px; opacity:.9 } 50% { height:32px; opacity:1 } 100% { height:28px; opacity:.85 } }
@keyframes hh-cloth { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(6deg) translateY(0) } }

.scn-richard-false-grief {
  background: linear-gradient(180deg, #1a1410 0%, #241e16 60%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 80%, #2a1e14 0%, transparent 80%);
}
.scn-richard-false-grief .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1e1410 0%, #2a2018 50%, #1a100e 100%); animation: rf-wall 12s ease-in-out infinite alternate; }
.scn-richard-false-grief .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1e1a12 0%, #0e0a06 100%); }
.scn-richard-false-grief .figure-richard { position:absolute; bottom:15%; left:35%; width:45px; height:80px; background: linear-gradient(180deg, #2a1e1a 0%, #16100c 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rf-figure 5s ease-in-out infinite; }
.scn-richard-false-grief .hand-covering { position:absolute; bottom:30%; left:37%; width:20px; height:24px; background: linear-gradient(135deg, #2a1e1a 0%, #1a100c 100%); border-radius: 40% 40% 50% 50%; transform: rotate(15deg); animation: rf-hand 3s ease-in-out infinite; }
.scn-richard-false-grief .profile-silhouette { position:absolute; bottom:40%; left:36%; width:18px; height:26px; background: #16100c; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: rf-profile 4s ease-in-out infinite; }
.scn-richard-false-grief .candle-glow { position:absolute; bottom:35%; left:55%; width:100px; height:100px; background: radial-gradient(circle, #b08040 0%, #7a5028 30%, transparent 70%); opacity:0.4; animation: rf-glow 3.5s ease-in-out infinite alternate; }
.scn-richard-false-grief .candle { position:absolute; bottom:35%; left:56%; width:6px; height:24px; background: linear-gradient(180deg, #d0a060 0%, #7a5028 100%); border-radius: 3px; box-shadow: 0 0 10px 3px #b08040; animation: rf-candle 2.2s ease-in-out infinite alternate; }
@keyframes rf-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes rf-figure { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes rf-hand { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes rf-profile { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(1px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes rf-glow { 0% { opacity:.35; transform: scale(1) } 50% { opacity:.55; transform: scale(1.12) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes rf-candle { 0% { height:22px; opacity:.9 } 50% { height:26px; opacity:1 } 100% { height:22px; opacity:.85 } }

.scn-mayor-convinced {
  background: linear-gradient(135deg, #1a1410 0%, #2a1e14 50%, #14100c 100%),
              radial-gradient(ellipse at 40% 60%, #2a1e14 0%, transparent 70%);
}
.scn-mayor-convinced .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #14100a 0%, #1e1812 50%, #100a08 100%); animation: mc-bg 18s ease-in-out infinite alternate; }
.scn-mayor-convinced .table-round { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: linear-gradient(135deg, #3a2a1a 0%, #1e1610 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 -8px 20px rgba(0,0,0,.7); }
.scn-mayor-convinced .figure-mayor { position:absolute; bottom:18%; left:22%; width:50px; height:75px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%); border-radius: 30% 30% 45% 45% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mc-mayor 6s ease-in-out infinite; }
.scn-mayor-convinced .figure-richard { position:absolute; bottom:20%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #1e1612 0%, #100a08 100%); border-radius: 35% 35% 40% 40% / 55% 55% 35% 35%; transform: rotate(-5deg); animation: mc-richard 4s ease-in-out infinite alternate; }
.scn-mayor-convinced .figure-buckingham { position:absolute; bottom:18%; left:62%; width:45px; height:78px; background: linear-gradient(180deg, #2a1e1a 0%, #16100c 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(3deg); animation: mc-buck 5s ease-in-out infinite; }
.scn-mayor-convinced .candle-glow { position:absolute; bottom:28%; left:46%; width:130px; height:130px; background: radial-gradient(circle, #b08040 0%, #7a5028 30%, transparent 70%); opacity:0.45; animation: mc-glow 4s ease-in-out infinite alternate; }
.scn-mayor-convinced .candle { position:absolute; bottom:28%; left:47%; width:8px; height:28px; background: linear-gradient(180deg, #d0a060 0%, #7a5028 100%); border-radius: 4px; box-shadow: 0 0 14px 5px #b08040; animation: mc-candle 2.5s ease-in-out infinite alternate; }
@keyframes mc-bg { 0% { opacity:.65 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes mc-mayor { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mc-richard { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes mc-buck { 0% { transform: rotate(3deg) translateX(0) } 50% { transform: rotate(2deg) translateX(3px) } 100% { transform: rotate(4deg) translateX(0) } }
@keyframes mc-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.15) } 100% { opacity:.45; transform: scale(.92) } }
@keyframes mc-candle { 0% { height:26px; opacity:.9 } 50% { height:30px; opacity:1 } 100% { height:26px; opacity:.85 } }

.scn-buckingham-explains {
  background: linear-gradient(180deg, #1a1410 0%, #221c14 60%, #100a06 100%),
              radial-gradient(ellipse at 55% 70%, #2a1e14 0%, transparent 75%);
}
.scn-buckingham-explains .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #14100a 0%, #1e1610 50%, #0a0604 100%); animation: be-bg 14s ease-in-out infinite alternate; }
.scn-buckingham-explains .desk { position:absolute; bottom:10%; left:10%; right:30%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%); border-radius: 0 0 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-buckingham-explains .figure-buckingham { position:absolute; bottom:18%; left:15%; width:45px; height:80px; background: linear-gradient(180deg, #2a1e1a 0%, #16100c 100%); border-radius: 30% 30% 45% 45% / 50% 50% 40% 40%; transform-origin: bottom center; animation: be-buck 5s ease-in-out infinite; }
.scn-buckingham-explains .figure-mayor { position:absolute; bottom:16%; left:55%; width:50px; height:75px; background: linear-gradient(180deg, #1e1814 0%, #120e0a 100%); border-radius: 35% 35% 40% 40% / 55% 55% 35% 35%; transform: rotate(5deg); animation: be-mayor 6s ease-in-out infinite alternate; }
.scn-buckingham-explains .document { position:absolute; bottom:16%; left:30%; width:30px; height:22px; background: linear-gradient(135deg, #4a3a28 0%, #2a1e14 100%); border-radius: 2%; transform: rotate(-15deg); animation: be-doc 7s ease-in-out infinite; }
.scn-buckingham-explains .candle-glow { position:absolute; bottom:30%; left:50%; width:100px; height:100px; background: radial-gradient(circle, #b08040 0%, #7a5028 30%, transparent 70%); opacity:0.4; animation: be-glow 4.2s ease-in-out infinite alternate; }
.scn-buckingham-explains .candle { position:absolute; bottom:30%; left:51%; width:7px; height:26px; background: linear-gradient(180deg, #d0a060 0%, #7a5028 100%); border-radius: 3px; box-shadow: 0 0 12px 4px #b08040; animation: be-candle 2.8s ease-in-out infinite alternate; }
@keyframes be-bg { 0% { opacity:.6 } 50% { opacity:.75 } 100% { opacity:.65 } }
@keyframes be-buck { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes be-mayor { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(0) } }
@keyframes be-doc { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(2px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes be-glow { 0% { opacity:.35; transform: scale(1) } 50% { opacity:.55; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.92) } }
@keyframes be-candle { 0% { height:24px; opacity:.9 } 50% { height:28px; opacity:1 } 100% { height:24px; opacity:.85 } }

/* Scene: duchess-curses-richard */
.scn-duchess-curses-richard {
  background: linear-gradient(180deg, #c8a870 0%, #b89555 40%, #a08040 100%),
              radial-gradient(ellipse at 30% 30%, #eeddaa 0%, transparent 60%);
}
.scn-duchess-curses-richard .dcr-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0d89a 0%, #e0c080 70%, transparent 100%);
  animation: dcr-sky 12s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .dcr-sun {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff6e0 0%, #f7d488 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(247,212,136,0.6), 0 0 160px 80px rgba(247,212,136,0.3);
  animation: dcr-pulse 6s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .dcr-window {
  position: absolute; bottom: 30%; left: 10%; width: 200px; height: 250px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px rgba(0,0,0,0.5);
  animation: dcr-frame 18s ease-in-out infinite;
}
.scn-duchess-curses-richard .dcr-mother {
  position: absolute; bottom: 40%; left: 18%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcr-figure 4s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .dcr-son {
  position: absolute; bottom: 40%; left: 28%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcr-figure 4s ease-in-out infinite alternate-reverse, dcr-kneel 4s ease-in-out infinite;
}
.scn-duchess-curses-richard .dcr-dust {
  position: absolute; top: 20%; left: 60%; width: 4px; height: 4px;
  background: #fff4d0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,244,208,0.6);
  animation: dcr-dust 8s linear infinite;
}
.scn-duchess-curses-richard .dcr-dust2 {
  left: 40%; animation-delay: -3s;
}
@keyframes dcr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dcr-pulse {
  0% { transform: scale(1) rotate(0deg); opacity: 0.9; box-shadow: 0 0 80px 40px rgba(247,212,136,0.6); }
  50% { transform: scale(1.05) rotate(5deg); opacity: 1; box-shadow: 0 0 100px 50px rgba(247,212,136,0.8); }
  100% { transform: scale(0.98) rotate(-3deg); opacity: 0.85; box-shadow: 0 0 60px 30px rgba(247,212,136,0.5); }
}
@keyframes dcr-frame {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@keyframes dcr-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes dcr-kneel {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
}
@keyframes dcr-dust {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  100% { transform: translate(-40px, -60px) scale(0.5); opacity: 0; }
}

/* Scene: duchess-prophesies */
.scn-duchess-prophesies {
  background: linear-gradient(180deg, #b09a55 0%, #8a7a45 50%, #6a5a2a 100%),
              radial-gradient(ellipse at 50% 0%, #eedd99 0%, transparent 60%);
}
.scn-duchess-prophesies .dpr-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0c880 0%, #d0b870 70%, transparent 100%);
  animation: dpr-sky 10s ease-in-out infinite alternate;
}
.scn-duchess-prophesies .dpr-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a2a 0%, #4a3a1a 100%);
  border-radius: 80% 20% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: dpr-ground 14s ease-in-out infinite;
}
.scn-duchess-prophesies .dpr-drum {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #a08040 0%, #6a5020 100%);
  border-radius: 50% / 30% 30% 70% 70%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: dpr-drum 3s ease-in-out infinite;
}
.scn-duchess-prophesies .dpr-stick-left {
  position: absolute; bottom: 48%; left: 22%; width: 40px; height: 4px;
  background: #4a3a1a;
  border-radius: 2px;
  transform-origin: 100% 50%;
  animation: dpr-stick 0.8s ease-in-out infinite alternate;
}
.scn-duchess-prophesies .dpr-stick-right {
  position: absolute; bottom: 48%; left: 38%; width: 40px; height: 4px;
  background: #4a3a1a;
  border-radius: 2px;
  transform-origin: 0% 50%;
  animation: dpr-stick 0.8s ease-in-out infinite alternate-reverse;
}
.scn-duchess-prophesies .dpr-drummer {
  position: absolute; bottom: 40%; right: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpr-figure 5s ease-in-out infinite alternate;
}
.scn-duchess-prophesies .dpr-shadow {
  position: absolute; bottom: 35%; right: 22%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: dpr-shadow 5s ease-in-out infinite alternate;
}
@keyframes dpr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dpr-ground {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes dpr-drum {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02, 0.98); }
}
@keyframes dpr-stick {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(20deg); }
}
@keyframes dpr-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes dpr-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

/* Scene: duchess-final-curse */
.scn-duchess-final-curse {
  background: linear-gradient(180deg, #b89850 0%, #9a7a3a 40%, #7a5a2a 100%),
              radial-gradient(ellipse at 60% 40%, #eeddaa 0%, transparent 50%);
}
.scn-duchess-final-curse .dfc-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c088 0%, #c8b070 60%, transparent 100%);
  animation: dfc-sky 14s ease-in-out infinite alternate;
}
.scn-duchess-final-curse .dfc-sun {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff6e0 0%, #f5d488 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px rgba(245,212,136,0.7), 0 0 200px 100px rgba(245,212,136,0.3);
  animation: dfc-sun 8s ease-in-out infinite alternate;
}
.scn-duchess-final-curse .dfc-figure {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dfc-figure 6s ease-in-out infinite alternate;
}
.scn-duchess-final-curse .dfc-arm {
  position: absolute; bottom: 50%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: 100% 100%;
  animation: dfc-arm 4s ease-in-out infinite alternate;
}
.scn-duchess-final-curse .dfc-hand {
  position: absolute; bottom: 50%; left: 8%; width: 25px; height: 30px;
  background: #1a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 100% 100%;
  animation: dfc-hand 4s ease-in-out infinite alternate;
}
.scn-duchess-final-curse .dfc-chain {
  position: absolute; bottom: 30%; left: 50%; width: 200px; height: 4px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 10px);
  border-radius: 2px;
  transform-origin: left center;
  animation: dfc-chain 6s ease-in-out infinite;
}
.scn-duchess-final-curse .dfc-chain2 {
  bottom: 25%; left: 45%; width: 180px; animation-delay: -1.5s; opacity: 0.6;
}
@keyframes dfc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dfc-sun {
  0% { transform: scale(1) rotate(0deg); opacity: 0.85; box-shadow: 0 0 100px 50px rgba(245,212,136,0.7); }
  50% { transform: scale(1.05) rotate(4deg); opacity: 1; box-shadow: 0 0 120px 60px rgba(245,212,136,0.9); }
  100% { transform: scale(0.97) rotate(-2deg); opacity: 0.8; box-shadow: 0 0 80px 40px rgba(245,212,136,0.5); }
}
@keyframes dfc-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dfc-arm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(30deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes dfc-hand {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.1); }
  100% { transform: rotate(-5deg) scale(0.95); }
}
@keyframes dfc-chain {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(5deg); }
  50% { transform: translateX(10px) rotate(-5deg); }
  75% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* Scene: elizabeth-laments */
.scn-elizabeth-laments {
  background: linear-gradient(180deg, #b89a60 0%, #9a7a40 40%, #7a5a30 100%),
              radial-gradient(ellipse at 40% 30%, #eeddaa 0%, transparent 60%);
}
.scn-elizabeth-laments .ela-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dcc488 0%, #ccb470 60%, transparent 100%);
  animation: ela-sky 10s ease-in-out infinite alternate;
}
.scn-elizabeth-laments .ela-window {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 240px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border: 8px solid #3a2a1a;
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
  animation: ela-window 20s ease-in-out infinite;
}
.scn-elizabeth-laments .ela-figure {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ela-figure 5s ease-in-out infinite alternate;
}
.scn-elizabeth-laments .ela-veil {
  position: absolute; bottom: 35%; left: 42%; width: 80px; height: 100px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(3px);
  transform-origin: top center;
  animation: ela-veil 6s ease-in-out infinite alternate;
}
.scn-elizabeth-laments .ela-rose {
  position: absolute; bottom: 18%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 40%, #c8553d 0%, #a0461a 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,85,61,0.5);
  animation: ela-rose 4s ease-in-out infinite alternate;
}
.scn-elizabeth-laments .ela-tear {
  position: absolute; bottom: 22%; left: 48%; width: 3px; height: 8px;
  background: radial-gradient(ellipse, rgba(180,200,255,0.8) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ela-tear 3s linear infinite;
}
@keyframes ela-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ela-window {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes ela-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ela-veil {
  0% { transform: rotate(-5deg) scaleY(1); opacity: 0.7; }
  50% { transform: rotate(0deg) scaleY(1.05); opacity: 1; }
  100% { transform: rotate(5deg) scaleY(0.95); opacity: 0.8; }
}
@keyframes ela-rose {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.1) rotate(10deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-5deg); opacity: 0.7; }
}
@keyframes ela-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  100% { transform: translateY(20px) scale(0.5); opacity: 0; }
}

.scn-richard-instructions {
  background:
    linear-gradient(135deg, #1a1210 0%, #2d1f1a 30%, #1a1210 60%, #0f0a08 100%),
    radial-gradient(ellipse at 80% 20%, #3a2a24 0%, transparent 50%);
}
.scn-richard-instructions .wall-left {
  position:absolute; inset:0 50% 0 0;
  background: linear-gradient(90deg, #2a1e1a 0%, #3a2c26 50%, #2a1e1a 100%);
  animation: ri-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-richard-instructions .wall-right {
  position:absolute; inset:0 0 0 50%;
  background: linear-gradient(270deg, #1e1410 0%, #2a1e1a 50%, #1e1410 100%);
  animation: ri-wall-pulse 12s ease-in-out infinite alternate-reverse;
}
.scn-richard-instructions .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%);
  border-radius: 0 0 20% 20%;
}
.scn-richard-instructions .table {
  position:absolute; bottom:12%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #4a342a 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-richard-instructions .candle {
  position:absolute; bottom:20%; left:45%; width:4px; height:12px;
  background: linear-gradient(180deg, #e8c870 0%, #c8a850 50%, #a08030 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 6px #c8a840, 0 0 24px 12px rgba(200,168,64,0.4);
  animation: ri-candle-flicker 0.8s ease-in-out infinite alternate;
}
.scn-richard-instructions .figure-richard {
  position:absolute; bottom:10%; left:30%; width:14%; height:50%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a24 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure-breathe 5s ease-in-out infinite;
}
.scn-richard-instructions .figure-catesby {
  position:absolute; bottom:10%; right:25%; width:12%; height:45%;
  background: radial-gradient(ellipse at 50% 30%, #2e221e 0%, #120c0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure-breathe 5s ease-in-out infinite reverse;
}
.scn-richard-instructions .shadow {
  position:absolute; bottom:0; left:15%; width:70%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(8px);
  animation: ri-shadow-pulse 6s ease-in-out infinite alternate;
}
@keyframes ri-wall-pulse {
  0% { opacity:0.8; filter: brightness(0.8); }
  50% { opacity:1; filter: brightness(1); }
  100% { opacity:0.9; filter: brightness(0.9); }
}
@keyframes ri-candle-flicker {
  0% { transform: scaleY(0.9) scaleX(1.1); box-shadow: 0 0 8px 4px #c8a840, 0 0 20px 8px rgba(200,168,64,0.3); }
  25% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 12px 6px #d4b050, 0 0 24px 12px rgba(212,176,80,0.4); }
  75% { transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 10px 5px #c8a840, 0 0 22px 10px rgba(200,168,64,0.35); }
  100% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 14px 7px #d4b050, 0 0 28px 14px rgba(212,176,80,0.45); }
}
@keyframes ri-figure-breathe {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ri-shadow-pulse {
  0% { opacity:0.3; transform: scaleY(0.9); }
  50% { opacity:0.5; transform: scaleY(1); }
  100% { opacity:0.4; transform: scaleY(0.95); }
}

.scn-catesby-departs {
  background:
    linear-gradient(135deg, #1c1412 0%, #2e201a 40%, #1c1412 70%, #0e0a08 100%),
    radial-gradient(ellipse at 70% 40%, #4a342a 0%, transparent 60%);
}
.scn-catesby-departs .room-bg {
  position:absolute; inset:0; opacity:0.6;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  animation: cd-room-darken 8s ease-in-out infinite alternate;
}
.scn-catesby-departs .door-frame {
  position:absolute; right:8%; bottom:0; width:20%; height:80%;
  background: linear-gradient(90deg, #3a2822 0%, #2a1c16 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -4px 0 12px rgba(0,0,0,0.6);
}
.scn-catesby-departs .door-open {
  position:absolute; right:10%; bottom:0; width:16%; height:70%;
  background: radial-gradient(ellipse at 50% 50%, #0a0604 0%, #1a1210 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: cd-door-sway 6s ease-in-out infinite alternate;
}
.scn-catesby-departs .figure-catesby-depart {
  position:absolute; bottom:8%; right:28%; width:10%; height:55%;
  background: radial-gradient(ellipse at 50% 30%, #2e221e 0%, #120c0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-walk-away 8s ease-in-out infinite;
}
.scn-catesby-departs .torch {
  position:absolute; left:15%; bottom:40%; width:6px; height:18px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3422 100%);
  border-radius: 3px;
  transform: rotate(5deg);
}
.scn-catesby-departs .torch-glow {
  position:absolute; left:12%; bottom:38%; width:12%; height:15%;
  background: radial-gradient(circle, #e8b860 0%, #c89840 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cd-torch-flicker 1.2s ease-in-out infinite alternate;
}
@keyframes cd-room-darken {
  0% { opacity:0.5; filter: brightness(0.7); }
  50% { opacity:0.7; filter: brightness(1); }
  100% { opacity:0.6; filter: brightness(0.85); }
}
@keyframes cd-door-sway {
  0% { transform: rotateY(0deg) scaleX(0.8); }
  50% { transform: rotateY(20deg) scaleX(1); }
  100% { transform: rotateY(-5deg) scaleX(0.9); }
}
@keyframes cd-walk-away {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateX(-8px) translateY(2px) rotate(3deg) scale(0.95); }
  50% { transform: translateX(-16px) translateY(4px) rotate(6deg) scale(0.9); }
  75% { transform: translateX(-24px) translateY(2px) rotate(3deg) scale(0.85); }
  100% { transform: translateX(-32px) translateY(0px) rotate(0deg) scale(0.8); }
}
@keyframes cd-torch-flicker {
  0% { transform: scale(0.8) rotate(-2deg); opacity:0.6; }
  50% { transform: scale(1.1) rotate(2deg); opacity:1; }
  100% { transform: scale(0.9) rotate(0deg); opacity:0.7; }
}

.scn-richard-plans-beheading {
  background:
    linear-gradient(180deg, #120a08 0%, #2a1a14 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 60% 30%, #3a241e 0%, transparent 70%);
}
.scn-richard-plans-beheading .cell-bg {
  position:absolute; inset:0; opacity:0.8;
  background: linear-gradient(135deg, #1a1210 0%, #2a1c16 50%, #0e0a08 100%);
  animation: rp-cell-pulse 10s ease-in-out infinite alternate;
}
.scn-richard-plans-beheading .wall-texture {
  position:absolute; inset:5% 5% 20% 5%; opacity:0.3;
  background:
    repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(255,255,255,0.02) 4px, rgba(255,255,255,0.02) 8px),
    repeating-linear-gradient(90deg, transparent, transparent 6px, rgba(255,255,255,0.01) 6px, rgba(255,255,255,0.01) 12px);
  border-radius: 4px;
}
.scn-richard-plans-beheading .table-plans {
  position:absolute; bottom:15%; left:15%; width:70%; height:6%;
  background: linear-gradient(180deg, #4a3024 0%, #2a1a12 100%);
  border-radius: 3px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-richard-plans-beheading .candle-plans {
  position:absolute; bottom:21%; left:35%; width:4px; height:14px;
  background: linear-gradient(180deg, #dbb86a 0%, #b89444 50%, #8a6c30 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 4px #b89444, 0 0 20px 8px rgba(184,148,68,0.4);
  animation: rp-candle-sputter 0.6s ease-in-out infinite alternate;
}
.scn-richard-plans-beheading .figure-richard-plans {
  position:absolute; bottom:10%; left:28%; width:16%; height:55%;
  background: radial-gradient(ellipse at 50% 30%, #3a2822 0%, #1a1210 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-figure-loom 4s ease-in-out infinite;
}
.scn-richard-plans-beheading .figure-catesby-plans {
  position:absolute; bottom:10%; right:25%; width:12%; height:50%;
  background: radial-gradient(ellipse at 50% 30%, #2e201a 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-figure-loom 4s ease-in-out infinite reverse;
}
.scn-richard-plans-beheading .axe {
  position:absolute; bottom:22%; left:52%; width:8px; height:20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1e 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(-15deg) translateX(-10px);
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: rp-axe-tilt 3s ease-in-out infinite alternate;
}
@keyframes rp-cell-pulse {
  0% { opacity:0.7; filter: brightness(0.6); }
  50% { opacity:0.9; filter: brightness(1); }
  100% { opacity:0.8; filter: brightness(0.8); }
}
@keyframes rp-candle-sputter {
  0% { transform: scaleY(0.85) scaleX(1.1); box-shadow: 0 0 6px 3px #b89444, 0 0 16px 6px rgba(184,148,68,0.3); opacity:0.8; }
  50% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 12px 6px #dbb86a, 0 0 24px 12px rgba(219,184,106,0.5); opacity:1; }
  100% { transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 8px 4px #b89444, 0 0 20px 8px rgba(184,148,68,0.35); opacity:0.9; }
}
@keyframes rp-figure-loom {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-5px) scale(1.02) rotate(2deg); }
  100% { transform: translateY(0) scale(1) rotate(-2deg); }
}
@keyframes rp-axe-tilt {
  0% { transform: rotate(-12deg) translateX(-8px) scale(1); }
  50% { transform: rotate(-20deg) translateX(-12px) scale(1.1); }
  100% { transform: rotate(-8deg) translateX(-6px) scale(0.95); }
}

.scn-stanley-dream {
  background:
    linear-gradient(180deg, #0a0806 0%, #1a1410 30%, #120e0a 60%, #080606 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 60%);
}
.scn-stanley-dream .dream-bg {
  position:absolute; inset:0; opacity:0.7;
  background: linear-gradient(135deg, #120c0a 0%, #1e1612 50%, #0a0806 100%);
  animation: sd-bg-throb 15s ease-in-out infinite alternate;
}
.scn-stanley-dream .figure-stanley {
  position:absolute; bottom:8%; left:20%; width:25%; height:40%;
  background: radial-gradient(ellipse at 50% 40%, #2a1e18 0%, #0c0a08 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
  animation: sd-sleep-breathe 6s ease-in-out infinite;
}
.scn-stanley-dream .boar-shape {
  position:absolute; top:10%; right:15%; width:30%; height:25%;
  background:
    radial-gradient(ellipse 60% 50% at 30% 50%, #3a2a1e 0%, transparent 100%),
    radial-gradient(ellipse 50% 60% at 70% 40%, #2a1e14 0%, transparent 100%);
  border-radius: 50% 40% 50% 40% / 40% 50% 50% 40%;
  filter: blur(2px);
  animation: sd-boar-emerge 8s ease-in-out infinite alternate;
}
.scn-stanley-dream .dream-fog {
  position:absolute; inset:0; opacity:0.15;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,255,255,0.05) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 60%, rgba(255,255,255,0.03) 0%, transparent 50%);
  filter: blur(20px);
  animation: sd-fog-drift 20s linear infinite;
}
.scn-stanley-dream .pillow {
  position:absolute; bottom:8%; left:22%; width:14%; height:6%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sd-pillow-shift 6s ease-in-out infinite alternate;
}
@keyframes sd-bg-throb {
  0% { opacity:0.6; filter: brightness(0.5); }
  50% { opacity:0.8; filter: brightness(0.7); }
  100% { opacity:0.7; filter: brightness(0.6); }
}
@keyframes sd-sleep-breathe {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-2px) scale(1.01) rotate(1deg); }
  100% { transform: translateY(0) scale(0.99) rotate(-1deg); }
}
@keyframes sd-boar-emerge {
  0% { transform: translateX(20px) scale(0.7) rotate(-10deg); opacity:0.3; }
  50% { transform: translateX(0) scale(1) rotate(0deg); opacity:0.8; }
  100% { transform: translateX(-10px) scale(0.9) rotate(5deg); opacity:0.5; }
}
@keyframes sd-fog-drift {
  0% { transform: translate(0, 0); }
  25% { transform: translate(5%, -3%); }
  50% { transform: translate(-8%, 2%); }
  75% { transform: translate(3%, -5%); }
  100% { transform: translate(0, 0); }
}
@keyframes sd-pillow-shift {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.05); }
  100% { transform: translateY(1px) scaleX(0.95); }
}

.scn-richard-dismisses-buckingham { 
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 30% 60%, #5e4a3a 0%, transparent 60%);
}
.scn-richard-dismisses-buckingham .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); }
.scn-richard-dismisses-buckingham .window-light { position:absolute; top:8%; left:15%; width:40%; height:55%; background:radial-gradient(ellipse at 50% 30%, #c8b89a 0%, #a08060 40%, transparent 70%); opacity:0.6; animation: sc1-window 8s ease-in-out infinite alternate; }
.scn-richard-dismisses-buckingham .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(0deg, #2a1a1a 0%, #3a2a2a 100%); border-top:1px solid #4a3a3a; }
.scn-richard-dismisses-buckingham .desk { position:absolute; bottom:25%; left:25%; width:50%; height:15%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.7); transform:perspective(400px) rotateX(5deg); }
.scn-richard-dismisses-buckingham .clock { position:absolute; bottom:45%; left:35%; width:16%; height:25%; background:radial-gradient(circle at 50% 30%, #8b6f3e 0%, #5a4a2a 100%); border-radius:50%; border:3px solid #4a3a1a; box-shadow:0 0 20px rgba(139,111,62,0.5); animation: sc1-clock 12s ease-in-out infinite; }
.scn-richard-dismisses-buckingham .clock::after { content:''; position:absolute; top:15%; left:48%; width:4%; height:35%; background:#1a1a0a; border-radius:2px; transform-origin:50% 100%; animation: sc1-hand 2s linear infinite; }
.scn-richard-dismisses-buckingham .candle { position:absolute; bottom:38%; left:45%; width:3%; height:12%; background:linear-gradient(180deg, #c8a86a 0%, #8b6f3e 100%); border-radius:2px; box-shadow:0 0 15px 5px rgba(200,168,106,0.6); animation: sc1-flicker 3s ease-in-out infinite; }
.scn-richard-dismisses-buckingham .figure { position:absolute; bottom:20%; left:50%; width:12%; height:40%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: sc1-figure 5s ease-in-out infinite; }
.scn-richard-dismisses-buckingham .shadow { position:absolute; bottom:20%; left:40%; width:30%; height:10%; background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: sc1-shadow 5s ease-in-out infinite; }
@keyframes sc1-window { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.7; transform:scale(1.05); } 100% { opacity:0.4; transform:scale(0.95); } }
@keyframes sc1-clock { 0% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes sc1-hand { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes sc1-flicker { 0% { opacity:0.8; box-shadow:0 0 10px 3px rgba(200,168,106,0.5); } 50% { opacity:1; box-shadow:0 0 20px 8px rgba(200,168,106,0.8); } 100% { opacity:0.7; box-shadow:0 0 12px 4px rgba(200,168,106,0.4); } }
@keyframes sc1-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(0deg); } 100% { transform:translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes sc1-shadow { 0% { opacity:0.6; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.1); } 100% { opacity:0.5; transform:scaleX(0.9); } }

.scn-buckingham-laments {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a2a4e 100%), radial-gradient(ellipse at 60% 70%, #4a3a4a 0%, transparent 60%);
}
.scn-buckingham-laments .chamber { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a2a 0%, #1a1a2a 100%); }
.scn-buckingham-laments .doorway { position:absolute; bottom:20%; left:15%; width:20%; height:60%; background:#2a2a3a; border-radius:0 0 50% 50% / 0 0 20% 20%; box-shadow:inset 0 0 20px rgba(0,0,0,0.8); border:2px solid #3a2a3a; transform:perspective(600px) rotateY(-10deg); animation: sc2-door 15s ease-in-out infinite alternate; }
.scn-buckingham-laments .table { position:absolute; bottom:25%; left:40%; width:30%; height:12%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.6); }
.scn-buckingham-laments .crown { position:absolute; bottom:30%; left:45%; width:10%; height:10%; background:radial-gradient(circle at 50% 40%, #8b6f3e 0%, #5a4a2a 100%); border-radius:50%; box-shadow:0 0 15px rgba(139,111,62,0.7); animation: sc2-crown 6s ease-in-out infinite; }
.scn-buckingham-laments .figure { position:absolute; bottom:20%; left:55%; width:14%; height:45%; background:linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: sc2-figure 4s ease-in-out infinite alternate; }
.scn-buckingham-laments .candle { position:absolute; bottom:35%; left:30%; width:3%; height:15%; background:linear-gradient(180deg, #c8a86a 0%, #8b6f3e 100%); border-radius:2px; box-shadow:0 0 15px 5px rgba(200,168,106,0.6); animation: sc2-flicker 3s ease-in-out infinite; }
.scn-buckingham-laments .tear { position:absolute; bottom:52%; left:52%; width:8%; height:12%; background:radial-gradient(circle at 50% 30%, #8b8baa 0%, transparent 70%); opacity:0.4; border-radius:50%; animation: sc2-tear 8s ease-in-out infinite; }
@keyframes sc2-door { 0% { transform:perspective(600px) rotateY(-10deg); } 50% { transform:perspective(600px) rotateY(-5deg); } 100% { transform:perspective(600px) rotateY(-12deg); } }
@keyframes sc2-crown { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(5deg); } 100% { transform:translateY(0) rotate(-3deg); } }
@keyframes sc2-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform:translateX(-50%) translateY(-2px) rotate(0deg); } 100% { transform:translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes sc2-flicker { 0% { opacity:0.7; box-shadow:0 0 10px 3px rgba(200,168,106,0.4); } 50% { opacity:1; box-shadow:0 0 20px 8px rgba(200,168,106,0.8); } 100% { opacity:0.6; box-shadow:0 0 12px 4px rgba(200,168,106,0.3); } }
@keyframes sc2-tear { 0% { opacity:0.2; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.2); } 100% { opacity:0.1; transform:scale(0.8); } }

.scn-tyrrel-reports {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-tyrrel-reports .dark-room { position:absolute; inset:0; background:linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%); }
.scn-tyrrel-reports .table { position:absolute; bottom:10%; left:20%; width:60%; height:18%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,0.8); }
.scn-tyrrel-reports .candle { position:absolute; bottom:20%; left:45%; width:3%; height:15%; background:linear-gradient(180deg, #c8a86a 0%, #8b6f3e 100%); border-radius:2px; box-shadow:0 0 20px 6px rgba(200,168,106,0.5); animation: sc3-flicker 3s ease-in-out infinite; }
.scn-tyrrel-reports .dagger { position:absolute; bottom:16%; left:30%; width:20%; height:4%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform:rotate(-30deg) skewX(10deg); clip-path:polygon(5% 20%, 30% 0, 95% 40%, 100% 60%, 30% 100%, 0 80%); animation: sc3-dagger 10s ease-in-out infinite; }
.scn-tyrrel-reports .bloodstain { position:absolute; bottom:12%; left:35%; width:25%; height:8%; background:radial-gradient(ellipse, #5e1a1d 0%, #2a0a0a 50%, transparent 100%); border-radius:50%; opacity:0.7; animation: sc3-stain 6s ease-in-out infinite alternate; }
.scn-tyrrel-reports .hand { position:absolute; bottom:20%; left:38%; width:10%; height:15%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(10deg); animation: sc3-hand 4s ease-in-out infinite; }
.scn-tyrrel-reports .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); animation: sc3-shadow 8s ease-in-out infinite;}
@keyframes sc3-flicker { 0% { opacity:0.7; box-shadow:0 0 10px 3px rgba(200,168,106,0.4); } 50% { opacity:1; box-shadow:0 0 25px 10px rgba(200,168,106,0.7); } 100% { opacity:0.5; box-shadow:0 0 8px 2px rgba(200,168,106,0.3); } }
@keyframes sc3-dagger { 0% { transform:rotate(-30deg) skewX(10deg) translateY(0); } 50% { transform:rotate(-25deg) skewX(8deg) translateY(-2px); } 100% { transform:rotate(-35deg) skewX(12deg) translateY(0); } }
@keyframes sc3-stain { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.9); } }
@keyframes sc3-hand { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-3px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes sc3-shadow { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

.scn-richard-hears-news {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #3a2a4e 100%), radial-gradient(ellipse at 50% 20%, #5a4a5a 0%, transparent 60%);
}
.scn-richard-hears-news .throne-room { position:absolute; inset:0; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-richard-hears-news .throne { position:absolute; bottom:10%; left:38%; width:24%; height:40%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow:0 8px 20px rgba(0,0,0,0.8); }
.scn-richard-hears-news .light-beam { position:absolute; top:0; left:30%; width:40%; height:100%; background:linear-gradient(180deg, rgba(200,180,160,0.3) 0%, rgba(200,180,160,0.05) 100%); clip-path:polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: sc4-beam 10s ease-in-out infinite alternate; }
.scn-richard-hears-news .figure-richard { position:absolute; bottom:20%; left:45%; width:14%; height:35%; background:linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: sc4-richard 6s ease-in-out infinite; }
.scn-richard-hears-news .figure-tyrrel { position:absolute; bottom:20%; left:55%; width:10%; height:30%; background:linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: sc4-tyrrel 8s ease-in-out infinite alternate; }
.scn-richard-hears-news .crown { position:absolute; bottom:35%; left:42%; width:8%; height:8%; background:radial-gradient(circle at 50% 40%, #8b6f3e 0%, #5a4a2a 100%); border-radius:50%; box-shadow:0 0 15px rgba(139,111,62,0.5); animation: sc4-crown 5s ease-in-out infinite; }
.scn-richard-hears-news .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: sc4-shadow 7s ease-in-out infinite; }
@keyframes sc4-beam { 0% { opacity:0.2; transform:scaleY(1); } 50% { opacity:0.5; transform:scaleY(1.05); } 100% { opacity:0.1; transform:scaleY(0.95); } }
@keyframes sc4-richard { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes sc4-tyrrel { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(-2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes sc4-crown { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(10deg); } 100% { transform:translateY(0) rotate(-5deg); } }
@keyframes sc4-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-oxford-encourages {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a3a 40%, #7a5a3a 70%, #4a2a1a 100%), radial-gradient(ellipse at 50% 80%, #7a5a3a 0%, transparent 60%);
}
.scn-oxford-encourages .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: oe-sky 8s ease-in-out infinite alternate;
}
.scn-oxford-encourages .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: oe-hills 14s ease-in-out infinite alternate;
}
.scn-oxford-encourages .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
}
.scn-oxford-encourages .figure-leader {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oe-leader 4s ease-in-out infinite;
}
.scn-oxford-encourages .sword {
  position: absolute; bottom: 58%; left: 37%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: oe-sword 3s ease-in-out infinite alternate;
}
.scn-oxford-encourages .figure-soldier {
  position: absolute; bottom: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: oe-soldier 6s ease-in-out infinite;
}
.scn-oxford-encourages .figure-soldier.a {
  left: 50%;
  animation-delay: 0s;
}
.scn-oxford-encourages .figure-soldier.b {
  left: 58%;
  animation-delay: 0.5s;
}
.scn-oxford-encourages .figure-soldier.c {
  left: 66%;
  animation-delay: 1s;
}
@keyframes oe-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes oe-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oe-leader { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes oe-sword { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-10deg) scaleY(0.95) } }
@keyframes oe-soldier { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }

.scn-bosworth-field {
  background: linear-gradient(180deg, #1e1e3e 0%, #3a2a3a 35%, #6a4a2a 65%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%);
}
.scn-bosworth-field .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: bw-sky 10s ease-in-out infinite alternate;
}
.scn-bosworth-field .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-bosworth-field .tent-main {
  position: absolute; bottom: 32%; left: 38%; width: 90px; height: 70px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: bw-tent 8s ease-in-out infinite alternate;
}
.scn-bosworth-field .tent-small {
  position: absolute; bottom: 28%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: bw-tent 12s ease-in-out infinite alternate;
}
.scn-bosworth-field .tent-small.a {
  left: 55%;
  animation-delay: 0s;
}
.scn-bosworth-field .tent-small.b {
  left: 28%;
  animation-delay: -3s;
}
.scn-bosworth-field .campfire {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #ffa040 0%, #d07020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,100,20,0.6);
  animation: bw-fire 1s ease-in-out infinite alternate;
}
.scn-bosworth-field .figure {
  position: absolute; bottom: 24%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bw-figure 4s ease-in-out infinite;
}
.scn-bosworth-field .figure.a {
  left: 48%;
}
.scn-bosworth-field .figure.b {
  left: 54%;
  animation-delay: 0.8s;
}
.scn-bosworth-field .banner {
  position: absolute; bottom: 48%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 0 0 4px 4px;
  transform-origin: bottom center;
  animation: bw-banner 5s ease-in-out infinite alternate;
}
@keyframes bw-sky { 0% { opacity: .75 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes bw-tent { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) translateY(1px) } }
@keyframes bw-fire { 0% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: .7 } }
@keyframes bw-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bw-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

.scn-richmond-sets-tent {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a2a 40%, #6a4a2a 70%, #4a2a1a 100%), radial-gradient(ellipse at 50% 70%, #8a5a2a 0%, transparent 50%);
}
.scn-richmond-sets-tent .tent-interior {
  position: absolute; inset: 5% 10% 15% 10%;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  animation: rt-interior 12s ease-in-out infinite alternate;
}
.scn-richmond-sets-tent .table {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-richmond-sets-tent .paper {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: rt-paper 8s ease-in-out infinite alternate;
}
.scn-richmond-sets-tent .inkwell {
  position: absolute; bottom: 36%; left: 55%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-richmond-sets-tent .lantern {
  position: absolute; bottom: 55%; left: 45%; width: 12px; height: 18px;
  background: radial-gradient(ellipse, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 40%;
  box-shadow: 0 0 30px 8px rgba(200,150,60,.5), 0 0 60px 16px rgba(200,150,60,.2);
  animation: rt-lantern 4s ease-in-out infinite alternate;
}
.scn-richmond-sets-tent .figure-richmond {
  position: absolute; bottom: 28%; left: 44%; 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: rt-figure 6s ease-in-out infinite;
}
.scn-richmond-sets-tent .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 80%);
  animation: rt-shadow 8s ease-in-out infinite alternate;
}
@keyframes rt-interior { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rt-paper { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes rt-lantern { 0% { box-shadow: 0 0 20px 4px rgba(200,150,60,.3), 0 0 40px 8px rgba(200,150,60,.1); opacity: .8 } 50% { box-shadow: 0 0 40px 12px rgba(200,150,60,.6), 0 0 70px 20px rgba(200,150,60,.3); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(200,150,60,.4), 0 0 50px 12px rgba(200,150,60,.15); opacity: .9 } }
@keyframes rt-figure { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes rt-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .2 } }

.scn-richmond-asks-blunt {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a3a 45%, #6a4a2a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-richmond-asks-blunt .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: rb-sky 9s ease-in-out infinite alternate;
}
.scn-richmond-asks-blunt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-richmond-asks-blunt .tent {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: rb-tent 10s ease-in-out infinite alternate;
}
.scn-richmond-asks-blunt .figure-richmond {
  position: absolute; bottom: 26%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-figure 5s ease-in-out infinite;
}
.scn-richmond-asks-blunt .figure-blunt {
  position: absolute; bottom: 26%; left: 52%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-figure 5s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-richmond-asks-blunt .torch {
  position: absolute; bottom: 34%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: rb-torch 3s ease-in-out infinite alternate;
}
.scn-richmond-asks-blunt .torch-glow {
  position: absolute; bottom: 42%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd060 0%, #b08030 30%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(200,150,60,.4);
  opacity: 0.7;
  animation: rb-glow 2s ease-in-out infinite alternate;
}
@keyframes rb-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes rb-tent { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.01) translateY(-2px) } 100% { transform: scale(0.99) translateY(1px) } }
@keyframes rb-figure { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } }
@keyframes rb-torch { 0% { transform: rotate(-8deg) scaleY(1) } 50% { transform: rotate(4deg) scaleY(1.05) } 100% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes rb-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .8; transform: scale(1.1) } 100% { opacity: .6; transform: scale(0.95) } }

/* clarence-children-pray */
.scn-clarence-children-pray {
  background:
    linear-gradient(180deg, #d4b888 0%, #b8965c 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0b0 0%, transparent 60%);
}
.scn-clarence-children-pray .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #c8a878 0%, #a88858 100%); }
.scn-clarence-children-pray .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-clarence-children-pray .window { position:absolute; top:10%; left:25%; width:30%; height:40%; background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 60%, #b8965c 100%); border: 6px solid #6a4a2a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px #fff0d0, 0 0 40px rgba(240,200,100,.4); }
.scn-clarence-children-pray .child-left { position:absolute; bottom:28%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ccp-pray-left 5s ease-in-out infinite; }
.scn-clarence-children-pray .child-right { position:absolute; bottom:28%; right:30%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ccp-pray-right 5s ease-in-out infinite 0.2s; }
.scn-clarence-children-pray .grandam { position:absolute; bottom:30%; left:48%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ccp-stand 12s ease-in-out infinite; }
.scn-clarence-children-pray .candle { position:absolute; bottom:32%; left:50%; width:10px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #c08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #ffd080; animation: ccp-flame 3s ease-in-out infinite alternate; }
.scn-clarence-children-pray .light-shaft { position:absolute; top:10%; left:25%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,240,210,.3) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ccp-shaft 8s ease-in-out infinite alternate; }
@keyframes ccp-pray-left { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-4px) rotate(-2deg) } }
@keyframes ccp-pray-right { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes ccp-stand { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ccp-flame { 0% { box-shadow: 0 0 15px 3px #ffd080; opacity:0.8 } 50% { box-shadow: 0 0 30px 8px #ffc060; opacity:1 } 100% { box-shadow: 0 0 20px 4px #ffd080; opacity:0.85 } }
@keyframes ccp-shaft { 0% { opacity:0.6; transform: skewX(-2deg) } 50% { opacity:0.9; transform: skewX(2deg) } 100% { opacity:0.5; transform: skewX(-1deg) } }

/* boy-blames-queen */
.scn-boy-blames-queen {
  background:
    linear-gradient(180deg, #c0a878 0%, #a88858 100%),
    radial-gradient(ellipse at 50% 40%, #e8d8b0 0%, transparent 60%);
}
.scn-boy-blames-queen .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #b89868 0%, #8a6a3a 100%); }
.scn-boy-blames-queen .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); box-shadow: inset 0 6px 15px rgba(0,0,0,.4); }
.scn-boy-blames-queen .window { position:absolute; top:8%; right:15%; width:25%; height:45%; background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 60%, #b8965c 100%); border: 6px solid #5a3a1a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 25px #ffe0b0, 0 0 35px rgba(200,180,100,.3); }
.scn-boy-blames-queen .boy { position:absolute; bottom:22%; left:30%; width:25px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 25% 25% / 55% 55% 30% 30%; transform-origin: bottom center; animation: bbq-boy 4s ease-in-out infinite; }
.scn-boy-blames-queen .queen { position:absolute; bottom:22%; left:55%; width:35px; height:65px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 45% 45% 30% 30%; transform-origin: bottom center; animation: bbq-queen 6s ease-in-out infinite; }
.scn-boy-blames-queen .uncle-shadow { position:absolute; bottom:22%; left:42%; width:30px; height:70px; background: rgba(0,0,0,.15); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(4px); animation: bbq-shadow 10s ease-in-out infinite alternate; }
.scn-boy-blames-queen .throne { position:absolute; bottom:22%; left:60%; width:50px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-boy-blames-queen .candle { position:absolute; bottom:25%; left:38%; width:8px; height:25px; background: linear-gradient(180deg, #f0c060 0%, #c08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 18px 5px #ffd080; animation: bbq-flame 2.5s ease-in-out infinite alternate; }
.scn-boy-blames-queen .light-shaft { position:absolute; top:8%; right:15%; width:25%; height:70%; background: linear-gradient(180deg, rgba(255,240,210,.25) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: bbq-shaft 6s ease-in-out infinite alternate; }
@keyframes bbq-boy { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(3deg) } }
@keyframes bbq-queen { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.03) } }
@keyframes bbq-shadow { 0% { opacity:0.3; transform: translateX(-2px) } 50% { opacity:0.6; transform: translateX(2px) } 100% { opacity:0.3; transform: translateX(-1px) } }
@keyframes bbq-flame { 0% { box-shadow: 0 0 12px 3px #ffd080; opacity:0.8 } 50% { box-shadow: 0 0 25px 7px #ffc060; opacity:1 } 100% { box-shadow: 0 0 15px 4px #ffd080; opacity:0.85 } }
@keyframes bbq-shaft { 0% { opacity:0.4; transform: skewY(2deg) } 50% { opacity:0.8; transform: skewY(-2deg) } 100% { opacity:0.5; transform: skewY(1deg) } }

/* duchess-mourns-deceit */
.scn-duchess-mourns-deceit {
  background:
    linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%),
    radial-gradient(ellipse at 60% 40%, #5a4a4a 0%, transparent 70%);
}
.scn-duchess-mourns-deceit .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); }
.scn-duchess-mourns-deceit .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-duchess-mourns-deceit .arch { position:absolute; top:5%; left:20%; width:60%; height:60%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; clip-path: inset(0 0 20% 0); opacity:0.6; }
.scn-duchess-mourns-deceit .duchess { position:absolute; bottom:30%; left:35%; width:40px; height:75px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 15% 15% / 45% 45% 25% 25%; transform-origin: bottom center; animation: dmd-duchess 8s ease-in-out infinite; }
.scn-duchess-mourns-deceit .boy { position:absolute; bottom:30%; left:55%; width:25px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dmd-boy 5s ease-in-out infinite; }
.scn-duchess-mourns-deceit .candle { position:absolute; bottom:35%; left:48%; width:8px; height:25px; background: linear-gradient(180deg, #b08040 0%, #8a6020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px 4px #a07030; animation: dmd-flame 3s ease-in-out infinite alternate; }
.scn-duchess-mourns-deceit .tear-drop { position:absolute; bottom:36%; left:38%; width:4px; height:8px; background: linear-gradient(180deg, #8a7a7a 0%, #6a5a5a 100%); border-radius: 50%; opacity:0.5; animation: dmd-tear 6s ease-in-out infinite; }
.scn-duchess-mourns-deceit .tear-drop-2 { left:60%; animation-delay: -3s; }
@keyframes dmd-duchess { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } }
@keyframes dmd-boy { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes dmd-flame { 0% { box-shadow: 0 0 10px 2px #a07030; opacity:0.6 } 50% { box-shadow: 0 0 20px 5px #b08040; opacity:0.9 } 100% { box-shadow: 0 0 12px 3px #a07030; opacity:0.7 } }
@keyframes dmd-tear { 0%,100% { transform: translateY(0); opacity:0.5 } 50% { transform: translateY(-10px); opacity:0.2 } }

/* queen-elizabeth-grief */
.scn-queen-elizabeth-grief {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a3a 0%, transparent 60%);
}
.scn-queen-elizabeth-grief .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-queen-elizabeth-grief .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); box-shadow: inset 0 10px 25px rgba(0,0,0,.6); }
.scn-queen-elizabeth-grief .window { position:absolute; top:8%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #3a2a1a 100%); border: 4px solid #2a1a0a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px #4a3a2a, 0 0 25px rgba(50,30,10,.3); }
.scn-queen-elizabeth-grief .queen { position:absolute; bottom:25%; left:40%; width:35px; height:70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 20% 20% / 45% 45% 30% 30%; transform-origin: bottom center; animation: qeg-queen 10s ease-in-out infinite; }
.scn-queen-elizabeth-grief .crown { position:absolute; bottom:72%; left:42%; width:24px; height:12px; background: linear-gradient(180deg, #b08040 0%, #8a6020 100%); border-radius: 0 0 40% 40%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: qeg-crown 14s ease-in-out infinite; }
.scn-queen-elizabeth-grief .sword { position:absolute; bottom:20%; left:30%; width:6px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 20% 20%; transform: rotate(20deg); box-shadow: 0 0 4px rgba(0,0,0,.4); }
.scn-queen-elizabeth-grief .shadow { position:absolute; bottom:0; left:35%; width:80px; height:80%; background: rgba(0,0,0,.2); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; filter: blur(10px); animation: qeg-shadow 12s ease-in-out infinite alternate; }
.scn-queen-elizabeth-grief .light-shaft { position:absolute; top:8%; left:10%; width:30%; height:70%; background: linear-gradient(180deg, rgba(80,60,40,.15) 0%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%); animation: qeg-shaft 15s ease-in-out infinite alternate; }
@keyframes qeg-queen { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } }
@keyframes qeg-crown { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } }
@keyframes qeg-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes qeg-shaft { 0% { opacity:0.2; transform: skewX(3deg) } 50% { opacity:0.5; transform: skewX(-3deg) } 100% { opacity:0.3; transform: skewX(2deg) } }

.scn-citizens-fear {
  background:
    linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%);
}
.scn-citizens-fear .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: cf-sky 20s ease-in-out infinite alternate;
}
.scn-citizens-fear .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-citizens-fear .building-left {
  position: absolute; bottom: 35%; left: 8%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-citizens-fear .building-right {
  position: absolute; bottom: 35%; right: 8%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-citizens-fear .figure-1 {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-figure1 4s ease-in-out infinite;
}
.scn-citizens-fear .figure-2 {
  position: absolute; bottom: 30%; left: 45%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-figure2 3s ease-in-out infinite;
}
.scn-citizens-fear .figure-3 {
  position: absolute; bottom: 30%; left: 55%; width: 13px; height: 38px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-figure3 5s ease-in-out infinite;
}
.scn-citizens-fear .cloud-drift {
  position: absolute; top: 18%; left: -10%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cf-cloud 50s linear infinite;
}
@keyframes cf-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cf-figure1 {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cf-figure2 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes cf-figure3 {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(2px) scale(1.02); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes cf-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

.scn-second-citizen-news {
  background:
    linear-gradient(180deg, #6e6e7e 0%, #4e4e5e 50%, #3e3e4e 100%),
    radial-gradient(ellipse at 50% 80%, #5e5e6e 0%, transparent 60%);
}
.scn-second-citizen-news .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5e5e6e 0%, #3e3e4e 100%);
  animation: scn-sky 25s ease-in-out infinite alternate;
}
.scn-second-citizen-news .wall-left {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 70%;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 12% 0 0;
}
.scn-second-citizen-news .wall-right {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 70%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 100%);
  border-radius: 12% 0 0 0;
}
.scn-second-citizen-news .ground {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-second-citizen-news .figure-alone {
  position: absolute; bottom: 10%; left: 50%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: scn-figure 3s ease-in-out infinite;
}
.scn-second-citizen-news .window-dim {
  position: absolute; bottom: 45%; right: 12%; width: 16px; height: 24px;
  background: radial-gradient(circle, rgba(220,200,180,0.3) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(220,200,180,0.15);
  animation: scn-window 4s ease-in-out infinite alternate;
}
@keyframes scn-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes scn-figure {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes scn-window {
  0% { opacity: 0.1; box-shadow: 0 0 8px 2px rgba(220,200,180,0.05); }
  50% { opacity: 0.4; box-shadow: 0 0 16px 6px rgba(220,200,180,0.2); }
  100% { opacity: 0.15; box-shadow: 0 0 10px 3px rgba(220,200,180,0.1); }
}

.scn-citizens-debate {
  background:
    linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(circle at 50% 50%, #4a4a5a 0%, transparent 70%);
}
.scn-citizens-debate .ground-ring {
  position: absolute; bottom: 10%; left: 15%; right: 15%; top: 30%;
  background: radial-gradient(ellipse at 50% 50%, #4a4a3a 0%, #3a3a2a 60%, #2a2a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
}
.scn-citizens-debate .shadow-ring {
  position: absolute; bottom: 10%; left: 15%; right: 15%; top: 30%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  animation: db-ring 10s ease-in-out infinite alternate;
}
.scn-citizens-debate .figure-a {
  position: absolute; bottom: 22%; left: 30%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: db-fig1 4s ease-in-out infinite;
}
.scn-citizens-debate .figure-b {
  position: absolute; bottom: 25%; left: 45%; width: 12px; height: 34px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: db-fig2 5s ease-in-out infinite;
}
.scn-citizens-debate .figure-c {
  position: absolute; bottom: 20%; left: 55%; width: 11px; height: 32px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: db-fig3 3s ease-in-out infinite;
}
.scn-citizens-debate .figure-d {
  position: absolute; bottom: 28%; left: 62%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: db-fig4 6s ease-in-out infinite;
}
.scn-citizens-debate .central-stone {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 20px;
  background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: db-stone 2s ease-in-out infinite alternate;
}
.scn-citizens-debate .cloud-overhead {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: db-cloud 40s linear infinite;
}
@keyframes db-ring {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.85; }
}
@keyframes db-fig1 {
  0% { transform: translate(0, 0) rotate(-2deg); }
  50% { transform: translate(5px, -2px) rotate(2deg); }
  100% { transform: translate(0, 0) rotate(-2deg); }
}
@keyframes db-fig2 {
  0% { transform: translate(0, 0) rotate(1deg); }
  50% { transform: translate(-4px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(1deg); }
}
@keyframes db-fig3 {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(3px, 0) scale(1.03); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes db-fig4 {
  0% { transform: translate(0, 0) rotate(0); }
  50% { transform: translate(-2px, -3px) rotate(-3deg); }
  100% { transform: translate(0, 0) rotate(0); }
}
@keyframes db-stone {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
  50% { box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
}
@keyframes db-cloud {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(120vw); }
}

.scn-citizens-worry-richard {
  background:
    linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 60%);
}
.scn-citizens-worry-richard .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: wr-sky 30s ease-in-out infinite alternate;
}
.scn-citizens-worry-richard .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: wr-hills 18s ease-in-out infinite alternate;
}
.scn-citizens-worry-richard .castle-dist {
  position: absolute; bottom: 30%; left: 65%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  clip-path: polygon(20% 100%, 30% 20%, 40% 100%, 50% 10%, 60% 100%, 70% 30%, 80% 100%);
  animation: wr-castle 12s ease-in-out infinite;
}
.scn-citizens-worry-richard .figure-large {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(0.8);
  animation: wr-large 5s ease-in-out infinite;
}
.scn-citizens-worry-richard .figure-small {
  position: absolute; bottom: 22%; left: 40%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wr-small 4s ease-in-out infinite;
}
.scn-citizens-worry-richard .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-citizens-worry-richard .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(7px);
  animation: wr-cloud-a 45s linear infinite;
}
.scn-citizens-worry-richard .cloud-b {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: wr-cloud-b 55s linear infinite reverse;
}
.scn-citizens-worry-richard .flag {
  position: absolute; bottom: 42%; left: 72%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: wr-flag 3s ease-in-out infinite alternate;
}
@keyframes wr-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes wr-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes wr-castle {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.99); }
}
@keyframes wr-large {
  0% { transform: scaleX(0.8) rotate(-1deg); }
  50% { transform: scaleX(0.8) rotate(1deg) translateY(-2px); }
  100% { transform: scaleX(0.8) rotate(-1deg); }
}
@keyframes wr-small {
  0% { transform: translate(0, 0) rotate(0); }
  50% { transform: translate(3px, -1px) rotate(2deg); }
  100% { transform: translate(0, 0) rotate(0); }
}
@keyframes wr-cloud-a {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(120vw); }
}
@keyframes wr-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes wr-flag {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-8deg); }
}

.scn-margaret-curses-edward {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 60%, #0f0f0a 100%),
              radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 70%);
}
.scn-margaret-curses-edward .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 30%, #2a1a1a 100%);
}
.scn-margaret-curses-edward .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
.scn-margaret-curses-edward .window {
  position: absolute; top: 20%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #a08060 0%, #806040 50%, #4a3020 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: mc1-window 12s ease-in-out infinite alternate;
}
.scn-margaret-curses-edward .figure-left {
  position: absolute; bottom: 28%; left: 15%; width: 22%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc1-fig-left 6s ease-in-out infinite;
}
.scn-margaret-curses-edward .figure-right {
  position: absolute; bottom: 28%; right: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc1-fig-right 8s ease-in-out infinite;
}
.scn-margaret-curses-edward .candle {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: mc1-candle 3s ease-in-out infinite alternate;
}
.scn-margaret-curses-edward .glow {
  position: absolute; bottom: 32%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: mc1-glow 4s ease-in-out infinite alternate;
}
.scn-margaret-curses-edward .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: perspective(60px) rotateX(5deg);
  animation: mc1-shadow 7s ease-in-out infinite;
}
@keyframes mc1-window { 0% { opacity:0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } 100% { opacity:0.7; box-shadow: inset 0 0 25px rgba(0,0,0,0.5); } }
@keyframes mc1-fig-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes mc1-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-8px) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes mc1-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.8; } }
@keyframes mc1-glow { 0% { transform: translate(-50%,-50%) scale(1); opacity:0.6; } 50% { transform: translate(-50%,-50%) scale(1.3); opacity:0.9; } 100% { transform: translate(-50%,-50%) scale(0.9); opacity:0.5; } }
@keyframes mc1-shadow { 0% { transform: perspective(60px) rotateX(5deg) scaleY(1); opacity:0.7; } 50% { transform: perspective(60px) rotateX(5deg) scaleY(0.8); opacity:0.4; } 100% { transform: perspective(60px) rotateX(5deg) scaleY(1); opacity:0.6; } }

.scn-margaret-curses-rivers-dorset {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #0f0f00 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-margaret-curses-rivers-dorset .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1a1a0a 0%, #2a2a1a 30%, #1a1a0a 100%);
}
.scn-margaret-curses-rivers-dorset .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-margaret-curses-rivers-dorset .table {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-margaret-curses-rivers-dorset .figure-rivers {
  position: absolute; bottom: 38%; left: 30%; width: 15%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc2-fig-r 7s ease-in-out infinite;
}
.scn-margaret-curses-rivers-dorset .figure-dorset {
  position: absolute; bottom: 38%; left: 55%; width: 15%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc2-fig-d 9s ease-in-out infinite;
}
.scn-margaret-curses-rivers-dorset .shadow-large {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: perspective(80px) rotateX(8deg);
  animation: mc2-shadow 5s ease-in-out infinite;
}
.scn-margaret-curses-rivers-dorset .goblet {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: mc2-goblet 4s ease-in-out infinite alternate;
}
@keyframes mc2-fig-r { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes mc2-fig-d { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-6px) rotate(-2deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes mc2-shadow { 0% { transform: perspective(80px) rotateX(8deg) scaleY(1); opacity:0.8; } 50% { transform: perspective(80px) rotateX(8deg) scaleY(0.7); opacity:0.5; } 100% { transform: perspective(80px) rotateX(8deg) scaleY(1); opacity:0.7; } }
@keyframes mc2-goblet { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }

.scn-margaret-curses-richard-II {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 60%, #050510 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-margaret-curses-richard-II .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 80%);
  animation: mc3-bg 15s ease-in-out infinite alternate;
}
.scn-margaret-curses-richard-II .figure-richard {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: mc3-fig 6s ease-in-out infinite;
}
.scn-margaret-curses-richard-II .worm-left {
  position: absolute; bottom: 40%; left: 5%; width: 15%; height: 4%;
  background: linear-gradient(90deg, transparent, #6a4a3a, transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: mc3-worm-l 8s linear infinite;
}
.scn-margaret-curses-richard-II .worm-right {
  position: absolute; bottom: 35%; right: 5%; width: 20%; height: 5%;
  background: linear-gradient(90deg, transparent, #8a5a4a, transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: mc3-worm-r 10s linear infinite reverse;
}
.scn-margaret-curses-richard-II .dream-cloud {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(100,80,60,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: mc3-cloud 12s ease-in-out infinite;
}
.scn-margaret-curses-richard-II .devil-ring {
  position: absolute; top: 5%; left: 50%; width: 60%; height: 30%;
  background: conic-gradient(from 0deg, #5a1a1a, #3a1a1a, #1a1a2a, #5a1a1a);
  opacity: 0.2;
  border-radius: 50%;
  transform: translateX(-50%) rotate(0deg);
  animation: mc3-ring 20s linear infinite;
}
.scn-margaret-curses-richard-II .eye {
  position: absolute; top: 15%; left: 50%; width: 8%; height: 5%;
  background: radial-gradient(circle, #c08040 0%, #1a1a1a 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px #c08040;
  animation: mc3-eye 5s ease-in-out infinite;
}
@keyframes mc3-bg { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes mc3-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes mc3-worm-l { 0% { transform: translateX(-20px) rotate(0deg); } 50% { transform: translateX(30px) rotate(10deg); } 100% { transform: translateX(-20px) rotate(0deg); } }
@keyframes mc3-worm-r { 0% { transform: translateX(20px) rotate(0deg); } 50% { transform: translateX(-30px) rotate(-10deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes mc3-cloud { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.2); } 100% { transform: translateX(-10px) scaleX(0.9); } }
@keyframes mc3-ring { 0% { transform: translateX(-50%) rotate(0deg); opacity:0.2; } 50% { transform: translateX(-50%) rotate(180deg); opacity:0.3; } 100% { transform: translateX(-50%) rotate(360deg); opacity:0.2; } }
@keyframes mc3-eye { 0%,100% { transform: translateX(-50%) scaleY(1); opacity:0.7; } 30% { transform: translateX(-50%) scaleY(0.2); opacity:0.4; } 70% { transform: translateX(-50%) scaleY(0.2); opacity:0.6; } }

.scn-richard-margaret-exchange {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0f0505 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a2a 0%, transparent 70%);
}
.scn-richard-margaret-exchange .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 30%, #2a1a1a 100%);
}
.scn-richard-margaret-exchange .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
}
.scn-richard-margaret-exchange .figure-richard {
  position: absolute; bottom: 30%; left: 25%; width: 18%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rme-fig-r 5s ease-in-out infinite;
}
.scn-richard-margaret-exchange .figure-margaret {
  position: absolute; bottom: 30%; right: 25%; width: 18%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0f0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rme-fig-m 6s ease-in-out infinite;
}
.scn-richard-margaret-exchange .rift {
  position: absolute; bottom: 35%; left: 50%; width: 10%; height: 2%;
  background: linear-gradient(90deg, transparent, #c08040, transparent);
  transform: translateX(-50%) skewY(-5deg);
  box-shadow: 0 0 20px #c08040;
  animation: rme-rift 3s ease-in-out infinite alternate;
}
.scn-richard-margaret-exchange .shadow-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: perspective(50px) rotateX(6deg);
  animation: rme-edge 8s ease-in-out infinite;
}
.scn-richard-margaret-exchange .spark {
  position: absolute; bottom: 35%; left: 50%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: rme-spark 2s ease-in-out infinite;
}
@keyframes rme-fig-r { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-4px) rotate(-1deg); } }
@keyframes rme-fig-m { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rme-rift { 0% { transform: translateX(-50%) skewY(-5deg) scaleX(1); opacity:0.7; } 50% { transform: translateX(-50%) skewY(-5deg) scaleX(1.5); opacity:1; } 100% { transform: translateX(-50%) skewY(-5deg) scaleX(0.8); opacity:0.6; } }
@keyframes rme-edge { 0% { transform: perspective(50px) rotateX(6deg) scaleY(1); opacity:0.6; } 50% { transform: perspective(50px) rotateX(6deg) scaleY(0.8); opacity:0.3; } 100% { transform: perspective(50px) rotateX(6deg) scaleY(1); opacity:0.5; } }
@keyframes rme-spark { 0%,100% { transform: translate(-50%, -50%) scale(1); opacity:0.8; } 50% { transform: translate(-50%, -50%) scale(2); opacity:0.4; } }

/* ===== Scene: ghosts-of-rivers-grey-vaughan ===== */
.scn-ghosts-of-rivers-grey-vaughan {
  background: linear-gradient(180deg, #0a0a2e 0%, #000b1a 40%, #000000 70%),
              radial-gradient(ellipse at 30% 60%, #1a2a3a 0%, transparent 60%);
}
.scn-ghosts-of-rivers-grey-vaughan .ghost {
  position: absolute; bottom: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, rgba(106,138,154,0.5) 0%, rgba(60,80,90,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
}
.scn-ghosts-of-rivers-grey-vaughan .ghost-1 { left: 15%; animation: rgv-float 6s ease-in-out infinite; }
.scn-ghosts-of-rivers-grey-vaughan .ghost-2 { left: 45%; animation: rgv-float 7s ease-in-out infinite 1s; }
.scn-ghosts-of-rivers-grey-vaughan .ghost-3 { left: 75%; animation: rgv-float 5s ease-in-out infinite 2s; }
.scn-ghosts-of-rivers-grey-vaughan .chain {
  position: absolute; bottom: 28%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a4a5a, #1a2a3a);
  border-radius: 2px;
}
.scn-ghosts-of-rivers-grey-vaughan .chain-1 { left: 20%; animation: rgv-chain 4s ease-in-out infinite; }
.scn-ghosts-of-rivers-grey-vaughan .chain-2 { left: 70%; animation: rgv-chain 5s ease-in-out infinite 1.5s; }
.scn-ghosts-of-rivers-grey-vaughan .mist {
  position: absolute; inset: 30% 0 10% 0;
  background: linear-gradient(180deg, rgba(80,100,120,0.15), transparent);
  filter: blur(20px);
  animation: rgv-mist 12s ease-in-out infinite alternate;
}
.scn-ghosts-of-rivers-grey-vaughan .shadow {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6), transparent);
  animation: rgv-shadow 8s ease-in-out infinite;
}
.scn-ghosts-of-rivers-grey-vaughan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #000a14, #00081a 60%, transparent);
}
@keyframes rgv-float {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.4; }
  50% { transform: translateY(-12px) rotate(2deg); opacity: 0.7; }
  100% { transform: translateY(0) rotate(-1deg); opacity: 0.4; }
}
@keyframes rgv-chain {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(6px) rotate(8deg); }
  66% { transform: translateX(-4px) rotate(-6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rgv-mist {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.08); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes rgv-shadow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.95); }
  100% { opacity: 0.2; transform: scale(1); }
}

/* ===== Scene: ghost-of-hastings ===== */
.scn-ghost-of-hastings {
  background: linear-gradient(180deg, #1a0a0a 0%, #100505 40%, #000000 80%),
              radial-gradient(ellipse at 50% 40%, #4a1a1a 0%, transparent 70%);
}
.scn-ghost-of-hastings .figure-hastings {
  position: absolute; bottom: 28%; left: 50%; width: 36px; height: 78px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: has-figure-sway 5s ease-in-out infinite;
}
.scn-ghost-of-hastings .wound {
  position: absolute; bottom: 45%; left: 50%; width: 14px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 70%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px #5e1a1d;
  animation: has-wound-pulse 2s ease-in-out infinite;
}
.scn-ghost-of-hastings .blood-drip {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 80%);
  border-radius: 2px;
  animation: has-blood-drip 6s linear infinite;
}
.scn-ghost-of-hastings .sword-broken {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  transform: rotate(-30deg);
  border-radius: 2px;
  animation: has-sword-shake 3s ease-in-out infinite;
}
.scn-ghost-of-hastings .shadow-has {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 14%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5), transparent);
  animation: has-shadow 7s ease-in-out infinite;
}
.scn-ghost-of-hastings .mist-has {
  position: absolute; inset: 20% 0 10% 0;
  background: linear-gradient(180deg, rgba(80,40,40,0.1), transparent);
  filter: blur(12px);
  animation: has-mist 15s linear infinite alternate;
}
.scn-ghost-of-hastings .ground-has {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(0deg, #0a0202, #1a0a0a 60%, transparent);
}
@keyframes has-figure-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes has-wound-pulse {
  0% { box-shadow: 0 0 6px 1px #5e1a1d; opacity: 0.7; }
  50% { box-shadow: 0 0 14px 4px #5e1a1d; opacity: 1; }
  100% { box-shadow: 0 0 6px 1px #5e1a1d; opacity: 0.7; }
}
@keyframes has-blood-drip {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleY(1.4); opacity: 0.8; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.6; }
}
@keyframes has-sword-shake {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-25deg) translateX(2px); }
  100% { transform: rotate(-30deg); }
}
@keyframes has-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(0.9); }
  100% { opacity: 0.2; transform: scaleX(1); }
}
@keyframes has-mist {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.1; }
}

/* ===== Scene: ghosts-of-princes ===== */
.scn-ghosts-of-princes {
  background: linear-gradient(180deg, #0d0d1a 0%, #050510 40%, #000000 80%),
              radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 60%);
}
.scn-ghosts-of-princes .prince {
  position: absolute; bottom: 28%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pri-float 7s ease-in-out infinite;
}
.scn-ghosts-of-princes .prince-1 { left: 30%; }
.scn-ghosts-of-princes .prince-2 { left: 55%; animation-delay: 2.5s; }
.scn-ghosts-of-princes .tower-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, transparent, #000a1a 60%, #000d1f);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  opacity: 0.3;
  animation: pri-tower-glow 10s ease-in-out infinite alternate;
}
.scn-ghosts-of-princes .crown-small {
  position: absolute; bottom: 68%; left: 30%; width: 12px; height: 6px;
  background: linear-gradient(90deg, #7a7a5a, #b0b090, #7a7a5a);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: pri-crown-flicker 3s ease-in-out infinite;
}
.scn-ghosts-of-princes .pillow {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pri-pillow-sink 8s ease-in-out infinite;
}
.scn-ghosts-of-princes .ghost-mist {
  position: absolute; inset: 25% 0 15% 0;
  background: linear-gradient(180deg, rgba(60,70,90,0.08), transparent);
  filter: blur(18px);
  animation: pri-mist 20s ease-in-out infinite alternate;
}
.scn-ghosts-of-princes .ground-pri {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(0deg, #00050a, #05080e);
}
@keyframes pri-float {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.3; }
  50% { transform: translateY(-8px) rotate(2deg); opacity: 0.6; }
  100% { transform: translateY(0) rotate(-1deg); opacity: 0.3; }
}
@keyframes pri-tower-glow {
  0% { opacity: 0.2; filter: brightness(0.8); }
  50% { opacity: 0.4; filter: brightness(1); }
  100% { opacity: 0.2; filter: brightness(0.8); }
}
@keyframes pri-crown-flicker {
  0% { opacity: 0.3; transform: rotate(15deg) scale(1); }
  50% { opacity: 0.7; transform: rotate(10deg) scale(1.1); }
  100% { opacity: 0.3; transform: rotate(15deg) scale(1); }
}
@keyframes pri-pillow-sink {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(4px) scaleY(0.9); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes pri-mist {
  0% { opacity: 0.1; transform: scaleX(1); }
  50% { opacity: 0.3; transform: scaleX(1.05); }
  100% { opacity: 0.1; transform: scaleX(1); }
}

/* ===== Scene: ghost-of-anne ===== */
.scn-ghost-of-anne {
  background: linear-gradient(180deg, #120a14 0%, #08040a 40%, #000000 80%),
              radial-gradient(ellipse at 50% 60%, #2a1a2e 0%, transparent 60%);
}
.scn-ghost-of-anne .figure-anne {
  position: absolute; bottom: 30%; left: 50%; width: 32px; height: 74px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ann-figure-sway 6s ease-in-out infinite;
}
.scn-ghost-of-anne .veil {
  position: absolute; bottom: 70%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(80,60,90,0.3), transparent);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  filter: blur(8px);
  animation: ann-veil-wave 5s ease-in-out infinite;
}
.scn-ghost-of-anne .tear {
  position: absolute; width: 4px; height: 6px;
  background: radial-gradient(circle, #8a9aaa 0%, transparent 80%);
  border-radius: 50%;
  animation: ann-tear-fall 4s linear infinite;
}
.scn-ghost-of-anne .tear-1 { left: 48%; bottom: 45%; animation-delay: 0s; }
.scn-ghost-of-anne .tear-2 { left: 54%; bottom: 42%; animation-delay: 2s; }
.scn-ghost-of-anne .candle {
  position: absolute; bottom: 25%; right: 25%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  animation: ann-candle-flicker 2s ease-in-out infinite;
}
.scn-ghost-of-anne .candle-glow {
  position: absolute; bottom: 35%; right: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffcc66 0%, #ddaa44 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ann-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-ghost-of-anne .shadow-ann {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5), transparent);
  animation: ann-shadow 8s ease-in-out infinite;
}
.scn-ghost-of-anne .ground-ann {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #0a050a, #120812);
}
@keyframes ann-figure-sway {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-6px) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ann-veil-wave {
  0% { transform: translateX(-50%) rotate(-5deg); opacity: 0.3; }
  50% { transform: translateX(-50%) translateY(-4px) rotate(5deg); opacity: 0.5; }
  100% { transform: translateX(-50%) rotate(-3deg); opacity: 0.3; }
}
@keyframes ann-tear-fall {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(15px) scale(0.8); opacity: 0.4; }
  100% { transform: translateY(30px) scale(0.5); opacity: 0; }
}
@keyframes ann-candle-flicker {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  25% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  75% { transform: scaleY(0.95) translateY(1px); opacity: 0.6; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.8; }
}
@keyframes ann-glow-pulse {
  0% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.3); opacity: 0.7; }
  100% { transform: scale(1); opacity: 0.4; }
}
@keyframes ann-shadow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.9); }
  100% { opacity: 0.2; transform: scale(1); }
}

.scn-richard-self-comparison {
  background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #1a1008 70%), linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
}
.scn-richard-self-comparison .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, #0e0804 100%); }
.scn-richard-self-comparison .mirror-frame { position:absolute; top:15%; left:35%; width:30%; height:60%; background: linear-gradient(135deg, #6a4a2a, #3a2210); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: rsc-frame 8s ease-in-out infinite; }
.scn-richard-self-comparison .mirror-glass { position:absolute; top:18%; left:38%; width:24%; height:54%; background: linear-gradient(135deg, rgba(255,200,150,.15) 0%, rgba(100,60,30,.1) 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 30px rgba(255,180,100,.2); animation: rsc-glass 12s ease-in-out infinite alternate; }
.scn-richard-self-comparison .figure-richard { position:absolute; bottom:20%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: rsc-figure 5s ease-in-out infinite; }
.scn-richard-self-comparison .figure-reflected { position:absolute; bottom:20%; left:44%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: scaleX(-1); opacity:0.7; animation: rsc-reflect 5s ease-in-out infinite; }
.scn-richard-self-comparison .candle { position:absolute; bottom:30%; right:25%; width:4%; height:12%; background: linear-gradient(180deg, #c09050 0%, #604020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px #ffb040; animation: rsc-candle 3s ease-in-out infinite alternate; }
.scn-richard-self-comparison .shadow-cast { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); animation: rsc-shadow 6s ease-in-out infinite; }
@keyframes rsc-frame { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg); } }
@keyframes rsc-glass { 0% { opacity:0.6; filter: blur(2px); } 50% { opacity:0.8; filter: blur(1px); } 100% { opacity:0.7; filter: blur(3px); } }
@keyframes rsc-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rsc-reflect { 0% { transform: scaleX(-1) translateY(0); } 30% { transform: scaleX(-1) translateY(-2px) scaleY(1.02); } 60% { transform: scaleX(-1) translateY(1px) scaleY(0.98); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes rsc-candle { 0% { transform: scaleY(1) rotate(0deg); filter: brightness(1); } 50% { transform: scaleY(1.05) rotate(5deg); filter: brightness(1.2); } 100% { transform: scaleY(0.95) rotate(-3deg); filter: brightness(0.9); } }
@keyframes rsc-shadow { 0% { transform: scaleX(1); opacity:0.8; } 50% { transform: scaleX(1.1); opacity:0.6; } 100% { transform: scaleX(0.9); opacity:0.9; } }

.scn-queen-elizabeth-anxious {
  background: radial-gradient(ellipse at 60% 40%, #f0e8d0 0%, #c8b89a 50%, #8a7a6a 100%), linear-gradient(180deg, #e8dcc8 0%, #b8a88a 100%);
}
.scn-queen-elizabeth-anxious .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.15) 100%); }
.scn-queen-elizabeth-anxious .window { position:absolute; top:10%; right:10%; width:20%; height:50%; background: linear-gradient(135deg, #fff8e8 0%, #d0c8b0 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(255,255,200,.8), 0 0 40px rgba(255,200,100,.3); animation: qea-window 5s ease-in-out infinite alternate; }
.scn-queen-elizabeth-anxious .queen-figure { position:absolute; bottom:20%; left:40%; width:14%; height:50%; background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qea-queen 4s ease-in-out infinite; }
.scn-queen-elizabeth-anxious .chair { position:absolute; bottom:18%; left:38%; width:20%; height:12%; background: linear-gradient(135deg, #6a5030, #3a2810); border-radius: 10% 10% 5% 5% / 60% 60% 30% 30%; box-shadow: 0 5px 10px rgba(0,0,0,.4); animation: qea-chair 7s ease-in-out infinite; }
.scn-queen-elizabeth-anxious .curtain { position:absolute; top:0; right:30%; width:8%; height:100%; background: linear-gradient(180deg, #a08060 0%, #5a4020 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; transform-origin: top right; animation: qea-curtain 10s ease-in-out infinite; }
.scn-queen-elizabeth-anxious .shadow-queen { position:absolute; bottom:0; left:35%; width:25%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: qea-shadow 6s ease-in-out infinite; }
@keyframes qea-window { 0% { filter: brightness(1) contrast(1); } 50% { filter: brightness(1.1) contrast(1.05); } 100% { filter: brightness(0.9) contrast(0.95); } }
@keyframes qea-queen { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes qea-chair { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes qea-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateX(-5%); } 100% { transform: scaleX(0.95); } }
@keyframes qea-shadow { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.8; transform: scaleX(0.9); } }

.scn-rivers-comforts {
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b89a 40%, #a09070 100%), radial-gradient(ellipse at 70% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-rivers-comforts .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.1) 100%); }
.scn-rivers-comforts .window { position:absolute; top:15%; left:10%; width:25%; height:45%; background: linear-gradient(135deg, #fff8e8 0%, #c8b898 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 0 30px rgba(255,200,100,.2); animation: rco-window 6s ease-in-out infinite alternate; }
.scn-rivers-comforts .rivers-figure { position:absolute; bottom:20%; left:50%; width:12%; height:45%; background: linear-gradient(180deg, #b09878 0%, #705040 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rco-rivers 5s ease-in-out infinite; }
.scn-rivers-comforts .cradle { position:absolute; bottom:18%; left:35%; width:18%; height:20%; background: linear-gradient(135deg, #8a7050, #4a3018); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 5px 15px rgba(0,0,0,.4); animation: rco-cradle 8s ease-in-out infinite; }
.scn-rivers-comforts .child-silhouette { position:absolute; bottom:25%; left:40%; width:6%; height:10%; background: linear-gradient(180deg, #2a1a10, #0e0804); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: rco-child 4s ease-in-out infinite; }
.scn-rivers-comforts .curtain { position:absolute; top:0; right:20%; width:10%; height:100%; background: linear-gradient(180deg, #b09880 0%, #604030 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; transform-origin: top left; animation: rco-curtain 12s ease-in-out infinite; }
@keyframes rco-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.05) contrast(1.02); } 100% { filter: brightness(0.95); } }
@keyframes rco-rivers { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rco-cradle { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes rco-child { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes rco-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(3%); } 100% { transform: scaleX(0.95) translateX(-2%); } }

.scn-buckingham-derby-enter {
  background: radial-gradient(ellipse at 50% 30%, #e8dcc8 0%, #c8b89a 50%, #9a8a6a 100%), linear-gradient(180deg, #f0e8d8 0%, #b8a888 100%);
}
.scn-buckingham-derby-enter .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.1) 100%); }
.scn-buckingham-derby-enter .arch-left { position:absolute; top:0; left:15%; width:20%; height:80%; background: linear-gradient(135deg, #b09878, #705040); border-radius: 50% 0 0 50% / 80% 0 0 50%; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: bde-arch 10s ease-in-out infinite alternate; }
.scn-buckingham-derby-enter .arch-right { position:absolute; top:0; right:15%; width:20%; height:80%; background: linear-gradient(135deg, #b09878, #705040); border-radius: 0 50% 50% 0 / 0 80% 80% 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: bde-arch 10s ease-in-out infinite alternate-reverse; }
.scn-buckingham-derby-enter .buckingham-figure { position:absolute; bottom:20%; left:30%; width:12%; height:50%; background: linear-gradient(180deg, #c8a880 0%, #8a6040 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bde-walk 6s ease-in-out infinite; }
.scn-buckingham-derby-enter .derby-figure { position:absolute; bottom:20%; left:45%; width:12%; height:50%; background: linear-gradient(180deg, #b89870 0%, #785038 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bde-walk 6s ease-in-out infinite 0.5s; }
.scn-buckingham-derby-enter .throne-shadow { position:absolute; bottom:25%; left:55%; width:15%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); animation: bde-throne 8s ease-in-out infinite; }
.scn-buckingham-derby-enter .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a09070 0%, #5a4a30 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; }
@keyframes bde-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes bde-walk { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bde-throne { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-richard-sends-for-strawberries {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e3d2b0 50%, #c8b48a 100%),
    radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 60%);
}
.scn-richard-sends-for-strawberries .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d6c8a8 0%, #bfa880 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
}
.scn-richard-sends-for-strawberries .window {
  position: absolute; top: 5%; left: 20%; width: 120px; height: 150px;
  background: linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 50%, #80a8d0 100%);
  border: 8px solid #8b7355; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.3);
  animation: rs-window 6s ease-in-out infinite alternate;
}
.scn-richard-sends-for-strawberries .windowsill {
  position: absolute; top: calc(5% + 150px); left: 18%; width: 136px; height: 16px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  transform-origin: top center;
}
.scn-richard-sends-for-strawberries .basket {
  position: absolute; top: calc(5% + 166px); left: 33%; width: 48px; height: 28px;
  background: linear-gradient(180deg, #b89870 0%, #8a6e48 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: rs-basket 4s ease-in-out infinite;
}
.scn-richard-sends-for-strawberries .strawberry {
  position: absolute; top: calc(5% + 162px); left: 35%; width: 10px; height: 14px;
  background: radial-gradient(circle at 30% 20%, #c8553d 0%, #a0461a 80%);
  border-radius: 50% 50% 50% 50%;
  box-shadow: 0 8px 12px rgba(160,70,26,0.4);
  animation: rs-strawberry 3s ease-in-out infinite alternate;
}
.scn-richard-sends-for-strawberries .richard {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rs-figure 2s ease-in-out infinite;
}
.scn-richard-sends-for-strawberries .shadow {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  border-radius: 50%;
  animation: rs-shadow 2s ease-in-out infinite;
}
@keyframes rs-window {
  0% { opacity:0.9; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.02); }
  100% { opacity:0.85; transform: scaleY(0.98); }
}
@keyframes rs-basket {
  0%,100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes rs-strawberry {
  0% { transform: translateY(0) scale(1); opacity:0.9; }
  50% { transform: translateY(-3px) scale(1.1); opacity:1; }
  100% { transform: translateY(1px) scale(0.95); opacity:0.85; }
}
@keyframes rs-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rs-shadow {
  0%,100% { transform: scaleX(1); opacity:0.6; }
  50% { transform: scaleX(0.9); opacity:0.4; }
}

.scn-richard-confides-in-buckingham {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 40%, #8a7a5a 0%, transparent 70%);
}
.scn-richard-confides-in-buckingham .bg-panel {
  position: absolute; inset: 5% 5% 5% 5%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: rc-panel 10s ease-in-out infinite alternate;
}
.scn-richard-confides-in-buckingham .richard {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #000 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rc-richard 3s ease-in-out infinite;
}
.scn-richard-confides-in-buckingham .buckingham {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #151515 0%, #252525 50%, #050505 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rc-buckingham 3.5s ease-in-out infinite reverse;
}
.scn-richard-confides-in-buckingham .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #d0a060 50%, #a07040 100%);
  border-radius: 2px 2px 10% 10%;
  box-shadow: 0 -4px 8px rgba(240,208,128,0.6);
  animation: rc-candle 2s ease-in-out infinite alternate;
}
.scn-richard-confides-in-buckingham .candle-glow {
  position: absolute; bottom: 33%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d080 0%, #d0a060 40%, transparent 80%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: rc-glow 2s ease-in-out infinite alternate;
}
.scn-richard-confides-in-buckingham .shadow-richard {
  position: absolute; bottom: 18%; left: 25%; width: 50px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  border-radius: 50%;
  animation: rc-shadows 3s ease-in-out infinite;
}
.scn-richard-confides-in-buckingham .shadow-buckingham {
  position: absolute; bottom: 18%; right: 20%; width: 50px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  border-radius: 50%;
  animation: rc-shadows 3.5s ease-in-out infinite reverse;
}
@keyframes rc-panel {
  0% { opacity:0.8; transform: scale(1); }
  50% { opacity:0.9; transform: scale(1.01); }
  100% { opacity:0.7; transform: scale(0.99); }
}
@keyframes rc-richard {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes rc-buckingham {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-3deg); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes rc-candle {
  0% { transform: translateY(0) scaleX(1); opacity:0.9; }
  50% { transform: translateY(-2px) scaleX(1.1); opacity:1; }
  100% { transform: translateY(1px) scaleX(0.95); opacity:0.85; }
}
@keyframes rc-glow {
  0% { transform: scale(1); opacity:0.6; }
  50% { transform: scale(1.3); opacity:0.9; }
  100% { transform: scale(0.8); opacity:0.5; }
}
@keyframes rc-shadows {
  0%,100% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(0.8); opacity:0.3; }
}

.scn-council-waits {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #d4c4a8 50%, #beae92 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-council-waits .wainscot {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #9a8060 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
  border-radius: 0 0 4px 4px;
  animation: cw-wainscot 20s ease-in-out infinite alternate;
}
.scn-council-waits .chair-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cw-chair 8s ease-in-out infinite;
}
.scn-council-waits .chair-right {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cw-chair 8s ease-in-out infinite reverse;
}
.scn-council-waits .table {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 18px;
  background: linear-gradient(180deg, #c8b090 0%, #a88a6a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-council-waits .candle {
  position: absolute; bottom: calc(30% + 18px); left: 50%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b080 50%, #a08050 100%);
  border-radius: 2px 2px 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 -2px 6px rgba(240,216,160,0.5);
  animation: cw-candle 5s ease-in-out infinite alternate;
}
.scn-council-waits .window-light {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%);
  border: 6px solid #9a8060;
  border-radius: 4px;
  opacity: 0.7;
  box-shadow: inset 0 0 40px rgba(255,248,224,0.5);
  animation: cw-light 12s ease-in-out infinite alternate;
}
.scn-council-waits .clock {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0e0c8 0%, #d0b898 70%);
  border-radius: 50%;
  border: 4px solid #8a7050;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: cw-clock 60s linear infinite;
}
@keyframes cw-wainscot {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes cw-chair {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes cw-candle {
  0% { transform: translateX(-50%) translateY(0) scaleY(1); opacity:0.8; }
  50% { transform: translateX(-50%) translateY(-1px) scaleY(1.05); opacity:1; }
  100% { transform: translateX(-50%) translateY(2px) scaleY(0.95); opacity:0.7; }
}
@keyframes cw-light {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:0.8; transform: scaleY(1.02); }
  100% { opacity:0.65; transform: scaleY(0.98); }
}
@keyframes cw-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-ely-returns {
  background:
    linear-gradient(180deg, #e0d0b8 0%, #d0c0a0 50%, #b8a888 100%),
    radial-gradient(ellipse at 40% 50%, #fff8e8 0%, transparent 70%);
}
.scn-ely-returns .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8b89a 0%, #b0a080 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
}
.scn-ely-returns .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 14px;
  background: linear-gradient(180deg, #b89878 0%, #988060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-ely-returns .basket {
  position: absolute; bottom: calc(20% + 14px); left: 42%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: er-basket 6s ease-in-out infinite;
}
.scn-ely-returns .strawberry-1 {
  position: absolute; bottom: calc(20% + 14px + 10px); left: 44%; width: 12px; height: 16px;
  background: radial-gradient(circle at 30% 20%, #c8553d 0%, #a0461a 80%);
  border-radius: 50% 50% 50% 50%;
  box-shadow: 0 6px 10px rgba(160,70,26,0.3);
  animation: er-straw 4s ease-in-out infinite alternate;
}
.scn-ely-returns .strawberry-2 {
  position: absolute; bottom: calc(20% + 14px + 8px); left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle at 30% 20%, #c8553d 0%, #a0461a 80%);
  border-radius: 50% 50% 50% 50%;
  box-shadow: 0 6px 10px rgba(160,70,26,0.3);
  animation: er-straw 4s ease-in-out infinite alternate-reverse;
}
.scn-ely-returns .ely-figure {
  position: absolute; bottom: 15%; left: 30%; width: 26px; height: 66px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: er-ely 5s ease-in-out infinite;
}
.scn-ely-returns .richard-figure {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: er-richard 5s ease-in-out infinite reverse;
}
@keyframes er-basket {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes er-straw {
  0% { transform: translateY(0) scale(1); opacity:0.85; }
  50% { transform: translateY(-4px) scale(1.15); opacity:1; }
  100% { transform: translateY(2px) scale(0.9); opacity:0.8; }
}
@keyframes er-ely {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(6px) rotate(3deg); }
}
@keyframes er-richard {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
}

.scn-buckingham-praises-richard {
  background:
    linear-gradient(180deg, #1f1a10 0%, #2a2218 30%, #1f1a10 70%, #0d0a06 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a28 0%, transparent 60%);
}

.scn-buckingham-praises-richard .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2d1e 0%, #1f1a10 100%);
  border-bottom: 2px solid #2a2218;
}

.scn-buckingham-praises-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2218 0%, #0d0a06 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}

.scn-buckingham-praises-richard .candle-left {
  position: absolute; bottom: 22%; left: 28%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #e8c88a 0%, #a67c3a 40%, #1f1a10 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px #b88a4a, 0 0 40px 16px rgba(184,138,74,0.4);
  animation: bp-candleflicker 2s ease-in-out infinite alternate;
}

.scn-buckingham-praises-richard .candle-right {
  position: absolute; bottom: 22%; right: 28%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #e8c88a 0%, #a67c3a 40%, #1f1a10 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px #b88a4a, 0 0 40px 16px rgba(184,138,74,0.4);
  animation: bp-candleflicker 2.5s ease-in-out infinite alternate;
}

.scn-buckingham-praises-richard .kneeling-figure {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2d1e 0%, #1a1510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: scaleX(0.8);
  box-shadow: -4px 0 6px rgba(0,0,0,0.5);
  animation: bp-sway 5s ease-in-out infinite;
}

.scn-buckingham-praises-richard .standing-figure {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a2218 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bp-standstill 0.5s steps(1) infinite;
}

.scn-buckingham-praises-richard .halo-light {
  position: absolute; bottom: 35%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, rgba(232,200,138,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: bp-halopulse 3s ease-in-out infinite alternate;
}

.scn-buckingham-praises-richard .crowd-silhouette {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background:
    radial-gradient(ellipse 8px 18px at 15% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 25% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 35% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 45% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 55% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 65% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 75% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 85% 100%, #0f0b06 0%, transparent 100%) repeat-x;
  background-size: 10% 100%;
  background-repeat: no-repeat;
  background-position: 0 0;
  mask-image: linear-gradient(180deg, transparent 20%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 20%, #000 100%);
  animation: bp-crowdshift 15s ease-in-out infinite alternate;
}

@keyframes bp-candleflicker {
  0% { opacity: 0.85; transform: scaleY(0.95); box-shadow: 0 0 18px 6px #b88a4a; }
  50% { opacity: 1; transform: scaleY(1); box-shadow: 0 0 24px 10px #d09e5a; }
  100% { opacity: 0.9; transform: scaleY(0.97); box-shadow: 0 0 20px 8px #b88a4a; }
}

@keyframes bp-sway {
  0% { transform: scaleX(0.8) rotate(0deg); }
  25% { transform: scaleX(0.8) rotate(-2deg); }
  50% { transform: scaleX(0.8) rotate(1deg); }
  75% { transform: scaleX(0.8) rotate(-1deg); }
  100% { transform: scaleX(0.8) rotate(0deg); }
}

@keyframes bp-standstill {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.95; }
}

@keyframes bp-halopulse {
  0% { opacity: 0.6; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

@keyframes bp-crowdshift {
  0% { background-position-x: 0%; }
  100% { background-position-x: -10%; }
}

.scn-catesby-returns-again {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a2218 35%, #1a1612 70%, #0d0a06 100%),
    radial-gradient(ellipse at 50% 70%, #3a2d1e 0%, transparent 70%);
}

.scn-catesby-returns-again .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1f1a10 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.scn-catesby-returns-again .archway {
  position: absolute; bottom: 30%; left: 50%; width: 150px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #1a1612 0%, #2a2218 70%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}

.scn-catesby-returns-again .citizen-row.back {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 35%;
  background:
    radial-gradient(ellipse 6px 14px at 20% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 6px 14px at 30% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 6px 14px at 40% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 6px 14px at 50% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 6px 14px at 60% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 6px 14px at 70% 100%, #0f0b06 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 6px 14px at 80% 100%, #0f0b06 0%, transparent 100%) repeat-x;
  background-size: 8% 100%;
  background-repeat: no-repeat;
  mask-image: linear-gradient(180deg, transparent 30%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 30%, #000 100%);
  animation: cr-crowdmove 20s ease-in-out infinite alternate;
}

.scn-catesby-returns-again .citizen-row.front {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background:
    radial-gradient(ellipse 8px 18px at 15% 100%, #1a1510 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 28% 100%, #1a1510 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 40% 100%, #1a1510 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 52% 100%, #1a1510 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 64% 100%, #1a1510 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 76% 100%, #1a1510 0%, transparent 100%) repeat-x,
    radial-gradient(ellipse 8px 18px at 88% 100%, #1a1510 0%, transparent 100%) repeat-x;
  background-size: 10% 100%;
  background-repeat: no-repeat;
  mask-image: linear-gradient(180deg, transparent 20%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 20%, #000 100%);
  animation: cr-crowdmove 25s ease-in-out infinite alternate-reverse;
}

.scn-catesby-returns-again .catesby-figure {
  position: absolute; bottom: 30%; left: 40%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3928 0%, #2a2018 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.6);
  animation: cr-catesbystep 3s ease-in-out infinite;
}

.scn-catesby-returns-again .lord-figure {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2d1e 0%, #1f1a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: cr-lordturn 6s ease-in-out infinite;
}

.scn-catesby-returns-again .torch-glow {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #d09e5a 0%, transparent 60%);
  filter: blur(8px);
  animation: cr-torchflicker 1.5s ease-in-out infinite alternate;
}

@keyframes cr-crowdmove {
  0% { opacity: 0.7; transform: translateY(0); }
  100% { opacity: 1; transform: translateY(-3px); }
}

@keyframes cr-catesbystep {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(0deg) translateX(3px); }
  50% { transform: rotate(-5deg) translateX(0); }
  75% { transform: rotate(0deg) translateX(-3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}

@keyframes cr-lordturn {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}

@keyframes cr-torchflicker {
  0% { opacity: 0.8; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}

.scn-richard-appears {
  background:
    linear-gradient(180deg, #1a1a10 0%, #2a2218 30%, #1f1a10 60%, #0d0a06 100%),
    radial-gradient(ellipse at 50% 50%, #3a2d1e 0%, transparent 70%);
}

.scn-richard-appears .altar-step {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 12px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a2218 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
}

.scn-richard-appears .bg-curtain {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a2218 0%, #1f1a10 20%, #1f1a10 80%, #2a2218 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
}

.scn-richard-appears .clergyman.left {
  position: absolute; bottom: 32%; left: 32%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1612 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: ra-clericaleans 8s ease-in-out infinite;
}

.scn-richard-appears .clergyman.right {
  position: absolute; bottom: 32%; right: 32%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1612 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: ra-clericaleans 8s ease-in-out infinite reverse;
}

.scn-richard-appears .richard-figure {
  position: absolute; bottom: 25%; left: 46%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #3a2d1e 0%, #1f1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(0.85);
  box-shadow: -2px 4px 8px rgba(0,0,0,0.5);
  animation: ra-richardpray 7s ease-in-out infinite;
}

.scn-richard-appears .prayer-book {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 20px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a3a28 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ra-booklift 4s ease-in-out infinite;
}

.scn-richard-appears .heavenly-beam {
  position: absolute; bottom: 55%; left: 45%; width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(232,200,138,0.15) 0%, transparent 100%);
  filter: blur(12px);
  animation: ra-beampulse 3s ease-in-out infinite alternate;
}

.scn-richard-appears .floor-shadow {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
}

@keyframes ra-clericaleans {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

@keyframes ra-richardpray {
  0% { transform: scaleX(0.85) rotate(0deg); }
  25% { transform: scaleX(0.85) rotate(-1deg); }
  50% { transform: scaleX(0.85) rotate(1deg); }
  75% { transform: scaleX(0.85) rotate(-1deg); }
  100% { transform: scaleX(0.85) rotate(0deg); }
}

@keyframes ra-booklift {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
}

@keyframes ra-beampulse {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

.scn-richard-pretends-modesty {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a2218 25%, #1f1a10 60%, #0d0a06 100%),
    radial-gradient(ellipse at 50% 60%, #3a2d1e 0%, transparent 60%);
}

.scn-richard-pretends-modesty .dark-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1a10 0%, #2a2218 50%, #1f1a10 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}

.scn-richard-pretends-modesty .pulpit-base {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 50px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a2218 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
}

.scn-richard-pretends-modesty .richard-kneeling {
  position: absolute; bottom: 35%; left: 44%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #3a2d1e 0%, #1a1510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: scaleX(0.8);
  box-shadow: -2px 4px 6px rgba(0,0,0,0.5);
  animation: rp-kneelrock 6s ease-in-out infinite;
}

.scn-richard-pretends-modesty .open-book {
  position: absolute; bottom: 40%; left: 47%; width: 20px; height: 24px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a3a28 50%, #6a4a3a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: rp-bookopen 4s ease-in-out infinite;
}

.scn-richard-pretends-modesty .candle-wax {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e8c88a 0%, #a67c3a 50%, #1f1a10 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #b88a4a;
  animation: rp-candleflicker 2.3s ease-in-out infinite alternate;
}

.scn-richard-pretends-modesty .devotional-glow {
  position: absolute; bottom: 45%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, rgba(232,200,138,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: rp-glowpulse 3.5s ease-in-out infinite alternate;
}

.scn-richard-pretends-modesty .shadow-curtain {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
}

@keyframes rp-kneelrock {
  0% { transform: scaleX(0.8) rotate(0deg); }
  25% { transform: scaleX(0.8) rotate(-2deg); }
  50% { transform: scaleX(0.8) rotate(0deg); }
  75% { transform: scaleX(0.8) rotate(2deg); }
  100% { transform: scaleX(0.8) rotate(0deg); }
}

@keyframes rp-bookopen {
  0%, 100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
}

@keyframes rp-candleflicker {
  0% { opacity: 0.8; transform: scaleX(0.95); }
  50% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}

@keyframes rp-glowpulse {
  0% { opacity: 0.4; transform: scale(0.9); }
  100% { opacity: 0.7; transform: scale(1.1); }
}

/* CSS block - each scene id prefixed with .scn- */
.scn-king-pleased {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 60%, #d4b88a 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 50%);
}
.scn-king-pleased .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(255,248,232,0.3) 0%, transparent 50%, rgba(180,140,100,0.15) 100%);
  animation: kp-bg 20s ease-in-out infinite alternate;
}
.scn-king-pleased .throne {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 180px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: kp-throne 15s ease-in-out infinite;
}
.scn-king-pleased .king {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #705030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: kp-figure 8s ease-in-out infinite;
}
.scn-king-pleased .buckingham {
  position: absolute; bottom: 14%; left: 35%; 
  width: 32px; height: 60px;
  background: linear-gradient(180deg, #b89560 0%, #8a6a3a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform: rotate(5deg);
  animation: kp-bow 6s ease-in-out infinite alternate;
}
.scn-king-pleased .window-light {
  position: absolute; top: 5%; right: 10%;
  width: 80px; height: 100px;
  background: linear-gradient(135deg, #fff4d0 0%, #f0d88a 50%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 40px 20px rgba(255,244,208,0.5);
  animation: kp-window 12s ease-in-out infinite alternate;
}
.scn-king-pleased .drape-l {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #8a1a1a 0%, #6a1212 30%, transparent 100%);
  mask: linear-gradient(0deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: kp-drape 20s ease-in-out infinite;
}
.scn-king-pleased .drape-r {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(270deg, #8a1a1a 0%, #6a1212 30%, transparent 100%);
  mask: linear-gradient(0deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: kp-drape 20s ease-in-out infinite reverse;
}
.scn-king-pleased .glow {
  position: absolute; top: 30%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,160,0.4) 0%, transparent 70%);
  animation: kp-glow 8s ease-in-out infinite alternate;
}
@keyframes kp-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes kp-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } }
@keyframes kp-figure { 0%,100% { transform: translateX(-50%) } 25% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-50%) rotate(1deg) } }
@keyframes kp-bow { 0% { transform: rotate(5deg) translateY(0) } 100% { transform: rotate(3deg) translateY(-4px) } }
@keyframes kp-window { 0% { opacity: 0.7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: 0.8; transform: scaleY(0.98) } }
@keyframes kp-drape { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes kp-glow { 0% { opacity: 0.3; transform: scale(0.95) } 100% { opacity: 0.6; transform: scale(1.05) } }

.scn-richard-enters-peace {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d4c4a8 40%, #b8a48a 100%),
    radial-gradient(ellipse at 60% 80%, #f0e4cc 0%, transparent 60%);
}
.scn-richard-enters-peace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #a08870 0%, #c8b498 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: rpe-floor 10s ease-in-out infinite alternate;
}
.scn-richard-enters-peace .arch {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 80%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 80% 100%, 80% 70%, 20% 70%, 20% 100%, 0 100%);
  animation: rpe-arch 15s ease-in-out infinite;
}
.scn-richard-enters-peace .richard {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 38px; height: 72px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: rpe-walk 4s ease-in-out infinite;
}
.scn-richard-enters-peace .shadow-cast {
  position: absolute; bottom: 28%; left: 48%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: rpe-shadow 4s ease-in-out infinite;
}
.scn-richard-enters-peace .candle {
  position: absolute; bottom: 32%; left: 25%; width: 6px; height: 18px;
  background: linear-gradient(0deg, #c8a060 0%, #f0d080 100%);
  border-radius: 2px;
  animation: rpe-candle 3s ease-in-out infinite alternate;
}
.scn-richard-enters-peace .courtier {
  position: absolute; bottom: 26%; right: 20%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #b08850 0%, #805830 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform: rotate(-3deg);
  animation: rpe-court 7s ease-in-out infinite;
}
.scn-richard-enters-peace .torch {
  position: absolute; bottom: 30%; right: 35%; width: 8px; height: 26px;
  background: linear-gradient(0deg, #c08040 0%, #ffa060 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 0 16px 4px rgba(255,160,96,0.5);
  animation: rpe-torch 2s ease-in-out infinite alternate;
}
@keyframes rpe-floor { 0% { opacity: 0.9; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(0.98) } }
@keyframes rpe-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes rpe-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-44%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-38%) translateY(0) rotate(2deg) } 75% { transform: translateX(-44%) translateY(-2px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes rpe-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes rpe-candle { 0% { opacity: 0.7; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.1) } }
@keyframes rpe-court { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) } }
@keyframes rpe-torch { 0% { transform: scaleY(0.9); opacity: 0.8 } 100% { transform: scaleY(1.2); opacity: 1 } }

.scn-richard-pretends-peace {
  background:
    linear-gradient(180deg, #f0e6d8 0%, #dcd0c0 50%, #c0b0a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 60%);
}
.scn-richard-pretends-peace .bg-panel {
  position: absolute; inset: 5%;
  background: linear-gradient(135deg, #e4d8c8 0%, #b8a890 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: rpp-panel 12s ease-in-out infinite alternate;
}
.scn-richard-pretends-peace .richard-kneel {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  animation: rpp-kneel 6s ease-in-out infinite;
}
.scn-richard-pretends-peace .hands-out {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: rpp-hands 5s ease-in-out infinite alternate;
}
.scn-richard-pretends-peace .medallion {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 14px;
  background: radial-gradient(circle, #c8a040 0%, #8a6a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,64,0.5);
  animation: rpp-medallion 4s ease-in-out infinite;
}
.scn-richard-pretends-peace .shadow-wall {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.25) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rpp-shadow 8s ease-in-out infinite alternate;
}
.scn-richard-pretends-peace .light-spot {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,255,240,0.6) 0%, transparent 70%);
  animation: rpp-spot 10s ease-in-out infinite alternate;
}
.scn-richard-pretends-peace .step {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 4%;
  background: linear-gradient(0deg, #a09080 0%, #c8b8a8 100%);
  border-radius: 2px;
  animation: rpp-step 15s ease-in-out infinite;
}
@keyframes rpp-panel { 0% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes rpp-kneel { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes rpp-hands { 0% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes rpp-medallion { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95) } 50% { opacity: 1; transform: translateX(-50%) scale(1.05) } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.98) } }
@keyframes rpp-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.35 } }
@keyframes rpp-spot { 0% { opacity: 0.4; transform: scaleX(0.9) } 100% { opacity: 0.7; transform: scaleX(1.1) } }
@keyframes rpp-step { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-richard-humility {
  background:
    linear-gradient(180deg, #f2e6d2 0%, #e0d0b8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 20%, #fffaf0 0%, transparent 50%);
}
.scn-richard-humility .pillar-l {
  position: absolute; top: 5%; left: 8%; width: 6%; height: 85%;
  background: linear-gradient(90deg, #b8a898 0%, #d8c8b8 40%, #b0a090 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
  animation: rh-pillar 12s ease-in-out infinite alternate;
}
.scn-richard-humility .pillar-r {
  position: absolute; top: 5%; right: 8%; width: 6%; height: 85%;
  background: linear-gradient(270deg, #b8a898 0%, #d8c8b8 40%, #b0a090 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
  animation: rh-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-richard-humility .richard-stand {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 42px; height: 76px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: rh-stand 8s ease-in-out infinite;
}
.scn-richard-humility .halo-glow {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, rgba(255,200,140,0.2) 50%, transparent 70%);
  animation: rh-halo 6s ease-in-out infinite alternate;
}
.scn-richard-humility .floor-line {
  position: absolute; bottom: 12%; left: 5%; right: 5%; height: 1px;
  background: linear-gradient(90deg, transparent 0%, #a08870 20%, #c0a890 50%, #a08870 80%, transparent 100%);
  animation: rh-line 10s ease-in-out infinite;
}
.scn-richard-humility .shadow-soft {
  position: absolute; bottom: 13%; left: 40%; width: 20%; height: 12%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: rh-shadow 7s ease-in-out infinite alternate;
}
.scn-richard-humility .glint {
  position: absolute; top: 25%; left: 48%; width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.8);
  animation: rh-glint 4s ease-in-out infinite;
}
@keyframes rh-pillar { 0% { transform: scaleY(1) } 100% { transform: scaleY(0.98) } }
@keyframes rh-stand { 0%,100% { transform: translateX(-50%) } 30% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } 70% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } }
@keyframes rh-halo { 0% { opacity: 0.4; transform: scale(0.9) } 100% { opacity: 0.7; transform: scale(1.1) } }
@keyframes rh-line { 0% { transform: scaleX(0.9); opacity: 0.6 } 50% { transform: scaleX(1); opacity: 0.8 } 100% { transform: scaleX(0.95); opacity: 0.7 } }
@keyframes rh-shadow { 0% { transform: scaleX(0.8); opacity: 0.3 } 100% { transform: scaleX(1.2); opacity: 0.5 } }
@keyframes rh-glint { 0% { opacity: 0 } 20% { opacity: 1 } 80% { opacity: 1 } 100% { opacity: 0 } }

.scn-murderers-enter { background: linear-gradient(180deg, #1a1a2e 0%, #121220 40%, #0f0f1a 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%); }
.scn-murderers-enter .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%); animation: bg-pulse-me 12s ease-in-out infinite alternate; }
.scn-murderers-enter .door { position:absolute; bottom:20%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, #3d2b1f 0%, #241810 100%); border-radius: 2% 2% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.7), inset -2px 0 4px rgba(0,0,0,.5); transform: perspective(800px) rotateY(5deg); animation: door-me 8s ease-in-out infinite alternate; }
.scn-murderers-enter .door-shadow { position:absolute; bottom:20%; left:35%; width:30%; height:60%; background: rgba(0,0,0,.5); filter: blur(10px); transform: perspective(800px) rotateY(5deg) translateX(-10%); animation: door-shadow-me 8s ease-in-out infinite alternate; }
.scn-murderers-enter .figure-left { position:absolute; bottom:20%; left:20%; width:10%; height:50%; background: linear-gradient(180deg, #181010 0%, #0a0605 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: scaleX(-1) rotate(2deg); animation: walk-me 4s ease-in-out infinite; }
.scn-murderers-enter .figure-right { position:absolute; bottom:20%; right:20%; width:10%; height:50%; background: linear-gradient(180deg, #181010 0%, #0a0605 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: walk-me 4s ease-in-out infinite -1s; }
.scn-murderers-enter .window-glow { position:absolute; top:15%; right:10%; width:8%; height:12%; background: radial-gradient(circle, #ffcc55 0%, #cc9933 50%, transparent 100%); border-radius: 20%; box-shadow: 0 0 40px 15px rgba(255,204,85,.3); animation: glow-me 3s ease-in-out infinite alternate; }
.scn-murderers-enter .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
@keyframes bg-pulse-me { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes door-me { 0% { transform: perspective(800px) rotateY(5deg) translateX(0); } 50% { transform: perspective(800px) rotateY(3deg) translateX(2%); } 100% { transform: perspective(800px) rotateY(5deg) translateX(0); } }
@keyframes door-shadow-me { 0%,100% { opacity:0.6; transform: perspective(800px) rotateY(5deg) translateX(-10%); } 50% { opacity:0.8; transform: perspective(800px) rotateY(3deg) translateX(-8%); } }
@keyframes walk-me { 0% { transform: scaleX(-1) rotate(2deg) translateX(0) translateY(0); } 25% { transform: scaleX(-1) rotate(-1deg) translateX(5%) translateY(-2%); } 50% { transform: scaleX(-1) rotate(2deg) translateX(10%) translateY(0); } 75% { transform: scaleX(-1) rotate(-1deg) translateX(15%) translateY(-2%); } 100% { transform: scaleX(-1) rotate(2deg) translateX(20%) translateY(0); } }
@keyframes glow-me { 0% { box-shadow: 0 0 30px 10px rgba(255,204,85,.2); opacity:0.7; } 50% { box-shadow: 0 0 60px 20px rgba(255,204,85,.4); opacity:1; } 100% { box-shadow: 0 0 35px 12px rgba(255,204,85,.25); opacity:0.8; } }

.scn-murderers-resolve { background: linear-gradient(180deg, #1a1512 0%, #0f0a08 100%), radial-gradient(ellipse at 50% 80%, #3a2818 0%, transparent 80%); }
.scn-murderers-resolve .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: pulse-mr 10s ease-in-out infinite alternate; }
.scn-murderers-resolve .candle { position:absolute; bottom:40%; left:30%; width:2%; height:20%; background: linear-gradient(180deg, #e0c090 0%, #b08060 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 8px 2px #b08060; transform: rotate(-5deg); animation: candle-mr 5s ease-in-out infinite; }
.scn-murderers-resolve .flame { position:absolute; bottom:58%; left:30.5%; width:2%; height:8%; background: radial-gradient(ellipse at 50% 100%, #ffe080 0%, #ff8840 50%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,136,64,.5); animation: flame-mr 2s ease-in-out infinite alternate; }
.scn-murderers-resolve .hands { position:absolute; bottom:30%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 70%, #c0a088 0%, #806050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); animation: hands-mr 6s ease-in-out infinite; }
.scn-murderers-resolve .warrant { position:absolute; bottom:40%; left:42%; width:12%; height:15%; background: linear-gradient(180deg, #d4c4a4 0%, #b89a70 100%); border-radius: 4%; transform: rotate(-5deg) scale(1); box-shadow: 1px 2px 6px rgba(0,0,0,.6); animation: paper-mr 8s ease-in-out infinite; }
.scn-murderers-resolve .table-edge { position:absolute; bottom:25%; left:10%; right:10%; height:5%; background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-murderers-resolve .shadow-hand { position:absolute; bottom:30%; left:35%; width:30%; height:30%; background: rgba(0,0,0,.3); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg) translate(8%,8%); filter: blur(6px); animation: shadow-hand-mr 6s ease-in-out infinite; }
@keyframes pulse-mr { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }
@keyframes candle-mr { 0%,100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.02); } }
@keyframes flame-mr { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 8px rgba(255,136,64,.5); } 25% { transform: scaleY(1.1) translateY(-2%); box-shadow: 0 0 25px 10px rgba(255,136,64,.6); } 50% { transform: scaleY(0.9) translateY(2%); box-shadow: 0 0 15px 5px rgba(255,136,64,.4); } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 8px rgba(255,136,64,.5); } }
@keyframes hands-mr { 0%,100% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(8deg) scale(0.98); } }
@keyframes paper-mr { 0%,100% { transform: rotate(-5deg) scale(1) translateX(0); } 50% { transform: rotate(-3deg) scale(1.02) translateX(2%); } }
@keyframes shadow-hand-mr { 0%,100% { transform: rotate(10deg) translate(8%,8%) scale(1); } 50% { transform: rotate(8deg) translate(6%,6%) scale(0.98); } }

.scn-clarence-dream { background: linear-gradient(180deg, #0a1020 0%, #142030 50%, #0a0a18 100%), radial-gradient(ellipse at 50% 120%, #1a2a40 0%, transparent 70%); }
.scn-clarence-dream .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(20,30,50,.4) 100%); animation: sky-cd 15s ease-in-out infinite alternate; }
.scn-clarence-dream .bed { position:absolute; bottom:15%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #302a22 0%, #1e1813 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 20px rgba(0,0,0,.6); transform: perspective(600px) rotateX(10deg); }
.scn-clarence-dream .figure-sleep { position:absolute; bottom:18%; left:35%; width:20%; height:25%; background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg) scale(1); animation: sleep-cd 6s ease-in-out infinite; }
.scn-clarence-dream .dream-cloud { position:absolute; top:25%; left:20%; width:25%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(200,210,240,.2), transparent 70%); border-radius: 50%; filter: blur(8px); animation: drift-cd 30s linear infinite; }
.scn-clarence-dream .dream-ghost { position:absolute; top:20%; right:15%; width:15%; height:20%; background: linear-gradient(180deg, rgba(180,200,240,.15) 0%, transparent 100%); border-radius: 40% 40% 20% 20%; filter: blur(6px); animation: ghost-cd 12s ease-in-out infinite alternate; }
.scn-clarence-dream .window-moon { position:absolute; top:12%; right:10%; width:12%; height:15%; background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 50%, transparent 100%); border-radius: 10%; box-shadow: 0 0 40px 10px rgba(160,184,208,.3); animation: moon-cd 8s ease-in-out infinite alternate; }
.scn-clarence-dream .moonlight-beam { position:absolute; top:12%; right:10%; width:8%; height:80%; background: linear-gradient(180deg, rgba(200,220,255,.1) 0%, transparent 100%); transform: rotate(15deg); filter: blur(4px); animation: beam-cd 10s ease-in-out infinite alternate; }
@keyframes sky-cd { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }
@keyframes sleep-cd { 0%,100% { transform: rotate(-5deg) scale(1) translateY(0); } 50% { transform: rotate(-3deg) scale(1.02) translateY(-2%); } }
@keyframes drift-cd { 0% { transform: translateX(-30%) scale(1); } 50% { transform: translateX(60%) scale(1.1); } 100% { transform: translateX(130%) scale(0.9); } }
@keyframes ghost-cd { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-10%) scale(1.05); opacity:0.6; } 100% { transform: translateY(5%) scale(0.95); opacity:0.4; } }
@keyframes moon-cd { 0% { box-shadow: 0 0 30px 8px rgba(160,184,208,.2); } 50% { box-shadow: 0 0 50px 15px rgba(160,184,208,.4); } 100% { box-shadow: 0 0 35px 10px rgba(160,184,208,.25); } }
@keyframes beam-cd { 0% { opacity:0.3; transform: rotate(15deg) scaleY(0.8); } 50% { opacity:0.6; transform: rotate(18deg) scaleY(1); } 100% { opacity:0.4; transform: rotate(12deg) scaleY(0.9); } }

.scn-clarence-dream-drowning { background: linear-gradient(180deg, #0a0a1a 0%, #101520 40%, #0a0808 100%), radial-gradient(ellipse at 50% 20%, #1a2838 0%, transparent 80%); }
.scn-clarence-dream-drowning .storm-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2838 0%, #0a0a18 100%); animation: sky-dd 15s ease-in-out infinite alternate; }
.scn-clarence-dream-drowning .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #122230 0%, #081018 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.6); animation: sea-dd 8s ease-in-out infinite; }
.scn-clarence-dream-drowning .ship-hull { position:absolute; bottom:30%; left:35%; width:25%; height:15%; background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%); border-radius: 10% 10% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,.7); animation: ship-dd 6s ease-in-out infinite; }
.scn-clarence-dream-drowning .ship-sail { position:absolute; bottom:43%; left:40%; width:10%; height:25%; background: linear-gradient(180deg, #c4b8a0 0%, #a09080 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg) skewX(10deg); box-shadow: 0 0 8px rgba(0,0,0,.4); animation: sail-dd 8s ease-in-out infinite alternate; }
.scn-clarence-dream-drowning .figure-fall { position:absolute; bottom:35%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #181010 0%, #0a0605 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(70deg) scale(0.8); animation: fall-dd 5s ease-in-out infinite; }
.scn-clarence-dream-drowning .tower-back { position:absolute; bottom:40%; left:12%; width:8%; height:30%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); transform: perspective(600px) rotateY(10deg); animation: tower-dd 12s ease-in-out infinite alternate; }
.scn-clarence-dream-drowning .wave-fore { position:absolute; bottom:0; left:-10%; right:-10%; height:20%; background: linear-gradient(180deg, #0e1c2c 0%, #081018 100%); border-radius: 40%; filter: blur(6px); animation: wave-dd 4s ease-in-out infinite; }
.scn-clarence-dream-drowning .wave-mid { position:absolute; bottom:5%; left:-10%; right:-10%; height:15%; background: linear-gradient(180deg, #122438 0%, #0a1420 100%); border-radius: 30%; filter: blur(4px); animation: wave-dd 5s ease-in-out infinite -1s; }
@keyframes sky-dd { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes sea-dd { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2%) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ship-dd { 0% { transform: rotate(-5deg) translateX(0) translateY(0); } 25% { transform: rotate(-4deg) translateX(2%) translateY(-2%); } 50% { transform: rotate(-6deg) translateX(-1%) translateY(1%); } 75% { transform: rotate(-4deg) translateX(3%) translateY(-1%); } 100% { transform: rotate(-5deg) translateX(0) translateY(0); } }
@keyframes sail-dd { 0% { transform: rotate(5deg) skewX(10deg) scale(1); } 50% { transform: rotate(8deg) skewX(12deg) scale(1.02); } 100% { transform: rotate(3deg) skewX(8deg) scale(0.98); } }
@keyframes fall-dd { 0% { transform: rotate(70deg) scale(0.8) translateY(0); } 25% { transform: rotate(65deg) scale(0.75) translateY(-5%); } 50% { transform: rotate(75deg) scale(0.85) translateY(8%); } 75% { transform: rotate(68deg) scale(0.78) translateY(2%); } 100% { transform: rotate(70deg) scale(0.8) translateY(0); } }
@keyframes tower-dd { 0% { transform: perspective(600px) rotateY(10deg) scale(1); } 50% { transform: perspective(600px) rotateY(8deg) scale(0.98); } 100% { transform: perspective(600px) rotateY(10deg) scale(1); } }
@keyframes wave-dd { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10%) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }

.scn-richard-feigns-reluctance {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 40%, #3a2a4e 70%, #1a1a2e 100%), radial-gradient(ellipse at 30% 20%, #3a2a4e 20%, transparent 70%);
}
.scn-richard-feigns-reluctance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a1a2a 0%, #3a2a3a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
  animation: rfr-floor 18s ease-in-out infinite alternate;
}
.scn-richard-feigns-reluctance .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
  animation: rfr-wall 25s ease-in-out infinite alternate;
}
.scn-richard-feigns-reluctance .throne {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%) scale(0.9);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4% / 80% 80% 10% 10%;
  box-shadow: 0 6px 14px rgba(0,0,0,.7);
  animation: rfr-throne 12s ease-in-out infinite alternate;
}
.scn-richard-feigns-reluctance .figure {
  position: absolute; bottom: 17%; left: 50%; width: 28px; height: 50px;
  transform: translateX(-50%) translateY(-4px);
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  animation: rfr-figure 8s ease-in-out infinite;
}
.scn-richard-feigns-reluctance .candle {
  position: absolute; bottom: 28%; left: 38%; width: 4px; height: 12px;
  background: linear-gradient(0deg, #ffd080 0%, #ffc060 40%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,.6), 0 0 40px 12px rgba(255,200,80,.3);
  animation: rfr-candle 3s ease-in-out infinite alternate;
}
.scn-richard-feigns-reluctance .shadow {
  position: absolute; bottom: 16%; left: 36%; width: 60px; height: 14px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: rfr-shadow 8s ease-in-out infinite alternate;
}
.scn-richard-feigns-reluctance .dust {
  position: absolute; bottom: 60%; left: 20%; width: 120px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,150,.06) 0%, transparent 70%);
  filter: blur(8px);
  animation: rfr-dust 30s linear infinite;
}
@keyframes rfr-floor { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes rfr-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes rfr-throne { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-50%) scale(0.92) translateY(-2px) } 100% { transform: translateX(-50%) scale(0.88) } }
@keyframes rfr-figure { 0% { transform: translateX(-50%) translateY(-4px) rotate(-1deg) } 25% { transform: translateX(-45%) translateY(-6px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 75% { transform: translateX(-55%) translateY(-5px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(-4px) rotate(-1deg) } }
@keyframes rfr-candle { 0% { box-shadow: 0 0 15px 4px rgba(255,200,80,.5), 0 0 30px 8px rgba(255,200,80,.2); opacity:.85; height:11px } 50% { box-shadow: 0 0 25px 8px rgba(255,220,100,.8), 0 0 50px 16px rgba(255,220,100,.4); opacity:1; height:13px } 100% { box-shadow: 0 0 18px 5px rgba(255,200,80,.6), 0 0 35px 10px rgba(255,200,80,.3); opacity:.9; height:12px } }
@keyframes rfr-shadow { 0% { transform: scaleX(1) translateX(-8px) } 50% { transform: scaleX(1.1) translateX(-6px) } 100% { transform: scaleX(0.95) translateX(-10px) } }
@keyframes rfr-dust { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-10px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }

.scn-richard-refuses {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2240 50%, #3a2a4a 100%), radial-gradient(ellipse at 70% 80%, #2a2240 30%, transparent 70%);
}
.scn-richard-refuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a1a2a 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.7);
  animation: rr-floor 20s ease-in-out infinite alternate;
}
.scn-richard-refuses .wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.6);
  animation: rr-wall 30s ease-in-out infinite alternate;
}
.scn-richard-refuses .crown-cushion {
  position: absolute; bottom: 26%; left: 60%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: rr-cushion 14s ease-in-out infinite alternate;
}
.scn-richard-refuses .figure {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 54px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  transform: rotate(8deg);
  animation: rr-figure 9s ease-in-out infinite;
}
.scn-richard-refuses .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 70px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: rr-shadow 9s ease-in-out infinite alternate;
}
.scn-richard-refuses .window {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 70px;
  background: linear-gradient(180deg, rgba(200,180,160,.08) 0%, rgba(200,180,160,.02) 100%);
  border: 2px solid rgba(200,180,160,.15);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: rr-window 22s ease-in-out infinite alternate;
}
@keyframes rr-floor { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rr-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes rr-cushion { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes rr-figure { 0% { transform: rotate(8deg) translateX(0) } 25% { transform: rotate(10deg) translateX(4px) } 50% { transform: rotate(6deg) translateX(-2px) } 75% { transform: rotate(9deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes rr-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(0.9) translateX(5px) } 100% { transform: scaleX(1.05) translateX(-3px) } }
@keyframes rr-window { 0% { opacity: .15 } 50% { opacity: .25 } 100% { opacity: .1 } }

.scn-buckingham-argues-bastardy {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 50%, #3a2a4a 100%), radial-gradient(ellipse at 50% 30%, #2a2040 30%, transparent 70%);
}
.scn-buckingham-argues-bastardy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a1a2a 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.7);
  animation: bab-floor 16s ease-in-out infinite alternate;
}
.scn-buckingham-argues-bastardy .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.6);
  animation: bab-wall 28s ease-in-out infinite alternate;
}
.scn-buckingham-argues-bastardy .table {
  position: absolute; bottom: 24%; left: 50%; width: 100px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #4a3a2a 0%, #5a4a3a 100%);
  border-radius: 6%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: bab-table 12s ease-in-out infinite alternate;
}
.scn-buckingham-argues-bastardy .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 8px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: bab-scroll 10s ease-in-out infinite alternate;
}
.scn-buckingham-argues-bastardy .figure-left {
  position: absolute; bottom: 16%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  transform: rotate(-4deg);
  animation: bab-figure-l 7s ease-in-out infinite;
}
.scn-buckingham-argues-bastardy .figure-right {
  position: absolute; bottom: 16%; right: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  transform: rotate(4deg);
  animation: bab-figure-r 7s ease-in-out infinite 0.5s;
}
.scn-buckingham-argues-bastardy .candle {
  position: absolute; bottom: 35%; left: 45%; width: 4px; height: 10px;
  background: linear-gradient(0deg, #ffd080 0%, #ffc060 40%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,.6), 0 0 40px 12px rgba(255,200,80,.3);
  animation: bab-candle 3.5s ease-in-out infinite alternate;
}
.scn-buckingham-argues-bastardy .shadow {
  position: absolute; bottom: 14%; left: 25%; width: 120px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: bab-shadow 8s ease-in-out infinite alternate;
}
@keyframes bab-floor { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bab-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes bab-table { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes bab-scroll { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(-1deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes bab-figure-l { 0% { transform: rotate(-4deg) translateX(0) } 25% { transform: rotate(-2deg) translateX(3px) } 50% { transform: rotate(-5deg) translateX(-2px) } 75% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-4deg) translateX(0) } }
@keyframes bab-figure-r { 0% { transform: rotate(4deg) translateX(0) } 25% { transform: rotate(2deg) translateX(-3px) } 50% { transform: rotate(5deg) translateX(2px) } 75% { transform: rotate(3deg) translateX(-2px) } 100% { transform: rotate(4deg) translateX(0) } }
@keyframes bab-candle { 0% { box-shadow: 0 0 15px 4px rgba(255,200,80,.5), 0 0 30px 8px rgba(255,200,80,.2); opacity:.85; height:9px } 50% { box-shadow: 0 0 25px 8px rgba(255,220,100,.8), 0 0 50px 16px rgba(255,220,100,.4); opacity:1; height:11px } 100% { box-shadow: 0 0 18px 5px rgba(255,200,80,.6), 0 0 35px 10px rgba(255,200,80,.3); opacity:.9; height:10px } }
@keyframes bab-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(5px) } 100% { transform: scaleX(0.95) translateX(-5px) } }

.scn-buckingham-presses {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 50%, #3a2a4a 100%), radial-gradient(ellipse at 30% 70%, #2a2040 20%, transparent 70%);
}
.scn-buckingham-presses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a1a2a 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.7);
  animation: bp-floor 14s ease-in-out infinite alternate;
}
.scn-buckingham-presses .wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.6);
  animation: bp-wall 26s ease-in-out infinite alternate;
}
.scn-buckingham-presses .doorway {
  position: absolute; bottom: 0; left: 20%; width: 80px; height: 90%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: bp-doorway 18s ease-in-out infinite alternate;
}
.scn-buckingham-presses .figure-advancing {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  transform: rotate(10deg);
  animation: bp-figure-a 6s ease-in-out infinite;
}
.scn-buckingham-presses .figure-retreating {
  position: absolute; bottom: 18%; right: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  transform: rotate(-8deg);
  animation: bp-figure-r 6s ease-in-out infinite 0.3s;
}
.scn-buckingham-presses .shadow {
  position: absolute; bottom: 14%; left: 30%; width: 140px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: bp-shadow 7s ease-in-out infinite alternate;
}
.scn-buckingham-presses .torch {
  position: absolute; bottom: 70%; left: 15%; width: 8px; height: 14px;
  background: linear-gradient(0deg, #ffa040 0%, #ff8040 40%, transparent 80%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,160,64,.7), 0 0 60px 16px rgba(255,160,64,.35);
  animation: bp-torch 2.5s ease-in-out infinite alternate;
}
@keyframes bp-floor { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bp-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes bp-doorway { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes bp-figure-a { 0% { transform: rotate(10deg) translateX(0) } 25% { transform: rotate(12deg) translateX(6px) } 50% { transform: rotate(8deg) translateX(2px) } 75% { transform: rotate(11deg) translateX(4px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes bp-figure-r { 0% { transform: rotate(-8deg) translateX(0) } 25% { transform: rotate(-10deg) translateX(-6px) } 50% { transform: rotate(-6deg) translateX(-2px) } 75% { transform: rotate(-9deg) translateX(-4px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes bp-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.15) translateX(4px) } 100% { transform: scaleX(0.9) translateX(-6px) } }
@keyframes bp-torch { 0% { box-shadow: 0 0 25px 6px rgba(255,160,64,.6), 0 0 50px 12px rgba(255,160,64,.3); opacity:.9; height:13px } 50% { box-shadow: 0 0 40px 12px rgba(255,180,80,.9), 0 0 80px 20px rgba(255,180,80,.5); opacity:1; height:15px } 100% { box-shadow: 0 0 30px 8px rgba(255,160,64,.7), 0 0 60px 16px rgba(255,160,64,.35); opacity:.95; height:14px } }

.scn-richard-proposes-marriage {
  background: 
    linear-gradient(180deg, #6a8ec4 0%, #b0c9e8 40%, #f5e8c8 100%),
    radial-gradient(ellipse at 30% 20%, #ffe68f 0%, transparent 60%);
}
.scn-richard-proposes-marriage .bg-window { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a6a9e 0%, #7a9ac4 100%); }
.scn-richard-proposes-marriage .window-frame { position:absolute; inset:10% 10% 35% 10%; border:12px solid #5a4a3a; border-radius:4px; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-richard-proposes-marriage .sunbeam { position:absolute; top:15%; left:40%; width:30%; height:50%; background: linear-gradient(135deg, rgba(255,230,140,.6) 0%, transparent 100%); transform: rotate(-15deg); animation: si1-beam 8s ease-in-out infinite alternate; }
.scn-richard-proposes-marriage .richard-figure { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: si1-kneel 10s ease-in-out infinite; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-richard-proposes-marriage .elizabeth-figure { position:absolute; bottom:30%; left:52%; width:35px; height:75px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: si1-stand 12s ease-in-out infinite; }
.scn-richard-proposes-marriage .crown { position:absolute; bottom:68%; left:56%; width:20px; height:8px; background: linear-gradient(180deg, #c8a050 0%, #a08030 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 12px 2px rgba(200,160,80,.6); animation: si1-crown 6s ease-in-out infinite alternate; }
.scn-richard-proposes-marriage .rose { position:absolute; bottom:32%; left:45%; width:14px; height:14px; background: radial-gradient(circle, #c8553d 0%, #8a3020 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,.4); animation: si1-rose 4s ease-in-out infinite; }
.scn-richard-proposes-marriage .shadow-stripe { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 48%, rgba(0,0,0,.08) 48%, rgba(0,0,0,.08) 52%, transparent 52%); animation: si1-shadow 15s linear infinite; }
@keyframes si1-beam { 0% { opacity:.5; transform: rotate(-15deg) scaleX(1); } 50% { opacity:.8; transform: rotate(-10deg) scaleX(1.2); } 100% { opacity:.6; transform: rotate(-18deg) scaleX(0.9); } }
@keyframes si1-kneel { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si1-stand { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-1px) rotate(-1deg); } 66% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(1px) rotate(1deg); } }
@keyframes si1-crown { 0% { transform: translateY(0) rotate(-2deg); opacity:.6; } 50% { transform: translateY(-3px) rotate(2deg); opacity:.9; } 100% { transform: translateY(0) rotate(0deg); opacity:.7; } }
@keyframes si1-rose { 0% { transform: scale(1); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes si1-shadow { 0% { background-position: 0 0; } 100% { background-position: 100vw 0; } }

.scn-elizabeth-berates {
  background: 
    linear-gradient(160deg, #4a6a8a 0%, #2a3a5a 40%, #5a7a9a 100%),
    radial-gradient(ellipse at 80% 100%, #8aaac4 0%, transparent 60%);
}
.scn-elizabeth-berates .cliff-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a9aba 0%, #5a6a8a 100%); animation: si2-sky 20s ease-in-out infinite alternate; }
.scn-elizabeth-berates .sea { position:absolute; bottom:30%; left:0; right:0; top:40%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); animation: si2-sea 12s ease-in-out infinite alternate; }
.scn-elizabeth-berates .cliff { position:absolute; bottom:30%; left:10%; width:40%; height:60%; background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 30%, #3a2a1a 100%); border-radius: 10% 30% 0 0 / 20% 50% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.3); }
.scn-elizabeth-berates .ship-wreck { position:absolute; bottom:35%; left:20%; width:60px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%; transform: rotate(15deg); animation: si2-wreck 15s ease-in-out infinite; }
.scn-elizabeth-berates .elizabeth-figure-cliff { position:absolute; bottom:40%; left:12%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: si2-gesture 8s ease-in-out infinite; }
.scn-elizabeth-berates .storm-cloud { position:absolute; top:15%; left:5%; width:90px; height:25px; background: linear-gradient(180deg, rgba(60,60,80,.5) 0%, rgba(30,30,50,.1) 100%); border-radius: 50%; filter: blur(8px); animation: si2-cloud-drift 40s linear infinite; }
.scn-elizabeth-berates .spray { position:absolute; bottom:30%; left:15%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,220,240,.4) 0%, transparent 70%); border-radius: 50%; animation: si2-spray 3s ease-in-out infinite; }
@keyframes si2-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes si2-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes si2-wreck { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(2px); } 100% { transform: rotate(17deg) translateY(-1px); } }
@keyframes si2-gesture { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(0) rotate(10deg); } 75% { transform: translateX(-5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes si2-cloud-drift { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes si2-spray { 0% { transform: translateY(0) scale(1); opacity:.6; } 100% { transform: translateY(-30px) scale(0.3); opacity:0; } }

.scn-richard-swears {
  background: 
    linear-gradient(135deg, #5a4a3a 0%, #7a6a5a 40%, #9a8a7a 100%),
    radial-gradient(ellipse at 60% 20%, #f5e0a0 0%, transparent 70%);
}
.scn-richard-swears .tent-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0 0, 100% 0, 100% 80%, 0 80%); animation: si3-tent 20s ease-in-out infinite alternate; }
.scn-richard-swears .sword { position:absolute; bottom:20%; left:50%; width:8px; height:120px; background: linear-gradient(180deg, #c0a080 0%, #807060 40%, #a08060 100%); transform: translateX(-50%) rotate(-10deg); transform-origin: bottom center; animation: si3-sword 12s ease-in-out infinite; box-shadow: 0 0 20px 4px rgba(192,160,128,.4); }
.scn-richard-swears .hand-swearing { position:absolute; bottom:35%; left:48%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform: rotate(20deg); transform-origin: bottom center; animation: si3-hand 8s ease-in-out infinite; }
.scn-richard-swears .sunbeam-sword { position:absolute; top:5%; left:40%; width:20%; height:60%; background: linear-gradient(135deg, rgba(255,230,180,.5) 0%, transparent 100%); transform: rotate(-20deg); animation: si3-beam 10s ease-in-out infinite alternate; }
.scn-richard-swears .banner { position:absolute; top:15%; left:70%; width:40px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 4px; transform: rotate(-5deg); animation: si3-banner 6s ease-in-out infinite; box-shadow: 0 0 8px 2px rgba(200,85,61,.3); }
.scn-richard-swears .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, rgba(255,255,200,.15) 0%, transparent 50%); animation: si3-dust 15s linear infinite; }
.scn-richard-swears .shadow-arch { position:absolute; bottom:0; left:20%; right:20%; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 100%); }
@keyframes si3-tent { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes si3-sword { 0% { transform: translateX(-50%) rotate(-10deg); } 50% { transform: translateX(-50%) rotate(-6deg); } 100% { transform: translateX(-50%) rotate(-12deg); } }
@keyframes si3-hand { 0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(25deg) translateY(-2px); } 50% { transform: rotate(18deg) translateY(0); } 75% { transform: rotate(22deg) translateY(-1px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes si3-beam { 0% { opacity:.4; transform: rotate(-20deg) scaleX(1); } 50% { opacity:.8; transform: rotate(-15deg) scaleX(1.3); } 100% { opacity:.5; transform: rotate(-25deg) scaleX(0.8); } }
@keyframes si3-banner { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.05); } 100% { transform: rotate(-8deg) scaleY(1); } }
@keyframes si3-dust { 0% { background-size: 100% 100%; background-position: 0 0; } 100% { background-size: 150% 150%; background-position: -50% -50%; } }

.scn-elizabeth-questions {
  background: 
    linear-gradient(180deg, #8a9a7a 0%, #b0c0a0 40%, #e0d8b0 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8c0 0%, transparent 60%);
}
.scn-elizabeth-questions .garden-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a5a3a 0%, #5a7a5a 100%); }
.scn-elizabeth-questions .fountain { position:absolute; bottom:20%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-elizabeth-questions .elizabeth-sitting { position:absolute; bottom:15%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a5a 0%, #1a0a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: si4-sit 14s ease-in-out infinite; }
.scn-elizabeth-questions .richard-standing { position:absolute; bottom:15%; left:55%; width:35px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: si4-stand 10s ease-in-out infinite; }
.scn-elizabeth-questions .water-ripple { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(160,200,200,.6) 0%, transparent 70%); border-radius: 50%; animation: si4-ripple 4s ease-in-out infinite; }
.scn-elizabeth-questions .light-dapple { position:absolute; inset:0; background: radial-gradient(circle at 60% 40%, rgba(255,255,200,.2) 0%, transparent 40%), radial-gradient(circle at 20% 70%, rgba(255,255,200,.15) 0%, transparent 30%); animation: si4-dapple 8s ease-in-out infinite alternate; }
.scn-elizabeth-questions .stone-bench { position:absolute; bottom:10%; left:15%; width:60px; height:15px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20%; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
@keyframes si4-sit { 0% { transform: translateY(0) rotate(-2deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes si4-stand { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes si4-ripple { 0% { transform: scaleX(1) scaleY(1); opacity:.5; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:.8; } 100% { transform: scaleX(1) scaleY(1); opacity:.5; } }
@keyframes si4-dapple { 0% { background-size: 100% 100%; background-position: 0% 0%; } 100% { background-size: 150% 150%; background-position: 20% 30%; } }

.scn-hastings-innocent {
  background: linear-gradient(180deg, #c8b89a 0%, #e6d4b6 30%, #d6c4a6 60%, #b8a88a 100%),
              radial-gradient(ellipse at 30% 70%, rgba(255,235,200,0.6) 0%, transparent 50%);
}
.scn-hastings-innocent .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #d4c4a6 0%, #e6d6b8 40%, #d4c4a6 100%);
  box-shadow: inset 0 0 60px rgba(180,160,120,0.3);
}
.scn-hastings-innocent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a64 0%, #6a5a44 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
}
.scn-hastings-innocent .window-arch {
  position: absolute; top: 12%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #c0d0e0 0%, #90a0b0 50%, #506070 80%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 40px rgba(200,220,240,0.4);
  animation: hi-window 8s ease-in-out infinite alternate;
}
.scn-hastings-innocent .sill {
  position: absolute; top: 46%; left: 50%; width: 130px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 4px;
}
.scn-hastings-innocent .light-beam {
  position: absolute; top: 30%; left: 50%; width: 80px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,245,220,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: hi-beam 6s ease-in-out infinite;
}
.scn-hastings-innocent .figure-hi {
  position: absolute; bottom: 33%; left: 41%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hi-figure 5s ease-in-out infinite alternate;
}
.scn-hastings-innocent .bench {
  position: absolute; bottom: 30%; left: 30%; width: 140px; height: 24px;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%);
  border-radius: 10% 10% 6% 6% / 40% 40% 20% 20%;
}
.scn-hastings-innocent .papers {
  position: absolute; bottom: 34%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d6c8a8 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: hi-papers 6s infinite alternate;
}
@keyframes hi-window {
  0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 0.9; transform: translateX(-50%) scaleY(1.02); }
  100% { opacity: 0.8; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes hi-beam {
  0% { opacity: 0.3; transform: translateX(-50%) translateY(0) scaleX(0.8); }
  50% { opacity: 0.6; transform: translateX(-50%) translateY(-5px) scaleX(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) translateY(3px) scaleX(0.9); }
}
@keyframes hi-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(1px) rotate(1deg); }
}
@keyframes hi-papers {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-1px); }
  100% { transform: rotate(-18deg) translateY(1px); }
}

.scn-richard-accuses-witchcraft {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 30%, #3a2a1a 70%, #1a0a00 100%),
              radial-gradient(ellipse at 60% 40%, #b07030 0%, transparent 70%);
}
.scn-richard-accuses-witchcraft .bg-raw {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-richard-accuses-witchcraft .fire-pit {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #ff8040 0%, #c06020 50%, #804020 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 60px 20px #c06020;
  animation: raw-fire 3s ease-in-out infinite alternate;
}
.scn-richard-accuses-witchcraft .glow-raw {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(200,100,40,0.2) 0%, transparent 50%);
  animation: raw-glow 6s ease-in-out infinite;
}
.scn-richard-accuses-witchcraft .richard-raw {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: raw-richard 4s ease-in-out infinite;
}
.scn-richard-accuses-witchcraft .shadow-raw {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,0.4) 0%, transparent 60%);
  filter: blur(10px);
  animation: raw-shadow 4s infinite alternate;
}
.scn-richard-accuses-witchcraft .chain-left {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 60px;
  background: repeating-linear-gradient(0deg, #605040 0px, #605040 6px, #403020 6px, #403020 12px);
  border-radius: 4px;
  animation: raw-chain 2s ease-in-out infinite;
}
.scn-richard-accuses-witchcraft .chain-right {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 60px;
  background: repeating-linear-gradient(0deg, #605040 0px, #605040 6px, #403020 6px, #403020 12px);
  border-radius: 4px;
  animation: raw-chain 2s ease-in-out infinite reverse;
}
@keyframes raw-fire {
  0% { transform: scale(1); box-shadow: 0 0 40px 10px #c06020; }
  50% { transform: scale(1.1); box-shadow: 0 0 80px 30px #e08030; }
  100% { transform: scale(0.95); box-shadow: 0 0 50px 15px #c06020; }
}
@keyframes raw-glow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes raw-richard {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes raw-shadow {
  0% { transform: scaleX(0.8) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.1) scaleY(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.9) scaleY(0.9); opacity: 0.6; }
}
@keyframes raw-chain {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}

.scn-richard-shows-arm {
  background: linear-gradient(180deg, #1a1a0a 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 40%, #a06030 0%, transparent 60%);
}
.scn-richard-shows-arm .wall-rsa {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-richard-shows-arm .floor-rsa {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a44 0%, #4a3a24 100%);
  border-radius: 20% 30% 0 0 / 30% 40% 0 0;
}
.scn-richard-shows-arm .richard-rsa {
  position: absolute; bottom: 22%; left: 40%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: rsa-richard 5s ease-in-out infinite;
}
.scn-richard-shows-arm .arm-rsa {
  position: absolute; bottom: 58%; left: 46%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 10% 10% 40% / 60% 20% 20% 60%;
  transform-origin: left center;
  animation: rsa-arm 4s ease-in-out infinite alternate;
}
.scn-richard-shows-arm .queen-silhouette {
  position: absolute; bottom: 22%; right: 20%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  opacity: 0.7;
  animation: rsa-queen 6s ease-in-out infinite;
}
.scn-richard-shows-arm .hearth-glow {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 90px;
  background: radial-gradient(ellipse at 30% 20%, #c07030 0%, transparent 70%);
  filter: blur(12px);
  animation: rsa-hearth 4s infinite alternate;
}
.scn-richard-shows-arm .pillar-left {
  position: absolute; bottom: 0; left: 10%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-richard-shows-arm .pillar-right {
  position: absolute; bottom: 0; right: 10%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes rsa-richard {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(1px) rotate(1deg); }
}
@keyframes rsa-arm {
  0% { transform: rotate(-30deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(0.8); }
  100% { transform: rotate(-40deg) scaleY(1.1); }
}
@keyframes rsa-queen {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateY(-2px) rotate(2deg); opacity: 0.8; }
  100% { transform: translateY(1px) rotate(-2deg); opacity: 0.7; }
}
@keyframes rsa-hearth {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-richard-accuses-hastings {
  background: linear-gradient(180deg, #1a0a00 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 40%, #b08040 0%, transparent 70%);
}
.scn-richard-accuses-hastings .hall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-richard-accuses-hastings .throne {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-richard-accuses-hastings .richard-rah {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: rah-richard 3s ease-in-out infinite;
}
.scn-richard-accuses-hastings .hastings-kneeling {
  position: absolute; bottom: 15%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: rah-hastings 4s ease-in-out infinite alternate;
}
.scn-richard-accuses-hastings .guard-left {
  position: absolute; bottom: 18%; left: 15%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rah-guard 6s infinite alternate;
}
.scn-richard-accuses-hastings .guard-right {
  position: absolute; bottom: 18%; right: 15%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rah-guard 6s infinite alternate-reverse;
}
.scn-richard-accuses-hastings .torch-left {
  position: absolute; bottom: 55%; left: 12%; width: 10px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #ffa050 0%, #c06020 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px #c06020;
  animation: rah-torch 2s ease-in-out infinite alternate;
}
.scn-richard-accuses-hastings .torch-right {
  position: absolute; bottom: 55%; right: 12%; width: 10px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #ffa050 0%, #c06020 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px #c06020;
  animation: rah-torch 2s ease-in-out infinite alternate-reverse;
}
.scn-richard-accuses-hastings .axe {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: rah-axe 5s infinite;
}
@keyframes rah-richard {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
}
@keyframes rah-hastings {
  0% { transform: rotate(-10deg) translateY(0) scaleY(1); }
  50% { transform: rotate(-8deg) translateY(-2px) scaleY(0.95); }
  100% { transform: rotate(-12deg) translateY(1px) scaleY(1.05); }
}
@keyframes rah-guard {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes rah-torch {
  0% { opacity: 0.6; transform: scaleY(0.9); }
  50% { opacity: 1; transform: scaleY(1.2); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes rah-axe {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(2px); }
}

.scn-queen-bitter { background: linear-gradient(180deg, #c0945a 0%, #8c6a3c 40%, #5a3e1e 100%), radial-gradient(ellipse at 50% 30%, #f0d090 0%, transparent 70%); }
.scn-queen-bitter .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d4b57a 0%, #a8824e 70%); animation: qb-wall 8s ease-in-out infinite alternate; }
.scn-queen-bitter .window { position:absolute; top:10%; right:8%; width:25%; height:40%; background: linear-gradient(180deg, #ffe4b0 0%, #d0a060 100%); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 0 30px #f0c080; animation: qb-window 5s ease-in-out infinite alternate; }
.scn-queen-bitter .queen-silhouette { position:absolute; bottom:15%; left:20%; width:120px; height:160px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e02 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qb-queen 6s ease-in-out infinite; }
.scn-queen-bitter .servant { position:absolute; bottom:15%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e02 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: qb-servant 4s ease-in-out infinite; }
.scn-queen-bitter .chair { position:absolute; bottom:12%; left:15%; width:100px; height:80px; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: qb-chair 10s ease-in-out infinite alternate; }
.scn-queen-bitter .candle-glow { position:absolute; bottom:45%; left:30%; width:20px; height:30px; background: radial-gradient(circle, #ffd070 0%, #e0a040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,200,80,0.6); animation: qb-candle 3s ease-in-out infinite alternate; }
.scn-queen-bitter .shadow-stripe { position:absolute; top:0; left:55%; width:8%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.2) 100%); animation: qb-stripe 12s linear infinite; }
@keyframes qb-wall { 0% { opacity:0.9; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.05); } 100% { opacity:0.85; filter:brightness(0.95); } }
@keyframes qb-window { 0% { opacity:0.7; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(1.02); } 100% { opacity:0.8; transform:scaleX(0.98); } }
@keyframes qb-queen { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(-5px) translateY(-3px) rotate(1deg); } 50% { transform:translateX(2px) translateY(-1px) rotate(-1deg); } 75% { transform:translateX(-3px) translateY(-5px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes qb-servant { 0% { transform:translateX(0) translateY(0) rotate(2deg); } 33% { transform:translateX(8px) translateY(-2px) rotate(-1deg); } 66% { transform:translateX(-4px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes qb-chair { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.01); } 100% { transform:translateY(0) scaleY(0.99); } }
@keyframes qb-candle { 0% { opacity:0.6; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.7; transform:scale(0.95); } }
@keyframes qb-stripe { 0% { transform:translateX(-20%); } 100% { transform:translateX(120%); } }

.scn-margaret-behind { background: linear-gradient(180deg, #4a3020 0%, #6a4a30 30%, #3a2010 100%), radial-gradient(ellipse at 40% 50%, #b08050 0%, transparent 80%); }
.scn-margaret-behind .bg-arch { position:absolute; inset:0; background: linear-gradient(135deg, #5a3a22 0%, #3a2210 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: mb-arch 15s ease-in-out infinite alternate; }
.scn-margaret-behind .throne { position:absolute; bottom:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #8c6030 0%, #4c3018 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,0.7); animation: mb-throne 8s ease-in-out infinite; }
.scn-margaret-behind .queen-figure { position:absolute; bottom:20%; left:45%; width:80px; height:130px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-queen 6s ease-in-out infinite; }
.scn-margaret-behind .crown { position:absolute; top:15%; left:48%; width:40px; height:20px; background: linear-gradient(135deg, #d0a050 0%, #b08030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px #d0a050; animation: mb-crown 4s ease-in-out infinite alternate; }
.scn-margaret-behind .mirror { position:absolute; top:12%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #c0b090 0%, #908070 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 20px #e0c0a0; animation: mb-mirror 7s ease-in-out infinite; }
.scn-margaret-behind .candle-left { position:absolute; bottom:40%; left:10%; width:8px; height:20px; background: radial-gradient(circle, #ffd080 0%, #e09030 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,80,0.5); animation: mb-candle 3s ease-in-out infinite alternate; }
.scn-margaret-behind .candle-right { position:absolute; bottom:40%; right:10%; width:8px; height:20px; background: radial-gradient(circle, #ffd080 0%, #e09030 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,80,0.5); animation: mb-candle 3s ease-in-out infinite alternate reverse; }
@keyframes mb-arch { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.03); } 100% { opacity:0.85; transform:scaleY(0.97); } }
@keyframes mb-throne { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes mb-queen { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform:translateX(-2px) translateY(0) rotate(-1deg); } 75% { transform:translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes mb-crown { 0% { opacity:0.7; transform:translateY(0) rotate(0); } 50% { opacity:1; transform:translateY(-3px) rotate(3deg); } 100% { opacity:0.8; transform:translateY(0) rotate(-2deg); } }
@keyframes mb-mirror { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.1); } 100% { filter:brightness(0.9); } }
@keyframes mb-candle { 0% { opacity:0.5; transform:scaleY(0.8); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:0.6; transform:scaleY(0.9); } }

.scn-margaret-accuses-richard { background: linear-gradient(180deg, #8c6a3c 0%, #5a3e1e 50%, #2c1a0a 100%), radial-gradient(ellipse at 50% 40%, #d0a060 0%, transparent 60%); }
.scn-margaret-accuses-richard .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e02 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: ma-floor 12s ease-in-out infinite alternate; }
.scn-margaret-accuses-richard .bg-panel { position:absolute; top:0; left:0; right:0; height:80%; background: linear-gradient(135deg, #6a4a30 0%, #3a2010 100%); border-radius: 0 0 20% 20%; animation: ma-bg 9s ease-in-out infinite; }
.scn-margaret-accuses-richard .margaret-profile { position:absolute; bottom:15%; left:20%; width:90px; height:140px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ma-margaret 5s ease-in-out infinite; }
.scn-margaret-accuses-richard .richard-profile { position:absolute; bottom:15%; right:20%; width:100px; height:150px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-richard 6s ease-in-out infinite; }
.scn-margaret-accuses-richard .table { position:absolute; bottom:20%; left:50%; width:140px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: ma-table 8s ease-in-out infinite; }
.scn-margaret-accuses-richard .glow-center { position:absolute; bottom:45%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ffc070 0%, #d09040 70%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,200,100,0.4); animation: ma-glow 3s ease-in-out infinite alternate; }
.scn-margaret-accuses-richard .shadow-left { position:absolute; bottom:20%; left:10%; width:30%; height:40%; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ma-shade 10s ease-in-out infinite alternate; }
.scn-margaret-accuses-richard .shadow-right { position:absolute; bottom:20%; right:10%; width:30%; height:40%; background: linear-gradient(225deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ma-shade 10s ease-in-out infinite alternate-reverse; }
@keyframes ma-floor { 0% { opacity:0.8; transform:translateY(0); } 50% { opacity:1; transform:translateY(-2px); } 100% { opacity:0.9; transform:translateY(1px); } }
@keyframes ma-bg { 0% { filter:brightness(0.9); } 50% { filter:brightness(1.05); } 100% { filter:brightness(0.95); } }
@keyframes ma-margaret { 0% { transform:translateX(0) translateY(0) rotate(0); } 33% { transform:translateX(-8px) translateY(-3px) rotate(3deg); } 66% { transform:translateX(4px) translateY(-1px) rotate(-2deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes ma-richard { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(6px) translateY(-2px) rotate(-2deg); } 50% { transform:translateX(-3px) translateY(-1px) rotate(1deg); } 75% { transform:translateX(5px) translateY(-3px) rotate(0); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes ma-table { 0% { opacity:0.7; transform:translateX(-50%) scaleX(1); } 50% { opacity:1; transform:translateX(-50%) scaleX(1.02); } 100% { opacity:0.8; transform:translateX(-50%) scaleX(0.98); } }
@keyframes ma-glow { 0% { opacity:0.5; transform:translateX(-50%) scale(0.8); } 50% { opacity:1; transform:translateX(-50%) scale(1.2); } 100% { opacity:0.6; transform:translateX(-50%) scale(0.9); } }
@keyframes ma-shade { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-richard-defends { background: linear-gradient(180deg, #b08850 0%, #806030 40%, #4c3018 100%), radial-gradient(ellipse at 60% 20%, #e0b070 0%, transparent 70%); }
.scn-richard-defends .floor-tile { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #4a2a12 0px, #5a3a1a 20px, #4a2a12 40px); border-radius: 10% 10% 0 0; animation: rd-floor 15s linear infinite; }
.scn-richard-defends .bg-column { position:absolute; top:0; left:20%; width:10%; height:100%; background: linear-gradient(180deg, #705a3a 0%, #3a2a12 100%); border-radius: 10% 10% 0 0; box-shadow: 8px 0 20px rgba(0,0,0,0.5); animation: rd-column 10s ease-in-out infinite alternate; }
.scn-richard-defends .richard-silhouette { position:absolute; bottom:15%; left:35%; width:110px; height:160px; background: linear-gradient(180deg, #1a0e02 0%, #0a0601 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rd-richard 5s ease-in-out infinite; }
.scn-richard-defends .hand-up { position:absolute; bottom:50%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: rd-hand 4s ease-in-out infinite; }
.scn-richard-defends .cape { position:absolute; bottom:12%; left:25%; width:120px; height:100px; background: linear-gradient(135deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom left; animation: rd-cape 7s ease-in-out infinite; }
.scn-richard-defends .window-light { position:absolute; top:10%; right:10%; width:30%; height:50%; background: linear-gradient(180deg, #ffe4b0 0%, #d0a060 100%); border-radius: 20% 20% 40% 40%; box-shadow: inset 0 0 40px #f0c080; animation: rd-light 6s ease-in-out infinite alternate; }
.scn-richard-defends .shadow-diagonal { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.1) 100%); animation: rd-shadow 12s ease-in-out infinite alternate; }
@keyframes rd-floor { 0% { background-position-x:0; } 100% { background-position-x:-40px; } }
@keyframes rd-column { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.9; transform:scaleY(0.98); } }
@keyframes rd-richard { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform:translateX(-3px) translateY(-1px) rotate(-1deg); } 75% { transform:translateX(5px) translateY(-3px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes rd-hand { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-5px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes rd-cape { 0% { transform:translateX(0) translateY(0) rotate(0); } 33% { transform:translateX(-8px) translateY(-3px) rotate(5deg); } 66% { transform:translateX(3px) translateY(-1px) rotate(-3deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes rd-light { 0% { opacity:0.6; filter:brightness(0.9); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.7; filter:brightness(0.95); } }
@keyframes rd-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-richard-sets-watch {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #2a1a2a 100%), radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-richard-sets-watch .tent-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1a2e 0%, #1a1a2a 50%, #0f0f1a 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: rsw-tent 12s ease-in-out infinite alternate;
}
.scn-richard-sets-watch .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-richard-sets-watch .ink-bottle {
  position: absolute; bottom: 32%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: rsw-ink 5s ease-in-out infinite;
}
.scn-richard-sets-watch .parchment {
  position: absolute; bottom: 28%; left: 35%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #c8b89a 0%, #a8987a 100%);
  border-radius: 4px; transform: rotate(-3deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.scn-richard-sets-watch .armour {
  position: absolute; bottom: 10%; left: 55%; width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #6a6a7a 0%, #3a3a4a 60%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(100,100,120,.3);
  animation: rsw-armour 9s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-richard-sets-watch .figure {
  position: absolute; bottom: 12%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsw-figure 4s ease-in-out infinite;
}
.scn-richard-sets-watch .candle {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c8a0 0%, #d0a080 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(240,200,160,.6), 0 0 60px 20px rgba(240,200,160,.3);
  animation: rsw-candle 3s ease-in-out infinite alternate;
}
.scn-richard-sets-watch .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  pointer-events: none;
}
@keyframes rsw-tent { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rsw-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rsw-armour { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(.98) } }
@keyframes rsw-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(2deg) } 75% { transform: translateX(12px) rotate(0deg) } 100% { transform: translateX(16px) rotate(-2deg) } }
@keyframes rsw-candle { 0% { box-shadow: 0 0 20px 8px rgba(240,200,160,.5), 0 0 40px 15px rgba(240,200,160,.2); opacity: .9 } 50% { box-shadow: 0 0 40px 15px rgba(255,220,180,.8), 0 0 80px 30px rgba(255,220,180,.4); opacity: 1 } 100% { box-shadow: 0 0 25px 10px rgba(240,200,160,.6), 0 0 50px 20px rgba(240,200,160,.3); opacity: .95 } }

.scn-richard-requests-wine {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f18 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-richard-requests-wine .bg-dark { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 70%, #1a0a0a 0%, transparent 70%); }
.scn-richard-requests-wine .wine-bowl {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #a04030 0%, #702010 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(160,64,48,.6), inset 0 0 15px rgba(0,0,0,.5);
  animation: rrw-bowl 6s ease-in-out infinite alternate;
}
.scn-richard-requests-wine .saddle {
  position: absolute; bottom: 18%; right: 15%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-richard-requests-wine .horse-head {
  position: absolute; bottom: 22%; right: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: rrw-horse 8s ease-in-out infinite;
}
.scn-richard-requests-wine .figure {
  position: absolute; bottom: 15%; left: 25%; width: 24px; 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: rrw-figure 5s ease-in-out infinite;
}
.scn-richard-requests-wine .staves {
  position: absolute; bottom: 8%; left: 20%; width: 80%; height: 6px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 30%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 4px;
  animation: rrw-staves 10s linear infinite;
}
.scn-richard-requests-wine .watch {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 22px;
  background: radial-gradient(circle, #d0c080 0%, #b0a060 70%);
  border-radius: 30% 30% 15% 15%;
  box-shadow: 0 0 12px 4px rgba(176,160,96,.5);
  animation: rrw-watch 4s ease-in-out infinite alternate;
}
@keyframes rrw-bowl { 0% { transform: translate(0,0) scale(1) rotate(0deg) } 50% { transform: translate(2px,-3px) scale(1.03) rotate(2deg) } 100% { transform: translate(-1px,0) scale(.97) rotate(-1deg) } }
@keyframes rrw-horse { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(14deg) } }
@keyframes rrw-figure { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-5px) rotate(-1deg) } 50% { transform: translateX(-10px) rotate(0deg) } 75% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes rrw-staves { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes rrw-watch { 0% { box-shadow: 0 0 8px 2px rgba(176,160,96,.4); opacity: .8 } 50% { box-shadow: 0 0 20px 8px rgba(208,192,128,.7); opacity: 1 } 100% { box-shadow: 0 0 12px 4px rgba(176,160,96,.5); opacity: .9 } }

.scn-richmond-meets-derby {
  background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2e 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-richmond-meets-derby .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2e 100%);
  animation: rmd-sky 15s ease-in-out infinite alternate;
}
.scn-richmond-meets-derby .campfire {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #d06030 0%, #b04020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(208,96,48,.5), 0 0 120px 60px rgba(208,96,48,.2);
  animation: rmd-fire 3s ease-in-out infinite alternate;
}
.scn-richmond-meets-derby .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 22px; 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: rmd-fig-l 4s ease-in-out infinite;
}
.scn-richmond-meets-derby .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 22px; 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: rmd-fig-r 4s ease-in-out infinite 0.5s;
}
.scn-richmond-meets-derby .helm {
  position: absolute; bottom: 42%; left: 48%; width: 30px; height: 35px;
  background: radial-gradient(ellipse at 50% 40%, #6a6a7a 0%, #3a3a4a 60%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 15px rgba(100,100,120,.4);
  animation: rmd-helm 5s ease-in-out infinite alternate;
}
.scn-richmond-meets-derby .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-richmond-meets-derby .sparks {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0c080 0%, transparent 70%);
  animation: rmd-sparks 2s ease-in-out infinite;
  transform: translateX(-50%);
}
@keyframes rmd-sky { 0%,100% { opacity: .7 } 50% { opacity: 1 } }
@keyframes rmd-fire { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.1) rotate(3deg) } 100% { transform: translateX(-50%) scale(.95) rotate(-2deg) } }
@keyframes rmd-fig-l { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(0deg) } 75% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rmd-fig-r { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(-6px) rotate(0deg) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rmd-helm { 0% { transform: translate(0,0) scale(1) rotate(0deg) } 50% { transform: translate(2px,-2px) scale(1.05) rotate(3deg) } 100% { transform: translate(-1px,1px) scale(.97) rotate(-2deg) } }
@keyframes rmd-sparks { 0% { opacity: .8; transform: translate(-50%,0) scale(1) } 50% { opacity: 1; transform: translate(-50%,-10px) scale(1.5) } 100% { opacity: .6; transform: translate(-50%,-20px) scale(.5) } }

.scn-derby-farewell {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-derby-farewell .road {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: dfw-road 20s ease-in-out infinite alternate;
}
.scn-derby-farewell .figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dfw-fig-a 6s ease-in-out infinite;
}
.scn-derby-farewell .figure-b {
  position: absolute; bottom: 20%; right: 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: dfw-fig-b 6s ease-in-out infinite 0.3s;
}
.scn-derby-farewell .moon {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8c8d8 0%, #a8a8b8 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,200,216,.4), 0 0 60px 20px rgba(200,200,216,.2);
  animation: dfw-moon 30s linear infinite;
}
.scn-derby-farewell .tree {
  position: absolute; bottom: 15%; left: 10%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: dfw-tree 15s ease-in-out infinite alternate;
}
.scn-derby-farewell .mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(200,200,216,.05) 0%, rgba(200,200,216,.15) 100%);
  filter: blur(12px);
  animation: dfw-mist 18s ease-in-out infinite alternate;
}
@keyframes dfw-road { 0%,100% { opacity: .7 } 50% { opacity: 1 } }
@keyframes dfw-fig-a { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(2deg) } 50% { transform: translateX(-8px) rotate(0deg) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dfw-fig-b { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(8px) rotate(0deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dfw-moon { 0% { transform: translate(0,0) } 50% { transform: translate(5px,3px) } 100% { transform: translate(-5px,-2px) } }
@keyframes dfw-tree { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(.98) } }
@keyframes dfw-mist { 0% { opacity: .5; transform: translateY(0) } 50% { opacity: .8; transform: translateY(-5px) } 100% { opacity: .6; transform: translateY(2px) } }

/* Scene: derby-defends-wife */
.scn-derby-defends-wife {
  background:
    linear-gradient(135deg, #e8d5b7 0%, #c6a67a 40%, #9f7e5c 100%),
    radial-gradient(ellipse at 120% 80%, #e0c090 0%, transparent 60%);
}
.scn-derby-defends-wife .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c4a8 0%, #c0a88a 40%, #a88868 100%);
  border-radius: 0 0 6% 6%;
}
.scn-derby-defends-wife .window {
  position: absolute; top: 8%; left: 12%; width: 22%; height: 28%;
  background: linear-gradient(135deg, #b0d0e0 0%, #8ab4c8 100%);
  border: 4px solid #7a5a3a;
  box-shadow: inset 0 0 16px rgba(255,255,200,.3), 0 0 12px rgba(200,170,130,.4);
  border-radius: 4px;
  animation: ddw-window 6s ease-in-out infinite alternate;
}
.scn-derby-defends-wife .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a1a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-derby-defends-wife .table {
  position: absolute; bottom: 22%; left: 42%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ddw-table 12s ease-in-out infinite;
}
.scn-derby-defends-wife .man {
  position: absolute; bottom: 18%; left: 34%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ddw-man 4s ease-in-out infinite;
}
.scn-derby-defends-wife .woman {
  position: absolute; bottom: 20%; left: 46%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ddw-woman 3.5s ease-in-out infinite;
}
.scn-derby-defends-wife .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 32%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: ddw-shadow 5s ease-in-out infinite alternate;
}
.scn-derby-defends-wife .light-ray {
  position: absolute; top: 8%; left: 12%; width: 18%; height: 32%;
  background: linear-gradient(135deg, rgba(255,240,200,.25) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  animation: ddw-light 7s ease-in-out infinite alternate;
}
@keyframes ddw-window {
  0% { opacity: .75; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(.98); }
}
@keyframes ddw-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ddw-man {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ddw-woman {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-1px) rotate(-2deg); }
  70% { transform: translateX(1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ddw-shadow {
  0% { opacity: .5; transform: scaleX(1); }
  100% { opacity: .8; transform: scaleX(1.1); }
}
@keyframes ddw-light {
  0% { opacity: .3; transform: rotate(0); }
  50% { opacity: .6; transform: rotate(2deg); }
  100% { opacity: .2; transform: rotate(-2deg); }
}

/* Scene: king-sick-news */
.scn-king-sick-news {
  background:
    linear-gradient(180deg, #c8b090 0%, #a08060 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 30%, #d0b890 0%, transparent 70%);
}
.scn-king-sick-news .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #b09878 0%, #907050 60%, #684830 100%);
}
.scn-king-sick-news .bed {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: ksn-bed 9s ease-in-out infinite;
}
.scn-king-sick-news .pillow {
  position: absolute; bottom: 38%; left: 32%; width: 18%; height: 10%;
  background: linear-gradient(160deg, #d0b890 0%, #b09878 100%);
  border-radius: 40%;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,.2);
}
.scn-king-sick-news .king {
  position: absolute; bottom: 25%; left: 35%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ksn-king 5s ease-in-out infinite alternate;
}
.scn-king-sick-news .attendant {
  position: absolute; bottom: 22%; left: 52%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ksn-attendant 4s ease-in-out infinite alternate;
}
.scn-king-sick-news .curtain-left {
  position: absolute; top: 0; left: 18%; width: 10%; height: 50%;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 30% 30% 0;
  animation: ksn-curtain 10s ease-in-out infinite alternate;
}
.scn-king-sick-news .curtain-right {
  position: absolute; top: 0; right: 18%; width: 10%; height: 50%;
  background: linear-gradient(225deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 0 0 30%;
  animation: ksn-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-king-sick-news .light {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,230,180,.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: ksn-light 8s ease-in-out infinite alternate;
}
@keyframes ksn-bed {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ksn-king {
  0% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes ksn-attendant {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes ksn-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(4px); }
}
@keyframes ksn-light {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .4; transform: scale(.95); }
}

/* Scene: richard-bursts-in */
.scn-richard-bursts-in {
  background:
    linear-gradient(135deg, #c0a080 0%, #a08060 40%, #806040 100%),
    radial-gradient(ellipse at 80% 50%, #d0b090 0%, transparent 60%);
}
.scn-richard-bursts-in .walls {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #b09878 0%, #907050 50%, #685030 100%);
  border-radius: 0 0 10% 10%;
}
.scn-richard-bursts-in .door-frame {
  position: absolute; top: 10%; right: 12%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-richard-bursts-in .door {
  position: absolute; top: 10%; right: 14%; width: 16%; height: 56%;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%);
  border: 2px solid #3a2a1a;
  transform-origin: right center;
  animation: rbi-door 1.5s ease-out infinite alternate;
}
.scn-richard-bursts-in .richard {
  position: absolute; bottom: 22%; right: 28%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a1a0a 0%, #100a05 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: rbi-richard 3s ease-in-out infinite;
}
.scn-richard-bursts-in .startled {
  position: absolute; bottom: 20%; left: 18%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbi-startled 2.5s ease-in-out infinite;
}
.scn-richard-bursts-in .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 14%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: rbi-shadow 4s ease-in-out infinite alternate;
}
.scn-richard-bursts-in .dust {
  position: absolute; top: 12%; right: 18%; width: 16%; height: 12%;
  background: radial-gradient(ellipse, rgba(200,180,150,.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: rbi-dust 2s ease-in-out infinite alternate;
}
@keyframes rbi-door {
  0% { transform: rotateY(0); }
  100% { transform: rotateY(-40deg); }
}
@keyframes rbi-richard {
  0% { transform: translateX(0) rotate(-2deg); }
  40% { transform: translateX(-6px) rotate(3deg); }
  70% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rbi-startled {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rbi-shadow {
  0% { opacity: .4; transform: scaleX(1); }
  100% { opacity: .7; transform: scaleX(1.2); }
}
@keyframes rbi-dust {
  0% { opacity: .2; transform: translateY(0); }
  100% { opacity: .5; transform: translateY(-6px); }
}

/* Scene: richard-taunts-queen */
.scn-richard-taunts-queen {
  background:
    linear-gradient(180deg, #b8a080 0%, #988060 40%, #786040 100%),
    radial-gradient(ellipse at 50% 40%, #c8b090 0%, transparent 60%);
}
.scn-richard-taunts-queen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 0 0;
}
.scn-richard-taunts-queen .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c0a888 0%, #a88868 50%, #886848 100%);
}
.scn-richard-taunts-queen .throne {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: rtq-throne 8s ease-in-out infinite;
}
.scn-richard-taunts-queen .richard {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #2a1a0a 0%, #100a05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rtq-richard 4s ease-in-out infinite;
}
.scn-richard-taunts-queen .queen {
  position: absolute; bottom: 20%; left: 54%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtq-queen 3.5s ease-in-out infinite alternate;
}
.scn-richard-taunts-queen .candle {
  position: absolute; bottom: 42%; left: 48%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: rtq-candle 6s ease-in-out infinite alternate;
}
.scn-richard-taunts-queen .glow {
  position: absolute; bottom: 44%; left: 46%; width: 8%; height: 10%;
  background: radial-gradient(ellipse, rgba(255,210,140,.4) 0%, transparent 60%);
  filter: blur(6px);
  animation: rtq-glow 3s ease-in-out infinite alternate;
}
.scn-richard-taunts-queen .shadow {
  position: absolute; bottom: 6%; left: 28%; width: 44%; height: 18%;
  background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 70%);
  filter: blur(8px);
  animation: rtq-shadow 5s ease-in-out infinite alternate;
}
@keyframes rtq-throne {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes rtq-richard {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rtq-queen {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-2px) rotate(-3deg); }
}
@keyframes rtq-candle {
  0% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .7; transform: scaleY(.95); }
}
@keyframes rtq-glow {
  0% { opacity: .3; transform: scale(1); }
  100% { opacity: .6; transform: scale(1.3); }
}
@keyframes rtq-shadow {
  0% { opacity: .5; transform: scaleX(1); }
  100% { opacity: .8; transform: scaleX(1.1); }
}

.scn-richard-questions-stanley { background: linear-gradient(180deg, #2a3040 0%, #1e2435 40%, #141a28 100%), radial-gradient(ellipse at 70% 30%, #3a3f55 0%, transparent 65%); min-height:100vh; position:relative; overflow:hidden; }
.scn-richard-questions-stanley .hall-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1f30 0%, #252b40 30%, #1e2435 70%, #161c2a 100%); }
.scn-richard-questions-stanley .cold-window { position:absolute; top:8%; left:68%; width:70px; height:100px; background: linear-gradient(180deg, #6a7a90 0%, #4a5a70 50%, #3a4a60 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(100,140,180,.3), 0 0 30px rgba(80,120,160,.15); animation: si-w1-pale 7s ease-in-out infinite alternate; }
.scn-richard-questions-stanley .throne-base { position:absolute; bottom:18%; left:28%; width:80px; height:30px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius:4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-richard-questions-stanley .throne-back { position:absolute; bottom:28%; left:26%; width:96px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:8px 8px 4px 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); }
.scn-richard-questions-stanley .figure-richard { position:absolute; bottom:18%; left:30%; width:28px; height:52px; background: linear-gradient(180deg, #1a1420 0%, #0e0c14 50%, #16121e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si1-fig 5s ease-in-out infinite; }
.scn-richard-questions-stanley .figure-stanley { position:absolute; bottom:18%; left:54%; width:26px; height:50px; background: linear-gradient(180deg, #2a2435 0%, #1a1825 50%, #221e30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si1-stan 6s ease-in-out infinite; }
.scn-richard-questions-stanley .shadow-pool { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); animation: si1-shad 8s ease-in-out infinite alternate; }
.scn-richard-questions-stanley .dust-mote { position:absolute; top:25%; left:60%; width:4px; height:4px; background: rgba(200,210,230,.3); border-radius:50%; filter:blur(2px); animation: si1-mote 15s linear infinite; }
@keyframes si-w1-pale { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(100,140,180,.3), 0 0 30px rgba(80,120,160,.15); } 50% { opacity:.85; box-shadow: inset 0 0 30px rgba(120,160,200,.4), 0 0 50px rgba(100,140,180,.2); } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(100,140,180,.25), 0 0 35px rgba(80,120,160,.12); } }
@keyframes si1-fig { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(-1px) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-0.5deg); } }
@keyframes si1-stan { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(1px) translateY(-1px) rotate(0deg); } 90% { transform: translateX(-1px) translateY(0) rotate(1.5deg); } }
@keyframes si1-shad { 0% { opacity:.4; transform:scaleY(1); } 50% { opacity:.7; transform:scaleY(1.1); } 100% { opacity:.5; transform:scaleY(.95); } }
@keyframes si1-mote { 0% { transform: translate(0,0) scale(1); opacity:.3; } 25% { transform: translate(10px,-8px) scale(1.3); opacity:.5; } 50% { transform: translate(20px,4px) scale(.8); opacity:.2; } 75% { transform: translate(30px,-5px) scale(1.1); opacity:.4; } 100% { transform: translate(40px,0) scale(1); opacity:.3; } }

.scn-messengers-bad-news { background: linear-gradient(180deg, #2a3045 0%, #1e2438 40%, #141a2c 100%), radial-gradient(ellipse at 30% 60%, #3a4060 0%, transparent 60%); min-height:100vh; position:relative; overflow:hidden; }
.scn-messengers-bad-news .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #2a2a38 0%, #1a1a28 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-messengers-bad-news .pillar-left { position:absolute; bottom:0; left:12%; width:18px; height:80%; background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 30%, #3a3a4a 60%, #2a2a3a 100%); border-radius:4px; box-shadow: 4px 0 12px rgba(0,0,0,.3); }
.scn-messengers-bad-news .pillar-right { position:absolute; bottom:0; right:12%; width:18px; height:80%; background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 30%, #3a3a4a 60%, #2a2a3a 100%); border-radius:4px; box-shadow: -4px 0 12px rgba(0,0,0,.3); }
.scn-messengers-bad-news .throne-king { position:absolute; bottom:20%; left:42%; width:70px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:6px 6px 2px 2px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); }
.scn-messengers-bad-news .figure-king { position:absolute; bottom:22%; left:44%; width:26px; height:48px; background: linear-gradient(180deg, #1a1420 0%, #0e0c14 50%, #16121e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si2-king 4s ease-in-out infinite; }
.scn-messengers-bad-news .messenger-kneeling { position:absolute; bottom:18%; left:60%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a38 0%, #221822 50%, #2e1e2e 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: si2-kneel 5s ease-in-out infinite; }
.scn-messengers-bad-news .messenger-arm { position:absolute; bottom:22%; left:63%; width:14px; height:3px; background: #2a1a2a; border-radius:50%; transform-origin: left center; animation: si2-arm 5s ease-in-out infinite; }
.scn-messengers-bad-news .scroll-fallen { position:absolute; bottom:16%; left:58%; width:12px; height:8px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:2px; transform:rotate(-20deg); box-shadow: 1px 1px 4px rgba(0,0,0,.3); animation: si2-scroll 6s ease-in-out infinite; }
@keyframes si2-king { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(0) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(0) translateY(0) rotate(0.5deg); } 85% { transform: translateX(0) translateY(-1px) rotate(-0.5deg); } }
@keyframes si2-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(2deg); } }
@keyframes si2-arm { 0%,100% { transform: translate(0,0) rotate(-10deg); } 25% { transform: translate(2px,0) rotate(5deg); } 50% { transform: translate(0,0) rotate(-15deg); } 75% { transform: translate(1px,-1px) rotate(0deg); } }
@keyframes si2-scroll { 0%,100% { transform: translateX(0) translateY(0) rotate(-20deg); opacity:.7; } 30% { transform: translateX(0) translateY(-2px) rotate(-18deg); opacity:.9; } 60% { transform: translateX(1px) translateY(0) rotate(-22deg); opacity:.6; } 85% { transform: translateX(-1px) translateY(-1px) rotate(-19deg); opacity:.8; } }

.scn-third-messenger { background: linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 35%, #12121e 100%), radial-gradient(ellipse at 40% 70%, #3a3a50 0%, transparent 60%); min-height:100vh; position:relative; overflow:hidden; }
.scn-third-messenger .stone-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2830 0%, #1a1820 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-third-messenger .wall-drape { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #2a1a20 0%, #1a0e14 60%, #120810 100%); clip-path: polygon(30% 0, 100% 0, 100% 100%, 0% 100%, 20% 80%, 10% 60%, 25% 40%, 15% 20%); animation: si3-drape 7s ease-in-out infinite alternate; }
.scn-third-messenger .king-torso { position:absolute; bottom:20%; left:28%; width:32px; height:44px; background: linear-gradient(180deg, #1a1420 0%, #0e0c14 50%, #16121e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si3-king 3s ease-in-out infinite; }
.scn-third-messenger .king-arm-raised { position:absolute; bottom:42%; left:32%; width:28px; height:4px; background: linear-gradient(90deg, #1a1420 0%, #0e0c14 100%); border-radius:50%; transform-origin: left center; animation: si3-strike 2s ease-in-out infinite; }
.scn-third-messenger .messenger-stagger { position:absolute; bottom:18%; left:56%; width:24px; height:42px; background: linear-gradient(180deg, #3a2a38 0%, #221822 50%, #2e1e2e 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: si3-fall 3s ease-in-out infinite; }
.scn-third-messenger .messenger-arm-thrown { position:absolute; bottom:30%; left:62%; width:16px; height:3px; background: #2a1a2a; border-radius:50%; transform-origin: left center; animation: si3-fling 3s ease-in-out infinite; }
.scn-third-messenger .blow-impact { position:absolute; bottom:38%; left:44%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,160,120,.6) 0%, rgba(200,160,120,.1) 60%, transparent 100%); border-radius:50%; animation: si3-impact 2s ease-in-out infinite; }
.scn-third-messenger .shadow-splinter { position:absolute; bottom:14%; left:50%; width:40px; height:6px; background: rgba(0,0,0,.4); border-radius:50%; filter:blur(2px); animation: si3-split 3s ease-in-out infinite; }
@keyframes si3-drape { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(-4px) skewX(1deg); } 100% { transform: translateX(0) skewX(0deg); } }
@keyframes si3-king { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(0) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(2deg); } 70% { transform: translateX(0) translateY(-1px) rotate(-1deg); } }
@keyframes si3-strike { 0% { transform: translate(0,0) rotate(-30deg); } 25% { transform: translate(2px,-2px) rotate(60deg); } 50% { transform: translate(0,0) rotate(-40deg); } 75% { transform: translate(3px,-1px) rotate(50deg); } 100% { transform: translate(0,0) rotate(-30deg); } }
@keyframes si3-fall { 0%,100% { transform: translateX(0) translateY(0) rotate(5deg); } 20% { transform: translateX(0) translateY(-2px) rotate(-3deg); } 40% { transform: translateX(2px) translateY(0) rotate(8deg); } 60% { transform: translateX(0) translateY(-1px) rotate(-5deg); } 80% { transform: translateX(1px) translateY(0) rotate(6deg); } }
@keyframes si3-fling { 0%,100% { transform: translate(0,0) rotate(30deg); } 20% { transform: translate(2px,-2px) rotate(-40deg); } 40% { transform: translate(4px,0) rotate(50deg); } 60% { transform: translate(2px,-1px) rotate(-30deg); } 80% { transform: translate(3px,0) rotate(40deg); } }
@keyframes si3-impact { 0% { transform: scale(1); opacity:.6; } 25% { transform: scale(2.5); opacity:0; } 50% { transform: scale(1); opacity:.4; } 75% { transform: scale(1.8); opacity:0; } 100% { transform: scale(1); opacity:.6; } }
@keyframes si3-split { 0%,100% { transform: translateX(0) scaleX(1); opacity:.4; } 25% { transform: translateX(-4px) scaleX(1.3); opacity:.6; } 50% { transform: translateX(2px) scaleX(.8); opacity:.3; } 75% { transform: translateX(-2px) scaleX(1.1); opacity:.5; } }

.scn-richard-rewards { background: linear-gradient(180deg, #2a3040 0%, #1e2435 40%, #141a28 100%), radial-gradient(ellipse at 50% 30%, #3a4055 0%, transparent 60%); min-height:100vh; position:relative; overflow:hidden; }
.scn-richard-rewards .chamber { position:absolute; inset:0; background: linear-gradient(90deg, #1a1f30 0%, #252b40 30%, #1e2435 70%, #161c2a 100%); }
.scn-richard-rewards .throne-dais { position:absolute; bottom:16%; left:35%; width:80px; height:6px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius:2px; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-richard-rewards .king-seated { position:absolute; bottom:18%; left:37%; width:26px; height:46px; background: linear-gradient(180deg, #1a1420 0%, #0e0c14 50%, #16121e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si4-king 5s ease-in-out infinite; }
.scn-richard-rewards .king-arm-extend { position:absolute; bottom:28%; left:40%; width:20px; height:3px; background: linear-gradient(90deg, #1a1420 0%, #0e0c14 100%); border-radius:50%; transform-origin: left center; animation: si4-extend 4s ease-in-out infinite; }
.scn-richard-rewards .purse-gold { position:absolute; bottom:30%; left:45%; width:10px; height:12px; background: radial-gradient(circle, #c8a060 0%, #a08040 60%, #8a6a30 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 0 12px 3px rgba(200,160,96,.5), 0 0 24px 6px rgba(200,160,96,.25); animation: si4-purse 4s ease-in-out infinite; }
.scn-richard-rewards .figure-kneeling { position:absolute; bottom:16%; left:52%; width:22px; height:36px; background: linear-gradient(180deg, #3a2a38 0%, #221822 50%, #2e1e2e 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: si4-kneel 6s ease-in-out infinite; }
.scn-richard-rewards .figure-hand { position:absolute; bottom:24%; left:54%; width:4px; height:6px; background: #2a1a2a; border-radius:50%; transform-origin: center; animation: si4-hand 4s ease-in-out infinite; }
.scn-richard-rewards .shadow-arch { position:absolute; top:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); clip-path: ellipse(40% 60% at 50% 0); animation: si4-arch 8s ease-in-out infinite alternate; }
@keyframes si4-king { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(0) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(0) translateY(-1px) rotate(0.5deg); } }
@keyframes si4-extend { 0%,100% { transform: translate(0,0) rotate(-15deg); } 25% { transform: translate(3px,-1px) rotate(5deg); } 50% { transform: translate(0,0) rotate(-20deg); } 75% { transform: translate(2px,-1px) rotate(0deg); } }
@keyframes si4-purse { 0%,100% { transform: translateX(0) translateY(0) rotate(-5deg); opacity:.9; } 25% { transform: translateX(2px) translateY(-2px) rotate(5deg); opacity:1; } 50% { transform: translateX(0) translateY(0) rotate(-10deg); opacity:.85; } 75% { transform: translateX(1px) translateY(-1px) rotate(0deg); opacity:1; } }
@keyframes si4-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(1px) translateY(-1px) rotate(2deg); } 60% { transform: translateX(0) translateY(0) rotate(-2deg); } 85% { transform: translateX(-1px) translateY(-1px) rotate(1deg); } }
@keyframes si4-hand { 0%,100% { transform: translate(0,0) scale(1); } 25% { transform: translate(3px,-2px) scale(1.2); } 50% { transform: translate(0,0) scale(.9); } 75% { transform: translate(2px,-1px) scale(1.1); } }
@keyframes si4-arch { 0% { opacity:.3; transform:scaleY(1); } 50% { opacity:.5; transform:scaleY(1.05); } 100% { opacity:.35; transform:scaleY(.95); } }

.scn-clarence-prophecy {
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b090 50%, #a89070 100%), radial-gradient(ellipse at 50% 80%, #d0b890 0%, transparent 70%);
}
.scn-clarence-prophecy .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #d0bca0 0%, #b09878 100%);
  animation: cp-wall 30s linear infinite alternate;
}
.scn-clarence-prophecy .window {
  position: absolute; top: 8%; left: 30%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #f0cca0 70%, transparent 100%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.6);
  animation: cp-window 6s ease-in-out infinite alternate;
}
.scn-clarence-prophecy .sunbeam {
  position: absolute; top: 10%; left: 35%; width: 8%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,180,0.8) 0%, rgba(255,200,100,0) 100%);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: cp-beam 10s ease-in-out infinite;
}
.scn-clarence-prophecy .figure-cp {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 4s ease-in-out infinite;
}
.scn-clarence-prophecy .letter {
  position: absolute; bottom: 38%; left: 36%; width: 16px; height: 20px;
  background: linear-gradient(135deg, #e8d4b0 0%, #c8a878 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cp-letter 4s ease-in-out infinite;
}
.scn-clarence-prophecy .shadow-cp {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(80,60,40,0.4) 0%, transparent 100%);
  animation: cp-shadow 4s ease-in-out infinite;
}
@keyframes cp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cp-window { 0% { opacity:0.7; transform:scale(0.95) } 50% { opacity:1; transform:scale(1) } 100% { opacity:0.8; transform:scale(0.98) } }
@keyframes cp-beam { 0% { transform:rotate(12deg) scaleY(0.9); opacity:0.6 } 50% { transform:rotate(16deg) scaleY(1.1); opacity:1 } 100% { transform:rotate(14deg) scaleY(1); opacity:0.7 } }
@keyframes cp-figure { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(6px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes cp-letter { 0% { transform:rotate(-5deg) translate(0,0) } 50% { transform:rotate(3deg) translate(2px,-2px) } 100% { transform:rotate(-4deg) translate(0,0) } }
@keyframes cp-shadow { 0% { transform:scaleX(0.9); opacity:0.4 } 50% { transform:scaleX(1.2); opacity:0.6 } 100% { transform:scaleX(1); opacity:0.3 } }

.scn-richard-blames-queen {
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b098 50%, #a08868 100%), radial-gradient(ellipse at 50% 100%, #c8b098 0%, transparent 80%);
}
.scn-richard-blames-queen .floor-rb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  animation: rb-floor 20s ease-in-out infinite alternate;
}
.scn-richard-blames-queen .wall-rb {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d8c8b0 0%, #b8a088 100%);
  animation: rb-wall 25s linear infinite alternate;
}
.scn-richard-blames-queen .throne {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: rb-throne 8s ease-in-out infinite;
}
.scn-richard-blames-queen .richard {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-richard 3s ease-in-out infinite;
}
.scn-richard-blames-queen .queen {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rb-queen 4s ease-in-out infinite;
}
.scn-richard-blames-queen .shadow-richard {
  position: absolute; bottom: 24%; left: 22%; width: 50px; height: 12px;
  background: radial-gradient(ellipse, rgba(60,40,20,0.5) 0%, transparent 100%);
  animation: rb-shadow 3s ease-in-out infinite;
}
@keyframes rb-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rb-floor { 0% { transform:scaleY(0.97) } 50% { transform:scaleY(1) } 100% { transform:scaleY(0.98) } }
@keyframes rb-throne { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes rb-richard { 0% { transform:translateX(0) rotate(-3deg) } 50% { transform:translateX(8px) rotate(5deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes rb-queen { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(-4px) rotate(-4deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes rb-shadow { 0% { transform:scaleX(0.8); opacity:0.4 } 50% { transform:scaleX(1.3); opacity:0.6 } 100% { transform:scaleX(0.9); opacity:0.3 } }

.scn-brakenbury-interruption {
  background: linear-gradient(180deg, #f0e0c8 0%, #d0b8a0 50%, #b09878 100%), radial-gradient(ellipse at 50% 100%, #d0b8a0 0%, transparent 80%);
}
.scn-brakenbury-interruption .bg-bi {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #c8b098 0%, #e0c8b0 50%, #c8b098 100%);
  animation: bi-bg 30s linear infinite alternate;
}
.scn-brakenbury-interruption .tapestry {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #a06848 0%, #704028 50%, #a06848 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bi-tapestry 14s ease-in-out infinite alternate;
}
.scn-brakenbury-interruption .table-bi {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bi-table 10s ease-in-out infinite;
}
.scn-brakenbury-interruption .herald {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #c8553d 0%, #a04028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-herald 3s ease-in-out infinite;
}
.scn-brakenbury-interruption .lord-bi {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-lord 4s ease-in-out infinite;
}
.scn-brakenbury-interruption .scroll {
  position: absolute; bottom: 38%; left: 45%; width: 12px; height: 18px;
  background: linear-gradient(135deg, #e8d0b0 0%, #c8a878 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: bi-scroll 5s ease-in-out infinite;
}
@keyframes bi-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bi-tapestry { 0% { transform:scaleX(0.98) } 50% { transform:scaleX(1) } 100% { transform:scaleX(0.99) } }
@keyframes bi-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bi-herald { 0% { transform:translateX(0) rotate(-4deg) } 50% { transform:translateX(8px) rotate(4deg) } 100% { transform:translateX(0) rotate(-3deg) } }
@keyframes bi-lord { 0% { transform:translateX(0) rotate(3deg) } 50% { transform:translateX(-6px) rotate(-5deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes bi-scroll { 0% { transform:rotate(-6deg) translate(0,0) } 50% { transform:rotate(4deg) translate(1px,-2px) } 100% { transform:rotate(-5deg) translate(0,0) } }

.scn-brakenbury-command {
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 50%, #a89070 100%), radial-gradient(ellipse at 50% 80%, #c8b090 0%, transparent 70%);
}
.scn-brakenbury-command .arch {
  position: absolute; top: 0; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: bc-arch 25s ease-in-out infinite alternate;
}
.scn-brakenbury-command .floor-bc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%);
  animation: bc-floor 20s linear infinite alternate;
}
.scn-brakenbury-command .brakenbury {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-brakenbury 3s ease-in-out infinite;
}
.scn-brakenbury-command .lord-bc1 {
  position: absolute; bottom: 26%; left: 50%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #c8553d 0%, #a04028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-lord1 4s ease-in-out infinite;
}
.scn-brakenbury-command .lord-bc2 {
  position: absolute; bottom: 26%; left: 60%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #5e1a1d 0%, #401010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-lord2 5s ease-in-out infinite;
}
.scn-brakenbury-command .sunbeam-bc {
  position: absolute; top: 10%; left: 30%; width: 12%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.7) 0%, rgba(255,200,100,0) 100%);
  transform: rotate(-8deg);
  filter: blur(5px);
  animation: bc-beam 12s ease-in-out infinite;
}
@keyframes bc-arch { 0% { transform:scaleY(0.97); opacity:0.9 } 50% { transform:scaleY(1); opacity:1 } 100% { transform:scaleY(0.98); opacity:0.85 } }
@keyframes bc-floor { 0% { transform:scaleY(0.98) } 50% { transform:scaleY(1) } 100% { transform:scaleY(0.99) } }
@keyframes bc-brakenbury { 0% { transform:translateX(0) rotate(-3deg) } 50% { transform:translateX(5px) rotate(5deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes bc-lord1 { 0% { transform:translateX(0) rotate(2deg) } 50% { transform:translateX(-6px) rotate(-4deg) } 100% { transform:translateX(0) rotate(1deg) } }
@keyframes bc-lord2 { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(-4px) rotate(-3deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes bc-beam { 0% { transform:rotate(-10deg) scaleY(0.9); opacity:0.5 } 50% { transform:rotate(-6deg) scaleY(1.1); opacity:1 } 100% { transform:rotate(-8deg) scaleY(1); opacity:0.6 } }

/* buckingham-dismisses-margaret */
.scn-buckingham-dismisses-margaret {
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b090 50%, #a08060 100%);
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b090 50%, #a08060 100%), radial-gradient(ellipse at 30% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-buckingham-dismisses-margaret .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5e8d0 0%, #d4c0a0 100%); }
.scn-buckingham-dismisses-margaret .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b09070 0%, #806050 100%); }
.scn-buckingham-dismisses-margaret .window { position:absolute; top:12%; left:65%; width:25%; height:40%; background: linear-gradient(135deg, #c0d0e0 0%, #8090a0 100%); border-radius:20% 20% 10% 10% / 50% 50% 30% 30%; box-shadow: inset 0 0 30px rgba(255,255,200,.3); animation: bdm-window 6s ease-in-out infinite alternate; }
.scn-buckingham-dismisses-margaret .figure-left { position:absolute; bottom:28%; left:20%; width:12%; height:55%; background: radial-gradient(ellipse 60% 70% at 30% 20%, #c8a080 0%, #806050 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; box-shadow: -10px 0 20px rgba(0,0,0,.3); animation: bdm-fig-l 4s ease-in-out infinite; }
.scn-buckingham-dismisses-margaret .figure-right { position:absolute; bottom:28%; right:20%; width:14%; height:50%; background: radial-gradient(ellipse 60% 70% at 30% 20%, #b89878 0%, #705040 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; box-shadow: 10px 0 20px rgba(0,0,0,.3); animation: bdm-fig-r 4s ease-in-out infinite 0.5s; }
.scn-buckingham-dismisses-margaret .candle { position:absolute; bottom:30%; left:48%; width:3%; height:8%; background: linear-gradient(180deg, #f0e0c0 0%, #c09860 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 0 20px 6px #ffd080; animation: bdm-candle 1.5s ease-in-out infinite alternate; }
.scn-buckingham-dismisses-margaret .shadow-drape { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: bdm-shadow 8s ease-in-out infinite; }
@keyframes bdm-window { 0% { opacity:.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:.85; transform: scaleX(0.98); } }
@keyframes bdm-fig-l { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2%,-1%) rotate(1deg); } 50% { transform: translate(0,0) rotate(-1deg); } 75% { transform: translate(-2%,-1%) rotate(0deg); } 100% { transform: translate(0,0) rotate(1deg); } }
@keyframes bdm-fig-r { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(-2%,-1%) rotate(0deg); } 50% { transform: translate(0,0) rotate(1deg); } 75% { transform: translate(2%,-1%) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bdm-candle { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.85; transform: scaleY(0.97); } }
@keyframes bdm-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.2; } }

/* richard-repents */
.scn-richard-repents {
  background: linear-gradient(180deg, #d8d0c0 0%, #a09070 50%, #706050 100%);
  background: linear-gradient(180deg, #d8d0c0 0%, #a09070 50%, #706050 100%), radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 80%);
}
.scn-richard-repents .church-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e0d8c8 0%, #c0b098 100%); }
.scn-richard-repents .pillar { position:absolute; bottom:20%; left:15%; width:6%; height:70%; background: linear-gradient(90deg, #b09878 0%, #908060 50%, #b09878 100%); border-radius:5% 5% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.2); }
.scn-richard-repents .altar { position:absolute; bottom:20%; left:40%; width:20%; height:10%; background: linear-gradient(180deg, #c0a888 0%, #907858 100%); border-radius:10% 10% 0 0; box-shadow: 0 -5px 15px rgba(160,120,80,.5); }
.scn-richard-repents .figure-kneel { position:absolute; bottom:20%; left:42%; width:10%; height:35%; background: radial-gradient(ellipse 60% 70% at 50% 20%, #605040 0%, #302820 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom; animation: rrp-kneel 5s ease-in-out infinite; }
.scn-richard-repents .halo { position:absolute; bottom:40%; left:44%; width:6%; height:6%; background: radial-gradient(circle, #f0e8d0 0%, #e0d0a0 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(240,232,208,.6); animation: rrp-halo 4s ease-in-out infinite alternate; }
.scn-richard-repents .dust-mote { position:absolute; top:30%; left:50%; width:4px; height:4px; background: rgba(200,180,150,.6); border-radius:50%; box-shadow: 0 0 6px #c8b898; animation: rrp-dust 20s linear infinite; }
.scn-richard-repents .shadow-cross { position:absolute; bottom:20%; left:55%; width:12%; height:40%; background: rgba(0,0,0,.2); clip-path: polygon(0 0, 30% 0, 30% 35%, 0 35%); animation: rrp-cross-shadow 6s ease-in-out infinite; }
@keyframes rrp-kneel { 0% { transform: scaleY(1) rotate(0deg); } 30% { transform: scaleY(0.98) rotate(-0.5deg); } 50% { transform: scaleY(1.01) rotate(0.5deg); } 70% { transform: scaleY(0.99) rotate(-0.5deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes rrp-halo { 0% { opacity:.3; transform: scale(.8); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.5; transform: scale(.9); } }
@keyframes rrp-dust { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(20px,-40px) scale(1.5); opacity:0; } 100% { transform: translate(0,0) scale(1); opacity:.6; } }
@keyframes rrp-cross-shadow { 0% { opacity:.1; transform: scaleY(1); } 50% { opacity:.3; transform: scaleY(1.05); } 100% { opacity:.15; transform: scaleY(.95); } }

/* richard-hypocritical */
.scn-richard-hypocritical {
  background: linear-gradient(135deg, #c8b898 0%, #a08868 50%, #807058 100%);
  background: linear-gradient(135deg, #c8b898 0%, #a08868 50%, #807058 100%), radial-gradient(ellipse at 40% 60%, #e0c8a8 0%, transparent 70%);
}
.scn-richard-hypocritical .court-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%); }
.scn-richard-hypocritical .table { position:absolute; bottom:25%; left:30%; width:40%; height:5%; background: linear-gradient(180deg, #a08868 0%, #806850 100%); border-radius:5% 5% 0 0; box-shadow: 0 8px 15px rgba(0,0,0,.3); }
.scn-richard-hypocritical .figure-throne { position:absolute; bottom:25%; left:42%; width:16%; height:60%; background: radial-gradient(ellipse 60% 80% at 50% 20%, #604838 0%, #302018 100%); border-radius:45% 45% 30% 30% / 60% 60% 35% 35%; animation: rhp-throne 4s ease-in-out infinite; }
.scn-richard-hypocritical .shadow-twin { position:absolute; bottom:25%; left:42%; width:16%; height:60%; background: rgba(0,0,0,.15); border-radius:45% 45% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; animation: rhp-twin 4s ease-in-out infinite 0.8s; }
.scn-richard-hypocritical .scroll { position:absolute; bottom:27%; left:55%; width:10%; height:12%; background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); border-radius:5% 5% 5% 5% / 20% 20% 20% 20%; box-shadow: 2px 2px 5px rgba(0,0,0,.2); animation: rhp-scroll 7s ease-in-out infinite alternate; }
.scn-richard-hypocritical .candle-flame { position:absolute; bottom:30%; left:33%; width:3%; height:5%; background: radial-gradient(circle, #f0e0a0 0%, #e0b060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(224,176,96,.7); animation: rhp-flame 1.8s ease-in-out infinite alternate; }
.scn-richard-hypocritical .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(90deg, transparent 0%, #a07858 30%, #805838 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: rhp-curtain 12s ease-in-out infinite alternate; }
@keyframes rhp-throne { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2%,-2%) rotate(1deg); } 50% { transform: translate(0,0) rotate(-1deg); } 75% { transform: translate(-2%,-2%) rotate(0deg); } 100% { transform: translate(0,0) rotate(1deg); } }
@keyframes rhp-twin { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:.3; } 25% { transform: translate(-3%,-1%) rotate(-2deg) scale(1.02); opacity:.5; } 50% { transform: translate(0,0) rotate(1deg) scale(1); opacity:.3; } 75% { transform: translate(3%,-1%) rotate(2deg) scale(0.98); opacity:.5; } 100% { transform: translate(0,0) rotate(0deg) scale(1); opacity:.3; } }
@keyframes rhp-scroll { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.05); } 100% { transform: rotate(-1deg) scaleY(0.95); } }
@keyframes rhp-flame { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1) translateY(-2px); } 100% { opacity:.7; transform: scaleY(0.9) translateY(1px); } }
@keyframes rhp-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }

/* richard-solo-plot-II */
.scn-richard-solo-plot-II {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%);
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 50% 80%, #4a3a2e 0%, transparent 60%);
}
.scn-richard-solo-plot-II .dungeon-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); }
.scn-richard-solo-plot-II .map { position:absolute; bottom:25%; left:30%; width:40%; height:20%; background: linear-gradient(135deg, #c8b898 0%, #a08868 50%, #806850 100%); border-radius:2% 2% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.4); transform: rotate(-2deg); animation: rsp-map 12s ease-in-out infinite; }
.scn-richard-solo-plot-II .figure-bent { position:absolute; bottom:25%; left:42%; width:14%; height:50%; background: radial-gradient(ellipse 60% 70% at 50% 20%, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom; animation: rsp-bent 5s ease-in-out infinite; }
.scn-richard-solo-plot-II .chain { position:absolute; bottom:30%; left:60%; width:8%; height:15%; background: linear-gradient(180deg, #606060 0%, #404040 100%); border-radius:50% 50% 30% 30% / 30% 30% 50% 50%; clip-path: polygon(30% 0, 70% 0, 70% 30%, 50% 40%, 30% 30%); animation: rsp-chain 8s ease-in-out infinite; }
.scn-richard-solo-plot-II .lantern-swing { position:absolute; top:15%; left:50%; width:5%; height:8%; background: radial-gradient(circle at 50% 60%, #f0d080 0%, #c09850 60%, #806030 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(192,152,80,.5); transform-origin: top; animation: rsp-lantern 4s ease-in-out infinite alternate; }
.scn-richard-solo-plot-II .inkwell { position:absolute; bottom:27%; left:36%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 30%, #303030 0%, #101010 100%); border-radius:30% 30% 40% 40%; box-shadow: 0 2px 5px rgba(0,0,0,.5); }
.scn-richard-solo-plot-II .shadow-cloak { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: rsp-cloak 10s ease-in-out infinite; }
@keyframes rsp-map { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes rsp-bent { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(2%,-2%) rotate(-2deg); } 60% { transform: translate(-2%,-2%) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes rsp-chain { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(-3deg) scaleY(0.98); } }
@keyframes rsp-lantern { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-10deg); } }
@keyframes rsp-cloak { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

/* fourth-messenger - overcast tense landscape */
.scn-fourth-messenger {
  background: 
    linear-gradient(180deg, #3c4a5c 0%, #2a3545 40%, #1e2a36 100%),
    radial-gradient(ellipse at 50% 100%, #1e2a36 0%, transparent 70%);
}
.scn-fourth-messenger .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3545 100%);
  animation: fm-sky 20s ease-in-out infinite alternate;
}
.scn-fourth-messenger .hills-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: fm-hills 25s ease-in-out infinite alternate;
}
.scn-fourth-messenger .hills-front {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.6);
  animation: fm-hills 35s ease-in-out infinite alternate-reverse;
}
.scn-fourth-messenger .road {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(90deg, transparent 0%, #5a4a3a 20%, #5a4a3a 80%, transparent 100%);
  border-radius: 10px;
  transform: perspective(200px) rotateX(20deg);
}
.scn-fourth-messenger .horse {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fm-gallop 1s steps(4) infinite;
}
.scn-fourth-messenger .rider {
  position: absolute; bottom: 36%; left: 17%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: fm-rider 0.8s ease-in-out infinite alternate;
}
.scn-fourth-messenger .boat {
  position: absolute; bottom: 45%; right: 15%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 -2px 6px rgba(0,0,0,.4);
  animation: fm-boat 8s ease-in-out infinite;
}
.scn-fourth-messenger .storm {
  position: absolute; height: 25px;
  background: linear-gradient(180deg, rgba(90,100,110,.6) 0%, rgba(90,100,110,.1) 100%);
  border-radius: 50%; filter: blur(8px);
}
.scn-fourth-messenger .cloud-a {
  top: 12%; left: 5%; width: 120px;
  animation: fm-drift 40s linear infinite;
}
.scn-fourth-messenger .cloud-b {
  top: 20%; right: 10%; width: 90px;
  animation: fm-drift 55s linear infinite reverse;
}
@keyframes fm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fm-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fm-gallop { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(3px) scaleY(.9) } 50% { transform: translateX(6px) scaleY(1) } 75% { transform: translateX(9px) scaleY(.95) } 100% { transform: translateX(12px) scaleY(1) } }
@keyframes fm-rider { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fm-boat { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(2deg) } }
@keyframes fm-drift { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

/* richard-marches - army on the move, overcast */
.scn-richard-marches {
  background: 
    linear-gradient(180deg, #4a5555 0%, #3a4545 30%, #2a3535 70%, #1a2525 100%),
    radial-gradient(ellipse at 50% 0%, #5a6565 0%, transparent 60%);
}
.scn-richard-marches .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6565 0%, #3a4545 100%);
  animation: rm-sky 15s ease-in-out infinite alternate;
}
.scn-richard-marches .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-richard-marches .soldiers-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 8px, transparent 8px, transparent 16px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 100%);
  animation: rm-march 3s linear infinite;
}
.scn-richard-marches .soldiers-fore {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 12px, transparent 12px, transparent 24px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 100%);
  animation: rm-march 2s linear infinite reverse;
}
.scn-richard-marches .banner {
  position: absolute; bottom: 40%; left: 45%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  animation: rm-banner 1.5s ease-in-out infinite alternate;
}
.scn-richard-marches .leader {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: rm-leader 1s ease-in-out infinite alternate;
}
.scn-richard-marches .dust {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,90,80,.3) 0%, transparent 70%);
  animation: rm-dust 4s ease-in-out infinite alternate;
}
@keyframes rm-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rm-march { 0% { transform: translateX(0) } 100% { transform: translateX(-24px) } }
@keyframes rm-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes rm-leader { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rm-dust { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.2) } 100% { opacity:.2; transform: scaleY(1) } }

/* richard-orders-march - cavalry charge, overcast */
.scn-richard-orders-march {
  background: 
    linear-gradient(180deg, #4a5050 0%, #3a4040 30%, #2a3030 70%, #1a2020 100%),
    radial-gradient(ellipse at 30% 80%, #3a4040 0%, transparent 60%);
}
.scn-richard-orders-march .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a6060 0%, #3a4040 100%);
  animation: rom-sky 18s ease-in-out infinite alternate;
}
.scn-richard-orders-march .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,.5);
}
.scn-richard-orders-march .horsemen-1 {
  position: absolute; bottom: 25%; left: 10%; width: 35px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rom-gallop 1.2s steps(3) infinite;
}
.scn-richard-orders-march .horsemen-2 {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 60%, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rom-gallop 1s steps(3) infinite reverse;
}
.scn-richard-orders-march .horsemen-3 {
  position: absolute; bottom: 22%; left: 55%; width: 25px; height: 20px;
  background: radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rom-gallop 1.4s steps(3) infinite;
}
.scn-richard-orders-march .sword {
  position: absolute; bottom: 38%; left: 15%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 100%);
  transform-origin: bottom center;
  animation: rom-sword 1.2s ease-in-out infinite alternate;
}
.scn-richard-orders-march .banner {
  position: absolute; bottom: 40%; left: 65%; width: 5px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  animation: rom-banner 2s ease-in-out infinite alternate;
}
.scn-richard-orders-march .dust {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, rgba(80,70,60,.3) 0%, transparent 70%);
  animation: rom-dust 3s ease-in-out infinite alternate;
}
@keyframes rom-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rom-gallop { 0% { transform: translateX(0) scaleY(1) } 33% { transform: translateX(5px) scaleY(.9) } 66% { transform: translateX(10px) scaleY(1) } 100% { transform: translateX(15px) scaleY(1) } }
@keyframes rom-sword { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes rom-banner { 0% { transform: rotate(-8deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(8deg) } }
@keyframes rom-dust { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.4; transform: scaleY(1.3) } 100% { opacity:.2; transform: scaleY(1) } }

/* derby-sends-message - dim interior, candlelit */
.scn-derby-sends-message {
  background: 
    linear-gradient(180deg, #1a1513 0%, #2a1e17 40%, #3a2a20 70%, #2a1e17 100%),
    radial-gradient(ellipse at 50% 70%, #4a342a 0%, transparent 70%);
}
.scn-derby-sends-message .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(0,0,0,.1) 40px, rgba(0,0,0,.1) 42px);
  animation: ds-wall 20s linear infinite;
}
.scn-derby-sends-message .table {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
}
.scn-derby-sends-message .candle {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-derby-sends-message .candle::after {
  content: '';
  position: absolute; top: -10px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffdd80 0%, #ffb040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,180,64,.5);
  animation: ds-flicker 0.6s ease-in-out infinite alternate;
}
.scn-derby-sends-message .letter {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ds-letter 3s ease-in-out infinite alternate;
}
.scn-derby-sends-message .hand {
  position: absolute; bottom: 10%; left: 35%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #c09070 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ds-write 0.8s ease-in-out infinite alternate;
}
.scn-derby-sends-message .inkwell {
  position: absolute; bottom: 14%; right: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-derby-sends-message .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: ds-shadow 4s ease-in-out infinite alternate;
}
@keyframes ds-wall { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes ds-flicker { 0% { opacity:.8; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.9; transform: scale(1) } }
@keyframes ds-letter { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes ds-write { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ds-shadow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }

.scn-hastings-gives-purse {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-hastings-gives-purse .room-back {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  animation: hgp-back 15s ease-in-out infinite alternate;
}
.scn-hastings-gives-purse .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-hastings-gives-purse .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-hastings-gives-purse .candle {
  position:absolute; bottom:28%; left:50%; width:8px; height:16px;
  background: linear-gradient(180deg, #f0d080 0%, #d0a050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.4);
  animation: hgp-candle 3s ease-in-out infinite alternate;
}
.scn-hastings-gives-purse .figure-left {
  position:absolute; bottom:15%; left:20%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hgp-figure 8s ease-in-out infinite;
}
.scn-hastings-gives-purse .arm-out {
  position:absolute; bottom:30%; left:26%; width:40px; height:6px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: hgp-arm 2.5s ease-in-out infinite alternate;
}
.scn-hastings-gives-purse .purse {
  position:absolute; bottom:32%; left:46%; width:14px; height:18px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3820 100%);
  border-radius: 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: hgp-purse 3s ease-in-out infinite;
}
.scn-hastings-gives-purse .glow {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 55% 40%, rgba(240,200,120,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: hgp-glow 5s ease-in-out infinite alternate;
}
@keyframes hgp-back    { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes hgp-candle  { 0% { transform: scaleY(1); box-shadow: 0 0 20px 6px #f0c060; } 50% { transform: scaleY(1.05); box-shadow: 0 0 28px 10px #f0c060; } 100% { transform: scaleY(0.95); box-shadow: 0 0 16px 4px #f0c060; } }
@keyframes hgp-figure  { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes hgp-arm     { 0% { transform: rotate(-20deg); } 100% { transform: rotate(-5deg); } }
@keyframes hgp-purse   { 0%,100% { transform: translate(0,0) rotate(0); } 50% { transform: translate(14px,-8px) rotate(20deg); } }
@keyframes hgp-glow    { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-buckingham-encounters {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-buckingham-encounters .bg-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-buckingham-encounters .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-buckingham-encounters .arch-left {
  position:absolute; bottom:25%; left:10%; width:22%; height:50%;
  border: 2px solid #4a4a5a;
  border-bottom: none;
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: bke-arch 20s ease-in-out infinite alternate;
}
.scn-buckingham-encounters .arch-right {
  position:absolute; bottom:25%; right:10%; width:22%; height:50%;
  border: 2px solid #4a4a5a;
  border-bottom: none;
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: bke-arch 20s ease-in-out infinite alternate-reverse;
}
.scn-buckingham-encounters .figure-buck {
  position:absolute; bottom:15%; left:30%; width:20px; height:48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bke-figure 2s ease-in-out infinite;
}
.scn-buckingham-encounters .figure-priest {
  position:absolute; bottom:15%; right:30%; width:22px; height:46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bke-figure 2.5s ease-in-out infinite 0.5s;
}
.scn-buckingham-encounters .shadow-sharp {
  position:absolute; bottom:15%; left:35%; width:15%; height:40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: bke-shadow 3s ease-in-out infinite alternate;
}
.scn-buckingham-encounters .window-narrow {
  position:absolute; top:15%; left:50%; width:8px; height:25%;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(90,90,122,0.3);
  animation: bke-window 4s ease-in-out infinite alternate;
}
@keyframes bke-arch   { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes bke-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bke-shadow { 0% { transform: skewX(-10deg) scaleY(1); opacity:0.7; } 100% { transform: skewX(-15deg) scaleY(1.1); opacity:1; } }
@keyframes bke-window { 0% { opacity:0.5; box-shadow: 0 0 8px 2px rgba(90,90,122,0.2); } 100% { opacity:1; box-shadow: 0 0 20px 8px rgba(90,90,122,0.6); } }

.scn-rivers-laments-pomfret {
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 60%, #000 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a2a 0%, transparent 70%);
}
.scn-rivers-laments-pomfret .wall-prison {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-rivers-laments-pomfret .floor-cell {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 5% 5% 0 0;
}
.scn-rivers-laments-pomfret .window-barred {
  position:absolute; top:12%; left:50%; width:40px; height:60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border: 2px solid #5a5a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(74,74,90,0.3);
  animation: rpl-window 10s ease-in-out infinite alternate;
}
.scn-rivers-laments-pomfret .figure-rivers {
  position:absolute; bottom:15%; left:40%; width:20px; height:52px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rpl-figure 6s ease-in-out infinite;
}
.scn-rivers-laments-pomfret .chains {
  position:absolute; bottom:25%; left:42%; width:8px; height:20px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 2px;
  animation: rpl-chain 3s ease-in-out infinite alternate;
}
.scn-rivers-laments-pomfret .shadow-figure {
  position:absolute; bottom:15%; right:35%; width:30px; height:40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: rpl-shadow 7s ease-in-out infinite alternate;
}
.scn-rivers-laments-pomfret .pool-floor {
  position:absolute; bottom:5%; left:30%; width:40%; height:8%;
  background: radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 60%);
  border-radius: 50%;
  animation: rpl-pool 8s ease-in-out infinite alternate;
}
@keyframes rpl-window { 0%,100% { opacity:0.6; } 50% { opacity:1; } }
@keyframes rpl-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes rpl-chain  { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes rpl-shadow { 0% { transform: scaleX(1); opacity:0.5; } 100% { transform: scaleX(1.2); opacity:1; } }
@keyframes rpl-pool   { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.4; } }

.scn-grey-remembers {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a4e 0%, transparent 70%);
}
.scn-grey-remembers .wall-room {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-grey-remembers .window-pane {
  position:absolute; top:10%; left:50%; width:60px; height:80px;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border: 2px solid #6a6a7a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 15px rgba(90,90,122,0.4);
  animation: grm-window 12s ease-in-out infinite alternate;
}
.scn-grey-remembers .figure-grey {
  position:absolute; bottom:20%; left:35%; width:18px; height:46px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: grm-figure 9s ease-in-out infinite;
}
.scn-grey-remembers .hand-touch {
  position:absolute; bottom:30%; left:37%; width:14px; height:20px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 30% 30% 50% 50%;
  transform: rotate(-30deg);
  animation: grm-hand 4s ease-in-out infinite alternate;
}
.scn-grey-remembers .curtain-left {
  position:absolute; top:10%; left:36%; width:16%; height:50%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 20% 0 0 20%;
  transform-origin: left top;
  animation: grm-curtain 20s ease-in-out infinite alternate;
}
.scn-grey-remembers .curtain-right {
  position:absolute; top:10%; right:36%; width:16%; height:50%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: right top;
  animation: grm-curtain 20s ease-in-out infinite alternate-reverse;
}
.scn-grey-remembers .shadow-deep {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.5) 0%, transparent 60%);
  pointer-events: none;
  animation: grm-shadow 5s ease-in-out infinite alternate;
}
.scn-grey-remembers .light-shaft {
  position:absolute; top:0; left:43%; width:14%; height:70%;
  background: linear-gradient(180deg, rgba(90,90,122,0.15) 0%, transparent 80%);
  transform: skewX(-5deg);
  animation: grm-light 8s ease-in-out infinite alternate;
}
@keyframes grm-window  { 0%,100% { opacity:0.5; } 50% { opacity:1; } }
@keyframes grm-figure  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes grm-hand    { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-10deg); } }
@keyframes grm-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes grm-shadow  { 0% { opacity:0.4; } 100% { opacity:0.7; } }
@keyframes grm-light   { 0% { opacity:0.2; transform: skewX(-5deg); } 100% { opacity:0.6; transform: skewX(0deg); } }

.scn-richard-sues-for-kiss {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #1a100a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-richard-sues-for-kiss .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1612 0%, #2a1e16 50%, #1a100a 100%);
  border-bottom: 2px solid #2a1a10;
  animation: rsf-wall 15s ease-in-out infinite;
}
.scn-richard-sues-for-kiss .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-top: 1px solid #3a2a1a;
  border-radius: 20% 30% 0 0 / 10% 5% 0 0;
}
.scn-richard-sues-for-kiss .window {
  position: absolute;
  top: 8%;
  left: 55%;
  width: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #c89050 0%, #6a4020 50%, #1a100a 100%);
  border: 2px solid #2a1a10;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 40px 20px rgba(200,144,80,.15);
  animation: rsf-window 6s ease-in-out infinite alternate;
}
.scn-richard-sues-for-kiss .kneeling-figure {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 5%;
  height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsf-kneel 4s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-richard-sues-for-kiss .standing-figure {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 4%;
  height: 45%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsf-stand 3s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-richard-sues-for-kiss .candle-glow {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 2%;
  height: 3%;
  background: radial-gradient(circle, #ffd080 0%, #c89050 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,144,80,.3);
  animation: rsf-candle 2s ease-in-out infinite alternate;
}
.scn-richard-sues-for-kiss .shadow-a {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 15%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: rsf-shad-a 8s ease-in-out infinite;
}
.scn-richard-sues-for-kiss .shadow-b {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 12%;
  height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 100%);
  animation: rsf-shad-b 10s ease-in-out infinite alternate;
}
@keyframes rsf-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rsf-window { 0% { box-shadow: 0 0 30px 15px rgba(200,144,80,.1) } 50% { box-shadow: 0 0 60px 30px rgba(200,144,80,.25) } 100% { box-shadow: 0 0 40px 20px rgba(200,144,80,.15) } }
@keyframes rsf-kneel { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rsf-stand { 0% { transform: translateX(0) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes rsf-candle { 0% { transform: scale(1) translateY(0); opacity: .7 } 50% { transform: scale(1.1) translateY(-2px); opacity: 1 } 100% { transform: scale(.95) translateY(1px); opacity: .8 } }
@keyframes rsf-shad-a { 0% { transform: scale(1) translateX(0); opacity: .5 } 50% { transform: scale(1.2) translateX(5px); opacity: .8 } 100% { transform: scale(.9) translateX(-3px); opacity: .4 } }
@keyframes rsf-shad-b { 0% { transform: scale(1) translateX(0); opacity: .4 } 100% { transform: scale(1.1) translateX(-4px); opacity: .7 } }

.scn-richard-bares-breast {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e16 35%, #0e0a08 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-richard-bares-breast .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1612 0%, #2a1e16 50%, #1a100a 100%);
  border-bottom: 2px solid #2a1a10;
  animation: rbb-wall 12s ease-in-out infinite;
}
.scn-richard-bares-breast .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-top: 1px solid #3a2a1a;
  border-radius: 30% 20% 0 0 / 5% 10% 0 0;
}
.scn-richard-bares-breast .torch-glow {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 4%;
  height: 8%;
  background: radial-gradient(circle, #e0a050 0%, #a06030 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(224,160,80,.2);
  animation: rbb-torch 3s ease-in-out infinite alternate;
}
.scn-richard-bares-breast .kneeling-figure {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 6%;
  height: 38%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbb-kneel 5s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-richard-bares-breast .bared-chest {
  position: absolute;
  bottom: 32%;
  left: 37%;
  width: 3%;
  height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(200,144,80,.1);
  animation: rbb-chest 4s ease-in-out infinite;
}
.scn-richard-bares-breast .sword {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 2%;
  height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: rbb-sword 6s ease-in-out infinite;
  box-shadow: 0 0 6px 2px rgba(200,144,80,.1);
}
.scn-richard-bares-breast .standing-figure {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 5%;
  height: 50%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbb-stand 3s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-richard-bares-breast .shadow {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 30%;
  height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: rbb-shadow 9s ease-in-out infinite alternate;
}
@keyframes rbb-wall { 0% { opacity: .75 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes rbb-torch { 0% { transform: scale(1) rotate(-3deg); opacity: .6 } 50% { transform: scale(1.15) rotate(0deg); opacity: 1 } 100% { transform: scale(.9) rotate(3deg); opacity: .7 } }
@keyframes rbb-kneel { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes rbb-chest { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes rbb-sword { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(0deg) translateX(2px) } 50% { transform: rotate(5deg) translateX(0) } 75% { transform: rotate(0deg) translateX(-2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes rbb-stand { 0% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-2px) rotate(1deg) } }
@keyframes rbb-shadow { 0% { transform: scale(1) translateX(0); opacity: .4 } 100% { transform: scale(1.1) translateX(5px); opacity: .7 } }

.scn-anne-drops-sword {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 30%, #0e0a08 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-anne-drops-sword .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-top: 1px solid #3a2a1a;
  border-radius: 40% 20% 0 0 / 10% 5% 0 0;
}
.scn-anne-drops-sword .wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1612 0%, #2a1e16 50%, #1a100a 100%);
  border-bottom: 2px solid #2a1a10;
  animation: ads-wall 14s ease-in-out infinite;
}
.scn-anne-drops-sword .falling-sword {
  position: absolute;
  bottom: 50%;
  left: 48%;
  width: 1.5%;
  height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: ads-fall 2s ease-in-out infinite;
  box-shadow: 0 0 8px 3px rgba(200,144,80,.1);
}
.scn-anne-drops-sword .hand-left {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 5%;
  height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ads-hand-l 3s ease-in-out infinite alternate;
  transform-origin: bottom left;
}
.scn-anne-drops-sword .hand-right {
  position: absolute;
  bottom: 30%;
  left: 52%;
  width: 5%;
  height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ads-hand-r 3s ease-in-out infinite alternate;
  transform-origin: bottom right;
}
.scn-anne-drops-sword .kneeling-figure {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 5%;
  height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ads-kneel 4s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-anne-drops-sword .standing-figure {
  position: absolute;
  bottom: 18%;
  left: 55%;
  width: 4%;
  height: 40%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ads-stand 3s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-anne-drops-sword .spark {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 2%;
  height: 2%;
  background: radial-gradient(circle, #ffd080 0%, #c89050 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,144,80,.3);
  animation: ads-spark 1.5s ease-in-out infinite alternate;
}
@keyframes ads-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ads-fall { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(10deg) translateY(10px) } 50% { transform: rotate(0deg) translateY(20px) } 75% { transform: rotate(-10deg) translateY(30px) } 100% { transform: rotate(0deg) translateY(40px) } }
@keyframes ads-hand-l { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(5px) rotate(-5deg) } }
@keyframes ads-hand-r { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-5px) rotate(5deg) } }
@keyframes ads-kneel { 0% { transform: rotate(-2deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(0deg) } 100% { transform: rotate(-2deg) } }
@keyframes ads-stand { 0% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ads-spark { 0% { transform: scale(.8); opacity: .3 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(.9); opacity: .6 } }

.scn-anne-accepts-ring {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 35%, #0e0a08 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-anne-accepts-ring .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1612 0%, #2a1e16 50%, #1a100a 100%);
  border-bottom: 2px solid #2a1a10;
  animation: aar-wall 13s ease-in-out infinite;
}
.scn-anne-accepts-ring .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-top: 1px solid #3a2a1a;
  border-radius: 25% 35% 0 0 / 8% 6% 0 0;
}
.scn-anne-accepts-ring .window-glow {
  position: absolute;
  top: 5%;
  left: 60%;
  width: 25%;
  height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #c89050 0%, #6a4020 50%, #1a100a 100%);
  border: 2px solid #2a1a10;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 40px 20px rgba(200,144,80,.15);
  animation: aar-window 7s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .hand-left {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 4%;
  height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: aar-hand-l 4s ease-in-out infinite alternate;
  transform-origin: bottom left;
}
.scn-anne-accepts-ring .hand-right {
  position: absolute;
  bottom: 28%;
  left: 52%;
  width: 4%;
  height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: aar-hand-r 4s ease-in-out infinite alternate;
  transform-origin: bottom right;
}
.scn-anne-accepts-ring .ring {
  position: absolute;
  bottom: 38%;
  left: 49.5%;
  width: 1.5%;
  height: 1.5%;
  background: radial-gradient(circle, #e0b060 0%, #a08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(224,176,96,.4);
  animation: aar-ring 3s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .kneeling-figure {
  position: absolute;
  bottom: 20%;
  left: 32%;
  width: 5%;
  height: 32%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aar-kneel 4s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-anne-accepts-ring .standing-figure {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 4%;
  height: 42%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aar-stand 3s ease-in-out infinite alternate;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
@keyframes aar-wall { 0% { opacity: .75 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes aar-window { 0% { box-shadow: 0 0 30px 15px rgba(200,144,80,.1) } 50% { box-shadow: 0 0 60px 30px rgba(200,144,80,.25) } 100% { box-shadow: 0 0 40px 20px rgba(200,144,80,.15) } }
@keyframes aar-hand-l { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes aar-hand-r { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes aar-ring { 0% { transform: scale(.9) rotate(0deg); opacity: .6 } 50% { transform: scale(1.1) rotate(15deg); opacity: 1 } 100% { transform: scale(.95) rotate(-5deg); opacity: .7 } }
@keyframes aar-kneel { 0% { transform: rotate(-1deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes aar-stand { 0% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-2px) rotate(1deg) } }

.scn-rivers-swears-peace {
  background:
    linear-gradient(180deg, #f5e6ca 0%, #e3d3b8 50%, #cbb59a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-rivers-swears-peace .bg-wall { position:absolute; inset:0 0 15% 0; background:linear-gradient(90deg, #d4c3a8 0%, #e0d0b8 50%, #c8b79c 100%); }
.scn-rivers-swears-peace .window-frame { position:absolute; top:8%; left:12%; width:35%; height:55%; background:linear-gradient(180deg, #8cadc2 0%, #6b8aa0 100%); border:6px solid #5a4a3a; border-radius:4px; box-shadow:inset 0 0 40px rgba(255,240,200,.5); animation:rs-window 15s ease-in-out infinite alternate; }
.scn-rivers-swears-peace .light-ray { position:absolute; top:15%; left:20%; width:60%; height:50%; background:linear-gradient(135deg, rgba(255,248,220,.3) 0%, transparent 70%); transform:rotate(-10deg); animation:rs-light 12s ease-in-out infinite; }
.scn-rivers-swears-peace .tapestry { position:absolute; top:25%; right:12%; width:22%; height:45%; background:linear-gradient(180deg, #5e1a1d 0%, #4a1214 50%, #3d0e10 100%); border-radius:2px; box-shadow:2px 2px 8px rgba(0,0,0,.3); animation:rs-tapestry 20s ease-in-out infinite; }
.scn-rivers-swears-peace .figure-body { position:absolute; bottom:27%; left:50%; width:40px; height:80px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; animation:rs-breathe 5s ease-in-out infinite; }
.scn-rivers-swears-peace .figure-head { position:absolute; bottom:56%; left:50%; width:24px; height:26px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-rivers-swears-peace .figure-arm { position:absolute; bottom:50%; left:52%; width:14px; height:40px; transform-origin:bottom center; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; animation:rs-arm 4s ease-in-out infinite alternate; }
.scn-rivers-swears-peace .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background:linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); box-shadow:inset 0 6px 12px rgba(0,0,0,.3); }
.scn-rivers-swears-peace .book { position:absolute; bottom:14%; left:45%; width:16px; height:8px; background:#8a7a4a; border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); transform:rotate(-5deg); animation:rs-book 8s ease-in-out infinite; }
@keyframes rs-window { 0%{opacity:.8;box-shadow:inset 0 0 30px rgba(255,240,200,.4)} 50%{opacity:1;box-shadow:inset 0 0 60px rgba(255,240,200,.6)} 100%{opacity:.85;box-shadow:inset 0 0 35px rgba(255,240,200,.45)} }
@keyframes rs-light { 0%{transform:rotate(-12deg) scaleY(1)} 50%{transform:rotate(-8deg) scaleY(1.1)} 100%{transform:rotate(-10deg) scaleY(.95)} }
@keyframes rs-tapestry { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes rs-breathe { 0%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.02)} 100%{transform:translateX(-50%) scaleY(.98)} }
@keyframes rs-arm { 0%{transform:rotate(-10deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-8deg)} }
@keyframes rs-book { 0%{transform:translateY(0) rotate(-5deg)} 50%{transform:translateY(-1px) rotate(-4deg)} 100%{transform:translateY(1px) rotate(-6deg)} }

.scn-hastings-swears {
  background:
    linear-gradient(180deg, #f0e0ca 0%, #e0cfb8 50%, #cbb59a 100%),
    radial-gradient(ellipse at 50% 100%, #dcc8ae 0%, transparent 60%);
}
.scn-hastings-swears .bg-chamber { position:absolute; inset:0 0 20% 0; background:linear-gradient(90deg, #d4c3a8 0%, #e3d3b8 50%, #c8b79c 100%); }
.scn-hastings-swears .floor-checkered { position:absolute; bottom:0; left:0; right:0; height:20%; background:repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 30px, #9a8a7a 30px, #9a8a7a 60px); transform:perspective(200px) rotateX(60deg); transform-origin:bottom; animation:hs-floor 20s linear infinite; }
.scn-hastings-swears .pillar-left { position:absolute; bottom:20%; left:8%; width:6%; height:80%; background:linear-gradient(90deg, #b8a898 0%, #c8b8a8 20%, #a89888 100%); border-radius:4px; box-shadow:2px 0 6px rgba(0,0,0,.2); }
.scn-hastings-swears .pillar-right { position:absolute; bottom:20%; right:8%; width:6%; height:80%; background:linear-gradient(-90deg, #b8a898 0%, #c8b8a8 20%, #a89888 100%); border-radius:4px; box-shadow:-2px 0 6px rgba(0,0,0,.2); }
.scn-hastings-swears .figure-left { position:absolute; bottom:22%; left:36%; width:36px; height:80px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:35% 35% 20% 20% / 45% 45% 20% 20%; transform-origin:bottom center; animation:hs-figure-left 6s ease-in-out infinite; }
.scn-hastings-swears .figure-right { position:absolute; bottom:22%; right:36%; width:36px; height:78px; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:35% 35% 20% 20% / 45% 45% 20% 20%; transform-origin:bottom center; animation:hs-figure-right 6s ease-in-out infinite; }
.scn-hastings-swears .clasped-hands { position:absolute; bottom:38%; left:50%; width:20px; height:14px; transform:translateX(-50%); background:radial-gradient(circle, #5a4a3a 0%, #4a3a2a 70%); border-radius:40%; box-shadow:0 0 6px rgba(0,0,0,.5); animation:hs-hands 4s ease-in-out infinite; }
@keyframes hs-floor { 0%{background-position:0 0} 100%{background-position:60px 0} }
@keyframes hs-figure-left { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-2px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes hs-figure-right { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(2px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes hs-hands { 0%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(1.05)} 100%{transform:translateX(-50%) scale(.98)} }

.scn-queen-kisses-hastings {
  background:
    linear-gradient(180deg, #e8d4be 0%, #dac6b0 50%, #c4b09a 100%),
    radial-gradient(ellipse at 50% 50%, #f5e6d0 0%, transparent 80%);
}
.scn-queen-kisses-hastings .bg-drape { position:absolute; inset:0; background:linear-gradient(135deg, #702243 0%, #4a1628 50%, #2a0a14 100%); opacity:.3; animation:qk-drape 20s ease-in-out infinite; }
.scn-queen-kisses-hastings .queen-sleeve { position:absolute; top:30%; left:30%; width:40%; height:20%; background:linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%); border-radius:30% 30% 10% 10% / 50% 50% 10% 10%; transform:rotate(20deg); animation:qk-sleeve 8s ease-in-out infinite; }
.scn-queen-kisses-hastings .queen-hand { position:absolute; top:28%; left:55%; width:18px; height:28px; background:radial-gradient(circle at 50% 30%, #e8d8c8 0%, #c8b8a8 80%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(10deg); animation:qk-hand 5s ease-in-out infinite; }
.scn-queen-kisses-hastings .hastings-head { position:absolute; top:48%; left:52%; width:30px; height:28px; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation:qk-head 6s ease-in-out infinite; }
.scn-queen-kisses-hastings .hastings-shoulders { position:absolute; top:56%; left:48%; width:40px; height:40px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; transform:rotate(10deg); }
.scn-queen-kisses-hastings .candle { position:absolute; bottom:20%; left:80%; width:10px; height:40px; background:linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,.3); }
.scn-queen-kisses-hastings .candle-flame { position:absolute; bottom:58%; left:80%; width:10px; height:16px; transform:translateX(-50%); background:radial-gradient(circle, #ffe080 0%, #ffb040 50%, transparent 100%); border-radius:50%; animation:qk-flame 2s ease-in-out infinite alternate; }
@keyframes qk-drape { 0%{opacity:.25} 50%{opacity:.35} 100%{opacity:.28} }
@keyframes qk-sleeve { 0%{transform:rotate(18deg)} 50%{transform:rotate(22deg)} 100%{transform:rotate(20deg)} }
@keyframes qk-hand { 0%{transform:rotate(8deg) scale(1)} 50%{transform:rotate(12deg) scale(1.03)} 100%{transform:rotate(10deg) scale(.98)} }
@keyframes qk-head { 0%{transform:rotate(13deg) translateY(0)} 50%{transform:rotate(17deg) translateY(-2px)} 100%{transform:rotate(15deg) translateY(1px)} }
@keyframes qk-flame { 0%{transform:translateX(-50%) scaleY(.9);opacity:.8} 50%{transform:translateX(-50%) scaleY(1.1);opacity:1} 100%{transform:translateX(-50%) scaleY(.95);opacity:.9} }

.scn-buckingham-embraces {
  background:
    linear-gradient(180deg, #d4c0aa 0%, #c4b09a 50%, #b09a84 100%),
    radial-gradient(ellipse at 50% 50%, #e3d3b8 0%, transparent 70%);
}
.scn-buckingham-embraces .bg-arch { position:absolute; inset:0 0 25% 0; background:radial-gradient(ellipse at 50% 0%, #d4c0aa 0%, #b8a492 100%); border-radius:0 0 50% 50% / 0 0 20% 20%; }
.scn-buckingham-embraces .stone-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); box-shadow:inset 0 8px 16px rgba(0,0,0,.4); }
.scn-buckingham-embraces .window-arch { position:absolute; top:6%; left:50%; width:30%; height:40%; transform:translateX(-50%); background:linear-gradient(180deg, #8cadc2 0%, #6b8aa0 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; border:4px solid #5a4a3a; box-shadow:inset 0 0 30px rgba(255,240,200,.3); animation:be-window 18s ease-in-out infinite alternate; }
.scn-buckingham-embraces .candle-sconce { position:absolute; bottom:30%; left:85%; width:12px; height:30px; background:linear-gradient(180deg, #705030 0%, #503020 100%); border-radius:2px; }
.scn-buckingham-embraces .candle-sconce::before { content:''; position:absolute; top:-8px; left:50%; width:10px; height:14px; transform:translateX(-50%); background:radial-gradient(circle, #ffe080 0%, #ffb040 50%, transparent 100%); border-radius:50%; animation:be-flame 3s ease-in-out infinite alternate; }
.scn-buckingham-embraces .figure-buck { position:absolute; bottom:25%; left:35%; width:42px; height:85px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:35% 35% 20% 20% / 45% 45% 20% 20%; transform-origin:bottom center; animation:be-figure-buck 8s ease-in-out infinite; }
.scn-buckingham-embraces .figure-other { position:absolute; bottom:25%; right:35%; width:40px; height:82px; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:35% 35% 20% 20% / 45% 45% 20% 20%; transform-origin:bottom center; animation:be-figure-other 8s ease-in-out infinite; }
.scn-buckingham-embraces .embrace-arms { position:absolute; bottom:40%; left:47%; width:20%; height:10px; background:linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:40%; transform:translateX(-50%) rotate(-5deg); animation:be-arms 6s ease-in-out infinite; }
@keyframes be-window { 0%{opacity:.75;box-shadow:inset 0 0 20px rgba(255,240,200,.2)} 50%{opacity:1;box-shadow:inset 0 0 50px rgba(255,240,200,.5)} 100%{opacity:.8;box-shadow:inset 0 0 30px rgba(255,240,200,.3)} }
@keyframes be-flame { 0%{transform:translateX(-50%) scaleY(.85);opacity:.7} 50%{transform:translateX(-50%) scaleY(1.15);opacity:1} 100%{transform:translateX(-50%) scaleY(.9);opacity:.8} }
@keyframes be-figure-buck { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(-2px) scaleX(1.02)} 100%{transform:translateX(0) scaleX(.98)} }
@keyframes be-figure-other { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(2px) scaleX(1.02)} 100%{transform:translateX(0) scaleX(.98)} }
@keyframes be-arms { 0%{transform:translateX(-50%) rotate(-7deg) scaleY(1)} 50%{transform:translateX(-50%) rotate(-3deg) scaleY(1.05)} 100%{transform:translateX(-50%) rotate(-5deg) scaleY(.98)} }

/* ---------- Scene: richard-swears-oath ---------- */
.scn-richard-swears-oath {
  background: linear-gradient(135deg, #f9e6c5 0%, #d4b47a 40%, #a07a4a 100%),
              radial-gradient(ellipse 120% 80% at 20% 50%, rgba(255,240,180,0.4) 0%, transparent 60%);
}
.scn-richard-swears-oath .sun {
  position: absolute; top: 0; left: 0; right: 70%; bottom: 40%;
  background: radial-gradient(circle 60px at 20% 30%, #fff8e0 0%, #f5d080 60%, transparent 100%);
  filter: blur(6px);
  animation: rso-sun 4s ease-in-out infinite alternate;
}
.scn-richard-swears-oath .sky {
  position: absolute; top:0; left:0; right:0; bottom:50%;
  background: linear-gradient(180deg, #fdf4d8 0%, #eace9f 80%);
  opacity:0.7;
  animation: rso-sky 12s ease-in-out infinite;
}
.scn-richard-swears-oath .horizon {
  position: absolute; bottom:45%; left:0; right:0; height:8%;
  background: linear-gradient(180deg, #b8955a 0%, #8c6e3a 100%);
  border-radius: 0 0 40% 40% / 0 0 20px 20px;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
}
.scn-richard-swears-oath .figure {
  position: absolute; bottom:20%; left:30%; width:70px; height:120px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1f16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rso-figure 3s ease-in-out infinite alternate;
}
.scn-richard-swears-oath .arm {
  position: absolute; bottom:55%; left:42%; width:50px; height:16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 60% 20% 20%;
  transform-origin: 0% 50%;
  transform: rotate(30deg);
  animation: rso-arm 3s ease-in-out infinite alternate;
}
.scn-richard-swears-oath .hand {
  position: absolute; bottom:70%; left:66%; width:16px; height:20px;
  background: #7a6a5a;
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  transform: rotate(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rso-hand 3s ease-in-out infinite alternate;
}
.scn-richard-swears-oath .book {
  position: absolute; bottom:15%; left:38%; width:30px; height:40px;
  background: linear-gradient(135deg, #c8a868 0%, #8a6a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
}
.scn-richard-swears-oath .shadow-cut {
  position: absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.25) 60%);
  animation: rso-shadow 7s ease-in-out infinite alternate;
}
@keyframes rso-sun { 0% { opacity:0.8; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.9; transform:scale(1); } }
@keyframes rso-sky { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.65; } }
@keyframes rso-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rso-arm { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-2px); } 100% { transform: rotate(28deg) translateY(0); } }
@keyframes rso-hand { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(12deg); } }
@keyframes rso-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* ---------- Scene: richard-swears-by-god ---------- */
.scn-richard-swears-by-god {
  background: linear-gradient(180deg, #fbe8c0 0%, #d6b47a 30%, #a88850 70%),
              radial-gradient(ellipse 150% 100% at 50% 0%, rgba(255,240,180,0.5) 0%, transparent 70%);
}
.scn-richard-swears-by-god .skywide {
  position: absolute; top:0; left:0; right:0; bottom:40%;
  background: linear-gradient(180deg, #faeabc 0%, #e1c48a 60%, transparent 100%);
  animation: rsg-sky 15s ease-in-out infinite alternate;
}
.scn-richard-swears-by-god .sunburst {
  position: absolute; top:5%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, #fff8e0 0%, #f5d080 40%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(8px);
  animation: rsg-sunburst 5s ease-in-out infinite alternate;
}
.scn-richard-swears-by-god .ground {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 30% 50% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.3);
}
.scn-richard-swears-by-god .kneeling {
  position: absolute; bottom:15%; left:35%; width:50px; height:80px;
  background: linear-gradient(180deg, #3a2e20 0%, #1e150c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: rsg-kneel 4s ease-in-out infinite alternate;
}
.scn-richard-swears-by-god .sword {
  position: absolute; bottom:55%; left:50%; width:8px; height:70px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a2a 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: rsg-sword 3s ease-in-out infinite alternate;
}
.scn-richard-swears-by-god .halo {
  position: absolute; bottom:48%; left:45%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(255,220,140,0.4) 0%, transparent 70%);
  animation: rsg-halo 5s ease-in-out infinite alternate;
}
.scn-richard-swears-by-god .cloud-c {
  position: absolute; top:12%; left:10%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rsg-cloudc 40s linear infinite;
}
.scn-richard-swears-by-god .cloud-d {
  position: absolute; top:20%; right:5%; width:80px; height:14px;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rsg-cloudd 50s linear infinite reverse;
}
@keyframes rsg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rsg-sunburst { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.8; transform: translateX(-50%) scale(1); } }
@keyframes rsg-kneel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rsg-sword { 0% { transform: translateX(-50%) rotate(-12deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(-8deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-10deg) scaleY(1); } }
@keyframes rsg-halo { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes rsg-cloudc { 0% { transform: translateX(-50px); } 100% { transform: translateX(110vw); } }
@keyframes rsg-cloudd { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* ---------- Scene: richard-final-oath ---------- */
.scn-richard-final-oath {
  background: linear-gradient(180deg, #f2d8a8 0%, #c9a96a 35%, #8a6a3a 100%),
              radial-gradient(ellipse 100% 60% at 50% 0%, rgba(255,230,160,0.5) 0%, transparent 60%);
}
.scn-richard-final-oath .bg-shaft {
  position: absolute; top:0; left:30%; right:30%; bottom:0;
  background: linear-gradient(180deg, #faecc4 0%, #d6b47a 40%, #a88850 100%);
  box-shadow: inset 0 0 60px rgba(255,220,140,0.3);
  animation: rfo-shaft 8s ease-in-out infinite alternate;
}
.scn-richard-final-oath .tower-left {
  position: absolute; top:5%; left:5%; right:60%; bottom:10%;
  background: linear-gradient(180deg, #b8955a 0%, #6a4a2a 100%);
  border-radius: 10% 30% 0 0 / 20% 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
}
.scn-richard-final-oath .tower-right {
  position: absolute; top:5%; left:60%; right:5%; bottom:10%;
  background: linear-gradient(180deg, #b8955a 0%, #6a4a2a 100%);
  border-radius: 30% 10% 0 0 / 40% 20% 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
}
.scn-richard-final-oath .figure-standing {
  position: absolute; bottom:20%; left:40%; width:60px; height:120px;
  background: linear-gradient(180deg, #3a2e20 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rfo-stand 3s ease-in-out infinite alternate;
}
.scn-richard-final-oath .sword-up {
  position: absolute; bottom:75%; left:45%; width:10px; height:90px;
  background: linear-gradient(180deg, #d4b47a 0%, #8a6a3a 100%);
  border-radius: 5px 5px 2px 2px;
  transform-origin: bottom center;
  transform: rotate(15deg);
  box-shadow: 0 0 20px rgba(200,160,80,0.5);
  animation: rfo-swordup 4s ease-in-out infinite alternate;
}
.scn-richard-final-oath .light-beam {
  position: absolute; top:0; left:35%; right:35%; bottom:30%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 80%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  filter: blur(12px);
  animation: rfo-beam 6s ease-in-out infinite alternate;
}
.scn-richard-final-oath .debris1 {
  position: absolute; bottom:60%; left:20%; width:8px; height:8px;
  background: #a88850;
  border-radius: 50%;
  animation: rfo-debris1 2s ease-in-out infinite;
}
.scn-richard-final-oath .debris2 {
  position: absolute; bottom:50%; right:15%; width:6px; height:6px;
  background: #b8955a;
  border-radius: 50%;
  animation: rfo-debris2 2.4s ease-in-out infinite 0.8s;
}
@keyframes rfo-shaft { 0% { opacity:0.8; transform: scaleY(0.98); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes rfo-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rfo-swordup { 0% { transform: rotate(10deg) scaleY(0.95); } 50% { transform: rotate(20deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes rfo-beam { 0% { opacity:0.2; transform: scaleX(0.9); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes rfo-debris1 { 0%,100% { transform: translate(0,0) scale(1); } 25% { transform: translate(10px,-15px) scale(1.2); } 50% { transform: translate(20px,-5px) scale(0.9); } 75% { transform: translate(5px,-20px) scale(1.1); } }
@keyframes rfo-debris2 { 0%,100% { transform: translate(0,0) scale(1); } 25% { transform: translate(-12px,-10px) scale(1.1); } 50% { transform: translate(-8px,-22px) scale(0.8); } 75% { transform: translate(-18px,-5px) scale(1.2); } }

/* ---------- Scene: elizabeth-succumbs ---------- */
.scn-elizabeth-succumbs {
  background: linear-gradient(180deg, #f7e2b8 0%, #d4b47a 40%, #b0905a 100%),
              radial-gradient(ellipse 100% 70% at 50% 100%, rgba(255,230,160,0.3) 0%, transparent 70%);
}
.scn-elizabeth-succumbs .window-frame {
  position: absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(135deg, #a08850 0%, #705a2a 100%);
  clip-path: inset(5% 15% 5% 15% round 20px);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: es-frame 10s ease-in-out infinite alternate;
}
.scn-elizabeth-succumbs .window-light {
  position: absolute; top:5%; left:15%; right:15%; bottom:5%;
  background: linear-gradient(135deg, #fff4d4 0%, #eac69a 70%);
  box-shadow: inset 0 0 30px rgba(255,220,140,0.5);
  border-radius: 10px;
  animation: es-light 6s ease-in-out infinite alternate;
}
.scn-elizabeth-succumbs .woman {
  position: absolute; bottom:10%; left:28%; width:50px; height:100px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1f16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: es-woman 3s ease-in-out infinite alternate;
}
.scn-elizabeth-succumbs .man-shadow {
  position: absolute; bottom:10%; right:30%; width:45px; height:90px;
  background: linear-gradient(180deg, #2a2016 0%, #100a05 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: es-man 4s ease-in-out infinite alternate;
}
.scn-elizabeth-succumbs .child-ghost {
  position: absolute; bottom:25%; left:42%; width:20px; height:30px;
  background: radial-gradient(circle at 50% 30%, rgba(200,180,160,0.6) 0%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(3px);
  animation: es-ghost 5s ease-in-out infinite alternate;
}
.scn-elizabeth-succumbs .floor {
  position: absolute; bottom:0; left:15%; right:15%; height:8%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -6px 15px rgba(0,0,0,0.3);
}
.scn-elizabeth-succumbs .curtain-left {
  position: absolute; top:0; left:10%; right:80%; bottom:0;
  background: linear-gradient(180deg, #b8955a 0%, #6a4a2a 100%);
  border-radius: 0 30% 40% 0;
  transform-origin: left center;
  animation: es-curtainl 8s ease-in-out infinite alternate;
}
.scn-elizabeth-succumbs .curtain-right {
  position: absolute; top:0; left:80%; right:10%; bottom:0;
  background: linear-gradient(180deg, #b8955a 0%, #6a4a2a 100%);
  border-radius: 30% 0 0 40%;
  transform-origin: right center;
  animation: es-curtainr 8s ease-in-out infinite alternate;
}
@keyframes es-frame { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes es-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes es-woman { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes es-man { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 50% { transform: translateY(-3px) rotate(-3deg) scaleX(0.95); } 100% { transform: translateY(0) rotate(0) scaleX(1); } }
@keyframes es-ghost { 0% { opacity:0.2; transform: scale(0.8) translateY(0); } 50% { opacity:0.6; transform: scale(1.1) translateY(-5px); } 100% { opacity:0.3; transform: scale(0.9) translateY(0); } }
@keyframes es-curtainl { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes es-curtainr { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }

/* Scene 1: richard-blames-beauty */
.scn-richard-blames-beauty {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 40% 20%, #4a2a1a 0%, transparent 70%);
}
.scn-richard-blames-beauty .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-richard-blames-beauty .bg-floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(0deg, #1a1210 0%, #2a1a14 100%);
}
.scn-richard-blames-beauty .window {
  position: absolute; top: 12%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0a 100%);
  border: 4px solid #2a1a14;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-richard-blames-beauty .candle {
  position: absolute; bottom: 36%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #a06020 0%, #603010 100%);
  border-radius: 2px 2px 0 0;
}
.scn-richard-blames-beauty .glow {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d09040 0%, #b07030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rbb-glow 4s ease-in-out infinite alternate;
  transform: translate(-50%, -50%);
}
.scn-richard-blames-beauty .figure-richard {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 0% 40% 40% / 60% 20% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: rbb-fig1 8s ease-in-out infinite;
}
.scn-richard-blames-beauty .figure-anne {
  position: absolute; bottom: 30%; left: 52%; width: 38px; height: 110px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 0% 50% 40% 40% / 20% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: rbb-fig2 9s ease-in-out infinite;
}
.scn-richard-blames-beauty .shadow {
  position: absolute; bottom: 19%; left: 35%; width: 90px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: rbb-shadow 3s ease-in-out infinite alternate;
}
@keyframes rbb-glow {
  0% { opacity: .6; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.3); }
  100% { opacity: .7; transform: translate(-50%, -50%) scale(.9); }
}
@keyframes rbb-fig1 {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(-2deg) translateX(2px); }
  66% { transform: rotate(1deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rbb-fig2 {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(-2px); }
  100% { transform: rotate(-1deg) translateX(1px); }
}
@keyframes rbb-shadow {
  0% { transform: scaleX(1); opacity: .4; }
  100% { transform: scaleX(1.3); opacity: .7; }
}

/* Scene 2: anne-relents */
.scn-anne-relents {
  background:
    linear-gradient(180deg, #0e0a1a 0%, #1a142a 40%, #0a0620 100%),
    radial-gradient(ellipse at 50% 30%, #2a1e3a 0%, transparent 60%);
}
.scn-anne-relents .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0812 0%, #12101a 100%);
}
.scn-anne-relents .arch {
  position: absolute; top: 0; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a142a 0%, #100a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 6px solid transparent;
  border-image: linear-gradient(180deg, #3a2a4a 0%, #1a122a 100%) 1;
}
.scn-anne-relents .curtain-left {
  position: absolute; top: 0; left: 10%; width: 60px; height: 200px;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a122a 100%);
  border-radius: 0 30px 30px 0 / 0 40% 40% 0;
  transform: skewY(3deg);
  animation: ar-curtain 12s ease-in-out infinite alternate;
}
.scn-anne-relents .curtain-right {
  position: absolute; top: 0; right: 10%; width: 60px; height: 200px;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a122a 100%);
  border-radius: 30px 0 0 30px / 40% 0 0 40%;
  transform: skewY(-3deg);
  animation: ar-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-anne-relents .figure-anne {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e3a 0%, #1a122a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,.6);
  animation: ar-fig 6s ease-in-out infinite;
}
.scn-anne-relents .hand-to-face {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: ar-hand 4s ease-in-out infinite alternate;
}
.scn-anne-relents .candle {
  position: absolute; bottom: 25%; left: 38%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #b07030 0%, #603010 100%);
  border-radius: 2px 2px 0 0;
}
.scn-anne-relents .glow {
  position: absolute; bottom: 26%; left: 38%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d09040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ar-glow 3.5s ease-in-out infinite alternate;
  transform: translate(-50%, -50%);
}
@keyframes ar-curtain {
  0% { transform: skewY(3deg) scaleX(1); }
  50% { transform: skewY(4deg) scaleX(1.05); }
  100% { transform: skewY(2deg) scaleX(.95); }
}
@keyframes ar-fig {
  0% { transform: translateX(-50%) rotate(0deg); }
  33% { transform: translateX(-50%) rotate(-3deg); }
  66% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ar-hand {
  0% { transform: rotate(-20deg) translateY(0); opacity: .8; }
  50% { transform: rotate(-15deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(-25deg) translateY(1px); opacity: .9; }
}
@keyframes ar-glow {
  0% { opacity: .5; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: .9; transform: translate(-50%, -50%) scale(1.4); }
  100% { opacity: .6; transform: translate(-50%, -50%) scale(.8); }
}

/* Scene 3: richard-offers-sword */
.scn-richard-offers-sword {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1410 40%, #0e0606 100%),
    radial-gradient(ellipse at 60% 20%, #4a2218 0%, transparent 70%);
}
.scn-richard-offers-sword .bg-close {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #1a0e0a 0%, #0a0404 100%);
}
.scn-richard-offers-sword .hand-richard {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a1410 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  box-shadow: 0 0 12px rgba(0,0,0,.7);
  animation: ros-hand 5s ease-in-out infinite;
}
.scn-richard-offers-sword .sword {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 90px;
  background: linear-gradient(180deg, #b0a080 0%, #806050 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px #a08060;
  animation: ros-sword 4s ease-in-out infinite alternate;
}
.scn-richard-offers-sword .sword-glint {
  position: absolute; bottom: 40%; left: 29%; width: 12px; height: 6px;
  background: radial-gradient(ellipse, #d0c0a0 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ros-glint 2s ease-in-out infinite;
}
.scn-richard-offers-sword .candle {
  position: absolute; bottom: 20%; right: 35%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c08040 0%, #804020 100%);
  border-radius: 2px 2px 0 0;
}
.scn-richard-offers-sword .glow {
  position: absolute; bottom: 22%; right: 35%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ros-glow 3s ease-in-out infinite alternate;
  transform: translate(50%, -50%);
}
.scn-richard-offers-sword .arm-lady {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-40deg);
  transform-origin: top center;
  animation: ros-arm 4.5s ease-in-out infinite;
}
@keyframes ros-hand {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(35deg) translateX(5px); }
  100% { transform: rotate(25deg) translateX(-3px); }
}
@keyframes ros-sword {
  0% { transform: rotate(20deg) scaleY(1); }
  50% { transform: rotate(22deg) scaleY(1.02); }
  100% { transform: rotate(18deg) scaleY(.98); }
}
@keyframes ros-glint {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: .2; transform: scale(.8); }
}
@keyframes ros-glow {
  0% { opacity: .5; transform: translate(50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(50%, -50%) scale(1.2); }
  100% { opacity: .6; transform: translate(50%, -50%) scale(.9); }
}
@keyframes ros-arm {
  0% { transform: rotate(-40deg) translateY(0); }
  33% { transform: rotate(-35deg) translateY(-2px); }
  66% { transform: rotate(-45deg) translateY(1px); }
  100% { transform: rotate(-40deg) translateY(0); }
}

/* Scene 4: richard-weeps */
.scn-richard-weeps {
  background:
    linear-gradient(180deg, #0e0a12 0%, #1a121a 40%, #0a0610 100%),
    radial-gradient(ellipse at 50% 40%, #2a1a2a 0%, transparent 60%);
}
.scn-richard-weeps .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, #1a121a 0%, #0a0610 100%);
}
.scn-richard-weeps .profile-head {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e12 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  box-shadow: -5px 0 10px rgba(0,0,0,.6);
  animation: rw-head 6s ease-in-out infinite;
}
.scn-richard-weeps .hair {
  position: absolute; bottom: 38%; left: 43%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #1a121a 0%, #0e0a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 0 8px rgba(0,0,0,.5);
}
.scn-richard-weeps .tear {
  position: absolute; bottom: 44%; left: 42%; width: 4px; height: 8px;
  background: radial-gradient(ellipse at 50% 30%, #8ab0d0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: rw-tear 3s ease-in-out infinite alternate;
}
.scn-richard-weeps .hand-left {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: top center;
  animation: rw-hand-left 5s ease-in-out infinite;
}
.scn-richard-weeps .hand-right {
  position: absolute; bottom: 15%; left: 52%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: top center;
  animation: rw-hand-right 5.5s ease-in-out infinite;
}
.scn-richard-weeps .candle {
  position: absolute; bottom: 22%; left: 30%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c08040 0%, #804020 100%);
  border-radius: 2px 2px 0 0;
}
.scn-richard-weeps .glow {
  position: absolute; bottom: 24%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rw-glow 4s ease-in-out infinite alternate;
  transform: translate(-50%, -50%);
}
@keyframes rw-head {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(-2deg) translateX(-2px); }
  66% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rw-tear {
  0% { opacity: .3; transform: translateY(0) scaleY(1); }
  50% { opacity: .8; transform: translateY(4px) scaleY(1.2); }
  100% { opacity: .1; transform: translateY(8px) scaleY(.8); }
}
@keyframes rw-hand-left {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(25deg) translateY(2px); }
}
@keyframes rw-hand-right {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-35deg) translateY(1px); }
}
@keyframes rw-glow {
  0% { opacity: .4; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: .9; transform: translate(-50%, -50%) scale(1.3); }
  100% { opacity: .5; transform: translate(-50%, -50%) scale(.8); }
}

.scn-buckingham-caution {
  background: linear-gradient(180deg, #f9f3e0 0%, #e8dcc8 40%, #d4c4a8 100%),
              radial-gradient(ellipse at 70% 30%, #fdf8f0 0%, transparent 60%);
}
.scn-buckingham-caution .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: bk-wall 12s ease-in-out infinite alternate;
}
.scn-buckingham-caution .window {
  position: absolute; top: 8%; left: 60%; width: 70px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #a8dadc 0%, #b8d8dc 50%, #c8e0e4 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: bk-light 6s ease-in-out infinite alternate;
}
.scn-buckingham-caution .curtain {
  position: absolute; top: 0; left: 55%; width: 40px; height: 100%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 20px 20px; transform-origin: top left;
  animation: bk-curtain 10s ease-in-out infinite;
}
.scn-buckingham-caution .table {
  position: absolute; bottom: 22%; left: 20%; width: 200px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: bk-table 14s ease-in-out infinite;
}
.scn-buckingham-caution .candle {
  position: absolute; bottom: 26%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #fdf8f0 0%, #e8c88a 50%, #b08040 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #f0c060;
  animation: bk-candle 3s ease-in-out infinite alternate;
}
.scn-buckingham-caution .candle-glow {
  position: absolute; bottom: 28%; left: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,192,96,0.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: bk-glow 4s ease-in-out infinite alternate;
}
.scn-buckingham-caution .figure {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2c221a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bk-figure 8s ease-in-out infinite;
}
.scn-buckingham-caution .map {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  border-radius: 2px; border: 1px solid #b08040;
  animation: bk-map 12s ease-in-out infinite alternate;
}
.scn-buckingham-caution .dust {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,255,240,0.6); border-radius: 50%;
  box-shadow: 20px 40px 0 rgba(255,255,240,0.4), -10px 60px 0 rgba(255,255,240,0.5);
  animation: bk-dust 18s linear infinite;
}
@keyframes bk-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes bk-light { 0% { box-shadow: inset 0 0 30px rgba(255,255,255,0.2); } 50% { box-shadow: inset 0 0 60px rgba(255,255,255,0.6); } 100% { box-shadow: inset 0 0 30px rgba(255,255,255,0.3); } }
@keyframes bk-curtain { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-6px) scaleX(0.95); } }
@keyframes bk-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bk-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bk-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bk-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } }
@keyframes bk-map { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes bk-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.4; } 100% { transform: translate(30px,-80px) scale(0.5); opacity: 0; } }

.scn-hastings-agrees {
  background: linear-gradient(180deg, #f9f3e0 0%, #e8dcc8 30%, #d4c4a8 100%),
              radial-gradient(ellipse at 50% 20%, #fdf8f0 0%, transparent 50%);
}
.scn-hastings-agrees .chamber-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: ha-wall 14s ease-in-out infinite alternate;
}
.scn-hastings-agrees .council-table {
  position: absolute; bottom: 15%; left: 10%; width: 240px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px; box-shadow: 0 12px 24px rgba(0,0,0,0.4);
  animation: ha-table 16s ease-in-out infinite;
}
.scn-hastings-agrees .document {
  position: absolute; bottom: 25%; left: 22%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #fdf8f0 0%, #e8dcc8 100%);
  border-radius: 2px; border: 1px solid #b08040;
  animation: ha-doc 10s ease-in-out infinite alternate;
}
.scn-hastings-agrees .seal {
  position: absolute; bottom: 25%; left: 28%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border-radius: 50%; box-shadow: 0 0 8px rgba(200,85,61,0.5);
  animation: ha-seal 6s ease-in-out infinite alternate;
}
.scn-hastings-agrees .figure-left {
  position: absolute; bottom: 12%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2c221a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure-l 8s ease-in-out infinite;
}
.scn-hastings-agrees .figure-right {
  position: absolute; bottom: 12%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2c221a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure-r 8s ease-in-out infinite 2s;
}
.scn-hastings-agrees .chandelier {
  position: absolute; top: 5%; left: 30%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #b08040 0%, #6a4a3a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 10px 30px rgba(200,128,64,0.4);
  animation: ha-chandelier 20s ease-in-out infinite alternate;
}
.scn-hastings-agrees .table-shadow {
  position: absolute; bottom: 10%; left: 15%; width: 200px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: ha-shadow 12s ease-in-out infinite;
}
@keyframes ha-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ha-table { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes ha-doc { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes ha-seal { 0% { box-shadow: 0 0 8px rgba(200,85,61,0.3); } 50% { box-shadow: 0 0 16px rgba(200,85,61,0.8); } 100% { box-shadow: 0 0 8px rgba(200,85,61,0.3); } }
@keyframes ha-figure-l { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes ha-figure-r { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes ha-chandelier { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes ha-shadow { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }

.scn-richard-agrees {
  background: linear-gradient(180deg, #fdf8f0 0%, #e8dcc8 30%, #d4c4a8 100%),
              radial-gradient(ellipse at 50% 40%, #fdf8f0 0%, transparent 60%);
}
.scn-richard-agrees .great-hall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: ra-hall 18s ease-in-out infinite alternate;
}
.scn-richard-agrees .throne {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; transform: translateX(-50%);
  box-shadow: 0 20px 40px rgba(0,0,0,0.5);
  animation: ra-throne 15s ease-in-out infinite;
}
.scn-richard-agrees .figure-king {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2c221a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ra-king 10s ease-in-out infinite alternate;
}
.scn-richard-agrees .figure-courtier {
  position: absolute; bottom: 10%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2c221a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-courtier 9s ease-in-out infinite 3s;
}
.scn-richard-agrees .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, #a8dadc 0%, #b8d8dc 60%, #c8e0e4 100%);
  border-radius: 4px; box-shadow: inset 0 0 40px rgba(255,255,255,0.4);
  animation: ra-window 8s ease-in-out infinite alternate;
}
.scn-richard-agrees .crown {
  position: absolute; bottom: 60%; left: 52%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #d4a373 0%, #b08040 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  transform: translateX(-50%);
  animation: ra-crown 6s ease-in-out infinite;
}
.scn-richard-agrees .scepter {
  position: absolute; bottom: 25%; left: 45%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #d4a373 0%, #8a6030 100%);
  border-radius: 2px; transform: rotate(-20deg);
  animation: ra-scepter 7s ease-in-out infinite alternate;
}
.scn-richard-agrees .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #d4c4a8 0px, #d4c4a8 30px, #c4b498 30px, #c4b498 60px);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: ra-floor 12s ease-in-out infinite alternate;
}
@keyframes ra-hall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ra-throne { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes ra-king { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ra-courtier { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } }
@keyframes ra-window { 0% { box-shadow: inset 0 0 30px rgba(255,255,255,0.2); } 50% { box-shadow: inset 0 0 60px rgba(255,255,255,0.6); } 100% { box-shadow: inset 0 0 40px rgba(255,255,255,0.3); } }
@keyframes ra-crown { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } }
@keyframes ra-scepter { 0% { transform: rotate(-22deg); } 50% { transform: rotate(-18deg); } 100% { transform: rotate(-20deg); } }
@keyframes ra-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

.scn-buckingham-and-richard-plot {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a890 100%),
              radial-gradient(ellipse at 50% 30%, #fdf8f0 0%, transparent 60%);
}
.scn-buckingham-and-richard-plot .dark-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a890 100%);
  animation: br-room 10s ease-in-out infinite alternate;
}
.scn-buckingham-and-richard-plot .small-table {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5c4033 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: br-table 6s ease-in-out infinite;
}
.scn-buckingham-and-richard-plot .plot-map {
  position: absolute; bottom: 28%; left: 38%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  border-radius: 2px; border: 1px solid #8a6030; transform: rotate(5deg);
  animation: br-map 4s ease-in-out infinite alternate;
}
.scn-buckingham-and-richard-plot .dagger {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 2px 2px 50% 50%; transform: rotate(15deg);
  animation: br-dagger 3s ease-in-out infinite alternate;
}
.scn-buckingham-and-richard-plot .figure-buckingham {
  position: absolute; bottom: 15%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a140e 0%, #0c0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure-b 5s ease-in-out infinite;
}
.scn-buckingham-and-richard-plot .figure-richard {
  position: absolute; bottom: 15%; left: 52%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a140e 0%, #0c0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure-r 5s ease-in-out infinite 1s;
}
.scn-buckingham-and-richard-plot .shadow-intense {
  position: absolute; bottom: 10%; left: 20%; width: 200px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: br-shadow 4s ease-in-out infinite alternate;
}
.scn-buckingham-and-richard-plot .candle-flicker {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #fdf8f0 0%, #e8c88a 50%, #b08040 100%);
  border-radius: 2px; box-shadow: 0 0 20px 8px rgba(200,128,64,0.6);
  animation: br-candle 0.8s ease-in-out infinite alternate;
}
@keyframes br-room { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes br-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes br-map { 0% { transform: rotate(4deg) scale(1); } 50% { transform: rotate(6deg) scale(1.02); } 100% { transform: rotate(4deg) scale(1); } }
@keyframes br-dagger { 0% { transform: rotate(13deg) scaleY(1); } 50% { transform: rotate(17deg) scaleY(0.98); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes br-figure-b { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes br-figure-r { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes br-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes br-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(0.95) translateY(1px); } }

/* === queen-defends === */
.scn-queen-defends {
  background:
    linear-gradient(135deg, #d9c9a0 0%, #b8a080 30%, #8a6e4a 60%, #4a3420 100%),
    radial-gradient(ellipse at 30% 50%, #fff5e0 0%, transparent 60%);
}
.scn-queen-defends .qd-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c5a0 0%, #a0886a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: qd-wall 12s ease-in-out infinite alternate;
}
.scn-queen-defends .qd-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-queen-defends .qd-throne {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  box-shadow: 8px 0 16px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: qd-throne 8s ease-in-out infinite;
}
.scn-queen-defends .qd-queen {
  position: absolute; bottom: 25%; left: 42%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #6a2a1a 0%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: qd-queen 4s ease-in-out infinite;
}
.scn-queen-defends .qd-guard1 {
  position: absolute; bottom: 18%; right: 15%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform: skew(-5deg);
  animation: qd-guard 6s ease-in-out infinite;
}
.scn-queen-defends .qd-guard2 {
  position: absolute; bottom: 18%; left: 15%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform: skew(5deg);
  animation: qd-guard 6s ease-in-out infinite reverse;
}
.scn-queen-defends .qd-candle {
  position: absolute; bottom: 40%; left: 55%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #ffd680 0%, #806020 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: qd-candle 2s ease-in-out infinite alternate;
}
.scn-queen-defends .qd-shadow {
  position: absolute; bottom: 16%; left: 30%; width: 40%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: qd-shadow 5s ease-in-out infinite alternate;
}
@keyframes qd-wall {
  0% { opacity: 0.85; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes qd-throne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qd-queen {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes qd-guard {
  0% { transform: translateY(0) skew(-5deg) scaleY(1); }
  50% { transform: translateY(-1px) skew(-5deg) scaleY(1.01); }
  100% { transform: translateY(0) skew(-5deg) scaleY(1); }
}
@keyframes qd-candle {
  0% { box-shadow: 0 0 16px 4px #c08040; transform: scale(1); }
  50% { box-shadow: 0 0 28px 8px #ffd060; transform: scale(1.05); }
  100% { box-shadow: 0 0 20px 5px #c08040; transform: scale(1); }
}
@keyframes qd-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* === rivers-intervenes === */
.scn-rivers-intervenes {
  background:
    linear-gradient(135deg, #d4c0a0 0%, #b09878 30%, #785840 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 50%, #ffe8c0 0%, transparent 60%);
}
.scn-rivers-intervenes .ri-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d0be9e 0%, #a0886a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: ri-bg 15s ease-in-out infinite alternate;
}
.scn-rivers-intervenes .ri-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-rivers-intervenes .ri-arch {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #b8a080 0%, #6a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.3);
  opacity: 0.4;
  animation: ri-arch 20s ease-in-out infinite;
}
.scn-rivers-intervenes .ri-rivers {
  position: absolute; bottom: 22%; left: 42%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 40% 40% / 50% 70% 40% 40%;
  box-shadow: 6px 0 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: ri-rivers 4s ease-in-out infinite;
}
.scn-rivers-intervenes .ri-gloucester {
  position: absolute; bottom: 20%; left: 32%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  transform: skew(-2deg);
  animation: ri-gloucester 5s ease-in-out infinite;
}
.scn-rivers-intervenes .ri-sword {
  position: absolute; bottom: 35%; left: 55%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #a0a0a0 0%, #505050 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 50% 50%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: ri-sword 3s ease-in-out infinite alternate;
}
.scn-rivers-intervenes .ri-shadow1 {
  position: absolute; bottom: 14%; left: 30%; width: 20%; height: 3%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: ri-shadow 6s ease-in-out infinite alternate;
}
.scn-rivers-intervenes .ri-shadow2 {
  position: absolute; bottom: 14%; right: 30%; width: 20%; height: 3%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: ri-shadow 6s ease-in-out infinite alternate-reverse;
}
@keyframes ri-bg {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 0.95; transform: translateY(-1px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes ri-arch {
  0% { transform: scale(1); opacity: 0.35; }
  50% { transform: scale(1.02); opacity: 0.45; }
  100% { transform: scale(1); opacity: 0.35; }
}
@keyframes ri-rivers {
  0% { transform: translateY(0) rotate(-1deg) scaleY(1); }
  50% { transform: translateY(-2px) rotate(1deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(-1deg) scaleY(1); }
}
@keyframes ri-gloucester {
  0% { transform: translateY(0) rotate(0deg) skew(-2deg); }
  50% { transform: translateY(-1px) rotate(0.5deg) skew(-2deg); }
  100% { transform: translateY(0) rotate(0deg) skew(-2deg); }
}
@keyframes ri-sword {
  0% { transform: rotate(12deg) translateX(0); opacity: 0.9; }
  50% { transform: rotate(18deg) translateX(2px); opacity: 1; }
  100% { transform: rotate(12deg) translateX(0); opacity: 0.9; }
}
@keyframes ri-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* === queen-denies === */
.scn-queen-denies {
  background:
    linear-gradient(135deg, #e0d0b0 0%, #c8b090 30%, #9a7a5a 60%, #4a3420 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 70%);
}
.scn-queen-denies .qn-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #b09878 100%);
  border-radius: 0 0 25% 25% / 0 0 15% 15%;
  animation: qn-wall 14s ease-in-out infinite alternate;
}
.scn-queen-denies .qn-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.4);
}
.scn-queen-denies .qn-chair {
  position: absolute; bottom: 22%; left: 40%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #b89050 0%, #8a6a2a 100%);
  border-radius: 15% 15% 5% 5% / 40% 40% 5% 5%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: qn-chair 10s ease-in-out infinite;
}
.scn-queen-denies .qn-queen {
  position: absolute; bottom: 24%; left: 44%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #702a1a 0%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: qn-queen 5s ease-in-out infinite;
}
.scn-queen-denies .qn-hand {
  position: absolute; bottom: 40%; left: 46%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #c08a5a 0%, #a0683a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: qn-hand 3s ease-in-out infinite alternate;
}
.scn-queen-denies .qn-pedestal {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: qn-pedestal 12s ease-in-out infinite;
}
.scn-queen-denies .qn-lantern {
  position: absolute; bottom: 50%; left: 30%; width: 4%; height: 10%;
  background: #ffd680;
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.3);
  animation: qn-lantern 4s ease-in-out infinite alternate;
}
.scn-queen-denies .qn-fleck {
  position: absolute; bottom: 30%; left: 60%; width: 2%; height: 2%;
  background: #ffc040;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffc040;
  animation: qn-fleck 7s ease-in-out infinite;
}
@keyframes qn-wall {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 0.95; transform: translateY(-1px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes qn-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qn-queen {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes qn-hand {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes qn-pedestal {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes qn-lantern {
  0% { box-shadow: 0 0 20px 4px #c08040; opacity: 0.8; }
  50% { box-shadow: 0 0 32px 8px #ffd060; opacity: 1; }
  100% { box-shadow: 0 0 24px 5px #c08040; opacity: 0.85; }
}
@keyframes qn-fleck {
  0% { transform: translate(0,0); opacity: 0.6; }
  50% { transform: translate(3px, -2px); opacity: 1; }
  100% { transform: translate(0,0); opacity: 0.6; }
}

/* === buckingham-mocks === */
.scn-buckingham-mocks {
  background:
    linear-gradient(135deg, #d0c0a0 0%, #b09878 30%, #8a6a4a 60%, #4a3420 100%),
    radial-gradient(ellipse at 60% 40%, #fff0c0 0%, transparent 70%);
}
.scn-buckingham-mocks .bm-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a4 0%, #b09878 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: bm-bg 16s ease-in-out infinite alternate;
}
.scn-buckingham-mocks .bm-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.5);
}
.scn-buckingham-mocks .bm-pillar {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #b8a080 0%, #7a5a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  opacity: 0.6;
  animation: bm-pillar 20s ease-in-out infinite;
}
.scn-buckingham-mocks .bm-buckingham {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 44%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  transform: skew(-3deg);
  animation: bm-buckingham 4s ease-in-out infinite;
}
.scn-buckingham-mocks .bm-letter {
  position: absolute; bottom: 32%; left: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b090 100%);
  border-radius: 5% 5% 10% 10% / 10% 10% 10% 10%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-20deg);
  animation: bm-letter 6s ease-in-out infinite alternate;
}
.scn-buckingham-mocks .bm-cape {
  position: absolute; bottom: 20%; left: 45%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #702a1a 0%, #3a0a0a 100%);
  border-radius: 60% 40% 20% 20% / 80% 60% 20% 20%;
  opacity: 0.7;
  transform-origin: top left;
  animation: bm-cape 5s ease-in-out infinite;
}
.scn-buckingham-mocks .bm-sparkle {
  position: absolute; bottom: 40%; left: 55%; width: 3%; height: 3%;
  background: #ffd060;
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #ffd060;
  animation: bm-sparkle 3s ease-in-out infinite;
}
.scn-buckingham-mocks .bm-shadow {
  position: absolute; bottom: 14%; left: 25%; width: 50%; height: 3%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: bm-shadow 7s ease-in-out infinite alternate;
}
@keyframes bm-bg {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 0.95; transform: translateY(-1px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes bm-pillar {
  0% { transform: scaleY(1); opacity: 0.55; }
  50% { transform: scaleY(1.01); opacity: 0.65; }
  100% { transform: scaleY(1); opacity: 0.55; }
}
@keyframes bm-buckingham {
  0% { transform: translateY(0) rotate(0deg) skew(-3deg); }
  50% { transform: translateY(-1px) rotate(1deg) skew(-3deg); }
  100% { transform: translateY(0) rotate(0deg) skew(-3deg); }
}
@keyframes bm-letter {
  0% { transform: rotate(-20deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(-15deg) translateY(-3px); opacity: 1; }
  100% { transform: rotate(-20deg) translateY(0); opacity: 0.8; }
}
@keyframes bm-cape {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes bm-sparkle {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.8); opacity: 0.6; }
}
@keyframes bm-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.08); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* richard-battles */
.scn-richard-battles { background: linear-gradient(180deg, #65758a 0%, #4a5b70 30%, #2e3b47 70%, #1a232c 100%), radial-gradient(ellipse at 50% 0%, #8599b0 0%, transparent 60%); }
.scn-richard-battles .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a8da3 0%, #55687a 50%, #334255 100%); animation: rb-sky 18s ease-in-out infinite alternate; }
.scn-richard-battles .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3f4e3a 0%, #2a3526 50%, #141c13 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.6); }
.scn-richard-battles .horizon { position:absolute; bottom:45%; left:0; right:0; height:8px; background: linear-gradient(90deg, #6f7d6e 0%, #5a6659 50%, #3c4638 100%); filter: blur(2px); animation: rb-horizon 12s ease-in-out infinite alternate; }
.scn-richard-battles .horse { position:absolute; bottom:35%; left:20%; width:70px; height:45px; transform: scaleX(-1); background: linear-gradient(135deg, #3a3029 0%, #1f1a16 70%); border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%; box-shadow: 3px 0 6px rgba(0,0,0,.5); animation: rb-horse 4s ease-in-out infinite; }
.scn-richard-battles .soldiers { position:absolute; bottom:30%; left:30%; right:10%; height:40px; background: repeating-linear-gradient(90deg, #2d2b29 0px, #2d2b29 6px, transparent 6px, transparent 12px); background-size: 12px 100%; filter: blur(1px); opacity: .8; animation: rb-soldiers 20s linear infinite; }
.scn-richard-battles .banner { position:absolute; bottom:40%; left:45%; width:6px; height:70px; background: #3b2b1e; border-radius: 2px; transform-origin: bottom center; }
.scn-richard-battles .banner::after { content:''; position:absolute; top:0; left:-2px; width:20px; height:14px; background: #7a5a3a; border-radius: 0 30% 30% 0; transform: skewX(-10deg); animation: rb-banner 3s ease-in-out infinite alternate; }
.scn-richard-battles .dust { position:absolute; bottom:30%; left:0; right:0; height:30px; background: radial-gradient(ellipse at 30% 100%, rgba(180,150,120,.15) 0%, transparent 70%); filter: blur(10px); animation: rb-dust 8s linear infinite; }
@keyframes rb-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes rb-horizon { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.5); } 100% { transform: scaleY(1); } }
@keyframes rb-horse { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 50% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes rb-soldiers { 0% { background-position: 0 0; } 100% { background-position: -12px 0; } }
@keyframes rb-banner { 0% { transform: skewX(-10deg); } 50% { transform: skewX(-5deg); } 100% { transform: skewX(-15deg); } }
@keyframes rb-dust { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; } 100% { opacity:.3; transform: translateX(20px); } }

/* richard-reads-note */
.scn-richard-reads-note { background: linear-gradient(180deg, #1a1d26 0%, #0f1118 40%, #05060a 100%), radial-gradient(ellipse at 60% 30%, #2a3348 0%, transparent 70%); }
.scn-richard-reads-note .wall { position:absolute; inset:0; background: linear-gradient(180deg, #232738 0%, #151824 100%); animation: rrn-wall 20s ease-in-out infinite alternate; }
.scn-richard-reads-note .table { position:absolute; bottom:10%; left:10%; right:20%; height:30%; background: linear-gradient(180deg, #4a3e35 0%, #2c241e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-richard-reads-note .hand { position:absolute; bottom:28%; left:35%; width:40px; height:60px; background: linear-gradient(135deg, #d1b89a 0%, #a58c73 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); animation: rrn-hand 4s ease-in-out infinite; }
.scn-richard-reads-note .note { position:absolute; bottom:32%; left:38%; width:28px; height:22px; background: linear-gradient(135deg, #e3d5b8 0%, #c1ad8a 100%); border-radius: 2px; box-shadow: 1px 2px 4px rgba(0,0,0,.4); transform: rotate(-5deg); animation: rrn-note 5s ease-in-out infinite alternate; }
.scn-richard-reads-note .candle { position:absolute; bottom:30%; right:25%; width:6px; height:40px; background: linear-gradient(180deg, #f0d5a0 0%, #8a6e42 100%); border-radius: 3px; animation: rrn-candle 6s ease-in-out infinite; }
.scn-richard-reads-note .candle-glow { position:absolute; bottom:30%; right:25%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,120,.45) 0%, rgba(255,200,120,.1) 40%, transparent 70%); transform: translate(0, -30px); animation: rrn-glow 3s ease-in-out infinite alternate; }
.scn-richard-reads-note .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: rrn-shadow 8s ease-in-out infinite alternate; }
@keyframes rrn-wall { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes rrn-hand { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(13deg) translateY(-2px); } 50% { transform: rotate(16deg) translateY(0); } 75% { transform: rotate(14deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes rrn-note { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(.98); } }
@keyframes rrn-candle { 0% { transform: translateY(0); opacity:.9; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(0); opacity:.95; } }
@keyframes rrn-glow { 0% { opacity:.5; transform: translate(0, -30px) scale(1); } 50% { opacity:.8; transform: translate(2px, -32px) scale(1.1); } 100% { opacity:.6; transform: translate(-1px, -28px) scale(.95); } }
@keyframes rrn-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.4; } }

/* richard-oration-to-army */
.scn-richard-oration-to-army { background: linear-gradient(180deg, #7c8da0 0%, #4f6075 40%, #2e3a47 80%, #141a20 100%), radial-gradient(ellipse at 50% 0%, #a0b5c8 0%, transparent 60%); }
.scn-richard-oration-to-army .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9cb1 0%, #53667a 50%, #2a3542 100%); animation: roa-sky 15s ease-in-out infinite alternate; }
.scn-richard-oration-to-army .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3f4a3a 0%, #242c1f 60%, #10130c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.5); }
.scn-richard-oration-to-army .platform { position:absolute; bottom:35%; left:40%; right:40%; height:25px; background: linear-gradient(180deg, #4a3d33 0%, #2d241e 100%); border-radius: 4px 4px 0 0; transform: perspective(200px) rotateX(5deg); animation: roa-platform 12s ease-in-out infinite alternate; }
.scn-richard-oration-to-army .figure { position:absolute; bottom:38%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #1e1b1a 0%, #0b0a09 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: roa-figure 5s ease-in-out infinite; }
.scn-richard-oration-to-army .figure::after { content:''; position:absolute; top:-30%; left:30%; width:12px; height:18px; background: #2a2320; border-radius: 50%; transform: rotate(30deg); /* arm raised */ }
.scn-richard-oration-to-army .soldiers-back { position:absolute; bottom:30%; left:5%; right:5%; height:30px; background: repeating-linear-gradient(90deg, #2a2826 0px, #2a2826 5px, transparent 5px, transparent 10px); background-size: 10px 100%; opacity: .6; filter: blur(1px); animation: roa-soldiers-back 30s linear infinite; }
.scn-richard-oration-to-army .soldiers-front { position:absolute; bottom:25%; left:15%; right:15%; height:40px; background: repeating-linear-gradient(90deg, #1d1b19 0px, #1d1b19 4px, transparent 4px, transparent 8px); background-size: 8px 100%; opacity: .8; filter: blur(0.5px); animation: roa-soldiers-front 20s linear infinite reverse; }
.scn-richard-oration-to-army .spears { position:absolute; bottom:45%; left:10%; right:10%; height:30px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 10px, #4a3e30 10px, #4a3e30 11px, transparent 11px, transparent 20px); background-size: 20px 100%; opacity: .7; animation: roa-spears 25s linear infinite; }
@keyframes roa-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes roa-platform { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(6deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(4deg) translateY(0); } }
@keyframes roa-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes roa-soldiers-back { 0% { background-position: 0 0; } 100% { background-position: -10px 0; } }
@keyframes roa-soldiers-front { 0% { background-position: 0 0; } 100% { background-position: 8px 0; } }
@keyframes roa-spears { 0% { background-position: 0 0; } 100% { background-position: -20px 0; } }

/* richard-rages */
.scn-richard-rages { background: linear-gradient(180deg, #5a6b7a 0%, #3c4a59 40%, #1f2a33 80%, #0f1519 100%), radial-gradient(ellipse at 50% 0%, #7a8fa0 0%, transparent 60%); }
.scn-richard-rages .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6f8296 0%, #4b5b6d 50%, #2b3642 100%); animation: rra-sky 10s ease-in-out infinite alternate; }
.scn-richard-rages .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4237 0%, #1e2620 60%, #0c0f0c 100%); border-radius: 30% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-richard-rages .horse { position:absolute; bottom:25%; left:30%; width:100px; height:70px; background: linear-gradient(135deg, #2d2722 0%, #1a1511 100%); border-radius: 60% 40% 40% 60% / 50% 60% 40% 50%; transform: scaleX(-1) rotate(-5deg); animation: rra-horse 2s ease-in-out infinite; }
.scn-richard-rages .rider { position:absolute; bottom:38%; left:32%; width:30px; height:55px; background: linear-gradient(180deg, #2a2421 0%, #120f0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rra-rider 2s ease-in-out infinite; }
.scn-richard-rages .sword { position:absolute; bottom:40%; left:38%; width:4px; height:50px; background: linear-gradient(180deg, #afafaf 0%, #8a8a8a 30%, #3a3a3a 100%); border-radius: 2px; transform: rotate(45deg); transform-origin: bottom left; animation: rra-sword 0.8s ease-in-out infinite alternate; }
.scn-richard-rages .drum { position:absolute; bottom:20%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #6a5a4a 0%, #3a3028 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rra-drum 1.2s ease-in-out infinite; }
.scn-richard-rages .arrows { position:absolute; bottom:35%; left:15%; right:15%; height:20px; background: repeating-linear-gradient(135deg, transparent 0px, transparent 8px, #5a5048 8px, #5a5048 9px, transparent 9px, transparent 16px); background-size: 16px 100%; opacity: .6; transform: rotate(-10deg); animation: rra-arrows 3s linear infinite; }
.scn-richard-rages .motion-lines { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent 0px, transparent 4px, rgba(255,255,255,.05) 4px, rgba(255,255,255,.05) 5px, transparent 5px, transparent 10px); background-size: 10px 10px; animation: rra-motion 0.5s linear infinite; }

@keyframes rra-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.65; } }
@keyframes rra-horse { 0% { transform: scaleX(-1) rotate(-5deg) translateY(0); } 25% { transform: scaleX(-1) rotate(-3deg) translateY(-3px); } 50% { transform: scaleX(-1) rotate(-6deg) translateY(0); } 75% { transform: scaleX(-1) rotate(-4deg) translateY(-2px); } 100% { transform: scaleX(-1) rotate(-5deg) translateY(0); } }
@keyframes rra-rider { 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 rra-sword { 0% { transform: rotate(45deg); } 50% { transform: rotate(50deg); } 100% { transform: rotate(40deg); } }
@keyframes rra-drum { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes rra-arrows { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }
@keyframes rra-motion { 0% { background-position: 0 0; } 100% { background-position: 10px 10px; } }

.scn-news-of-richmond {
  background: linear-gradient(180deg, #6b7b7b 0%, #4a5454 40%, #3a4a3a 100%), linear-gradient(135deg, rgba(200,180,160,0.1) 0%, transparent 50%);
}
.scn-news-of-richmond .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 60%, #3a4a4a 100%);
  animation: nr-sky 14s ease-in-out infinite alternate;
}
.scn-news-of-richmond .bg-sea {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: nr-sea 6s ease-in-out infinite alternate;
}
.scn-news-of-richmond .bg-shore {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-news-of-richmond .ship-far {
  position: absolute; bottom: 42%; left: 10%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 0 60% 30% 30% / 0 80% 40% 40%;
  transform-origin: bottom center;
  animation: nr-ship-far 20s ease-in-out infinite;
}
.scn-news-of-richmond .ship-near {
  position: absolute; bottom: 36%; right: 12%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 0 70% 20% 20% / 0 90% 30% 30%;
  transform-origin: bottom center;
  animation: nr-ship-near 16s ease-in-out infinite;
}
.scn-news-of-richmond .figure {
  position: absolute; bottom: 18%; left: 38%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-figure 8s ease-in-out infinite;
}
.scn-news-of-richmond .cloud {
  position: absolute; top: 18%; left: -80px; width: 100px; height: 16px;
  background: linear-gradient(90deg, rgba(180,190,190,0.5) 0%, rgba(160,170,170,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: nr-cloud 50s linear infinite;
}
@keyframes nr-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nr-sea {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes nr-ship-far {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(0deg); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); }
}
@keyframes nr-ship-near {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-6px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(3px) translateY(-1px) rotate(-1deg); }
}
@keyframes nr-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  20% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  40% { transform: translateX(0) translateY(0) rotate(0deg); }
  60% { transform: translateX(-8px) translateY(-2px) rotate(2deg); }
  80% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes nr-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}

.scn-richard-orders-norfolk {
  background: linear-gradient(180deg, #5a6e6e 0%, #3a4a4a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 70%, #4a5e5e 0%, transparent 60%);
}
.scn-richard-orders-norfolk .tent-back {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(135deg, #4a4830 0%, #2a2818 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: on-tent-back 10s ease-in-out infinite alternate;
}
.scn-richard-orders-norfolk .tent-front {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 45%;
  background: linear-gradient(135deg, #5a5840 0%, #3a3828 100%);
  clip-path: polygon(50% 5%, 5% 100%, 95% 100%);
  animation: on-tent-front 8s ease-in-out infinite alternate;
}
.scn-richard-orders-norfolk .flag {
  position: absolute; bottom: 58%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 100%);
  transform-origin: bottom center;
  animation: on-flag 3s ease-in-out infinite;
}
.scn-richard-orders-norfolk .figure-king {
  position: absolute; bottom: 15%; left: 32%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: on-king 6s ease-in-out infinite;
}
.scn-richard-orders-norfolk .figure-messenger {
  position: absolute; bottom: 15%; right: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: on-messenger 4s ease-in-out infinite;
}
.scn-richard-orders-norfolk .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a543a 0%, #2a342a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-richard-orders-norfolk .shadow {
  position: absolute; bottom: 16%; left: 30%; right: 30%; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: on-shadow 8s ease-in-out infinite alternate;
}
@keyframes on-tent-back {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes on-tent-front {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(0.97); }
}
@keyframes on-flag {
  0%, 100% { transform: rotate(-5deg); }
  20% { transform: rotate(10deg); }
  40% { transform: rotate(-8deg); }
  60% { transform: rotate(5deg); }
  80% { transform: rotate(-3deg); }
}
@keyframes on-king {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(1deg); }
}
@keyframes on-messenger {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(6px) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes on-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.4; }
  100% { transform: scaleX(0.8); opacity: 0.7; }
}

.scn-stanley-news-richmond {
  background: linear-gradient(180deg, #6e7e7e 0%, #4a5a5a 30%, #3a4a4a 70%, #2a3a3a 100%);
}
.scn-stanley-news-richmond .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7e8e8e 0%, #5a6a6a 50%, #3a4a4a 100%);
  animation: sn-sky 12s ease-in-out infinite alternate;
}
.scn-stanley-news-richmond .bg-horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: sn-horizon 18s ease-in-out infinite alternate;
}
.scn-stanley-news-richmond .army-line {
  position: absolute; bottom: 38%; left: 5%; right: 5%; height: 12%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #2a2a2a 8px, transparent 8px, transparent 20px);
  border-radius: 20% 20% 0 0;
  mask-image: linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%);
  animation: sn-army 30s linear infinite;
}
.scn-stanley-news-richmond .stanley {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sn-stanley 7s ease-in-out infinite;
}
.scn-stanley-news-richmond .messenger {
  position: absolute; bottom: 18%; right: 30%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-messenger 5s ease-in-out infinite;
}
.scn-stanley-news-richmond .tree {
  position: absolute; bottom: 30%; left: 10%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: sn-tree 15s ease-in-out infinite alternate;
}
.scn-stanley-news-richmond .dust {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,140,0.4) 0%, transparent 70%);
  animation: sn-dust 6s ease-in-out infinite alternate;
}
@keyframes sn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sn-horizon {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes sn-army {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes sn-stanley {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  40% { transform: translateX(0) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  80% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes sn-messenger {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(5px) translateY(-2px) rotate(-3deg); }
  60% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes sn-tree {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.02) scaleY(1.01); }
  100% { transform: scaleX(0.98) scaleY(0.99); }
}
@keyframes sn-dust {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateY(-5px) scaleX(1.5); opacity: 0.6; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.4; }
}

.scn-richard-suspects-stanley {
  background: linear-gradient(180deg, #4a4440 0%, #2a2420 40%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%);
}
.scn-richard-suspects-stanley .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a3428 0%, #1a1410 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: rs-wall 20s ease-in-out infinite alternate;
}
.scn-richard-suspects-stanley .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%);
  border-radius: 20% 20% 0 0;
}
.scn-richard-suspects-stanley .table {
  position: absolute; bottom: 18%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  animation: rs-table 9s ease-in-out infinite alternate;
}
.scn-richard-suspects-stanley .map {
  position: absolute; bottom: 22%; left: 38%; right: 38%; height: 8%;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.3);
  animation: rs-map 14s ease-in-out infinite alternate;
}
.scn-richard-suspects-stanley .candle-glow {
  position: absolute; bottom: 25%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,140,60,0.4);
  animation: rs-candle 3s ease-in-out infinite alternate;
}
.scn-richard-suspects-stanley .richard {
  position: absolute; bottom: 15%; left: 45%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: rs-richard 6s ease-in-out infinite;
}
.scn-richard-suspects-stanley .shadow-rise {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: rs-shadow 10s ease-in-out infinite alternate;
}
@keyframes rs-wall {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(0.99); }
}
@keyframes rs-table {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes rs-map {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.01) rotate(1deg); }
  100% { transform: scale(0.99) rotate(-1deg); }
}
@keyframes rs-candle {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes rs-richard {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  40% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  80% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes rs-shadow {
  0% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(1.2); opacity: 0.7; }
  100% { transform: scaleY(0.8); opacity: 0.6; }
}

.scn-messenger-stanley-denies {
  background: linear-gradient(180deg, #434b5e 0%, #2f3545 40%, #1f2330 100%),
              radial-gradient(ellipse at 50% 0%, #5a647a 0%, transparent 60%);
}
.scn-messenger-stanley-denies .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3d4559 0%, #2a3040 60%, transparent 100%); animation: msd-sky 14s ease-in-out infinite alternate; }
.scn-messenger-stanley-denies .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a3e2c 0%, #212518 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: msd-ground 20s ease-in-out infinite alternate; }
.scn-messenger-stanley-denies .tent { position:absolute; bottom:35%; left:20%; width:120px; height:80px; background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: msd-tent 12s ease-in-out infinite alternate; }
.scn-messenger-stanley-denies .throne { position:absolute; bottom:28%; left:28%; width:60px; height:70px; background: linear-gradient(135deg, #6b5a4a 0%, #3f3328 100%); border-radius: 8% 8% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: msd-throne 8s ease-in-out infinite; }
.scn-messenger-stanley-denies .figure-king { position:absolute; bottom:24%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #1e1e2a 0%, #0d0d14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.4); animation: msd-king 6s ease-in-out infinite; }
.scn-messenger-stanley-denies .figure-messenger { position:absolute; bottom:24%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #15151f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: skewX(-5deg); animation: msd-messenger 4s ease-in-out infinite; }
.scn-messenger-stanley-denies .sword { position:absolute; bottom:26%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #a0a8b0 0%, #606870 100%); border-radius: 2px; transform: rotate(20deg); box-shadow: 0 0 4px rgba(160,168,176,.3); animation: msd-sword 3s ease-in-out infinite; }
.scn-messenger-stanley-denies .standard { position:absolute; bottom:32%; left:16%; width:30px; height:40px; background: linear-gradient(180deg, #704a3a 0%, #4a2c1a 100%); clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%); transform: rotate(-15deg); animation: msd-standard 7s ease-in-out infinite alternate; }
@keyframes msd-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes msd-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes msd-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }
@keyframes msd-throne { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } }
@keyframes msd-king { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes msd-messenger { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-8deg) translateY(-2px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes msd-sword { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(20deg) } }
@keyframes msd-standard { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }

.scn-norfolk-falls {
  background: linear-gradient(180deg, #3a4152 0%, #2b3140 50%, #1a1d2a 100%),
              radial-gradient(ellipse at 50% 100%, #4a5166 0%, transparent 70%);
}
.scn-norfolk-falls .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4b5368 0%, #2e3444 60%, transparent 100%); animation: nf-sky 18s ease-in-out infinite alternate; }
.scn-norfolk-falls .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2c3023 0%, #1a1d12 100%); border-radius: 40% 60% 0 0/50% 70% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); animation: nf-ground 22s ease-in-out infinite alternate; }
.scn-norfolk-falls .figure-norfolk { position:absolute; bottom:30%; left:45%; width:24px; height:55px; background: linear-gradient(180deg, #1e1e2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 3px 0 8px rgba(0,0,0,.5); animation: nf-norfolk 5s ease-in-out infinite; }
.scn-norfolk-falls .fallen-horse { position:absolute; bottom:22%; left:25%; width:60px; height:30px; background: linear-gradient(180deg, #2a2a34 0%, #141420 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: nf-horse 12s ease-in-out infinite; }
.scn-norfolk-falls .spears { position:absolute; bottom:32%; left:5%; width:4px; height:70px; background: linear-gradient(180deg, #80888a 0%, #50585a 100%); transform: rotate(-8deg); box-shadow: 8px 0 0 1px #60686a, 16px 0 0 1px #70787a, -6px 0 0 1px #80888a; animation: nf-spears 3s ease-in-out infinite; }
.scn-norfolk-falls .banner { position:absolute; bottom:38%; left:8%; width:35px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); transform: skewX(-10deg); box-shadow: 0 0 6px rgba(0,0,0,.4); animation: nf-banner 9s ease-in-out infinite alternate; }
.scn-norfolk-falls .dust-cloud { position:absolute; bottom:18%; left:35%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(160,150,130,.3) 0%, transparent 70%); filter: blur(6px); animation: nf-dust 8s ease-in-out infinite; }
.scn-norfolk-falls .dust-cloud.b { left:60%; width:50px; height:15px; animation-delay: -4s; }
@keyframes nf-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes nf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes nf-norfolk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nf-horse { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(8deg) scale(1.02) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes nf-spears { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-8deg) } }
@keyframes nf-banner { 0% { transform: skewX(-10deg) } 50% { transform: skewX(-15deg) scaleY(1.05) } 100% { transform: skewX(-10deg) } }
@keyframes nf-dust { 0% { opacity:.3; transform: scale(1) translateY(0) } 50% { opacity:.6; transform: scale(1.2) translateY(-3px) } 100% { opacity:.3; transform: scale(1) translateY(0) } }

.scn-richard-horse {
  background: linear-gradient(180deg, #3a4052 0%, #252b3a 50%, #12151f 100%),
              radial-gradient(ellipse at 50% 100%, #4a5166 0%, transparent 60%);
}
.scn-richard-horse .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #434b5e 0%, #2a3040 60%, transparent 100%); animation: rh-sky 16s ease-in-out infinite alternate; }
.scn-richard-horse .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2c3023 0%, #141710 100%); border-radius: 30% 70% 0 0/50% 60% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.7); animation: rh-ground 24s ease-in-out infinite alternate; }
.scn-richard-horse .figure-richard { position:absolute; bottom:28%; left:45%; width:22px; height:52px; background: linear-gradient(180deg, #1e1e2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 10px rgba(0,0,0,.6); animation: rh-richard 4s ease-in-out infinite; }
.scn-richard-horse .fallen-horse { position:absolute; bottom:20%; left:55%; width:70px; height:35px; background: linear-gradient(180deg, #2a2a34 0%, #12121c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-15deg); box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: rh-horse 14s ease-in-out infinite; }
.scn-richard-horse .crown { position:absolute; bottom:30%; left:38%; width:16px; height:12px; background: linear-gradient(135deg, #705a3a 0%, #4d3c22 100%); clip-path: polygon(0% 100%, 20% 0%, 50% 40%, 80% 0%, 100% 100%); box-shadow: 0 0 8px rgba(112,90,58,.4); animation: rh-crown 6s ease-in-out infinite; }
.scn-richard-horse .sword { position:absolute; bottom:26%; right:20%; width:4px; height:40px; background: linear-gradient(180deg, #9098a0 0%, #60686a 100%); border-radius: 2px; transform: rotate(-25deg); box-shadow: 0 0 6px rgba(144,152,160,.3); animation: rh-sword 3s ease-in-out infinite; }
.scn-richard-horse .bodies { position:absolute; bottom:15%; left:10%; width:40px; height:20px; background: linear-gradient(180deg, #1a1a24 0%, #0d0d14 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); animation: rh-bodies 20s ease-in-out infinite; }
.scn-richard-horse .bodies.b { left:70%; width:35px; height:18px; animation-delay: -10s; }
@keyframes rh-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes rh-ground { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes rh-richard { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rh-horse { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.03) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes rh-crown { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rh-sword { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-25deg) } }
@keyframes rh-bodies { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-richard-killed {
  background: linear-gradient(180deg, #1a1d2a 0%, #0d0f18 50%, #05060a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3142 0%, transparent 60%);
}
.scn-richard-killed .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1c1f2e 0%, #0e1018 60%, transparent 100%); animation: rk-sky 20s ease-in-out infinite alternate; }
.scn-richard-killed .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1c12 0%, #0a0c06 100%); border-radius: 40% 60% 0 0/30% 50% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.8); animation: rk-ground 26s ease-in-out infinite alternate; }
.scn-richard-killed .figure-richmond { position:absolute; bottom:28%; left:48%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #12121c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 3px 0 10px rgba(0,0,0,.7); animation: rk-richmond 7s ease-in-out infinite; }
.scn-richard-killed .body-richard { position:absolute; bottom:20%; left:38%; width:50px; height:30px; background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(15deg); box-shadow: inset 0 4px 8px rgba(0,0,0,.6); animation: rk-body 15s ease-in-out infinite; }
.scn-richard-killed .crown-broken { position:absolute; bottom:22%; left:35%; width:20px; height:8px; background: linear-gradient(90deg, #705a3a 0%, #4d3c22 50%, #3a2a14 100%); clip-path: polygon(0% 0%, 60% 0%, 40% 100%, 0% 100%); transform: rotate(-20deg); box-shadow: 0 0 6px rgba(112,90,58,.3); animation: rk-crown 9s ease-in-out infinite; }
.scn-richard-killed .banner { position:absolute; bottom:32%; right:15%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); transform: skewX(8deg); box-shadow: 0 0 10px rgba(0,0,0,.5); animation: rk-banner 11s ease-in-out infinite alternate; }
.scn-richard-killed .wreath { position:absolute; bottom:27%; left:55%; width:14px; height:14px; background: radial-gradient(circle, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(42,58,42,.4); animation: rk-wreath 5s ease-in-out infinite; }
@keyframes rk-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes rk-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes rk-richmond { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rk-body { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rk-crown { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes rk-banner { 0% { transform: skewX(8deg) } 50% { transform: skewX(12deg) scaleY(1.05) } 100% { transform: skewX(8deg) } }
@keyframes rk-wreath { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(45deg) } 100% { transform: scale(1) rotate(0) } }

/* hasteings-laments */
.scn-hasteings-laments {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 20% 40%, #b8a060 0%, transparent 70%);
}
.scn-hasteings-laments .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%);
}
.scn-hasteings-laments .window-frame {
  position: absolute; top: 15%; left: 55%; width: 30%; height: 50%;
  border: 8px solid #3a2a1a; border-radius: 4px; background: transparent;
  box-shadow: inset 0 0 0 1000px rgba(0,0,0,0.3);
}
.scn-hasteings-laments .window-view {
  position: absolute; top: 18%; left: 57%; width: 26%; height: 44%;
  background: linear-gradient(180deg, #c4b88a 0%, #a09070 100%);
  animation: hlam-sky 12s ease-in-out infinite alternate;
}
.scn-hasteings-laments .tower-silhouette {
  position: absolute; bottom: 30%; left: 63%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4% 4% 0 0; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: hlam-tower 8s ease-in-out infinite;
}
.scn-hasteings-laments .horse-body {
  position: absolute; bottom: 10%; left: 20%; width: 28%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: hlam-horse-body 4s ease-in-out infinite;
}
.scn-hasteings-laments .horse-leg {
  position: absolute; bottom: 8%; left: 22%; width: 4%; height: 18%;
  background: #2a1a0a; border-radius: 10%;
  animation: hlam-horse-leg 1.5s ease-in-out infinite alternate;
}
.scn-hasteings-laments .lightbeam {
  position: absolute; top: 18%; left: 57%; width: 26%; height: 44%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,230,180,0.15) 30%, transparent 100%);
  transform-origin: 0 0; animation: hlam-beam 6s ease-in-out infinite;
}
.scn-hasteings-laments .dust-mote {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: rgba(200,180,140,0.6); border-radius: 50%;
  box-shadow: 40px -20px 0 2px rgba(200,180,140,0.4), -60px 30px 0 1px rgba(200,180,140,0.3);
  animation: hlam-dust 20s linear infinite;
}
@keyframes hlam-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes hlam-tower {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); }
}
@keyframes hlam-horse-body {
  0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.95) translateY(-2px); }
}
@keyframes hlam-horse-leg {
  0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); }
}
@keyframes hlam-beam {
  0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.05); opacity: 1; } 100% { transform: scaleX(0.95); opacity: 0.9; }
}
@keyframes hlam-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  25% { opacity: 1; }
  100% { transform: translate(100px, -80px) scale(2); opacity: 0; }
}

/* hasteings-curses-margaret */
.scn-hasteings-curses-margaret {
  background: linear-gradient(180deg, #6a5030 0%, #503820 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #c08040 0%, transparent 60%);
}
.scn-hasteings-curses-margaret .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #5a4020 0%, #3a2810 100%);
}
.scn-hasteings-curses-margaret .dinner-table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: hcm-table 10s ease-in-out infinite alternate;
}
.scn-hasteings-curses-margaret .candle {
  position: absolute; bottom: 40%; left: 48%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-hasteings-curses-margaret .candle-glow {
  position: absolute; bottom: 50%; left: 44%; width: 16%; height: 25%;
  background: radial-gradient(circle, #ffd080 0%, #b06020 70%, transparent 100%);
  border-radius: 50%; opacity: 0.6; animation: hcm-glow 3s ease-in-out infinite alternate;
}
.scn-hasteings-curses-margaret .kneeling-figure {
  position: absolute; bottom: 18%; left: 40%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center; animation: hcm-kneel 5s ease-in-out infinite;
}
.scn-hasteings-curses-margaret .shadow-priest {
  position: absolute; bottom: 18%; right: 30%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  opacity: 0.8; animation: hcm-priest 7s ease-in-out infinite;
}
.scn-hasteings-curses-margaret .crucifix {
  position: absolute; bottom: 45%; left: 50%; width: 4%; height: 12%;
  background: #5a3a1a; transform: translateX(-50%);
}
@keyframes hcm-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); }
}
@keyframes hcm-glow {
  0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); }
}
@keyframes hcm-kneel {
  0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hcm-priest {
  0% { transform: translateY(0) scale(1); } 33% { transform: translateY(-4px) scale(1.02); } 66% { transform: translateY(2px) scale(0.98); } 100% { transform: translateY(0) scale(1); }
}

/* hasteings-led-off */
.scn-hasteings-led-off {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0000 100%),
              radial-gradient(ellipse at 30% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-hasteings-led-off .bg-dungeon {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%);
}
.scn-hasteings-led-off .execution-block {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px; transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: hled-block 8s ease-in-out infinite alternate;
}
.scn-hasteings-led-off .axe {
  position: absolute; bottom: 28%; left: 50%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 40% 40%; transform: translateX(-50%) rotate(-5deg);
  transform-origin: bottom center;
  animation: hled-axe 4s ease-in-out infinite;
}
.scn-hasteings-led-off .figure-walking {
  position: absolute; bottom: 18%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hled-walk 6s ease-in-out infinite;
}
.scn-hasteings-led-off .chain-left {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 30%;
  background: #5a3a2a; border-radius: 2px;
  animation: hled-chain 3s ease-in-out infinite alternate;
}
.scn-hasteings-led-off .chain-right {
  position: absolute; top: 10%; left: 76%; width: 4px; height: 30%;
  background: #5a3a2a; border-radius: 2px;
  animation: hled-chain 3.5s ease-in-out infinite alternate-reverse;
}
.scn-hasteings-led-off .torch-flame {
  position: absolute; top: 5%; left: 15%; width: 8%; height: 12%;
  background: radial-gradient(ellipse, #ff8020 0%, #b04010 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: hled-torch 2s ease-in-out infinite alternate;
}
.scn-hasteings-led-off .torch-glow {
  position: absolute; top: 2%; left: 10%; width: 18%; height: 20%;
  background: radial-gradient(circle, rgba(255,128,32,0.3) 0%, transparent 100%);
  animation: hled-glow 3s ease-in-out infinite alternate;
}
@keyframes hled-block {
  0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(1px); }
}
@keyframes hled-axe {
  0% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 25% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(0); } 75% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); }
}
@keyframes hled-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 40% { transform: translateX(20px) translateY(0) rotate(0deg); } 60% { transform: translateX(30px) translateY(-2px) rotate(-2deg); } 80% { transform: translateX(40px) translateY(0) rotate(0deg); } 100% { transform: translateX(50px) translateY(0) rotate(0deg); }
}
@keyframes hled-chain {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hled-torch {
  0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes hled-glow {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; }
}

/* richard-and-buckingham-act */
.scn-richard-and-buckingham-act {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #00000a 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 80%);
}
.scn-richard-and-buckingham-act .bg-dim {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-richard-and-buckingham-act .candle-stick {
  position: absolute; bottom: 20%; left: 50%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%; transform: translateX(-50%);
}
.scn-richard-and-buckingham-act .candle-flame {
  position: absolute; bottom: 36%; left: 50%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 50%, transparent 100%);
  transform: translateX(-50%); border-radius: 50%;
  animation: rab-flame 2s ease-in-out infinite alternate;
}
.scn-richard-and-buckingham-act .figure-richard {
  position: absolute; bottom: 10%; left: 28%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rab-fig1 6s ease-in-out infinite;
}
.scn-richard-and-buckingham-act .figure-buckingham {
  position: absolute; bottom: 10%; left: 54%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rab-fig2 6s ease-in-out infinite 1s;
}
.scn-richard-and-buckingham-act .shadow-richard {
  position: absolute; bottom: 0; left: 20%; width: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: rab-shadow1 4s ease-in-out infinite alternate;
}
.scn-richard-and-buckingham-act .shadow-buckingham {
  position: absolute; bottom: 0; left: 50%; width: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: rab-shadow2 4s ease-in-out infinite alternate-reverse;
}
@keyframes rab-flame {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.7; }
  25% { transform: translateX(-48%) scale(1.1) rotate(3deg); opacity: 1; }
  50% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.8; }
  75% { transform: translateX(-52%) scale(1.05) rotate(-3deg); opacity: 0.9; }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.7; }
}
@keyframes rab-fig1 {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg) scale(1.01); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg) scale(0.99); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rab-fig2 {
  0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(-1deg); } 40% { transform: translateY(0) rotate(0deg); } 60% { transform: translateY(-5px) rotate(3deg) scale(1.02); } 80% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rab-shadow1 {
  0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.6; } 100% { transform: scale(0.95); opacity: 0.3; }
}
@keyframes rab-shadow2 {
  0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(0.9); opacity: 0.5; } 100% { transform: scale(1.05); opacity: 0.3; }
}

.scn-richard-promises { background: linear-gradient(180deg, #f7e4b3 0%, #d4a75a 40%, #8c6a3a 100%), radial-gradient(ellipse at 50% 30%, #fff8d0 0%, transparent 80%); position: relative; overflow: hidden; }
.scn-richard-promises .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8ab4d8 0%, transparent 100%); animation: rp-sky 10s ease-in-out infinite alternate; }
.scn-richard-promises .sun { position:absolute; top:10%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #fff8d0 0%, #f0c040 50%, transparent 70%); border-radius:50%; animation: rp-sun 4s ease-in-out infinite alternate; }
.scn-richard-promises .figure { position:absolute; bottom:15%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rp-figure 3s ease-in-out infinite; }
.scn-richard-promises .arm { position:absolute; bottom:25%; left:38%; width:4px; height:20px; background: #1a2a3a; border-radius:2px; transform-origin: bottom center; animation: rp-arm 2s ease-in-out infinite alternate; }
.scn-richard-promises .shadow { position:absolute; bottom:12%; left:20%; width:60px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(3px); transform-origin: center; animation: rp-shadow 3s ease-in-out infinite alternate; }
.scn-richard-promises .garland { position:absolute; bottom:30%; right:20%; width:40px; height:10px; background: linear-gradient(90deg, #b87878 0%, #c8553d 100%); border-radius:5px; filter:blur(2px); animation: rp-garland 4s ease-in-out infinite alternate; }
.scn-richard-promises .dust { position:absolute; top:20%; left:40%; width:4px; height:4px; background: #fff8d0; border-radius:50%; box-shadow: 10px 20px 6px #fff8d0, -5px -10px 4px #fff8d0; animation: rp-dust 8s linear infinite; }
@keyframes rp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rp-sun { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.05) } 100% { transform:translateX(-50%) scale(0.95) } }
@keyframes rp-figure { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes rp-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-10deg) } }
@keyframes rp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) skewX(2deg) } 100% { transform: scaleX(1) } }
@keyframes rp-garland { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rp-dust { 0% { transform: translate(0,0); opacity:0 } 50% { transform: translate(20px,-15px); opacity:0.7 } 100% { transform: translate(40px,-30px); opacity:0 } }

.scn-richard-continues { background: linear-gradient(135deg, #fae3b3 0%, #d9b56a 50%, #a37845 100%), radial-gradient(ellipse at 30% 50%, #fff5d0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-richard-continues .arch-left { position:absolute; left:-5%; bottom:0; width:40%; height:80%; background: linear-gradient(180deg, #a37845 0%, #7a5830 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,0.3); animation: rc-arch 6s ease-in-out infinite alternate; }
.scn-richard-continues .arch-right { position:absolute; right:-5%; bottom:0; width:40%; height:80%; background: linear-gradient(180deg, #a37845 0%, #7a5830 100%); border-radius: 0 40% 0 0 / 0 60% 0 0; box-shadow: inset 5px 0 10px rgba(0,0,0,0.3); animation: rc-arch 6s ease-in-out infinite alternate-reverse; }
.scn-richard-continues .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8c6a3a 0%, #5a4420 100%); animation: rc-floor 4s ease-in-out infinite alternate; }
.scn-richard-continues .king { position:absolute; bottom:18%; left:38%; width:24px; height:55px; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rc-king 3s ease-in-out infinite; }
.scn-richard-continues .queen { position:absolute; bottom:20%; right:38%; width:22px; height:50px; background: linear-gradient(180deg, #b87878 0%, #702243 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rc-queen 4s ease-in-out infinite; }
.scn-richard-continues .light-ray { position:absolute; top:5%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, rgba(255,248,208,0.4) 0%, transparent 100%); transform: rotate(-15deg); border-radius:50%; filter:blur(5px); animation: rc-light 5s ease-in-out infinite alternate; }
.scn-richard-continues .crown { position:absolute; top:22%; left:44%; width:20px; height:10px; background: linear-gradient(90deg, #c8553d 0%, #e0b86a 50%, #c8553d 100%); border-radius:2px; animation: rc-crown 2s ease-in-out infinite alternate; }
@keyframes rc-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes rc-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rc-king { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rc-queen { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rc-light { 0% { opacity:0.4; transform: rotate(-15deg) } 50% { opacity:0.8; transform: rotate(-10deg) } 100% { opacity:0.5; transform: rotate(-15deg) } }
@keyframes rc-crown { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) } }

.scn-richard-concludes { background: linear-gradient(180deg, #fbe5b0 0%, #e0b86a 40%, #8c6a3a 100%), radial-gradient(ellipse at 70% 40%, #fffac0 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-richard-concludes .arm { position:absolute; bottom:30%; left:35%; width:8px; height:35px; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius:4px; transform-origin: bottom center; animation: rco-arm 2s ease-in-out infinite alternate; }
.scn-richard-concludes .sword { position:absolute; bottom:44%; left:38%; width:28px; height:6px; background: linear-gradient(90deg, #8ab4d8 0%, #b8c8d8 50%, #8ab4d8 100%); border-radius:3px; transform-origin: left center; animation: rco-sword 2s ease-in-out infinite alternate; }
.scn-richard-concludes .garland { position:absolute; top:10%; right:15%; width:50px; height:12px; background: linear-gradient(90deg, #c8553d 0%, #e0b86a 50%, #b87878 100%); border-radius:6px; filter:blur(3px); animation: rco-garland 4s ease-in-out infinite alternate; }
.scn-richard-concludes .shadow-arm { position:absolute; bottom:28%; left:30%; width:50px; height:12px; background: rgba(0,0,0,0.2); border-radius:50%; filter:blur(4px); transform-origin: center; animation: rco-shadow-arm 2s ease-in-out infinite alternate; }
.scn-richard-concludes .sparks { position:absolute; top:20%; left:45%; width:6px; height:6px; background: #fff8d0; border-radius:50%; box-shadow: 10px -10px 3px #fff8d0, -5px 8px 2px #f0c040; animation: rco-sparks 3s ease-in-out infinite; }
.scn-richard-concludes .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4420 0%, #3a2a1a 100%); animation: rco-ground 1s ease-in-out infinite alternate; }
@keyframes rco-arm { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(15deg) translateX(6px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes rco-sword { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes rco-garland { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rco-shadow-arm { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) skewX(3deg) } 100% { transform: scaleX(1) } }
@keyframes rco-sparks { 0% { opacity:0; transform: translate(0,0) } 50% { opacity:1; transform: translate(-5px,-10px) scale(1.3) } 100% { opacity:0; transform: translate(10px,-20px) scale(0.8) } }
@keyframes rco-ground { 0% { transform: translateY(0) } 100% { transform: translateY(1px) } }

.scn-elizabeth-still-doubtful { background: linear-gradient(180deg, #f4dcb0 0%, #c69e5a 50%, #7a5830 100%), radial-gradient(circle at 80% 20%, #fffce0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-elizabeth-still-doubtful .head { position:absolute; bottom:40%; left:50%; width:28px; height:34px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: esd-head 3s ease-in-out infinite; }
.scn-elizabeth-still-doubtful .shoulder { position:absolute; bottom:22%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #b87878 0%, #702243 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: esd-shoulder 4s ease-in-out infinite alternate; }
.scn-elizabeth-still-doubtful .crown { position:absolute; top:30%; left:50%; width:24px; height:12px; transform:translateX(-50%); background: linear-gradient(90deg, #c8553d 0%, #e0b86a 50%, #c8553d 100%); border-radius:2px; animation: esd-crown 2s ease-in-out infinite alternate; }
.scn-elizabeth-still-doubtful .hand { position:absolute; bottom:35%; left:42%; width:8px; height:14px; background: #1a2a3a; border-radius:4px; transform-origin: bottom center; animation: esd-hand 3s ease-in-out infinite alternate; }
.scn-elizabeth-still-doubtful .shadow-fall { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 80%); animation: esd-shadow-fall 5s ease-in-out infinite alternate; }
.scn-elizabeth-still-doubtful .tear { position:absolute; bottom:50%; left:52%; width:4px; height:6px; background: #8ab4d8; border-radius:50%; animation: esd-tear 4s ease-in-out infinite; }
.scn-elizabeth-still-doubtful .veil { position:absolute; top:38%; left:45%; width:30px; height:20px; background: rgba(255,255,255,0.15); border-radius:50%; filter:blur(4px); animation: esd-veil 6s ease-in-out infinite alternate; }
@keyframes esd-head { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(3deg) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes esd-shoulder { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes esd-crown { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) rotate(5deg) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes esd-hand { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes esd-shadow-fall { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes esd-tear { 0% { opacity:0; transform: translate(0,0) } 50% { opacity:0.8; transform: translate(2px,8px) scale(1.2) } 100% { opacity:0; transform: translate(4px,16px) } }
@keyframes esd-veil { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(-3deg) scale(0.95) } }

/* richmond-awakes - calm, dark bedroom */
.scn-richmond-awakes {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-richmond-awakes .bed {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 36%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: ra-bed 8s ease-in-out infinite alternate;
}
.scn-richmond-awakes .figure {
  position: absolute; bottom: 18%; left: 30%; width: 28%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-figure 6s ease-in-out infinite alternate;
}
.scn-richmond-awakes .pillow {
  position: absolute; bottom: 30%; left: 36%; width: 12%; height: 8%;
  background: radial-gradient(circle, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ra-pillow 6s ease-in-out infinite alternate;
}
.scn-richmond-awakes .window {
  position: absolute; top: 10%; right: 15%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4%;
  box-shadow: inset 0 0 8px #4a6a8a, 0 0 4px rgba(0,0,0,.5);
  animation: ra-window 12s ease-in-out infinite alternate;
}
.scn-richmond-awakes .moonlight {
  position: absolute; top: 10%; right: 15%; width: 18%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,210,240,.15) 0%, transparent 70%);
  border-radius: 4%;
  animation: ra-moonlight 12s ease-in-out infinite alternate;
}
.scn-richmond-awakes .curtain {
  position: absolute; top: 8%; width: 8%; height: 34%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 20% 20% 4% / 10% 40% 40% 10%;
  animation: ra-curtain 10s ease-in-out infinite alternate;
}
.scn-richmond-awakes .curtain.left { left: 14%; }
.scn-richmond-awakes .curtain.right { right: 14%; }
@keyframes ra-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(1px); } }
@keyframes ra-figure { 0% { transform: translateY(0) rotate(0deg); opacity: .6; } 50% { transform: translateY(-2px) rotate(2deg); opacity: .8; } 100% { transform: translateY(1px) rotate(-1deg); opacity: .7; } }
@keyframes ra-pillow { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }
@keyframes ra-window { 0% { background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%); box-shadow: inset 0 0 8px #4a6a8a; } 50% { background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3e 100%); box-shadow: inset 0 0 12px #6a8aaa; } 100% { background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%); box-shadow: inset 0 0 8px #4a6a8a; } }
@keyframes ra-moonlight { 0% { opacity: .1; } 50% { opacity: .25; } 100% { opacity: .15; } }
@keyframes ra-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1.05); } }

/* richmond-oration-to-soldiers - tense, dawn */
.scn-richmond-oration-to-soldiers {
  background: linear-gradient(180deg, #d4a06a 0%, #b88050 30%, #8a6040 60%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 0%, #ffd4a0 0%, transparent 60%);
}
.scn-richmond-oration-to-soldiers .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4a06a 0%, #f0d0a0 20%, #b88050 50%, transparent 100%);
  animation: ros-sky 15s ease-in-out infinite alternate;
}
.scn-richmond-oration-to-soldiers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-richmond-oration-to-soldiers .hill {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ros-hill 8s ease-in-out infinite alternate;
}
.scn-richmond-oration-to-soldiers .figure {
  position: absolute; bottom: 38%; left: 44%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ros-figure 3s ease-in-out infinite;
}
.scn-richmond-oration-to-soldiers .spear-row {
  position: absolute; bottom: 34%; left: 30%; width: 40%; height: 30%;
  background: repeating-linear-gradient(90deg, transparent 0% 4%, #5a3a2a 4% 5%, transparent 5% 8%);
  mask: linear-gradient(0deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: ros-spears 2s ease-in-out infinite alternate;
}
.scn-richmond-oration-to-soldiers .banner {
  position: absolute; bottom: 46%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4% 20% 20% 4%;
  transform-origin: bottom center;
  animation: ros-banner 3s ease-in-out infinite alternate;
}
.scn-richmond-oration-to-soldiers .banner.left { left: 38%; }
.scn-richmond-oration-to-soldiers .banner.right { right: 38%; animation-delay: -1s; }
.scn-richmond-oration-to-soldiers .soldiers {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: repeating-linear-gradient(90deg, #2a1a0a 0% 3%, transparent 3% 6%);
  mask: linear-gradient(0deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
  filter: blur(1px);
  animation: ros-soldiers 4s ease-in-out infinite alternate;
}
@keyframes ros-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ros-hill { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes ros-figure { 0% { transform: translateX(-2px) rotate(-2deg); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ros-spears { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ros-banner { 0% { transform: skewX(-3deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(-2deg); } }
@keyframes ros-soldiers { 0% { transform: translateY(0); opacity: .3; } 50% { transform: translateY(-2px); opacity: .5; } 100% { transform: translateY(0); opacity: .4; } }

/* richard-survey - tense, dawn */
.scn-richard-survey {
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 30%, #5a4a3a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-richard-survey .dawn-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8b090 0%, #e8c8a0 20%, #a08868 50%, transparent 100%);
  animation: rs-sky 18s ease-in-out infinite alternate;
}
.scn-richard-survey .ridge-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
  animation: rs-ridge-back 12s ease-in-out infinite alternate;
}
.scn-richard-survey .ridge-fore {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 60% 0 0 / 80% 90% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.5);
  animation: rs-ridge-fore 15s ease-in-out infinite alternate;
}
.scn-richard-survey .figure {
  position: absolute; bottom: 28%; left: 42%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure 4s ease-in-out infinite;
}
.scn-richard-survey .cloak {
  position: absolute; bottom: 30%; left: 40%; width: 14%; height: 18%;
  background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 60%, #1a0a0a 100%);
  border-radius: 50% 20% 40% 40% / 50% 30% 60% 60%;
  transform-origin: top center;
  animation: rs-cloak 3s ease-in-out infinite alternate;
}
.scn-richard-survey .tent {
  position: absolute; bottom: 24%; right: 18%; width: 16%; height: 16%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: rs-tent 8s ease-in-out infinite alternate;
}
.scn-richard-survey .campfire {
  position: absolute; bottom: 20%; right: 32%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ffa060 0%, #ff8040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffa060;
  animation: rs-campfire 2s ease-in-out infinite alternate;
}
@keyframes rs-sky { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes rs-ridge-back { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes rs-ridge-fore { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes rs-figure { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rs-cloak { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.05); } 100% { transform: rotate(-2deg) scaleX(0.95); } }
@keyframes rs-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes rs-campfire { 0% { transform: scale(1); opacity: .6; box-shadow: 0 0 16px 6px #ffa060; } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 24px 10px #ffa060; } 100% { transform: scale(0.9); opacity: .7; box-shadow: 0 0 12px 4px #ffa060; } }

/* richard-laments-sun - dark, overcast */
.scn-richard-laments-sun {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 70%);
}
.scn-richard-laments-sun .overcast-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 60%, transparent 100%);
  animation: rls-sky 20s ease-in-out infinite alternate;
}
.scn-richard-laments-sun .horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  filter: blur(2px);
}
.scn-richard-laments-sun .ground-mid {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: rls-ground 15s ease-in-out infinite alternate;
}
.scn-richard-laments-sun .figure {
  position: absolute; bottom: 20%; left: 44%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rls-figure 5s ease-in-out infinite;
}
.scn-richard-laments-sun .cloak {
  position: absolute; bottom: 22%; left: 40%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a14 100%);
  border-radius: 50% 20% 40% 40% / 50% 30% 60% 60%;
  transform-origin: top center;
  animation: rls-cloak 4s ease-in-out infinite alternate;
}
.scn-richard-laments-sun .cloud {
  position: absolute; top: 10%; width: 40%; height: 12%;
  background: linear-gradient(180deg, rgba(80,80,90,.5) 0%, rgba(60,60,70,.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rls-cloud 35s linear infinite;
}
.scn-richard-laments-sun .cloud.bank-a { left: -10%; animation-duration: 35s; }
.scn-richard-laments-sun .cloud.bank-b { top: 18%; left: 30%; width: 30%; height: 8%; animation-duration: 45s; animation-delay: -10s; animation-direction: reverse; }
@keyframes rls-sky { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .5; } }
@keyframes rls-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes rls-figure { 0% { transform: translateY(0) rotate(-2deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rls-cloak { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(4deg) scaleX(1.08); } 100% { transform: rotate(-3deg) scaleX(0.92); } }
@keyframes rls-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-murderers-conscience-outcast {
  background: linear-gradient(180deg, #1a1015 0%, #2d1a1f 40%, #1a0d0e 70%, #0f0809 100%),
              radial-gradient(ellipse at 50% 20%, #3a2028 0%, transparent 70%);
}
.scn-murderers-conscience-outcast .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, #0d0708 100%);
  animation: mc1-bg 8s ease-in-out infinite;
}
.scn-murderers-conscience-outcast .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #3a252a 0%, #1a0e12 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mc1-wall 15s ease-in-out infinite alternate;
}
.scn-murderers-conscience-outcast .figure-large {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2c1f1f 0%, #140b0b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc1-large 4s ease-in-out infinite;
}
.scn-murderers-conscience-outcast .figure-small {
  position: absolute; bottom: 18%; left: 55%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1515 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc1-small 6s ease-in-out infinite alternate;
}
.scn-murderers-conscience-outcast .lantern {
  position: absolute; bottom: 45%; left: 15%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0b060 0%, #b07030 70%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,140,60,0.5), 0 0 40px 12px rgba(200,140,60,0.2);
  animation: mc1-lantern 3s ease-in-out infinite alternate;
}
.scn-murderers-conscience-outcast .sword {
  position: absolute; bottom: 28%; left: 25%; width: 3px; height: 35px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(15deg);
  animation: mc1-sword 5s ease-in-out infinite;
}
.scn-murderers-conscience-outcast .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}

@keyframes mc1-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mc1-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mc1-large { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(-2px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes mc1-small { 0% { transform: translateX(0) scaleY(1) rotate(0deg); } 50% { transform: translateX(-5px) scaleY(0.95) rotate(3deg); } 100% { transform: translateX(0) scaleY(1) rotate(0deg); } }
@keyframes mc1-lantern { 0% { opacity: 0.8; transform: scale(1) rotate(-5deg); } 50% { opacity: 1; transform: scale(1.1) rotate(5deg); } 100% { opacity: 0.9; transform: scale(0.95) rotate(0deg); } }
@keyframes mc1-sword { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-murderers-plot-method {
  background: linear-gradient(180deg, #1c1417 0%, #2a1a1d 30%, #1a0e0e 70%, #0f0808 100%),
              radial-gradient(ellipse at 30% 50%, #3a1e1e 0%, transparent 60%);
}
.scn-murderers-plot-method .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1d 0%, #150b0d 100%);
  animation: mp2-backdrop 12s ease-in-out infinite alternate;
}
.scn-murderers-plot-method .barrel {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: mp2-barrel 8s ease-in-out infinite;
}
.scn-murderers-plot-method .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30px;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.4);
  animation: mp2-table 15s ease-in-out infinite alternate;
}
.scn-murderers-plot-method .sword {
  position: absolute; bottom: 28%; left: 40%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-20deg);
  transform-origin: bottom;
  animation: mp2-sword 4s ease-in-out infinite alternate;
}
.scn-murderers-plot-method .cup {
  position: absolute; bottom: 22%; left: 60%; width: 12px; height: 15px;
  background: radial-gradient(circle at 50% 30%, #b08050 0%, #6a4520 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mp2-cup 6s ease-in-out infinite;
}
.scn-murderers-plot-method .figure-left {
  position: absolute; bottom: 10%; left: 10%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #2a1c1c 0%, #140a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp2-fig-l 7s ease-in-out infinite;
}
.scn-murderers-plot-method .figure-right {
  position: absolute; bottom: 10%; right: 10%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #2a1c1c 0%, #140a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp2-fig-r 7s ease-in-out infinite 1s;
}

@keyframes mp2-backdrop { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mp2-barrel { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(2deg); } 60% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mp2-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mp2-sword { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes mp2-cup { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-10deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mp2-fig-l { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-1px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes mp2-fig-r { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }

.scn-clarence-wakes {
  background: linear-gradient(180deg, #101218 0%, #1a1a2a 35%, #0e0e14 70%, #050508 100%),
              radial-gradient(ellipse at 50% 60%, #1e2030 0%, transparent 60%);
}
.scn-clarence-wakes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a22 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: cw3-floor 20s ease-in-out infinite alternate;
}
.scn-clarence-wakes .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #1a1c2e 0%, #0e0f18 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: cw3-wall 10s ease-in-out infinite alternate;
}
.scn-clarence-wakes .figure-clarence {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #20202a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw3-clarence 5s ease-in-out infinite;
}
.scn-clarence-wakes .figure-keeper {
  position: absolute; bottom: 15%; right: 15%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw3-keeper 7s ease-in-out infinite 2s;
}
.scn-clarence-wakes .wine-cup {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #d0b080 0%, #8a6040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cw3-cup 4s ease-in-out infinite alternate;
}
.scn-clarence-wakes .chains {
  position: absolute; bottom: 30%; left: 25%; width: 2px; height: 30px;
  background: #5a5a6a;
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cw3-chains 3s ease-in-out infinite;
}
.scn-clarence-wakes .window {
  position: absolute; top: 15%; left: 10%; width: 20px; height: 30px;
  background: radial-gradient(circle, #2a2a4a 0%, #10102a 100%);
  border: 2px solid #3a3a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 0 1px #4a4a5a;
  animation: cw3-window 12s ease-in-out infinite alternate;
}

@keyframes cw3-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cw3-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cw3-clarence { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes cw3-keeper { 0% { transform: translateY(0) scaleY(1); } 40% { transform: translateY(-4px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cw3-cup { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-8deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cw3-chains { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes cw3-window { 0% { opacity: 0.3; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); } 50% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 100% { opacity: 0.3; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); } }

.scn-clarence-pleads {
  background: linear-gradient(180deg, #141018 0%, #1a1a2a 30%, #0e0a10 70%, #080508 100%),
              radial-gradient(ellipse at 50% 40%, #2a1a2e 0%, transparent 50%);
}
.scn-clarence-pleads .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1620 0%, #0e0c10 100%);
  animation: cp4-bg 10s ease-in-out infinite alternate;
}
.scn-clarence-pleads .figure-pleading {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp4-pleading 5s ease-in-out infinite;
}
.scn-clarence-pleads .murderer1 {
  position: absolute; bottom: 15%; left: 12%; width: 35px; height: 68px;
  background: linear-gradient(180deg, #1c1a22 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp4-murderer1 6s ease-in-out infinite;
}
.scn-clarence-pleads .murderer2 {
  position: absolute; bottom: 15%; right: 12%; width: 35px; height: 68px;
  background: linear-gradient(180deg, #1c1a22 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp4-murderer2 6s ease-in-out infinite 1.5s;
}
.scn-clarence-pleads .torch {
  position: absolute; top: 20%; left: 50%; width: 10px; height: 30px;
  background: radial-gradient(circle at 50% 10%, #e0a040 0%, #8a5020 50%, transparent 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,120,40,0.4);
  animation: cp4-torch 2s ease-in-out infinite alternate;
}
.scn-clarence-pleads .sword {
  position: absolute; bottom: 25%; left: 20%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(10deg);
  transform-origin: bottom;
  animation: cp4-sword 4s ease-in-out infinite alternate;
}
.scn-clarence-pleads .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0e 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: cp4-floor 15s ease-in-out infinite alternate;
}

@keyframes cp4-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cp4-pleading { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 80% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cp4-murderer1 { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cp4-murderer2 { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cp4-torch { 0% { opacity: 0.7; transform: scaleX(1) rotate(-10deg); } 50% { opacity: 1; transform: scaleX(1.2) rotate(0deg); } 100% { opacity: 0.8; transform: scaleX(0.9) rotate(10deg); } }
@keyframes cp4-sword { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes cp4-floor { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* queen-sits-on-ground */
.scn-queen-sits-on-ground {
  background: linear-gradient(180deg, #1a1625 0%, #2a1f30 40%, #1e1220 100%),
              radial-gradient(ellipse at 50% 30%, #34303e 0%, transparent 70%);
}
.scn-queen-sits-on-ground .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #2a2335 0%, #1e1828 100%); border-radius: 0 0 60% 40% / 0 0 20% 15%; }
.scn-queen-sits-on-ground .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1220 0%, #2a2030 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-queen-sits-on-ground .window { position:absolute; top:15%; left:10%; width:40%; height:45%; background: linear-gradient(180deg, #2a3a50 0%, #1a2a40 100%); border-radius: 10% / 5%; box-shadow: inset 0 0 30px rgba(0,20,40,.8); animation: qs-window 20s ease-in-out infinite alternate; }
.scn-queen-sits-on-ground .candle { position:absolute; bottom:40%; right:20%; width:8px; height:20px; background: linear-gradient(180deg, #d4a060 0%, #a08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(200,150,80,.4); animation: qs-candle 4s ease-in-out infinite alternate; }
.scn-queen-sits-on-ground .figure { position:absolute; bottom:25%; left:50%; width:40px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1f30 0%, #1a1220 100%); border-radius: 40% 40% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: qs-figure 6s ease-in-out infinite; }
.scn-queen-sits-on-ground .crown { position:absolute; bottom:65%; left:48%; width:20px; height:8px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(0% 100%, 10% 20%, 20% 0%, 30% 20%, 40% 0%, 50% 20%, 60% 0%, 70% 20%, 80% 0%, 90% 20%, 100% 100%); animation: qs-crown 10s ease-in-out infinite; }
.scn-queen-sits-on-ground .shadow { position:absolute; bottom:20%; left:40%; width:80px; height:15px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(6px); animation: qs-shadow 7s ease-in-out infinite alternate; }
.scn-queen-sits-on-ground .dust { position:absolute; width:4px; height:4px; background: rgba(220,200,180,.3); border-radius: 50%; filter: blur(2px); }
.scn-queen-sits-on-ground .particle-a { top:30%; left:20%; animation: qs-dust-a 40s linear infinite; }
.scn-queen-sits-on-ground .particle-b { top:50%; left:70%; animation: qs-dust-b 35s linear infinite reverse; }
@keyframes qs-window { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.7; transform: scaleY(0.98); } }
@keyframes qs-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 15px 6px rgba(200,150,80,.3); } 50% { transform: scaleY(1.1) rotate(1deg); box-shadow: 0 0 25px 10px rgba(200,150,80,.5); } 100% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 15px 6px rgba(200,150,80,.3); } }
@keyframes qs-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes qs-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes qs-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.4; } 50% { transform: scaleX(1.1) translateX(5px); opacity:.6; } 100% { transform: scaleX(1) translateX(0); opacity:.4; } }
@keyframes qs-dust-a { 0% { transform: translate(0,0) scale(1); opacity:.3; } 25% { transform: translate(20px,-10px) scale(1.2); opacity:.5; } 50% { transform: translate(40px,5px) scale(0.8); opacity:.3; } 75% { transform: translate(60px,-5px) scale(1.1); opacity:.4; } 100% { transform: translate(80px,0) scale(1); opacity:.3; } }
@keyframes qs-dust-b { 0% { transform: translate(0,0) scale(1); opacity:.3; } 25% { transform: translate(-15px,-12px) scale(1.3); opacity:.5; } 50% { transform: translate(-30px,8px) scale(0.7); opacity:.3; } 75% { transform: translate(-45px,-6px) scale(1.2); opacity:.4; } 100% { transform: translate(-60px,0) scale(1); opacity:.3; } }

/* margaret-sits-beside */
.scn-margaret-sits-beside {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2238 40%, #1a1425 100%),
              radial-gradient(ellipse at 40% 20%, #3a3048 0%, transparent 60%);
}
.scn-margaret-sits-beside .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2e263a 0%, #221c30 100%); border-radius: 0 0 50% 40% / 0 0 15% 10%; }
.scn-margaret-sits-beside .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1425 0%, #2a2038 100%); box-shadow: inset 0 8px 25px rgba(0,0,0,.5); }
.scn-margaret-sits-beside .window { position:absolute; top:20%; right:15%; width:30%; height:40%; background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3e 100%); border-radius: 8% / 4%; box-shadow: inset 0 0 20px rgba(0,20,40,.7); animation: ms-window 25s ease-in-out infinite alternate; }
.scn-margaret-sits-beside .candle { position:absolute; bottom:38%; left:15%; width:6px; height:18px; background: linear-gradient(180deg, #c89858 0%, #a07838 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 18px 6px rgba(200,150,80,.4); animation: ms-candle 5s ease-in-out infinite alternate; }
.scn-margaret-sits-beside .figure-left { position:absolute; bottom:22%; left:28%; width:36px; height:65px; background: linear-gradient(180deg, #2a203a 0%, #1a1428 100%); border-radius: 45% 45% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 6px 18px rgba(0,0,0,.6); animation: ms-figure-l 8s ease-in-out infinite; }
.scn-margaret-sits-beside .figure-right { position:absolute; bottom:22%; left:52%; width:36px; height:65px; background: linear-gradient(180deg, #302640 0%, #201830 100%); border-radius: 45% 45% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 6px 18px rgba(0,0,0,.6); animation: ms-figure-r 8s ease-in-out infinite 2s; }
.scn-margaret-sits-beside .shadow { position:absolute; bottom:18%; left:25%; width:100px; height:12px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(5px); animation: ms-shadow 9s ease-in-out infinite alternate; }
.scn-margaret-sits-beside .dust { position:absolute; width:3px; height:3px; background: rgba(210,190,170,.25); border-radius: 50%; filter: blur(2px); }
.scn-margaret-sits-beside .particle-a { top:40%; left:60%; animation: ms-dust-a 45s linear infinite; }
.scn-margaret-sits-beside .particle-b { top:25%; right:30%; animation: ms-dust-b 30s linear infinite reverse; }
@keyframes ms-window { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:.8; transform: scaleY(1.03); } 100% { opacity:.6; transform: scaleY(0.97); } }
@keyframes ms-candle { 0% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 12px 5px rgba(200,150,80,.3); } 50% { transform: scaleY(1.08) rotate(2deg); box-shadow: 0 0 22px 9px rgba(200,150,80,.5); } 100% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 12px 5px rgba(200,150,80,.3); } }
@keyframes ms-figure-l { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ms-figure-r { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ms-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.3; } 50% { transform: scaleX(1.15) translateX(6px); opacity:.5; } 100% { transform: scaleX(1) translateX(0); opacity:.3; } }
@keyframes ms-dust-a { 0% { transform: translate(0,0) scale(1); opacity:.25; } 25% { transform: translate(15px,-8px) scale(1.2); opacity:.45; } 50% { transform: translate(30px,4px) scale(0.8); opacity:.25; } 75% { transform: translate(45px,-4px) scale(1.1); opacity:.4; } 100% { transform: translate(60px,0) scale(1); opacity:.25; } }
@keyframes ms-dust-b { 0% { transform: translate(0,0) scale(1); opacity:.2; } 25% { transform: translate(-12px,-10px) scale(1.3); opacity:.5; } 50% { transform: translate(-24px,6px) scale(0.7); opacity:.3; } 75% { transform: translate(-36px,-5px) scale(1.2); opacity:.35; } 100% { transform: translate(-48px,0) scale(1); opacity:.2; } }

/* duchess-joins */
.scn-duchess-joins {
  background: linear-gradient(180deg, #1c182a 0%, #2a2238 35%, #1e1628 100%),
              radial-gradient(ellipse at 50% 10%, #3a3248 0%, transparent 70%);
}
.scn-duchess-joins .wall { position:absolute; inset:0 0 28% 0; background: linear-gradient(135deg, #2e263a 0%, #221a2e 100%); border-radius: 0 0 40% 30% / 0 0 12% 8%; }
.scn-duchess-joins .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #1a1225 0%, #2a2038 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-duchess-joins .window { position:absolute; top:18%; left:50%; width:25%; height:35%; transform: translateX(-50%); background: linear-gradient(180deg, #2a3850 0%, #1a2840 100%); border-radius: 10% / 5%; box-shadow: inset 0 0 25px rgba(0,20,40,.8); animation: dj-window 30s ease-in-out infinite alternate; }
.scn-duchess-joins .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-duchess-joins .figure-left { position:absolute; bottom:28%; left:18%; width:32px; height:60px; background: linear-gradient(180deg, #2a2038 0%, #1a1428 100%); border-radius: 45% 45% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 5px 15px rgba(0,0,0,.5); animation: dj-figure-l 7s ease-in-out infinite; }
.scn-duchess-joins .figure-center { position:absolute; bottom:28%; left:50%; width:34px; height:62px; transform: translateX(-50%); background: linear-gradient(180deg, #30263e 0%, #201830 100%); border-radius: 45% 45% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 5px 15px rgba(0,0,0,.5); animation: dj-figure-c 7s ease-in-out infinite 1s; }
.scn-duchess-joins .figure-right { position:absolute; bottom:28%; right:18%; width:32px; height:60px; background: linear-gradient(180deg, #2a2038 0%, #1a1428 100%); border-radius: 45% 45% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 5px 15px rgba(0,0,0,.5); animation: dj-figure-r 7s ease-in-out infinite 2s; }
.scn-duchess-joins .candle { position:absolute; bottom:32%; width:5px; height:16px; background: linear-gradient(180deg, #c89050 0%, #a07830 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 14px 5px rgba(200,150,80,.35); }
.scn-duchess-joins .light-left { left:30%; animation: dj-candle-l 6s ease-in-out infinite alternate; }
.scn-duchess-joins .light-right { right:30%; animation: dj-candle-r 6s ease-in-out infinite alternate 3s; }
@keyframes dj-window { 0% { opacity:.5; transform: scaleY(1) translateX(-50%); } 50% { opacity:.85; transform: scaleY(1.02) translateX(-50%); } 100% { opacity:.6; transform: scaleY(0.98) translateX(-50%); } }
@keyframes dj-figure-l { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dj-figure-c { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes dj-figure-r { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes dj-candle-l { 0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 10px 4px rgba(200,150,80,.3); } 50% { transform: scaleY(1.12) rotate(2deg); box-shadow: 0 0 20px 8px rgba(200,150,80,.5); } 100% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 10px 4px rgba(200,150,80,.3); } }
@keyframes dj-candle-r { 0% { transform: scaleY(1) rotate(2deg); box-shadow: 0 0 10px 4px rgba(200,150,80,.3); } 50% { transform: scaleY(1.08) rotate(-2deg); box-shadow: 0 0 18px 7px rgba(200,150,80,.5); } 100% { transform: scaleY(1) rotate(2deg); box-shadow: 0 0 10px 4px rgba(200,150,80,.3); } }

/* queen-weeps */
.scn-queen-weeps {
  background: linear-gradient(180deg, #1a1620 0%, #2a1e2e 30%, #1c1220 100%),
              radial-gradient(ellipse at 50% 40%, #2e2438 0%, transparent 60%);
}
.scn-queen-weeps .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #1e1428 0%, #0e0a18 100%); }
.scn-queen-weeps .figure { position:absolute; bottom:20%; left:50%; width:50px; height:85px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1e32 0%, #1a0e20 100%); border-radius: 45% 45% 50% 50% / 70% 70% 40% 40%; box-shadow: 0 10px 25px rgba(0,0,0,.7); animation: qw-figure 5s ease-in-out infinite; }
.scn-queen-weeps .hand { position:absolute; bottom:35%; left:42%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a40 0%, #2a1a30 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: qw-hand 3s ease-in-out infinite; }
.scn-queen-weeps .tear { position:absolute; width:3px; height:5px; background: radial-gradient(circle, rgba(180,200,220,.7) 0%, transparent 100%); border-radius: 50%; filter: blur(1px); }
.scn-queen-weeps .tear-1 { top:50%; left:48%; animation: qw-tear-1 4s ease-in infinite; }
.scn-queen-weeps .tear-2 { top:50%; left:52%; animation: qw-tear-2 4.5s ease-in infinite 1s; }
.scn-queen-weeps .tear-3 { top:50%; left:50%; animation: qw-tear-3 3.8s ease-in infinite 2s; }
.scn-queen-weeps .glint { position:absolute; top:48%; left:49%; width:4px; height:4px; background: rgba(255,240,220,.5); border-radius: 50%; box-shadow: 0 0 8px 3px rgba(255,240,220,.3); animation: qw-glint 2s ease-in-out infinite alternate; }
.scn-queen-weeps .shadow { position:absolute; bottom:15%; left:30%; width:120px; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(10px); animation: qw-shadow 6s ease-in-out infinite alternate; }
@keyframes qw-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes qw-hand { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes qw-tear-1 { 0% { top:48%; opacity:.8; transform: scale(1); } 20% { top:55%; opacity:1; transform: scale(1.2); } 40% { top:62%; opacity:.6; transform: scale(1); } 60% { top:68%; opacity:.3; transform: scale(0.8); } 80% { top:72%; opacity:.1; transform: scale(0.5); } 100% { top:75%; opacity:0; transform: scale(0.2); } }
@keyframes qw-tear-2 { 0% { top:48%; opacity:.7; transform: scale(1); } 20% { top:56%; opacity:1; transform: scale(1.1); } 40% { top:63%; opacity:.5; transform: scale(0.9); } 60% { top:69%; opacity:.2; transform: scale(0.7); } 80% { top:73%; opacity:.1; transform: scale(0.4); } 100% { top:76%; opacity:0; transform: scale(0.1); } }
@keyframes qw-tear-3 { 0% { top:48%; opacity:.6; transform: scale(1); } 20% { top:54%; opacity:.9; transform: scale(1.15); } 40% { top:61%; opacity:.4; transform: scale(0.85); } 60% { top:67%; opacity:.2; transform: scale(0.6); } 80% { top:71%; opacity:.05; transform: scale(0.3); } 100% { top:74%; opacity:0; transform: scale(0.1); } }
@keyframes qw-glint { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.8; transform: scale(1.5); } 100% { opacity:.4; transform: scale(1.1); } }
@keyframes qw-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.4; } 50% { transform: scaleX(1.1) translateX(5px); opacity:.6; } 100% { transform: scaleX(1) translateX(0); opacity:.4; } }

.scn-richard-sends-for-divines {
  background:
    linear-gradient(180deg, #0f0a1a 0%, #1a1428 40%, #0e0915 100%),
    radial-gradient(ellipse at 30% 80%, #1e1834 0%, transparent 70%);
}
.scn-richard-sends-for-divines .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1225 0%, #0e0918 100%);
  animation: rsd-wall 20s ease-in-out infinite alternate;
}
.scn-richard-sends-for-divines .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1c30 0%, #0f0a14 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
}
.scn-richard-sends-for-divines .door {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.4);
  animation: rsd-door 15s ease-in-out infinite;
}
.scn-richard-sends-for-divines .table {
  position: absolute; bottom: 10%; left: 60%; width: 100px; height: 16px;
  background: linear-gradient(180deg, #4a342a 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
}
.scn-richard-sends-for-divines .candle {
  position: absolute; bottom: 18%; left: 67%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4a060 0%, #4a3020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #b07840, 0 0 40px 16px rgba(176,120,64,.3);
  animation: rsd-candle 3s ease-in-out infinite alternate;
}
.scn-richard-sends-for-divines .figure-richard {
  position: absolute; bottom: 8%; left: 48%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsd-figure-richard 12s ease-in-out infinite;
}
.scn-richard-sends-for-divines .figure-messenger {
  position: absolute; bottom: 8%; left: 72%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a1a30 0%, #0e081a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsd-figure-messenger 16s ease-in-out infinite;
}
.scn-richard-sends-for-divines .shadow-richard {
  position: absolute; bottom: 0; left: 44%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: rsd-shadow 12s ease-in-out infinite;
}
@keyframes rsd-wall { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .85; } }
@keyframes rsd-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes rsd-candle { 0% { box-shadow: 0 0 16px 6px #b07840, 0 0 32px 12px rgba(176,120,64,.2); height: 20px; } 50% { box-shadow: 0 0 28px 10px #e0a060, 0 0 48px 18px rgba(224,160,96,.4); height: 22px; } 100% { box-shadow: 0 0 18px 7px #b07840, 0 0 36px 14px rgba(176,120,64,.25); height: 20px; } }
@keyframes rsd-figure-richard { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0.5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes rsd-figure-messenger { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-5px) rotate(-1deg); } 60% { transform: translateX(3px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes rsd-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .3; transform: scaleX(0.9); } 100% { opacity: .5; transform: scaleX(1); } }

.scn-scrivener-indictment {
  background:
    linear-gradient(180deg, #c8b89a 0%, #a89070 40%, #7a6040 100%),
    radial-gradient(ellipse at 20% 70%, #d4c4a0 0%, transparent 60%);
}
.scn-scrivener-indictment .wall-right {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8a080 0%, #d8c8a8 100%);
  box-shadow: inset 0 0 40px rgba(90,60,30,.4);
  animation: scr-wall 25s ease-in-out infinite alternate;
}
.scn-scrivener-indictment .desk {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2820 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-scrivener-indictment .paper {
  position: absolute; bottom: 25%; left: 42%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #f0e4c0 0%, #d4c4a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: scr-paper 20s ease-in-out infinite;
}
.scn-scrivener-indictment .quill {
  position: absolute; bottom: 32%; left: 36%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #e8d8b0 0%, #a09070 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: scr-quill 3s ease-in-out infinite alternate;
}
.scn-scrivener-indictment .inkwell {
  position: absolute; bottom: 20%; left: 38%; width: 14px; height: 12px;
  background: radial-gradient(circle, #1a1018 0%, #0a0608 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.6);
}
.scn-scrivener-indictment .candle-scriv {
  position: absolute; bottom: 28%; left: 60%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e8c080 0%, #5a3820 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 6px #c09040, 0 0 30px 10px rgba(192,144,64,.25);
  animation: scr-candle 4s ease-in-out infinite alternate;
}
.scn-scrivener-indictment .figure-scrivener {
  position: absolute; bottom: 6%; left: 34%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scr-figure 15s ease-in-out infinite;
}
.scn-scrivener-indictment .shadow-desk {
  position: absolute; bottom: 0; left: 28%; width: 100px; height: 18px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
}
@keyframes scr-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes scr-paper { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-1deg); } }
@keyframes scr-quill { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-15deg); } }
@keyframes scr-candle { 0% { box-shadow: 0 0 12px 4px #c09040, 0 0 24px 8px rgba(192,144,64,.2); height: 16px; } 100% { box-shadow: 0 0 24px 8px #d0a050, 0 0 40px 14px rgba(208,160,80,.35); height: 18px; } }
@keyframes scr-figure { 0% { transform: translateX(0) translateY(0) rotate(0.5deg); } 30% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 60% { transform: translateX(3px) translateY(1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(0.5deg); } }

.scn-buckingham-reports {
  background:
    linear-gradient(180deg, #1a0c18 0%, #2a1420 40%, #0e0810 100%),
    radial-gradient(ellipse at 50% 30%, #3a1c2a 0%, transparent 70%);
}
.scn-buckingham-reports .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #241420 0%, #120a10 100%);
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
  animation: brp-wall 30s ease-in-out infinite alternate;
}
.scn-buckingham-reports .podium {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1010 100%);
  border-radius: 8px 8px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 -2px 8px rgba(0,0,0,.5);
}
.scn-buckingham-reports .figure-buckingham {
  position: absolute; bottom: 32%; left: 50%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: brp-figure 18s ease-in-out infinite;
}
.scn-buckingham-reports .hand-gesture {
  position: absolute; bottom: 48%; left: 46%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #1a1020 0%, #0e0610 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: brp-hand 4s ease-in-out infinite alternate;
}
.scn-buckingham-reports .torch {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #8a6030 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 15px #a06020, 0 0 60px 30px rgba(160,96,32,.4);
  animation: brp-torch 5s ease-in-out infinite alternate;
}
.scn-buckingham-reports .torchlight {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(160,96,32,.15) 0%, transparent 100%);
  pointer-events: none;
  animation: brp-torchlight 5s ease-in-out infinite alternate;
}
.scn-buckingham-reports .listener-1 {
  position: absolute; bottom: 10%; left: 30%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: brp-listener 20s ease-in-out infinite;
}
.scn-buckingham-reports .listener-2 {
  position: absolute; bottom: 10%; right: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: brp-listener 22s ease-in-out infinite reverse;
}
@keyframes brp-wall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes brp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(-50%) translateY(1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes brp-hand { 0% { transform: rotate(-30deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-20deg); } }
@keyframes brp-torch { 0% { box-shadow: 0 0 20px 10px #a06020, 0 0 40px 20px rgba(160,96,32,.3); height: 30px; } 50% { box-shadow: 0 0 40px 20px #d08030, 0 0 70px 30px rgba(208,128,48,.5); height: 32px; } 100% { box-shadow: 0 0 25px 12px #a06020, 0 0 50px 25px rgba(160,96,32,.35); height: 30px; } }
@keyframes brp-torchlight { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes brp-listener { 0% { transform: translateY(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(0); } 75% { transform: translateY(1px); } 100% { transform: translateY(0); } }

.scn-buckingham-opened-all {
  background:
    linear-gradient(180deg, #0e0812 0%, #1c1020 40%, #0a060e 100%),
    radial-gradient(ellipse at 50% 20%, #2a182e 0%, transparent 70%);
}
.scn-buckingham-opened-all .wall-dark {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #140a1a 0%, #0a0610 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
  animation: boa-wall 35s ease-in-out infinite alternate;
}
.scn-buckingham-opened-all .crowd-silhouette {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(20,10,25,.8) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 90%, rgba(20,10,25,.8) 0%, transparent 60%);
  animation: boa-crowd 20s ease-in-out infinite alternate;
}
.scn-buckingham-opened-all .figure-buckingham-wide {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1222 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: boa-figure-wide 22s ease-in-out infinite;
}
.scn-buckingham-opened-all .arm-raise {
  position: absolute; bottom: 52%; left: 45%; width: 10px; height: 32px;
  background: linear-gradient(180deg, #1a1222 0%, #0a0610 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: boa-arm 4s ease-in-out infinite alternate;
}
.scn-buckingham-opened-all .torch-boa {
  position: absolute; bottom: 35%; left: 35%; width: 7px; height: 34px;
  background: linear-gradient(180deg, #9a6830 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 15px #a06020, 0 0 60px 30px rgba(160,96,32,.3);
  animation: boa-torch 6s ease-in-out infinite alternate;
}
.scn-buckingham-opened-all .glow-boa {
  position: absolute; bottom: 10%; left: 20%; width: 180px; height: 140px;
  background: radial-gradient(ellipse at 50% 100%, rgba(160,96,32,.12) 0%, transparent 100%);
  pointer-events: none;
  animation: boa-glow 6s ease-in-out infinite alternate;
}
.scn-buckingham-opened-all .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
}
@keyframes boa-wall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes boa-crowd { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.02); } 100% { opacity: .65; transform: scaleY(1); } }
@keyframes boa-figure-wide { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(-50%) translateY(1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes boa-arm { 0% { transform: rotate(-40deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-30deg); } }
@keyframes boa-torch { 0% { box-shadow: 0 0 20px 10px #a06020, 0 0 40px 20px rgba(160,96,32,.25); height: 34px; } 50% { box-shadow: 0 0 45px 22px #d08030, 0 0 80px 40px rgba(208,128,48,.4); height: 36px; } 100% { box-shadow: 0 0 25px 12px #a06020, 0 0 50px 25px rgba(160,96,32,.3); height: 34px; } }
@keyframes boa-glow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

/* Scene 1: young-york-biting-jest (funny, bright interior) */
.scn-young-york-biting-jest {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #c8a878 100%), radial-gradient(ellipse at 50% 100%, #d4b88a 0%, transparent 70%);
}
.scn-young-york-biting-jest .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fff9e6 0%, #f0d6a4 60%, #d4b88a 100%); 
  animation: sj-bg 12s ease-in-out infinite alternate;
}
.scn-young-york-biting-jest .window {
  position: absolute; top: 8%; left: 60%; width: 80px; height: 100px; 
  background: linear-gradient(180deg, #c4e0ff 0%, #a0c8ff 100%); 
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; 
  box-shadow: inset 0 0 20px rgba(255,255,200,0.6), 0 0 10px rgba(200,230,255,0.3); 
  animation: sj-window 6s ease-in-out infinite;
}
.scn-young-york-biting-jest .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 30px; 
  background: linear-gradient(180deg, #b08850 0%, #8a6a3a 100%); 
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
  animation: sj-table 8s ease-in-out infinite alternate;
}
.scn-young-york-biting-jest .crust {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 20px; 
  background: radial-gradient(circle at 60% 40%, #e8c070 20%, #c09040 100%); 
  border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); 
  animation: sj-crust 2s ease-in-out infinite;
}
.scn-young-york-biting-jest .boy {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 60px; 
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a080 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: sj-boy 3s ease-in-out infinite;
}
.scn-young-york-biting-jest .arm {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 28px; 
  background: linear-gradient(180deg, #e0c090 0%, #b89060 100%); 
  border-radius: 30% 30% 20% 20%; transform-origin: top; 
  animation: sj-arm 1.5s ease-in-out infinite alternate;
}
.scn-young-york-biting-jest .plate {
  position: absolute; bottom: 20%; left: 32%; width: 50px; height: 12px; 
  background: radial-gradient(ellipse, #f0e0c0 0%, #d0b890 100%); 
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); 
  animation: sj-plate 7s ease-in-out infinite alternate;
}
@keyframes sj-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sj-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sj-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sj-crust { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(2px,-2px) rotate(5deg) } 60% { transform: translate(-1px,1px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes sj-boy { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes sj-arm { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(2px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes sj-plate { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }

/* Scene 2: duchess-scolds (tense, bright interior) */
.scn-duchess-scolds {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c0a8 40%, #b89870 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 80%);
}
.scn-duchess-scolds .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #f5ead0 0%, #dcc8a0 60%, #b89870 100%); 
  animation: ds-bg 10s ease-in-out infinite alternate;
}
.scn-duchess-scolds .window {
  position: absolute; top: 5%; left: 20%; width: 70px; height: 90px; 
  background: linear-gradient(180deg, #b8d8ff 0%, #88b0e0 100%); 
  border-radius: 15% 15% 10% 10%; box-shadow: inset 0 0 15px #d0e8ff; 
  animation: ds-window 8s ease-in-out infinite;
}
.scn-duchess-scolds .duchess {
  position: absolute; bottom: 15%; left: 40%; width: 50px; height: 100px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  box-shadow: 5px 0 10px rgba(0,0,0,0.3); 
  animation: ds-duchess 2s ease-in-out infinite alternate;
}
.scn-duchess-scolds .boy {
  position: absolute; bottom: 20%; left: 55%; width: 25px; height: 45px; 
  background: linear-gradient(180deg, #d4b090 0%, #a08060 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: ds-boy 3s ease-in-out infinite;
}
.scn-duchess-scolds .chair {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 80px; 
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: 2px 0 6px rgba(0,0,0,0.4); 
  animation: ds-chair 15s ease-in-out infinite alternate;
}
.scn-duchess-scolds .rug {
  position: absolute; bottom: 5%; left: 20%; width: 160px; height: 40px; 
  background: linear-gradient(90deg, #b88868 0%, #d0a080 25%, #b88868 50%, #a07050 75%, #b88868 100%); 
  border-radius: 20% 20% 10% 10%; 
  animation: ds-rug 20s linear infinite;
}
.scn-duchess-scolds .shadow {
  position: absolute; bottom: 0; left: 35%; width: 80px; height: 30px; 
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(4px); 
  animation: ds-shadow 4s ease-in-out infinite alternate;
}
@keyframes ds-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ds-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes ds-duchess { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ds-boy { 0% { transform: translateY(0) scale(1) } 30% { transform: translateY(-2px) scale(0.98) } 60% { transform: translateY(1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes ds-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ds-rug { 0% { background-position: 0 0 } 100% { background-position: -160px 0 } }
@keyframes ds-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

/* Scene 3: messenger-bad-news (tense, bright interior) */
.scn-messenger-bad-news {
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 40%, #9a8878 100%), radial-gradient(ellipse at 50% 30%, #e0d0c0 0%, transparent 60%);
}
.scn-messenger-bad-news .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #e8dcd0 0%, #c8b8a8 50%, #9a8878 100%); 
  animation: mb-bg 14s ease-in-out infinite alternate;
}
.scn-messenger-bad-news .throne {
  position: absolute; bottom: 10%; left: 25%; width: 100px; height: 140px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: 5px 5px 15px rgba(0,0,0,0.4); 
  animation: mb-throne 20s ease-in-out infinite alternate;
}
.scn-messenger-bad-news .king {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 80px; 
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: mb-king 3s ease-in-out infinite;
}
.scn-messenger-bad-news .messenger {
  position: absolute; bottom: 12%; left: 55%; width: 35px; height: 70px; 
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom; 
  animation: mb-messenger 2s ease-in-out infinite alternate;
}
.scn-messenger-bad-news .letter {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 28px; 
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b080 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); 
  animation: mb-letter 4s ease-in-out infinite;
}
.scn-messenger-bad-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; 
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); 
  border-radius: 5% 5% 0 0; 
  animation: mb-floor 10s ease-in-out infinite alternate;
}
.scn-messenger-bad-news .pillar {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 120px; 
  background: linear-gradient(180deg, #a09080 0%, #807060 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: 2px 0 5px rgba(0,0,0,0.2); 
  animation: mb-pillar 25s ease-in-out infinite alternate;
}
.scn-messenger-bad-news .shadow {
  position: absolute; bottom: 0; left: 40%; width: 90px; height: 20px; 
  background: rgba(0,0,0,0.12); border-radius: 50%; filter: blur(3px); 
  animation: mb-shadow 3s ease-in-out infinite alternate;
}
@keyframes mb-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mb-throne { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes mb-king { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mb-messenger { 0% { transform: translate(0,0) rotate(-2deg) scale(1) } 50% { transform: translate(3px,-2px) rotate(2deg) scale(0.95) } 100% { transform: translate(0,0) rotate(-2deg) scale(1) } }
@keyframes mb-letter { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mb-floor { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mb-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes mb-shadow { 0% { transform: scaleX(1) opacity(0.8) } 50% { transform: scaleX(1.2) opacity(1) } 100% { transform: scaleX(1) opacity(0.8) } }

/* Scene 4: queen-foresees-doom (dark mood, bright interior) */
.scn-queen-foresees-doom {
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #8a7a6a 0%, transparent 50%);
}
.scn-queen-foresees-doom .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 50%, #2a1a0a 100%); 
  animation: qf-bg 20s ease-in-out infinite alternate;
}
.scn-queen-foresees-doom .window {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 80px; margin-left: -30px; 
  background: linear-gradient(180deg, #666 0%, #444 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px rgba(0,0,0,0.6); 
  animation: qf-window 15s ease-in-out infinite;
}
.scn-queen-foresees-doom .queen {
  position: absolute; bottom: 15%; left: 40%; width: 55px; height: 110px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  box-shadow: -3px 0 8px rgba(0,0,0,0.5); 
  animation: qf-queen 5s ease-in-out infinite alternate;
}
.scn-queen-foresees-doom .candle {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 20px; 
  background: linear-gradient(180deg, #f0c040 0%, #c08020 100%); 
  border-radius: 30% 30% 20% 20%; 
  box-shadow: 0 0 15px 5px rgba(240,192,64,0.6), 0 0 30px 10px rgba(240,192,64,0.3); 
  animation: qf-candle 2s ease-in-out infinite alternate;
}
.scn-queen-foresees-doom .darkness {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 60% 50%, transparent 40%, rgba(10,5,0,0.6) 100%); 
  animation: qf-darkness 10s ease-in-out infinite alternate;
}
.scn-queen-foresees-doom .crown {
  position: absolute; top: 5%; left: 50%; width: 30px; height: 20px; margin-left: -15px; 
  background: linear-gradient(180deg, #c0a060 0%, #907040 100%); 
  border-radius: 20% 20% 10% 10%; clip-path: polygon(10% 0%, 30% 0%, 50% 20%, 70% 0%, 90% 0%, 100% 100%, 0% 100%); 
  animation: qf-crown 4s ease-in-out infinite;
}
.scn-queen-foresees-doom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 0 0; 
  animation: qf-floor 12s ease-in-out infinite alternate;
}
.scn-queen-foresees-doom .gown {
  position: absolute; bottom: 5%; left: 35%; width: 80px; height: 60px; 
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); 
  border-radius: 40% 40% 20% 20%; 
  animation: qf-gown 8s ease-in-out infinite alternate;
}
@keyframes qf-bg { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes qf-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes qf-queen { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes qf-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(0.95) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes qf-darkness { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes qf-crown { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(-1px) rotate(3deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes qf-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes qf-gown { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }

/* council-meets */
.scn-council-meets {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a888 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-council-meets .cm-bg { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8dcc4 0%, transparent 100%); animation: cm-sky 20s ease-in-out infinite alternate; }
.scn-council-meets .cm-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: cm-floor 15s ease-in-out infinite alternate; }
.scn-council-meets .cm-table { position: absolute; bottom: 28%; left: 50%; width: 200px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: cm-table 12s ease-in-out infinite; }
.scn-council-meets .cm-crown { position: absolute; bottom: 48%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%); background: linear-gradient(135deg, #f0d060 0%, #c8a030 100%); border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(240,208,96,.5), 0 0 40px 12px rgba(240,208,96,.2); animation: cm-crown 8s ease-in-out infinite alternate; }
.scn-council-meets .cm-window-l { position: absolute; top: 12%; left: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(135,206,235,.5), 0 0 30px rgba(173,216,230,.3); animation: cm-window 18s ease-in-out infinite; }
.scn-council-meets .cm-window-r { position: absolute; top: 12%; right: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(135,206,235,.5), 0 0 30px rgba(173,216,230,.3); animation: cm-window 18s ease-in-out infinite reverse; }
.scn-council-meets .cm-lord-a { position: absolute; bottom: 34%; left: 30%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-lord 6s ease-in-out infinite; }
.scn-council-meets .cm-lord-b { position: absolute; bottom: 34%; left: 50%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-lord 7s ease-in-out infinite 1s; }
.scn-council-meets .cm-lord-c { position: absolute; bottom: 34%; right: 30%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-lord 8s ease-in-out infinite 2s; }
@keyframes cm-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes cm-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cm-table { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(.5deg) translateY(-1px); } }
@keyframes cm-crown { 0% { transform: translateX(-50%) scale(1); opacity: .8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(.98); opacity: .85; } }
@keyframes cm-window { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .65; } }
@keyframes cm-lord { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }

/* hastings-suggests-morning */
.scn-hastings-suggests-morning {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 40%, #b0a080 100%), radial-gradient(ellipse at 70% 0%, #ffecb3 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-hastings-suggests-morning .hm-hall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8dcc4 0%, transparent 100%); animation: hm-hall 22s ease-in-out infinite alternate; }
.scn-hastings-suggests-morning .hm-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%); border-radius: 15% 15% 0 0 / 8% 8% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.25); animation: hm-floor 16s ease-in-out infinite alternate; }
.scn-hastings-suggests-morning .hm-window { position: absolute; top: 8%; left: 50%; width: 80px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #b3d9ff 0%, #99ccff 100%); border: 6px solid #6a4a2a; border-radius: 6px; box-shadow: inset 0 0 30px rgba(153,204,255,.6), 0 0 40px rgba(179,217,255,.4); animation: hm-window 20s ease-in-out infinite; }
.scn-hastings-suggests-morning .hm-sunbeam { position: absolute; top: 8%; left: 45%; width: 40px; height: 200px; background: linear-gradient(180deg, rgba(255,236,179,.6) 0%, transparent 100%); transform: rotate(-15deg); transform-origin: top center; filter: blur(8px); animation: hm-sunbeam 25s linear infinite; }
.scn-hastings-suggests-morning .hm-figure { position: absolute; bottom: 36%; left: 50%; width: 24px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm-figure 5s ease-in-out infinite; }
.scn-hastings-suggests-morning .hm-shadow { position: absolute; bottom: 32%; left: 48%; width: 30px; height: 10px; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(3px); animation: hm-shadow 6s ease-in-out infinite; }
.scn-hastings-suggests-morning .hm-pillar-l { position: absolute; top: 0; left: 5%; width: 20px; height: 60%; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%); box-shadow: 0 0 10px rgba(0,0,0,.2); animation: hm-pillar 18s ease-in-out infinite; }
.scn-hastings-suggests-morning .hm-pillar-r { position: absolute; top: 0; right: 5%; width: 20px; height: 60%; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%); box-shadow: 0 0 10px rgba(0,0,0,.2); animation: hm-pillar 18s ease-in-out infinite reverse; }
.scn-hastings-suggests-morning .hm-dais { position: absolute; bottom: 35%; left: 40%; width: 80px; height: 15px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: hm-dais 12s ease-in-out infinite; }
@keyframes hm-hall { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes hm-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hm-window { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes hm-sunbeam { 0% { transform: translateX(0) rotate(-15deg) scaleY(1); } 50% { transform: translateX(10px) rotate(-13deg) scaleY(1.05); } 100% { transform: translateX(-10px) rotate(-17deg) scaleY(.95); } }
@keyframes hm-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes hm-shadow { 0% { transform: scaleX(1); opacity: .3; } 50% { transform: scaleX(1.2); opacity: .5; } 100% { transform: scaleX(1); opacity: .3; } }
@keyframes hm-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes hm-dais { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* hastings-claims-friendship */
.scn-hastings-claims-friendship {
  background: linear-gradient(180deg, #e8dcc4 0%, #c8b8a0 40%, #a89880 100%), radial-gradient(ellipse at 30% 50%, #ffecb3 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-hastings-claims-friendship .hc-bg { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #dcccb4 0%, transparent 100%); animation: hc-bg 20s ease-in-out infinite alternate; }
.scn-hastings-claims-friendship .hc-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 25% 25% 0 0 / 12% 12% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: hc-floor 14s ease-in-out infinite alternate; }
.scn-hastings-claims-friendship .hc-fig-left { position: absolute; bottom: 28%; left: 35%; width: 26px; height: 60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-fig 6s ease-in-out infinite; }
.scn-hastings-claims-friendship .hc-fig-right { position: absolute; bottom: 28%; right: 35%; width: 26px; height: 60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-fig 6s ease-in-out infinite 1s; }
.scn-hastings-claims-friendship .hc-hands { position: absolute; bottom: 35%; left: 50%; width: 30px; height: 16px; transform: translateX(-50%); background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 50% 50% 0 0; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: hc-hands 4s ease-in-out infinite; }
.scn-hastings-claims-friendship .hc-glow { position: absolute; bottom: 30%; left: 50%; width: 50px; height: 50px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(255,236,179,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: hc-glow 8s ease-in-out infinite; }
.scn-hastings-claims-friendship .hc-tapestry { position: absolute; top: 10%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 30%, #6a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: hc-tapestry 18s ease-in-out infinite; }
@keyframes hc-bg { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes hc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hc-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hc-hands { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hc-glow { 0% { opacity: .3; transform: translate(-50%, -50%) scale(1); } 50% { opacity: .6; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity: .3; transform: translate(-50%, -50%) scale(1); } }
@keyframes hc-tapestry { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }

/* richard-enters-council */
.scn-richard-enters-council {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 40%, #9a8a6a 100%), radial-gradient(ellipse at 20% 30%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-richard-enters-council .re-hall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d4c4a0 0%, transparent 100%); animation: re-hall 15s ease-in-out infinite alternate; }
.scn-richard-enters-council .re-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); animation: re-floor 10s ease-in-out infinite alternate; }
.scn-richard-enters-council .re-door { position: absolute; top: 5%; left: 5%; width: 80px; height: 140px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 30px rgba(0,0,0,.3); animation: re-door 6s ease-in-out infinite; }
.scn-richard-enters-council .re-richard { position: absolute; top: 8%; left: 8%; width: 30px; height: 70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: re-richard 4s ease-in-out infinite; }
.scn-richard-enters-council .re-shadow { position: absolute; top: 10%; left: 3%; width: 60px; height: 80px; background: rgba(0,0,0,.25); filter: blur(6px); animation: re-shadow 4.5s ease-in-out infinite; }
.scn-richard-enters-council .re-guard-l { position: absolute; bottom: 30%; left: 20%; width: 24px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: re-guard 3s ease-in-out infinite; }
.scn-richard-enters-council .re-guard-r { position: absolute; bottom: 30%; right: 20%; width: 24px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: re-guard 3s ease-in-out infinite 1.5s; }
.scn-richard-enters-council .re-table { position: absolute; bottom: 28%; left: 50%; width: 180px; height: 35px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: re-table 8s ease-in-out infinite; }
.scn-richard-enters-council .re-council { position: absolute; bottom: 34%; left: 50%; width: 20px; height: 45px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: re-council 2s ease-in-out infinite; }
@keyframes re-hall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes re-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes re-door { 0% { transform: rotate(0deg); } 25% { transform: rotate(8deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-8deg); } 100% { transform: rotate(0deg); } }
@keyframes re-richard { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-2px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes re-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: .4; } 50% { transform: scaleX(1.3) scaleY(1.1); opacity: .6; } 100% { transform: scaleX(1) scaleY(1); opacity: .4; } }
@keyframes re-guard { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.03) translateY(-2px); } 50% { transform: scaleY(1) translateY(0); } 75% { transform: scaleY(.97) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes re-table { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes re-council { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(.95) translateY(2px); } 100% { transform: translateX(-50%) scaleY(1); } }

/* anne-curses-richard – dim interior, curse scene */
.scn-anne-curses-richard {
  background:
    radial-gradient(ellipse 120% 100% at 50% 100%, #1a0e0e 0%, transparent 70%),
    linear-gradient(180deg, #0d0808 0%, #1a1010 30%, #2a1818 60%, #1a0e0e 100%);
}
.scn-anne-curses-richard .wall-left {
  position:absolute; left:0; top:0; width:35%; height:100%;
  background: linear-gradient(90deg, #0a0505 0%, #1a1010 50%, transparent 100%);
  animation: acr-wall 20s ease-in-out infinite;
}
.scn-anne-curses-richard .wall-right {
  position:absolute; right:0; top:0; width:35%; height:100%;
  background: linear-gradient(270deg, #0a0505 0%, #1a1010 50%, transparent 100%);
  animation: acr-wall 20s ease-in-out infinite reverse;
}
.scn-anne-curses-richard .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1010 0%, #0d0808 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-anne-curses-richard .candle {
  position:absolute; bottom:35%; left:30%; width:8px; height:50px;
  background: linear-gradient(180deg, #d4b896 0%, #a08060 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(-2deg);
  animation: acr-candle 6s ease-in-out infinite;
}
.scn-anne-curses-richard .candle-flame {
  position:absolute; bottom:calc(35% + 50px); left:calc(30% + 4px); width:12px; height:20px;
  background: radial-gradient(circle at 50% 30%, #ffd680 0%, #ff8040 40%, transparent 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(255,128,64,.4), 0 0 60px 20px rgba(255,128,64,.2);
  animation: acr-flame 1.5s ease-in-out infinite alternate;
}
.scn-anne-curses-richard .figure-curser {
  position:absolute; bottom:30%; right:32%; width:28px; height:55px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e12 60%, #0a0508 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -8px 0 12px rgba(0,0,0,.3);
  animation: acr-curser 4s ease-in-out infinite;
}
.scn-anne-curses-richard .shadow-figure {
  position:absolute; bottom:30%; left:28%; width:32px; height:58px;
  background: linear-gradient(180deg, #050303 0%, #000000 60%);
  border-radius: 35% 35% 30% 30% / 45% 45% 35% 35%;
  opacity: .7;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: acr-figure 6s ease-in-out infinite;
}
.scn-anne-curses-richard .curse-veil {
  position:absolute; inset:0;
  background: radial-gradient(ellipse 80% 60% at 60% 40%, transparent 0%, rgba(20,5,10,.3) 60%, rgba(5,2,3,.5) 100%);
  animation: acr-veil 8s ease-in-out infinite alternate;
}
.scn-anne-curses-richard .dust-mote {
  position:absolute; top:40%; left:50%; width:4px; height:4px;
  background: rgba(220,200,180,.15);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 0 0 6px 2px rgba(220,200,180,.05);
  animation: acr-dust 12s linear infinite;
}
@keyframes acr-wall {
  0% { opacity: .9 }
  50% { opacity: 1 }
  100% { opacity: .85 }
}
@keyframes acr-candle {
  0%,100% { transform: rotate(-2deg) }
  50% { transform: rotate(0deg) }
}
@keyframes acr-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: .85 }
}
@keyframes acr-curser {
  0% { transform: translateX(0) rotate(2deg) }
  25% { transform: translateX(-3px) rotate(-1deg) }
  50% { transform: translateX(0) rotate(3deg) }
  75% { transform: translateX(4px) rotate(-2deg) }
  100% { transform: translateX(0) rotate(2deg) }
}
@keyframes acr-figure {
  0% { transform: translateX(0) scale(1) }
  33% { transform: translateX(2px) scale(.97) }
  66% { transform: translateX(-2px) scale(1.02) }
  100% { transform: translateX(0) scale(1) }
}
@keyframes acr-veil {
  0% { opacity: .3 }
  50% { opacity: .5 }
  100% { opacity: .25 }
}
@keyframes acr-dust {
  0% { transform: translate(0, 0); opacity: 0 }
  20% { opacity: .3 }
  80% { opacity: .2 }
  100% { transform: translate(-60px, -30px); opacity: 0 }
}

/* richard-confronts-anne – tense confrontation over coffin */
.scn-richard-confronts-anne {
  background:
    radial-gradient(ellipse 100% 80% at 50% 60%, #1a0e0a 0%, transparent 70%),
    linear-gradient(180deg, #0f0806 0%, #1a0e0a 30%, #2a1810 60%, #1a0e0a 100%);
}
.scn-richard-confronts-anne .wall-bg {
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(30,15,10,.05) 40px, rgba(30,15,10,.05) 41px),
    linear-gradient(180deg, #0f0806 0%, #1a0e0a 100%);
  animation: rca-wall 30s linear infinite;
}
.scn-richard-confronts-anne .floor-tiles {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(25,15,10,.08) 30px, rgba(25,15,10,.08) 31px),
    linear-gradient(180deg, #1a0e0a 0%, #0f0806 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,.5);
}
.scn-richard-confronts-anne .coffin {
  position:absolute; bottom:28%; left:50%; width:100px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 2px 4px rgba(80,60,40,.3);
  animation: rca-coffin 12s ease-in-out infinite;
}
.scn-richard-confronts-anne .coffin-lid {
  position:absolute; bottom:calc(28% + 38px); left:50%; width:90px; height:12px;
  transform: translateX(-50%) rotate(2deg);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rca-lid 8s ease-in-out infinite alternate;
}
.scn-richard-confronts-anne .figure-richard {
  position:absolute; bottom:28%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 50%, #050201 100%);
  border-radius: 30% 30% 25% 25% / 45% 45% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 4px 0 10px rgba(0,0,0,.4);
  animation: rca-richard 5s ease-in-out infinite;
}
.scn-richard-confronts-anne .figure-anne {
  position:absolute; bottom:28%; right:32%; width:24px; height:56px;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a0e12 50%, #0a0508 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,.3);
  animation: rca-anne 4s ease-in-out infinite;
}
.scn-richard-confronts-anne .torch-left {
  position:absolute; bottom:30%; left:15%; width:6px; height:45px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(4deg);
  animation: rca-torch 3s ease-in-out infinite alternate;
}
.scn-richard-confronts-anne .torch-right {
  position:absolute; bottom:30%; right:15%; width:6px; height:45px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-4deg);
  animation: rca-torch 3s ease-in-out infinite alternate-reverse;
}
.scn-richard-confronts-anne .torch-left::before,
.scn-richard-confronts-anne .torch-right::before {
  content:''; position:absolute; top:-8px; left:50%; width:16px; height:16px;
  background: radial-gradient(circle, #ffa050 0%, #ff6010 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 15px rgba(255,96,16,.4), 0 0 60px 30px rgba(255,96,16,.15);
  animation: rca-flame 1.2s ease-in-out infinite alternate;
}
.scn-richard-confronts-anne .confrontation-light {
  position:absolute; inset:0;
  background: radial-gradient(ellipse 60% 50% at 50% 45%, rgba(200,80,30,.08) 0%, transparent 70%);
  animation: rca-light 6s ease-in-out infinite alternate;
}
@keyframes rca-wall {
  0% { background-position: 0 0 }
  100% { background-position: 41px 0 }
}
@keyframes rca-coffin {
  0%,100% { transform: translateX(-50%) }
  50% { transform: translateX(-50%) translateY(-2px) }
}
@keyframes rca-lid {
  0% { transform: translateX(-50%) rotate(2deg) }
  50% { transform: translateX(-50%) rotate(0deg) }
  100% { transform: translateX(-50%) rotate(-1deg) }
}
@keyframes rca-richard {
  0% { transform: translateX(0) rotate(-2deg) }
  30% { transform: translateX(4px) rotate(1deg) }
  60% { transform: translateX(-2px) rotate(-1deg) }
  100% { transform: translateX(0) rotate(-2deg) }
}
@keyframes rca-anne {
  0% { transform: translateX(0) rotate(3deg) }
  25% { transform: translateX(-5px) rotate(-1deg) }
  50% { transform: translateX(0) rotate(2deg) }
  75% { transform: translateX(3px) rotate(-2deg) }
  100% { transform: translateX(0) rotate(3deg) }
}
@keyframes rca-torch {
  0% { transform: rotate(4deg) }
  100% { transform: rotate(-2deg) }
}
@keyframes rca-flame {
  0% { transform: translateX(-50%) scale(.8); opacity: .7 }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1 }
  100% { transform: translateX(-50%) scale(.9); opacity: .8 }
}
@keyframes rca-light {
  0% { opacity: .6 }
  50% { opacity: 1 }
  100% { opacity: .7 }
}

/* anne-defies-richard – defiant figure against dark presence */
.scn-anne-defies-richard {
  background:
    radial-gradient(ellipse 70% 90% at 60% 40%, #1a0e12 0%, #0a0508 40%, transparent 70%),
    linear-gradient(180deg, #0f0608 0%, #1a0a0e 40%, #0f0608 100%);
}
.scn-anne-defies-richard .chamber-wall {
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, transparent 0%, rgba(10,5,8,.3) 80%),
    repeating-linear-gradient(0deg, transparent 0px, transparent 50px, rgba(20,10,15,.04) 50px, rgba(20,10,15,.04) 51px);
  animation: adr-wall 25s linear infinite;
}
.scn-anne-defies-richard .chamber-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a0e12 0%, #0a0508 100%);
  box-shadow: inset 0 12px 25px rgba(0,0,0,.6);
}
.scn-anne-defies-richard .anne-figure {
  position:absolute; bottom:25%; right:34%; width:26px; height:58px;
  background: linear-gradient(180deg, #3a1a22 0%, #1a0a10 50%, #0e0508 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 6px 0 15px rgba(0,0,0,.5);
  animation: adr-anne 5s ease-in-out infinite;
}
.scn-anne-defies-richard .richard-shade {
  position:absolute; bottom:25%; left:25%; width:38px; height:62px;
  background: linear-gradient(180deg, #050303 0%, #000000 60%);
  border-radius: 30% 30% 25% 25% / 40% 40% 35% 35%;
  opacity: .8;
  filter: blur(3px);
  transform-origin: bottom center;
  box-shadow: 10px 0 20px rgba(0,0,0,.6);
  animation: adr-shade 7s ease-in-out infinite;
}
.scn-anne-defies-richard .divine-glow {
  position:absolute; bottom:40%; right:30%; width:50px; height:70px;
  background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(255,220,180,.08) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: adr-glow 4s ease-in-out infinite alternate;
}
.scn-anne-defies-richard .chain-left {
  position:absolute; bottom:55%; left:20%; width:3px; height:40px;
  background: repeating-linear-gradient(180deg, #3a2a22 0px, #3a2a22 4px, transparent 4px, transparent 8px);
  opacity: .4;
  transform: rotate(8deg);
  animation: adr-chain 10s ease-in-out infinite;
}
.scn-anne-defies-richard .chain-right {
  position:absolute; bottom:50%; right:18%; width:3px; height:50px;
  background: repeating-linear-gradient(180deg, #3a2a22 0px, #3a2a22 4px, transparent 4px, transparent 8px);
  opacity: .3;
  transform: rotate(-6deg);
  animation: adr-chain 12s ease-in-out infinite reverse;
}
.scn-anne-defies-richard .ember-particles {
  position:absolute; top:30%; left:40%; width:100%; height:100%;
  background:
    radial-gradient(circle 2px at 20% 30%, rgba(255,150,50,.2) 0%, transparent 100%),
    radial-gradient(circle 2px at 60% 50%, rgba(255,180,80,.15) 0%, transparent 100%),
    radial-gradient(circle 1px at 80% 20%, rgba(255,200,100,.1) 0%, transparent 100%);
  animation: adr-ember 8s ease-in-out infinite alternate;
}
@keyframes adr-wall {
  0% { background-position: 0 0 }
  100% { background-position: 0 51px }
}
@keyframes adr-anne {
  0% { transform: translateX(0) rotate(2deg) scale(1) }
  30% { transform: translateX(-4px) rotate(-3deg) scale(1.01) }
  60% { transform: translateX(2px) rotate(1deg) scale(.99) }
  100% { transform: translateX(0) rotate(2deg) scale(1) }
}
@keyframes adr-shade {
  0% { transform: translateX(0) scale(1); opacity: .7 }
  33% { transform: translateX(5px) scale(1.02); opacity: .85 }
  66% { transform: translateX(-3px) scale(.98); opacity: .6 }
  100% { transform: translateX(0) scale(1); opacity: .8 }
}
@keyframes adr-glow {
  0% { opacity: .3; transform: scale(.9) }
  50% { opacity: .7; transform: scale(1.1) }
  100% { opacity: .4; transform: scale(.95) }
}
@keyframes adr-chain {
  0% { transform: rotate(8deg) }
  50% { transform: rotate(12deg) }
  100% { transform: rotate(4deg) }
}
@keyframes adr-ember {
  0% { opacity: .2 }
  50% { opacity: .5 }
  100% { opacity: .3 }
}

/* anne-shows-wounds – wounded body revealed */
.scn-anne-shows-wounds {
  background:
    radial-gradient(ellipse 80% 70% at 50% 40%, #1a080a 0%, #0a0304 50%, transparent 80%),
    linear-gradient(180deg, #0d0405 0%, #1a080a 40%, #0d0405 100%);
}
.scn-anne-shows-wounds .alcove-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 50% 35%, rgba(60,15,10,.1) 0%, transparent 60%),
    linear-gradient(90deg, #0a0304 0%, #120608 50%, #0a0304 100%);
  animation: asw-alcove 20s ease-in-out infinite alternate;
}
.scn-anne-shows-wounds .body-linen {
  position:absolute; bottom:15%; left:50%; width:80px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%);
  border-radius: 20% 20% 15% 15% / 30% 30% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: asw-linen 10s ease-in-out infinite;
}
.scn-anne-shows-wounds .wound-chest {
  position:absolute; bottom:32%; left:50%; width:30px; height:8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 80% 100% at 50% 50%, #4a0a0a 0%, #6a1010 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 15px 6px rgba(100,15,15,.4), inset 0 0 8px rgba(80,5,5,.6);
  animation: asw-wound 4s ease-in-out infinite alternate;
}
.scn-anne-shows-wounds .wound-side {
  position:absolute; bottom:27%; left:48%; width:18px; height:6px;
  transform: rotate(-15deg);
  background: radial-gradient(ellipse 80% 100% at 50% 50%, #4a0808 0%, #6a0e0e 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(100,15,15,.3);
  animation: asw-wound 5s ease-in-out infinite alternate;
}
.scn-anne-shows-wounds .wound-arm {
  position:absolute; bottom:22%; left:55%; width:14px; height:5px;
  transform: rotate(25deg);
  background: radial-gradient(ellipse 80% 100% at 50% 50%, #3a0606 0%, #5a0c0c 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(80,10,10,.3);
  animation: asw-wound 3.5s ease-in-out infinite alternate;
}
.scn-anne-shows-wounds .blood-pool {
  position:absolute; bottom:15%; left:50%; width:50px; height:14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 80% 100% at 50% 50%, #3a0505 0%, #5a0808 30%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(80,5,5,.3);
  animation: asw-blood 6s ease-in-out infinite alternate;
}
.scn-anne-shows-wounds .hand-anne {
  position:absolute; bottom:22%; left:40%; width:10px; height:14px;
  background: linear-gradient(180deg, #2a1215 0%, #1a080a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-20deg);
  animation: asw-hand 4s ease-in-out infinite;
  box-shadow: -2px 0 6px rgba(0,0,0,.4);
}
.scn-anne-shows-wounds .shadow-shroud {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 50% 60% at 50% 40%, transparent 0%, rgba(5,2,3,.4) 60%, rgba(2,1,1,.6) 100%);
  animation: asw-shroud 8s ease-in-out infinite alternate;
}
@keyframes asw-alcove {
  0% { opacity: .7 }
  50% { opacity: 1 }
  100% { opacity: .8 }
}
@keyframes asw-linen {
  0%,100% { transform: translateX(-50%) translateY(0) }
  50% { transform: translateX(-50%) translateY(-2px) }
}
@keyframes asw-wound {
  0% { opacity: .7; box-shadow: 0 0 12px 4px rgba(100,15,15,.3) }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(100,15,15,.5) }
  100% { opacity: .8; box-shadow: 0 0 14px 5px rgba(100,15,15,.35) }
}
@keyframes asw-blood {
  0% { opacity: .6; transform: translateX(-50%) scaleY(1) }
  50% { opacity: .9; transform: translateX(-50%) scaleY(1.15) }
  100% { opacity: .7; transform: translateX(-50%) scaleY(.95) }
}
@keyframes asw-hand {
  0% { transform: rotate(-20deg) translate(0,0) }
  25% { transform: rotate(-16deg) translate(2px,-1px) }
  50% { transform: rotate(-22deg) translate(-1px,0) }
  75% { transform: rotate(-18deg) translate(1px,1px) }
  100% { transform: rotate(-20deg) translate(0,0) }
}
@keyframes asw-shroud {
  0% { opacity: .2 }
  50% { opacity: .5 }
  100% { opacity: .3 }
}

.scn-richard-woos-anne {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 40%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 60%, #b89a6b33 0%, transparent 60%);
}
.scn-richard-woos-anne .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2a1f1a 0%, #1a1412 50%, #3a2a20 100%);
  animation: rwa-wall 20s ease-in-out infinite alternate;
}
.scn-richard-woos-anne .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-richard-woos-anne .window {
  position: absolute; top: 18%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 12px #1a1a2a;
  animation: rwa-window 6s ease-in-out infinite alternate;
}
.scn-richard-woos-anne .bars {
  position: absolute; top: 18%; left: 60%; width: 80px; height: 100px;
  background: repeating-linear-gradient(0deg, #5e4a3a 0px, #5e4a3a 4px, transparent 4px, transparent 12px);
  animation: rwa-bars 4s ease-in-out infinite;
}
.scn-richard-woos-anne .figure-r {
  position: absolute; bottom: 32%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 70%, #1a1412 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwa-figure-r 7s ease-in-out infinite;
}
.scn-richard-woos-anne .figure-a {
  position: absolute; bottom: 32%; left: 50%; width: 36px; height: 95px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 70%, #3a2a20 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: rwa-figure-a 8s ease-in-out infinite alternate;
}
.scn-richard-woos-anne .candle {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c060 0%, #b89a6b 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(240,192,96,.5), 0 0 60px 20px rgba(240,192,96,.2);
  animation: rwa-candle 3s ease-in-out infinite alternate;
}
@keyframes rwa-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rwa-window { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rwa-bars { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(.8deg) } }
@keyframes rwa-figure-r { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rwa-figure-a { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rwa-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 8px rgba(240,192,96,.4) } 50% { transform: scaleY(1.1) scaleX(.9); box-shadow: 0 0 40px 15px rgba(240,192,96,.6) } 100% { transform: scaleY(.95) scaleX(1.05); box-shadow: 0 0 25px 10px rgba(240,192,96,.35) } }

.scn-richard-persuades-anne {
  background:
    linear-gradient(180deg, #1a1412 0%, #0d0a08 60%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-richard-persuades-anne .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1412 0%, #0d0a08 50%, #2a1f1a 100%);
  animation: rpa-bg 15s ease-in-out infinite alternate;
}
.scn-richard-persuades-anne .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,.7);
}
.scn-richard-persuades-anne .candle {
  position: absolute; bottom: 25%; left: 45%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #f0c060 0%, #b89a6b 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(240,192,96,.6);
  animation: rpa-candle 4s ease-in-out infinite alternate;
}
.scn-richard-persuades-anne .flame {
  position: absolute; bottom: 33%; left: 45.5%; width: 6px; height: 18px;
  background: radial-gradient(circle, #ffe080 0%, #f0c060 50%, transparent 100%);
  border-radius: 50%;
  animation: rpa-flame 0.8s ease-in-out infinite alternate;
}
.scn-richard-persuades-anne .hand-r {
  position: absolute; bottom: 22%; left: 38%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rpa-hand-r 6s ease-in-out infinite;
}
.scn-richard-persuades-anne .hand-a {
  position: absolute; bottom: 22%; left: 52%; width: 12px; height: 38px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rpa-hand-a 5.5s ease-in-out infinite alternate;
}
.scn-richard-persuades-anne .blood-drop {
  position: absolute; bottom: 18%; left: 48%; width: 4px; height: 6px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a1012 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(94,26,29,.5);
  animation: rpa-drop 7s ease-in-out infinite;
}
@keyframes rpa-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rpa-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) scaleX(.92) } 100% { transform: scaleY(.98) } }
@keyframes rpa-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.2) scaleX(.8) translateY(-1px) } 100% { transform: scaleY(.9) scaleX(1.1) translateY(0) } }
@keyframes rpa-hand-r { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(-1px) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rpa-hand-a { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rpa-drop { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(-2px) scale(1.1); opacity: 0.8 } 100% { transform: translateY(0) scale(1); opacity: 1 } }

.scn-anne-accuses {
  background:
    linear-gradient(180deg, #0d0a08 0%, #1a1412 40%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%);
}
.scn-anne-accuses .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0d0a08 0%, #1a1412 40%, #2a1f1a 100%);
  animation: aac-bg 12s ease-in-out infinite alternate;
}
.scn-anne-accuses .wall-texture {
  position: absolute; inset: 30% 0 0 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 20px, #1a141244 20px, #1a141244 21px);
  animation: aac-texture 10s ease-in-out infinite;
}
.scn-anne-accuses .figure-anne {
  position: absolute; bottom: 25%; left: 40%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 70%, #1a1412 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aac-figure-anne 6s ease-in-out infinite alternate;
}
.scn-anne-accuses .pointing-hand {
  position: absolute; bottom: 50%; left: 44%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: aac-hand 0.8s ease-in-out infinite alternate;
}
.scn-anne-accuses .figure-richard {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: aac-figure-richard 8s ease-in-out infinite;
}
.scn-anne-accuses .shadow {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, #000 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.6;
  animation: aac-shadow 5s ease-in-out infinite;
}
.scn-anne-accuses .chain {
  position: absolute; bottom: 30%; left: 52%; width: 2px; height: 40px;
  background: repeating-linear-gradient(180deg, #5e4a3a 0px, #5e4a3a 4px, transparent 4px, transparent 8px);
  transform: rotate(15deg);
  animation: aac-chain 3s ease-in-out infinite alternate;
}
@keyframes aac-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes aac-texture { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes aac-figure-anne { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes aac-hand { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(1.1) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes aac-figure-richard { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(-1deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes aac-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(.8) } 100% { transform: scaleX(1) } }
@keyframes aac-chain { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }

.scn-richard-claims-love {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 30%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a20 0%, transparent 70%);
}
.scn-richard-claims-love .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  animation: rcl-bg 20s ease-in-out infinite alternate;
}
.scn-richard-claims-love .curtain-l {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #3a2a20 0%, #1a1412 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  box-shadow: inset -10px 0 20px #000;
  animation: rcl-curtain-l 12s ease-in-out infinite alternate;
}
.scn-richard-claims-love .curtain-r {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #1a1412 0%, #3a2a20 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  box-shadow: inset 10px 0 20px #000;
  animation: rcl-curtain-r 12s ease-in-out infinite alternate;
}
.scn-richard-claims-love .bed {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 20px 40px rgba(0,0,0,.8);
  animation: rcl-bed 7s ease-in-out infinite;
}
.scn-richard-claims-love .pillow {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #5e4a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,.4);
  animation: rcl-pillow 5s ease-in-out infinite alternate;
}
.scn-richard-claims-love .figure-r {
  position: absolute; bottom: 8%; left: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcl-figure-r 8s ease-in-out infinite;
}
.scn-richard-claims-love .figure-a {
  position: absolute; bottom: 8%; left: 52%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1412 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: rcl-figure-a 7.5s ease-in-out infinite alternate;
}
@keyframes rcl-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rcl-curtain-l { 0% { transform: translateX(0) skewX(0) } 50% { transform: translateX(-2px) skewX(1deg) } 100% { transform: translateX(0) skewX(0) } }
@keyframes rcl-curtain-r { 0% { transform: translateX(0) skewX(0) } 50% { transform: translateX(2px) skewX(-1deg) } 100% { transform: translateX(0) skewX(0) } }
@keyframes rcl-bed { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rcl-pillow { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.15) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes rcl-figure-r { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(-1deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rcl-figure-a { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-.5deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* citizens-philosophize – dark overcast, figures cloaked, leaves falling */
.scn-citizens-philosophize {
  background:
    linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 30%, #1e1e2e 60%, #14141e 100%),
    radial-gradient(ellipse at 50% 20%, #4a4a5e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-citizens-philosophize .sky-overcast {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #2e2e3e 50%, #1a1a2a 100%);
  animation: cp-sky 14s ease-in-out infinite alternate;
}
.scn-citizens-philosophize .cloud-heavy-a {
  position: absolute;
  top: 8%;
  left: 12%;
  width: 110px;
  height: 32px;
  background: linear-gradient(180deg, rgba(80,80,90,.6) 0%, rgba(60,60,70,.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cp-drift-a 40s linear infinite;
}
.scn-citizens-philosophize .cloud-heavy-b {
  position: absolute;
  top: 18%;
  right: 5%;
  width: 140px;
  height: 28px;
  background: linear-gradient(180deg, rgba(75,75,85,.5) 0%, rgba(55,55,65,.15) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cp-drift-b 55s linear infinite reverse;
}
.scn-citizens-philosophize .cloak-left {
  position: absolute;
  bottom: 30%;
  left: 28%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-bow-l 5s ease-in-out infinite;
}
.scn-citizens-philosophize .cloak-right {
  position: absolute;
  bottom: 30%;
  left: 54%;
  width: 30px;
  height: 64px;
  background: linear-gradient(180deg, #2e2e3e 0%, #16161e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-bow-r 6s ease-in-out infinite 1s;
}
.scn-citizens-philosophize .lantern-glow {
  position: absolute;
  bottom: 34%;
  left: 42%;
  width: 8px;
  height: 10px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 60%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px rgba(180,120,60,.6), 0 0 40px 12px rgba(180,120,60,.25);
  animation: cp-glow 3s ease-in-out infinite alternate;
}
.scn-citizens-philosophize .leaf-fall-a {
  position: absolute;
  top: 12%;
  left: 70%;
  width: 8px;
  height: 6px;
  background: #5a3a1a;
  border-radius: 50% 0 50% 0;
  opacity: .7;
  animation: cp-leaf-a 7s ease-in-out infinite;
}
.scn-citizens-philosophize .leaf-fall-b {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 6px;
  height: 5px;
  background: #4a2a0a;
  border-radius: 0 50% 0 50%;
  opacity: .6;
  animation: cp-leaf-b 9s ease-in-out infinite 3s;
}
.scn-citizens-philosophize .ground-mist {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,60,70,.4) 100%);
  filter: blur(6px);
  animation: cp-mist 12s ease-in-out infinite alternate;
}
@keyframes cp-sky { 0% { opacity: .75 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes cp-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes cp-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-150vw) } }
@keyframes cp-bow-l { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(8px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes cp-bow-r { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 30% { transform: translateX(-4px) translateY(-2px) rotate(-2deg) } 60% { transform: translateX(-8px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes cp-glow { 0% { box-shadow: 0 0 14px 4px rgba(180,120,60,.5), 0 0 28px 8px rgba(180,120,60,.2); opacity: .8 } 50% { box-shadow: 0 0 24px 8px rgba(200,140,70,.7), 0 0 48px 16px rgba(200,140,70,.35); opacity: 1 } 100% { box-shadow: 0 0 16px 5px rgba(180,120,60,.55), 0 0 32px 10px rgba(180,120,60,.25); opacity: .85 } }
@keyframes cp-leaf-a { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity: .7 } 25% { transform: translate(20px,30px) rotate(45deg) scale(.9); opacity: .8 } 50% { transform: translate(-10px,70px) rotate(90deg) scale(.7); opacity: .6 } 75% { transform: translate(15px,110px) rotate(135deg) scale(.8); opacity: .5 } 100% { transform: translate(5px,150px) rotate(180deg) scale(.6); opacity: .3 } }
@keyframes cp-leaf-b { 0% { transform: translate(0,0) rotate(0deg) scale(.9); opacity: .6 } 25% { transform: translate(-15px,25px) rotate(-30deg) scale(1); opacity: .7 } 50% { transform: translate(10px,60px) rotate(-60deg) scale(.8); opacity: .5 } 75% { transform: translate(-5px,100px) rotate(-90deg) scale(.7); opacity: .4 } 100% { transform: translate(0,140px) rotate(-120deg) scale(.5); opacity: .2 } }
@keyframes cp-mist { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .6; transform: scaleY(1.1) } 100% { opacity: .4; transform: scaleY(1) } }

/* archbishop-news – calm bright interior, seated figure with scroll, candle */
.scn-archbishop-news {
  background:
    linear-gradient(180deg, #d4c8a8 0%, #c4b898 40%, #a89878 100%),
    radial-gradient(ellipse at 60% 40%, #e8dcc0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-archbishop-news .wall-warm {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8ccac 0%, #c0b490 50%, #a89878 100%);
  border-bottom: 4px solid #8a7a5a;
  animation: an-wall 20s ease-in-out infinite alternate;
}
.scn-archbishop-news .window-arch {
  position: absolute;
  top: 12%;
  left: 15%;
  width: 80px;
  height: 100px;
  background: #8a9aaa;
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  border: 6px solid #6a5a3a;
  box-shadow: inset 0 0 30px rgba(255,255,220,.3);
  animation: an-window 8s ease-in-out infinite alternate;
}
.scn-archbishop-news .window-light {
  position: absolute;
  top: 15%;
  left: 18%;
  width: 70px;
  height: 90px;
  background: linear-gradient(180deg, rgba(255,255,220,.4) 0%, rgba(200,210,230,.15) 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  filter: blur(4px);
  animation: an-light-beam 10s ease-in-out infinite alternate;
}
.scn-archbishop-news .figure-seated {
  position: absolute;
  bottom: 26%;
  left: 48%;
  width: 32px;
  height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: an-seated 6s ease-in-out infinite;
}
.scn-archbishop-news .table-scroll {
  position: absolute;
  bottom: 24%;
  left: 38%;
  width: 44px;
  height: 4px;
  background: #5a4a2a;
  border-radius: 2px;
  box-shadow: 0 -4px 0 #6a5a3a;
  animation: an-table 7s ease-in-out infinite;
}
.scn-archbishop-news .candle-glow {
  position: absolute;
  bottom: 30%;
  left: 32%;
  width: 4px;
  height: 12px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(200,140,60,.5), 0 0 30px 8px rgba(200,140,60,.2);
  animation: an-candle 2s ease-in-out infinite alternate;
}
.scn-archbishop-news .shadow-pool {
  position: absolute;
  bottom: 0;
  left: 35%;
  width: 90px;
  height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,40,20,.25) 0%, transparent 70%);
  animation: an-shadow 12s ease-in-out infinite alternate;
}
@keyframes an-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .92 } }
@keyframes an-window { 0% { background: #8a9aaa } 50% { background: #9aaaba } 100% { background: #8a9aaa } }
@keyframes an-light-beam { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.05) } 100% { opacity: .35; transform: scaleX(1) } }
@keyframes an-seated { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes an-table { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-2px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes an-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.08) scaleX(.95); opacity: 1 } 100% { transform: scaleY(.95) scaleX(1.02); opacity: .85 } }
@keyframes an-shadow { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.05) } 100% { opacity: .35; transform: scaleX(1) } }

/* young-york-teases – funny bright interior, supper table with child, sparkles */
.scn-young-york-teases {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d4c4a0 40%, #b8a480 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-young-york-teases .table-round {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 110px;
  height: 12px;
  background: #7a6a4a;
  border-radius: 50%;
  transform: translateX(-50%) rotateX(20deg);
  box-shadow: 0 10px 20px rgba(0,0,0,.15);
  animation: yy-table 8s ease-in-out infinite alternate;
}
.scn-young-york-teases .figure-child {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 22px;
  height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: yy-bounce 3s ease-in-out infinite;
}
.scn-young-york-teases .figure-adult {
  position: absolute;
  bottom: 28%;
  left: 56%;
  width: 30px;
  height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: yy-lean 5s ease-in-out infinite 1s;
}
.scn-young-york-teases .plate-food {
  position: absolute;
  bottom: 24%;
  left: 48%;
  width: 20px;
  height: 6px;
  background: #9a8a6a;
  border-radius: 50%;
  border: 2px solid #8a7a5a;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: yy-plate 7s ease-in-out infinite;
}
.scn-young-york-teases .candle-bright {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 4px;
  height: 14px;
  background: linear-gradient(180deg, #ffe080 0%, #d09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 18px 5px rgba(220,160,60,.5), 0 0 36px 10px rgba(220,160,60,.2);
  animation: yy-candle 2.5s ease-in-out infinite alternate;
}
.scn-young-york-teases .chair-back {
  position: absolute;
  bottom: 34%;
  left: 58%;
  width: 6px;
  height: 20px;
  background: #6a5a3a;
  border-radius: 2px;
  transform: rotate(10deg);
  animation: yy-chair 9s ease-in-out infinite;
}
.scn-young-york-teases .shadow-play {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 120px;
  height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,40,20,.2) 0%, transparent 70%);
  animation: yy-shadow 10s ease-in-out infinite alternate;
}
.scn-young-york-teases .sparkle-laugh {
  position: absolute;
  top: 45%;
  left: 35%;
  width: 5px;
  height: 5px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,208,128,.6);
  animation: yy-sparkle 2s ease-in-out infinite;
}
@keyframes yy-table { 0% { transform: translateX(-50%) rotateX(20deg) scaleX(1) } 50% { transform: translateX(-50%) rotateX(22deg) scaleX(1.02) } 100% { transform: translateX(-50%) rotateX(20deg) scaleX(1) } }
@keyframes yy-bounce { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 25% { transform: translateY(-4px) rotate(0deg) scale(1.02) } 50% { transform: translateY(0) rotate(2deg) scale(1) } 75% { transform: translateY(-3px) rotate(-1deg) scale(1.01) } 100% { transform: translateY(0) rotate(-2deg) scale(1) } }
@keyframes yy-lean { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 30% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 60% { transform: translateX(0) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes yy-plate { 0% { transform: scale(1) } 50% { transform: scale(.98) } 100% { transform: scale(1) } }
@keyframes yy-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .85 } 50% { transform: scaleY(1.1) scaleX(.95); opacity: 1 } 100% { transform: scaleY(.95) scaleX(1.02); opacity: .9 } }
@keyframes yy-chair { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes yy-shadow { 0% { opacity: .2; transform: scaleX(1) } 50% { opacity: .35; transform: scaleX(1.05) } 100% { opacity: .25; transform: scaleX(1) } }
@keyframes yy-sparkle { 0% { opacity: 0; transform: scale(0) rotate(0deg) } 20% { opacity: .8; transform: scale(1.2) rotate(60deg) } 40% { opacity: .4; transform: scale(.8) rotate(120deg) } 60% { opacity: .9; transform: scale(1.1) rotate(180deg) } 80% { opacity: .2; transform: scale(.5) rotate(240deg) } 100% { opacity: 0; transform: scale(0) rotate(300deg) } }

/* duchess-defends-richard – tense bright interior, two figures, sharp shadows */
.scn-duchess-defends-richard {
  background:
    linear-gradient(180deg, #c8b890 0%, #b0a078 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 40% 50%, #d8c8a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-duchess-defends-richard .wall-tense {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b890 0%, #a89870 50%, #8a7a5a 100%);
  border-bottom: 3px solid #6a5a3a;
  animation: dd-wall 15s ease-in-out infinite alternate;
}
.scn-duchess-defends-richard .floor-dark {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  animation: dd-floor 20s ease-in-out infinite alternate;
}
.scn-duchess-defends-richard .figure-duchess {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 30px;
  height: 56px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-duchess 4s ease-in-out infinite;
}
.scn-duchess-defends-richard .figure-accused {
  position: absolute;
  bottom: 32%;
  left: 56%;
  width: 28px;
  height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-accused 5s ease-in-out infinite 0.5s;
}
.scn-duchess-defends-richard .gesture-hand {
  position: absolute;
  bottom: 48%;
  left: 38%;
  width: 10px;
  height: 14px;
  background: #3a2a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: dd-hand 3s ease-in-out infinite;
}
.scn-duchess-defends-richard .window-slit {
  position: absolute;
  top: 15%;
  right: 20%;
  width: 12px;
  height: 80px;
  background: #9aaa9a;
  border: 4px solid #6a5a3a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(200,220,200,.3);
  animation: dd-slit 10s ease-in-out infinite alternate;
}
.scn-duchess-defends-richard .shadow-sharp {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 140px;
  height: 35%;
  background: linear-gradient(180deg, transparent 0%, rgba(40,20,0,.35) 60%, rgba(40,20,0,.5) 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: dd-sharp 8s ease-in-out infinite alternate;
}
.scn-duchess-defends-richard .candle-flicker {
  position: absolute;
  bottom: 34%;
  left: 46%;
  width: 4px;
  height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(200,140,60,.5), 0 0 40px 12px rgba(200,140,60,.2);
  animation: dd-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes dd-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .92 } }
@keyframes dd-floor { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .82 } }
@keyframes dd-duchess { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes dd-accused { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 60% { transform: translateX(0) translateY(0) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes dd-hand { 0% { transform: rotate(20deg) scale(1) } 25% { transform: rotate(35deg) scale(1.05) } 50% { transform: rotate(15deg) scale(.95) } 75% { transform: rotate(30deg) scale(1.02) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes dd-slit { 0% { background: #9aaa9a; box-shadow: inset 0 0 20px rgba(200,220,200,.3) } 50% { background: #8a9a8a; box-shadow: inset 0 0 30px rgba(200,220,200,.5) } 100% { background: #9aaa9a; box-shadow: inset 0 0 20px rgba(200,220,200,.3) } }
@keyframes dd-sharp { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.04) } 100% { opacity: .35; transform: scaleX(1) } }
@keyframes dd-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: .7 } 25% { transform: scaleY(1.12) scaleX(.9); opacity: .95 } 50% { transform: scaleY(.95) scaleX(1.05); opacity: .8 } 75% { transform: scaleY(1.06) scaleX(.95); opacity: .9 } 100% { transform: scaleY(1) scaleX(1); opacity: .75 } }

.scn-murderers-relent-refusal {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a35 40%, #2a1a35 70%, #0f0f20 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, transparent 70%);
}

.scn-murderers-relent-refusal .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2e 0%, #0a0a18 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}

.scn-murderers-relent-refusal .window-bars {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border: 4px solid #3a3a5a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  animation: mrr-bars 10s ease-in-out infinite;
}

.scn-murderers-relent-refusal .candle-glow {
  position: absolute; bottom: 45%; left: 55%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #b07030 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #b07030, 0 0 60px 20px rgba(180,100,40,0.4);
  animation: mrr-candle 2s ease-in-out infinite alternate;
}

.scn-murderers-relent-refusal .victim {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrr-victim 4s ease-in-out infinite;
}

.scn-murderers-relent-refusal .murderer-1 {
  position: absolute; bottom: 25%; left: 60%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mrr-murderer1 6s ease-in-out infinite;
}

.scn-murderers-relent-refusal .murderer-2 {
  position: absolute; bottom: 25%; left: 18%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mrr-murderer2 7s ease-in-out infinite;
}

.scn-murderers-relent-refusal .shadow {
  position: absolute; bottom: 24%; left: 35%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: mrr-shadow 4s ease-in-out infinite;
}

@keyframes mrr-bars {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.9); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,1); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.9); }
}

@keyframes mrr-candle {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(0); opacity: 0.75; }
}

@keyframes mrr-victim {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-4px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

@keyframes mrr-murderer1 {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(3deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes mrr-murderer2 {
  0% { transform: translateX(0) scale(1); }
  40% { transform: translateX(-4px) scale(1.02); }
  80% { transform: translateX(2px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}

@keyframes mrr-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(0.8); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

.scn-second-murderer-remorse {
  background: linear-gradient(180deg, #0f0f25 0%, #1a1a3a 50%, #0f0f20 100%),
              radial-gradient(ellipse at 70% 50%, #2a1a2a 0%, transparent 70%);
}

.scn-second-murderer-remorse .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0e0e22 0%, #050510 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.9);
}

.scn-second-murderer-remorse .basin {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: smr-basin 8s ease-in-out infinite;
}

.scn-second-murderer-remorse .hands {
  position: absolute; bottom: 30%; left: 32%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: smr-hands 3s ease-in-out infinite alternate;
}

.scn-second-murderer-remorse .drip-1 {
  position: absolute; bottom: 25%; left: 36%; width: 4px; height: 8px;
  background: radial-gradient(ellipse, #6a5a5a 0%, transparent 100%);
  border-radius: 50%;
  animation: smr-drip1 1.5s ease-in-out infinite;
}

.scn-second-murderer-remorse .drip-2 {
  position: absolute; bottom: 22%; left: 38%; width: 3px; height: 6px;
  background: radial-gradient(ellipse, #6a5a5a 0%, transparent 100%);
  border-radius: 50%;
  animation: smr-drip2 2s ease-in-out infinite 1s;
}

.scn-second-murderer-remorse .accomplice {
  position: absolute; bottom: 25%; right: 20%; width: 44px; height: 95px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smr-accomplice 10s ease-in-out infinite;
}

.scn-second-murderer-remorse .bloody-rag {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0e10 70%, transparent 100%);
  border-radius: 40% 60% 50% 30%;
  filter: blur(2px);
  animation: smr-rag 5s ease-in-out infinite;
}

.scn-second-murderer-remorse .torch {
  position: absolute; top: 30%; right: 10%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #ffa040 0%, #a05010 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #a05010, 0 0 80px 30px rgba(160,80,16,0.3);
  animation: smr-torch 2s ease-in-out infinite alternate;
}

@keyframes smr-basin {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes smr-hands {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0); }
}

@keyframes smr-drip1 {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(12px); opacity: 0.3; }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes smr-drip2 {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(15px); opacity: 0.2; }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes smr-accomplice {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(3deg) translateX(-2px); }
  60% { transform: rotate(-1deg) translateX(1px); }
  100% { transform: rotate(0deg); }
}

@keyframes smr-rag {
  0% { transform: scale(1) rotate(0deg); filter: blur(2px); }
  50% { transform: scale(0.9) rotate(10deg); filter: blur(4px); }
  100% { transform: scale(1) rotate(0deg); filter: blur(2px); }
}

@keyframes smr-torch {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

.scn-first-murderer-escapes {
  background: linear-gradient(180deg, #0d0d1b 0%, #1a1a30 60%, #0f0f20 100%),
              radial-gradient(ellipse at 20% 80%, #2a1a2a 0%, transparent 70%);
}

.scn-first-murderer-escapes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}

.scn-first-murderer-escapes .body {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-10deg);
  animation: fme-body 12s ease-in-out infinite;
}

.scn-first-murderer-escapes .hole {
  position: absolute; bottom: 5%; left: 25%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, #000 0%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px #000;
  animation: fme-hole 20s ease-in-out infinite;
}

.scn-first-murderer-escapes .escaping-figure {
  position: absolute; bottom: 20%; left: 70%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fme-escape 8s ease-in-out infinite;
}

.scn-first-murderer-escapes .door {
  position: absolute; bottom: 20%; right: 10%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: fme-door 15s ease-in-out infinite;
}

.scn-first-murderer-escapes .lantern-glow {
  position: absolute; top: 25%; left: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffb060 0%, #a06020 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #a06020, 0 0 80px 30px rgba(160,96,32,0.4);
  animation: fme-lantern 3s ease-in-out infinite alternate;
}

.scn-first-murderer-escapes .footsteps {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 10px;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0.1) 0px, rgba(255,255,255,0.1) 8px, transparent 8px, transparent 20px);
  filter: blur(2px);
  animation: fme-footsteps 6s linear infinite;
}

@keyframes fme-body {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

@keyframes fme-hole {
  0% { transform: scaleY(0.8); opacity: 0.9; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.8); opacity: 0.9; }
}

@keyframes fme-escape {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-5px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(-10px) rotate(4deg); }
  75% { transform: translateX(10px) translateY(-5px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes fme-door {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(0.8) translateX(4px); }
  100% { transform: scaleX(1) translateX(0); }
}

@keyframes fme-lantern {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1) translateY(2px); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

@keyframes fme-footsteps {
  0% { background-position: 0 0; }
  100% { background-position: -80px 0; }
}

.scn-king-edward-sick {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c0b090 100%),
              radial-gradient(ellipse at 80% 30%, #ffe0a0 0%, transparent 70%);
}

.scn-king-edward-sick .bed {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 10px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
  animation: kes-bed 20s ease-in-out infinite;
}

.scn-king-edward-sick .king {
  position: absolute; bottom: 30%; left: 30%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #d0b090 0%, #b08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kes-king 12s ease-in-out infinite;
}

.scn-king-edward-sick .curtain-left {
  position: absolute; top: 5%; left: 5%; width: 10%; height: 70%;
  background: linear-gradient(180deg, #b08050 0%, #806030 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: kes-curtain-left 15s ease-in-out infinite alternate;
}

.scn-king-edward-sick .curtain-right {
  position: absolute; top: 5%; right: 5%; width: 10%; height: 70%;
  background: linear-gradient(180deg, #b08050 0%, #806030 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.2);
  animation: kes-curtain-right 15s ease-in-out infinite alternate;
}

.scn-king-edward-sick .sunbeam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, rgba(255,200,150,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(10px);
  animation: kes-sunbeam 8s ease-in-out infinite alternate;
}

.scn-king-edward-sick .cross {
  position: absolute; top: 15%; left: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: kes-cross 30s ease-in-out infinite;
}

.scn-king-edward-sick .attendant-1 {
  position: absolute; bottom: 15%; left: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kes-attendant1 10s ease-in-out infinite;
}

.scn-king-edward-sick .attendant-2 {
  position: absolute; bottom: 15%; right: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kes-attendant2 10s ease-in-out infinite 2s;
}

@keyframes kes-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

@keyframes kes-king {
  0% { transform: scale(1) rotate(0deg); }
  30% { transform: scale(1.02) rotate(1deg); }
  60% { transform: scale(0.98) rotate(-1deg); }
  100% { transform: scale(1) rotate(0deg); }
}

@keyframes kes-curtain-left {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(0.95); }
  100% { transform: translateX(0) scaleX(1); }
}

@keyframes kes-curtain-right {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-2px) scaleX(0.95); }
  100% { transform: translateX(0) scaleX(1); }
}

@keyframes kes-sunbeam {
  0% { opacity: 0.5; transform: rotate(-2deg); }
  50% { opacity: 1; transform: rotate(2deg); }
  100% { opacity: 0.5; transform: rotate(-2deg); }
}

@keyframes kes-cross {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes kes-attendant1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes kes-attendant2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* ghost-of-buckingham */
.scn-ghost-of-buckingham {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-ghost-of-buckingham .tent-bg {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 30%, #0e0e20 0%, #06060e 100%); animation:gb-pulse 8s ease-in-out infinite alternate;
}
.scn-ghost-of-buckingham .tent-wall {
  position:absolute; inset:10% 5% 15% 5%; background:linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:30% 70% / 50% 50%; box-shadow:inset 0 0 20px #000; animation:gb-wall 12s ease-in-out alternate;
}
.scn-ghost-of-buckingham .ghost {
  position:absolute; bottom:20%; left:50%; width:60px; height:90px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 50%, rgba(70,70,120,.3) 0%, transparent 70%), linear-gradient(180deg, rgba(180,190,255,.1) 0%, rgba(80,80,140,.2) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(4px); animation:gb-ghost 6s ease-in-out infinite alternate;
}
.scn-ghost-of-buckingham .chain {
  position:absolute; bottom:30%; left:30%; width:10px; height:50px; background:linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:20%; box-shadow:0 0 4px rgba(100,100,140,.3); animation:gb-chain 4s ease-in-out infinite;
}
.scn-ghost-of-buckingham .blue-flame {
  position:absolute; bottom:10%; left:20%; width:20px; height:30px; background:radial-gradient(circle, #6888ff 0%, #2040a0 60%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 30px 10px rgba(50,100,255,.4); animation:gb-flame 3s ease-in-out infinite alternate;
}
.scn-ghost-of-buckingham .crown-shadow {
  position:absolute; bottom:60%; left:50%; width:40px; height:20px; transform:translateX(-50%); background:radial-gradient(ellipse, rgba(60,50,80,.6) 0%, transparent 70%); border-radius:50% 50% 0 0; animation:gb-crown 5s ease-in-out infinite;
}
@keyframes gb-pulse  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes gb-wall  { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes gb-ghost { 0% { opacity:.5; transform:translateX(-50%) translateY(0) } 50% { opacity:.8; transform:translateX(-50%) translateY(-5px) } 100% { opacity:.5; transform:translateX(-50%) translateY(0) } }
@keyframes gb-chain { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } }
@keyframes gb-flame { 0% { transform:scaleY(1) scaleX(1) } 50% { transform:scaleY(1.2) scaleX(.8) } 100% { transform:scaleY(1) scaleX(1) } }
@keyframes gb-crown { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* richard-awakes */
.scn-richard-awakes {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 50%, #1c1c3c 100%), radial-gradient(ellipse at 50% 80%, #1c1c3c 0%, transparent 60%);
}
.scn-richard-awakes .tent-bg-aw {
  position:absolute; inset:0; background:radial-gradient(ellipse at 40% 50%, #080812 0%, #020206 100%); animation:ra-pulse 10s ease-in-out infinite alternate;
}
.scn-richard-awakes .pallet {
  position:absolute; bottom:15%; left:25%; right:25%; height:30px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10px; box-shadow:inset 0 4px 6px rgba(0,0,0,.5); animation:ra-pallet 7s ease-in-out infinite;
}
.scn-richard-awakes .richard-silhouette {
  position:absolute; bottom:20%; left:50%; width:50px; height:80px; transform:translateX(-50%); background:linear-gradient(180deg, #0a0a1a 0%, #12122a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ra-richard 5s ease-in-out infinite;
}
.scn-richard-awakes .blue-candle {
  position:absolute; bottom:25%; left:35%; width:16px; height:24px; background:radial-gradient(circle, #6088ff 0%, #1a30a0 60%, transparent 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 40px 15px rgba(50,100,255,.3); animation:ra-candle 3s ease-in-out infinite alternate;
}
.scn-richard-awakes .sweat-drop {
  position:absolute; bottom:40%; left:48%; width:6px; height:8px; background:radial-gradient(circle, #a0b8ff 0%, transparent 70%); border-radius:50%; animation:ra-sweat 4s ease-in-out infinite;
}
.scn-richard-awakes .tremble-shadow {
  position:absolute; bottom:10%; left:0; right:0; height:20%; background:radial-gradient(ellipse at 50% 50%, rgba(30,30,60,.4) 0%, transparent 70%); animation:ra-tremble 2s ease-in-out infinite;
}
@keyframes ra-pulse { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ra-pallet { 0%,100% { transform:translateY(0) } 50% { transform:translateY(2px) } }
@keyframes ra-richard { 0%,100% { transform:translateX(-50%) rotate(0); opacity:.8 } 25% { transform:translateX(-50%) rotate(5deg) translateY(-2px); opacity:1 } 75% { transform:translateX(-50%) rotate(-3deg) translateY(2px); opacity:.9 } }
@keyframes ra-candle { 0% { transform:scaleY(1) scaleX(1) } 50% { transform:scaleY(1.3) scaleX(.7) } 100% { transform:scaleY(1) scaleX(1) } }
@keyframes ra-sweat { 0%,100% { opacity:.2; transform:translateY(0) } 50% { opacity:.7; transform:translateY(6px) } }
@keyframes ra-tremble { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.2 } }

/* richard-sees-ghosts */
.scn-richard-sees-ghosts {
  background: linear-gradient(180deg, #0a0a1a 0%, #16163a 50%, #222244 100%), radial-gradient(ellipse at 50% 20%, #222244 0%, transparent 70%);
}
.scn-richard-sees-ghosts .tent-bg-gh {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%, #0e0e24 0%, #04040e 100%); animation:rg-pulse 9s ease-in-out infinite alternate;
}
.scn-richard-sees-ghosts .ghost-1 {
  position:absolute; bottom:25%; left:20%; width:40px; height:70px; background:radial-gradient(ellipse at 50% 50%, rgba(100,120,200,.15) 0%, transparent 70%), linear-gradient(180deg, rgba(150,170,255,.08) 0%, rgba(60,80,140,.12) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(5px); animation:rg-ghost1 7s ease-in-out infinite alternate;
}
.scn-richard-sees-ghosts .ghost-2 {
  position:absolute; bottom:30%; left:60%; width:50px; height:80px; background:radial-gradient(ellipse at 50% 50%, rgba(120,140,220,.12) 0%, transparent 60%), linear-gradient(180deg, rgba(170,190,255,.06) 0%, rgba(70,90,160,.1) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(6px); animation:rg-ghost2 8s ease-in-out infinite alternate;
}
.scn-richard-sees-ghosts .ghost-3 {
  position:absolute; bottom:35%; left:40%; width:30px; height:60px; background:radial-gradient(ellipse at 50% 50%, rgba(80,100,180,.18) 0%, transparent 70%), linear-gradient(180deg, rgba(130,150,230,.1) 0%, rgba(50,70,130,.15) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(4px); animation:rg-ghost3 6s ease-in-out infinite alternate;
}
.scn-richard-sees-ghosts .mist {
  position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, transparent 0%, rgba(30,30,60,.3) 50%, rgba(10,10,20,.5) 100%); filter:blur(8px); animation:rg-mist 12s ease-in-out infinite alternate;
}
.scn-richard-sees-ghosts .tent-opening {
  position:absolute; top:5%; left:35%; right:35%; height:20%; background:linear-gradient(135deg, #0a0a1a 0%, #16163a 100%); border-radius:0 0 50% 50% / 0 0 100% 100%; box-shadow:inset 0 0 30px #000; animation:rg-opening 10s ease-in-out infinite;
}
@keyframes rg-pulse { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes rg-ghost1 { 0% { opacity:.1; transform:translateX(0) translateY(0) } 50% { opacity:.4; transform:translateX(8px) translateY(-4px) } 100% { opacity:.1; transform:translateX(-8px) translateY(2px) } }
@keyframes rg-ghost2 { 0% { opacity:.05; transform:scale(.9) } 50% { opacity:.3; transform:scale(1.05) } 100% { opacity:.1; transform:scale(.95) } }
@keyframes rg-ghost3 { 0% { opacity:.15; transform:rotate(-5deg) } 50% { opacity:.5; transform:rotate(5deg) } 100% { opacity:.15; transform:rotate(-5deg) } }
@keyframes rg-mist { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes rg-opening { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(.95) } }

/* ratcliff-comes */
.scn-ratcliff-comes {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 50%, #1c1c3c 100%), radial-gradient(ellipse at 50% 100%, #1c1c3c 0%, transparent 70%);
}
.scn-ratcliff-comes .tent-bg-rc {
  position:absolute; inset:0; background:radial-gradient(ellipse at 60% 40%, #0e0e20 0%, #06060e 100%); animation:rc-pulse 8s ease-in-out infinite alternate;
}
.scn-ratcliff-comes .richard-fig {
  position:absolute; bottom:20%; left:30%; width:45px; height:75px; background:linear-gradient(180deg, #0a0a1a 0%, #12122a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:rc-richard 4s ease-in-out infinite;
}
.scn-ratcliff-comes .ratcliff-fig {
  position:absolute; bottom:20%; right:25%; width:40px; height:70px; background:linear-gradient(180deg, #12122a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:rc-ratcliff 4s ease-in-out infinite 2s;
}
.scn-ratcliff-comes .lantern-glow {
  position:absolute; bottom:30%; left:50%; width:24px; height:30px; transform:translateX(-50%); background:radial-gradient(circle, #b87878 0%, #604040 60%, transparent 100%); border-radius:30% 30% 20% 20%; box-shadow:0 0 50px 20px rgba(180,120,120,.3); animation:rc-lantern 3s ease-in-out infinite alternate;
}
.scn-ratcliff-comes .cock-silhouette {
  position:absolute; top:15%; right:15%; width:20px; height:15px; background:#0a0a1a; border-radius:80% 20% 50% 50% / 60% 20% 80% 40%; transform:rotate(20deg); animation:rc-cock 9s ease-in-out infinite;
}
.scn-ratcliff-comes .dawn-hint {
  position:absolute; top:0; left:0; right:0; height:20%; background:linear-gradient(180deg, rgba(180,160,120,.04) 0%, transparent 100%); animation:rc-dawn 15s linear infinite alternate;
}
.scn-ratcliff-comes .armor-clash {
  position:absolute; bottom:25%; left:20%; width:10px; height:10px; background:radial-gradient(circle, #c08060 0%, transparent 70%); border-radius:50%; box-shadow:0 0 8px 2px #a06040; animation:rc-clash 2s ease-in-out infinite;
}
@keyframes rc-pulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rc-richard { 0%,100% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(3deg) } 70% { transform:translateY(1px) rotate(-2deg) } }
@keyframes rc-ratcliff { 0%,100% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(-3deg) } 70% { transform:translateY(1px) rotate(2deg) } }
@keyframes rc-lantern { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.1) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes rc-cock { 0%,100% { transform:rotate(20deg) scale(1) } 50% { transform:rotate(10deg) scale(1.1) } }
@keyframes rc-dawn { 0% { opacity:0 } 50% { opacity:.3 } 100% { opacity:0 } }
@keyframes rc-clash { 0%,100% { opacity:.2; transform:scale(1) } 50% { opacity:.8; transform:scale(1.5) } }

/* buckingham-threatens */
.scn-buckingham-threatens {
  background: linear-gradient(180deg, #1f1a14 0%, #2c231c 40%, #3a2e25 70%, #2a201a 100%), radial-gradient(ellipse at 70% 30%, #3a2e25 0%, transparent 60%);
}
.scn-buckingham-threatens .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c231c 0%, #1f1a14 100%); }
.scn-buckingham-threatens .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-buckingham-threatens .table {
  position:absolute; bottom:18%; left:50%; width:120px; height:20px; transform:translateX(-50%);
  background: linear-gradient(135deg, #5a3d2a 0%, #3b281a 50%, #2d1e12 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-buckingham-threatens .figure-left {
  position:absolute; bottom:24%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-figure-left 4s ease-in-out infinite;
}
.scn-buckingham-threatens .figure-right {
  position:absolute; bottom:24%; right:35%; width:22px; height:52px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-figure-right 4s ease-in-out infinite alternate;
}
.scn-buckingham-threatens .candle {
  position:absolute; bottom:38%; left:50%; width:8px; height:16px; transform:translateX(-50%);
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 50%, #8a6030 100%);
  border-radius: 2px 2px 0 0;
  animation: bt-candle 2s ease-in-out infinite alternate;
}
.scn-buckingham-threatens .candle-glow {
  position:absolute; bottom:39%; left:50%; width:40px; height:40px; transform:translate(-50%, -10%);
  background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, rgba(255,160,60,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: bt-glow 2s ease-in-out infinite alternate;
}
.scn-buckingham-threatens .shadow {
  position:absolute; bottom:18%; left:50%; width:140px; height:8px; transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: bt-shadow 4s ease-in-out infinite;
}
@keyframes bt-figure-left {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bt-figure-right {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(2deg); }
  66% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bt-candle {
  0% { transform: translateX(-50%) scaleY(1) rotate(-1deg); }
  50% { transform: translateX(-50%) scaleY(1.1) rotate(0deg); }
  100% { transform: translateX(-50%) scaleY(0.95) rotate(1deg); }
}
@keyframes bt-glow {
  0% { opacity: 0.8; transform: translate(-50%, -10%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -10%) scale(1.15); }
  100% { opacity: 0.85; transform: translate(-50%, -10%) scale(0.95); }
}
@keyframes bt-shadow {
  0% { opacity: 0.6; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 0.8; transform: translateX(-50%) scaleX(1.2); }
  100% { opacity: 0.6; transform: translateX(-50%) scaleX(1); }
}

/* richard-consents */
.scn-richard-consents {
  background: linear-gradient(90deg, #1a1410 0%, #2a201c 30%, #1f1a16 60%, #120e0c 100%), radial-gradient(ellipse at 60% 40%, #2a201c 0%, transparent 70%);
}
.scn-richard-consents .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a201c 0%, #1a1410 100%); }
.scn-richard-consents .throne {
  position:absolute; bottom:25%; left:50%; width:80px; height:100px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 50%, #1a120c 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rc-throne 7s ease-in-out infinite alternate;
}
.scn-richard-consents .cushion {
  position:absolute; bottom:50%; left:50%; width:50px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-richard-consents .crown {
  position:absolute; bottom:78%; left:50%; width:50px; height:24px; transform:translateX(-50%);
  background: linear-gradient(180deg, #c09850 0%, #a08038 50%, #705020 100%);
  border-radius: 8% 8% 0 0 / 50% 50% 0 0;
  box-shadow: 0 0 12px 4px rgba(192,152,80,0.4);
  animation: rc-crown 5s ease-in-out infinite;
}
.scn-richard-consents .figure-left {
  position:absolute; bottom:22%; left:25%; width:24px; height:54px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-figure-left 6s ease-in-out infinite;
}
.scn-richard-consents .figure-right {
  position:absolute; bottom:22%; right:25%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-figure-right 6s ease-in-out infinite alternate;
}
.scn-richard-consents .column {
  position:absolute; bottom:0; left:10%; width:8px; height:80%;
  background: linear-gradient(135deg, #3a3028 0%, #2a201c 50%, #1a1410 100%);
  border-radius: 4px;
  animation: rc-column 10s linear infinite alternate;
}
.scn-richard-consents .tapestry {
  position:absolute; top:5%; right:10%; width:80px; height:120px;
  background: linear-gradient(180deg, #4a3a2e 0%, #5a4a3e 30%, #3a2a1e 70%, #2a1a0e 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: rc-tapestry 12s ease-in-out infinite alternate;
}
@keyframes rc-throne {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes rc-crown {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes rc-figure-left {
  0% { transform: translateY(0) rotate(1deg); }
  33% { transform: translateY(-2px) rotate(-1deg); }
  66% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes rc-figure-right {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rc-column {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rc-tapestry {
  0% { transform: scaleY(1); filter: brightness(0.9); }
  50% { transform: scaleY(1.02); filter: brightness(1); }
  100% { transform: scaleY(1); filter: brightness(0.9); }
}

/* richard-crowned */
.scn-richard-crowned {
  background: linear-gradient(180deg, #c8b89a 0%, #e8dcc4 40%, #f0e8d8 70%, #d8c8b0 100%), radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 50%);
}
.scn-richard-crowned .window {
  position:absolute; top:0; left:20%; width:140px; height:40%;
  background: linear-gradient(180deg, #a0c8e8 0%, #c0d8f0 50%, #d8e8f8 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: rk-window 8s ease-in-out infinite alternate;
}
.scn-richard-crowned .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 50%, #a89880 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.15);
}
.scn-richard-crowned .throne {
  position:absolute; bottom:25%; left:50%; width:100px; height:120px; transform:translateX(-50%);
  background: linear-gradient(135deg, #c0a070 0%, #a08050 50%, #806030 100%);
  border-radius: 15% 15% 5% 5% / 25% 25% 5% 5%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  animation: rk-throne 6s ease-in-out infinite alternate;
}
.scn-richard-crowned .crown-glow {
  position:absolute; bottom:80%; left:50%; width:90px; height:40px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(255,215,0,0.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: rk-glow 3s ease-in-out infinite alternate;
}
.scn-richard-crowned .figure-silhouette {
  position:absolute; bottom:25%; left:50%; width:40px; height:90px; transform:translateX(-50%);
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: brightness(0.8);
  animation: rk-figure 4s ease-in-out infinite;
}
.scn-richard-crowned .scepter {
  position:absolute; bottom:48%; left:calc(50% + 30px); width:6px; height:70px;
  background: linear-gradient(180deg, #c09850 0%, #a08038 50%, #705020 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: rk-scepter 5s ease-in-out infinite alternate;
}
.scn-richard-crowned .light-ray {
  position:absolute; top:0; left:30%; width:60px; height:100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.1) 0%, rgba(255,255,200,0.2) 40%, transparent 80%);
  filter: blur(4px);
  animation: rk-ray 9s ease-in-out infinite alternate;
}
@keyframes rk-window {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes rk-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes rk-glow {
  0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(1); }
}
@keyframes rk-figure {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes rk-scepter {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(8deg); }
}
@keyframes rk-ray {
  0% { transform: translateX(-10px); opacity: 0.5; }
  50% { transform: translateX(0); opacity: 0.7; }
  100% { transform: translateX(10px); opacity: 0.5; }
}

/* queen-meets-anne */
.scn-queen-meets-anne {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1e1e34 70%, #12121e 100%), radial-gradient(ellipse at 40% 30%, #2a2a44 0%, transparent 60%);
}
.scn-queen-meets-anne .arch-left {
  position:absolute; bottom:0; left:0; width:35%; height:100%;
  background: linear-gradient(135deg, #2a2a44 0%, #1a1a2e 100%);
  border-radius: 0 0 60% 0 / 0 0 40% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: qa-arch-left 12s ease-in-out infinite alternate;
}
.scn-queen-meets-anne .arch-right {
  position:absolute; bottom:0; right:0; width:35%; height:100%;
  background: linear-gradient(225deg, #2a2a44 0%, #1a1a2e 100%);
  border-radius: 0 0 0 60% / 0 0 0 40%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: qa-arch-right 12s ease-in-out infinite alternate;
}
.scn-queen-meets-anne .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-queen-meets-anne .figure-left {
  position:absolute; bottom:22%; left:38%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qa-figure-left 5s ease-in-out infinite;
}
.scn-queen-meets-anne .figure-right {
  position:absolute; bottom:22%; right:38%; width:22px; height:56px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qa-figure-right 5s ease-in-out infinite alternate;
}
.scn-queen-meets-anne .lantern {
  position:absolute; bottom:35%; left:50%; width:12px; height:20px; transform:translateX(-50%);
  background: linear-gradient(180deg, #c09850 0%, #a08038 50%, #705020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 24px 8px rgba(192,152,80,0.5);
  animation: qa-lantern 3s ease-in-out infinite alternate;
}
.scn-queen-meets-anne .shadow-left {
  position:absolute; bottom:22%; left:35%; width:60px; height:6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: qa-shadow-left 5s ease-in-out infinite;
}
.scn-queen-meets-anne .shadow-right {
  position:absolute; bottom:22%; right:35%; width:55px; height:5px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: qa-shadow-right 5s ease-in-out infinite alternate;
}
@keyframes qa-arch-left {
  0% { transform: scaleX(1); filter: brightness(0.9); }
  50% { transform: scaleX(1.02); filter: brightness(1); }
  100% { transform: scaleX(1); filter: brightness(0.9); }
}
@keyframes qa-arch-right {
  0% { transform: scaleX(1); filter: brightness(0.9); }
  50% { transform: scaleX(1.02); filter: brightness(1); }
  100% { transform: scaleX(1); filter: brightness(0.9); }
}
@keyframes qa-figure-left {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes qa-figure-right {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes qa-lantern {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg) scaleY(1.05); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes qa-shadow-left {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
@keyframes qa-shadow-right {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.15); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-tyrrel-agrees { background: linear-gradient(180deg, #2a0a1a, #1a0a0a), radial-gradient(circle at 60% 50%, #3a1a0a, transparent); }
.scn-tyrrel-agrees .room { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, #1a0a0a 100%); }
.scn-tyrrel-agrees .wall { position:absolute; left:10%; top:10%; width:80%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-tyrrel-agrees .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a0a, #0a0000); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-tyrrel-agrees .lamp { position:absolute; top:20%; left:50%; width:12px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #d09040 0%, #a06020 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(208,144,64,0.8); animation: ta-lamp 2s ease-in-out infinite alternate; }
.scn-tyrrel-agrees .figure-tyrrel { position:absolute; bottom:15%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: ta-figure 4s ease-in-out infinite; }
.scn-tyrrel-agrees .figure-richard { position:absolute; bottom:15%; right:30%; width:24px; height:44px; background: linear-gradient(180deg, #2a1a0a, #1a0a00); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: ta-figure 5s ease-in-out infinite reverse; }
.scn-tyrrel-agrees .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: ta-shadow 10s ease-in-out infinite; }
@keyframes ta-lamp { 0% { box-shadow: 0 0 20px 5px rgba(208,144,64,0.6); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(208,144,64,0.9); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(208,144,64,0.7); opacity:0.9 } }
@keyframes ta-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ta-shadow { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.05); opacity:0.6 } 100% { transform: scale(1); opacity:0.5 } }

.scn-buckingham-returns { background: linear-gradient(180deg, #2a3a4a, #1a2a3a), radial-gradient(ellipse at 50% 30%, #4a6a8a, transparent); }
.scn-buckingham-returns .hall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #0a1a2a 100%); }
.scn-buckingham-returns .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a3a, #0a101a); border-radius: 30% 70% 0 0 / 40% 50% 0 0; }
.scn-buckingham-returns .table { position:absolute; bottom:20%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 20% 20% 10% 10%; transform: perspective(200px) rotateX(10deg); }
.scn-buckingham-returns .figure-buck { position:absolute; bottom:12%; left:25%; width:22px; height:42px; background: linear-gradient(180deg, #3a4a5a, #1a2a3a); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: br-figure 3s ease-in-out infinite; }
.scn-buckingham-returns .figure-richard { position:absolute; bottom:12%; right:25%; width:26px; height:46px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: br-figure 3.5s ease-in-out infinite reverse; }
.scn-buckingham-returns .torch { position:absolute; top:15%; left:50%; width:10px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #e0b060 0%, #a07020 70%); border-radius: 50%; box-shadow: 0 0 25px 8px rgba(224,176,96,0.6); animation: br-torch 1.5s ease-in-out infinite alternate; }
.scn-buckingham-returns .shadow { position:absolute; bottom:8%; left:10%; width:80%; height:8%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px); animation: br-shadow 8s ease-in-out infinite; }
@keyframes br-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes br-torch { 0% { opacity:0.7; box-shadow: 0 0 15px 4px rgba(224,176,96,0.4) } 50% { opacity:1; box-shadow: 0 0 35px 12px rgba(224,176,96,0.8) } 100% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(224,176,96,0.5) } }
@keyframes br-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-buckingham-demands-earldom { background: linear-gradient(180deg, #3a2a1a, #1a0a0a), radial-gradient(circle at 70% 40%, #804a20, transparent); }
.scn-buckingham-demands-earldom .room { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, #0a0a00 100%); }
.scn-buckingham-demands-earldom .wall { position:absolute; left:5%; top:5%; width:90%; height:65%; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
.scn-buckingham-demands-earldom .podium { position:absolute; bottom:15%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #5a4a3a, #2a1a0a); border-radius: 10% 10% 0 0; transform: perspective(300px) rotateX(5deg); }
.scn-buckingham-demands-earldom .figure-buck { position:absolute; bottom:8%; left:30%; width:24px; height:46px; background: linear-gradient(180deg, #3a4a5a, #1a2a3a); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: bd-figure 4s ease-in-out infinite; }
.scn-buckingham-demands-earldom .document { position:absolute; bottom:18%; left:45%; width:20px; height:14px; background: linear-gradient(135deg, #d0c0a0, #b0a080); border-radius: 5% 5% 10% 10%; transform: rotate(15deg); animation: bd-doc 6s ease-in-out infinite; }
.scn-buckingham-demands-earldom .figure-richard { position:absolute; bottom:10%; right:20%; width:28px; height:48px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: bd-figure 5s ease-in-out infinite reverse; }
.scn-buckingham-demands-earldom .light { position:absolute; top:10%; left:35%; width:30px; height:30px; background: radial-gradient(circle, #e0a040 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: bd-light 3s ease-in-out infinite alternate; }
@keyframes bd-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bd-doc { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes bd-light { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(1) } }

.scn-richard-mocks-buckingham { background: linear-gradient(180deg, #0a0a1a, #000), radial-gradient(ellipse at 50% 20%, #2a1a0a, transparent); }
.scn-richard-mocks-buckingham .room { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, #000 100%); }
.scn-richard-mocks-buckingham .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.8)); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: rm-shadow 12s ease-in-out infinite; }
.scn-richard-mocks-buckingham .throne { position:absolute; bottom:12%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a, #1a0a00); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-richard-mocks-buckingham .richard { position:absolute; bottom:15%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a, #1a0a00); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: rm-richard 3s ease-in-out infinite; }
.scn-richard-mocks-buckingham .buckingham { position:absolute; bottom:10%; left:20%; width:22px; height:44px; background: linear-gradient(180deg, #3a4a5a, #1a2a3a); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: rm-buck 4s ease-in-out infinite; }
.scn-richard-mocks-buckingham .lamp { position:absolute; top:20%; left:50%; width:8px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #d09040 0%, #a06020 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(208,144,64,0.6); animation: rm-lamp 2.5s ease-in-out infinite alternate; }
.scn-richard-mocks-buckingham .glow { position:absolute; top:15%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(208,144,64,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: rm-glow 5s ease-in-out infinite; }
@keyframes rm-shadow { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rm-richard { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes rm-buck { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rm-lamp { 0% { box-shadow: 0 0 20px 5px rgba(208,144,64,0.5); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(208,144,64,0.9); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(208,144,64,0.6); opacity:0.9 } }
@keyframes rm-glow { 0% { transform: scale(1); opacity:0.3 } 50% { transform: scale(1.2); opacity:0.5 } 100% { transform: scale(1); opacity:0.3 } }

.scn-queen-asks-for-clarence {
  background: linear-gradient(180deg, #e8d5b7 0%, #d4a373 40%, #b5835a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.5) 0%, transparent 60%);
}
.scn-queen-asks-for-clarence .qi-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #d9b68c 0%, #c19d71 100%);
  animation: qi-wall 12s ease-in-out infinite alternate;
}
.scn-queen-asks-for-clarence .qi-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8b5e34 0%, #6a4525 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-queen-asks-for-clarence .qi-throne {
  position:absolute; bottom:30%; left:45%; width:90px; height:100px;
  background: linear-gradient(180deg, #c78b4b 0%, #9d6b3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: qi-throne 6s ease-in-out infinite;
}
.scn-queen-asks-for-clarence .qi-queen {
  position:absolute; bottom:26%; left:38%; width:28px; height:50px;
  background: linear-gradient(180deg, #a37148 0%, #7a5533 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qi-queen 4s ease-in-out infinite alternate;
}
.scn-queen-asks-for-clarence .qi-courtier1 {
  position:absolute; bottom:28%; left:60%; width:22px; height:42px;
  background: linear-gradient(180deg, #8a6b48 0%, #5f4530 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: qi-courtier1 4.5s ease-in-out infinite alternate;
}
.scn-queen-asks-for-clarence .qi-courtier2 {
  position:absolute; bottom:30%; left:70%; width:20px; height:38px;
  background: linear-gradient(180deg, #7a5c3e 0%, #4f3625 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: qi-courtier2 5s ease-in-out infinite alternate;
}
.scn-queen-asks-for-clarence .qi-window {
  position:absolute; top:8%; left:70%; width:50px; height:70px;
  background: radial-gradient(ellipse at center, #fff5d6 0%, #e4cba0 70%);
  border-radius: 4%;
  box-shadow: 0 0 30px 10px rgba(255,235,180,0.3);
  animation: qi-window 8s ease-in-out infinite alternate;
}
.scn-queen-asks-for-clarence .qi-lightray {
  position:absolute; top:10%; left:68%; width:80px; height:200px;
  background: linear-gradient(135deg, rgba(255,235,180,0.15) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: qi-lightray 10s ease-in-out infinite alternate;
}
.scn-queen-asks-for-clarence .qi-shadow {
  position:absolute; bottom:25%; left:35%; width:40px; height:10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: qi-shadow 4s ease-in-out infinite alternate;
}
@keyframes qi-wall {
  0% { opacity:0.9; filter:brightness(1); }
  50% { opacity:1; filter:brightness(1.1); }
  100% { opacity:0.85; filter:brightness(0.95); }
}
@keyframes qi-throne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qi-queen {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes qi-courtier1 {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(0.98) translateX(2px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes qi-courtier2 {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(0.97) translateX(-2px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes qi-window {
  0% { opacity:0.7; box-shadow:0 0 20px 5px rgba(255,235,180,0.2); }
  50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,235,180,0.4); }
  100% { opacity:0.8; box-shadow:0 0 25px 8px rgba(255,235,180,0.25); }
}
@keyframes qi-lightray {
  0% { opacity:0; transform: rotate(0deg) scaleX(1); }
  50% { opacity:0.6; transform: rotate(3deg) scaleX(1.05); }
  100% { opacity:0; transform: rotate(-2deg) scaleX(0.95); }
}
@keyframes qi-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:0.2; }
  50% { transform: translateX(4px) scaleX(1.1); opacity:0.35; }
  100% { transform: translateX(0) scaleX(1); opacity:0.2; }
}

.scn-richard-announces-clarence-death {
  background: linear-gradient(180deg, #c9a96e 0%, #b88d5a 40%, #9a7345 100%),
              radial-gradient(ellipse at 60% 20%, rgba(240,210,160,0.4) 0%, transparent 80%);
}
.scn-richard-announces-clarence-death .rd-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #b58a55 0%, #9a7345 40%, #785a34 100%);
  animation: rd-wall 10s ease-in-out infinite alternate;
}
.scn-richard-announces-clarence-death .rd-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a4525 0%, #4a2e18 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.35);
}
.scn-richard-announces-clarence-death .rd-richard {
  position:absolute; bottom:27%; left:50%; width:30px; height:52px;
  background: linear-gradient(180deg, #d4a373 0%, #a0784a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: rd-richard 3.5s ease-in-out infinite alternate;
}
.scn-richard-announces-clarence-death .rd-courtier-l {
  position:absolute; bottom:29%; left:35%; width:22px; height:40px;
  background: linear-gradient(180deg, #8a6b48 0%, #5f4530 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: rd-courtier-l 4s ease-in-out infinite alternate;
}
.scn-richard-announces-clarence-death .rd-courtier-r {
  position:absolute; bottom:29%; right:35%; width:22px; height:40px;
  background: linear-gradient(180deg, #7a5c3e 0%, #4f3625 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: rd-courtier-r 4.2s ease-in-out infinite alternate;
}
.scn-richard-announces-clarence-death .rd-lantern {
  position:absolute; top:15%; left:50%; width:12px; height:12px;
  background: radial-gradient(circle, #ffe680 0%, #d9a050 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,200,100,0.5);
  transform: translateX(-50%);
  animation: rd-lantern 3s ease-in-out infinite alternate;
}
.scn-richard-announces-clarence-death .rd-shadow {
  position:absolute; bottom:24%; left:46%; width:50px; height:12px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(5px);
  animation: rd-shadow 3.5s ease-in-out infinite alternate;
}
@keyframes rd-wall {
  0% { opacity:0.85; filter:brightness(0.9); }
  50% { opacity:1; filter:brightness(1.1); }
  100% { opacity:0.9; filter:brightness(0.95); }
}
@keyframes rd-richard {
  0% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
}
@keyframes rd-courtier-l {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(0.98); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes rd-courtier-r {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(0.98); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes rd-lantern {
  0% { transform: translateX(-50%) rotate(-3deg); opacity:0.8; }
  50% { transform: translateX(-50%) rotate(3deg); opacity:1; }
  100% { transform: translateX(-50%) rotate(-3deg); opacity:0.85; }
}
@keyframes rd-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:0.25; }
  50% { transform: translateX(5px) scaleX(1.15); opacity:0.4; }
  100% { transform: translateX(0) scaleX(1); opacity:0.25; }
}

.scn-derby-begs-for-servant {
  background: linear-gradient(180deg, #e0cba0 0%, #c9a96e 40%, #b58a55 100%),
              radial-gradient(ellipse at 40% 10%, rgba(255,220,160,0.6) 0%, transparent 70%);
}
.scn-derby-begs-for-servant .db-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #c9a96e 0%, #b58a55 50%, #9a7345 100%);
  animation: db-wall 14s ease-in-out infinite alternate;
}
.scn-derby-begs-for-servant .db-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a4525 0%, #4a2e18 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-derby-begs-for-servant .db-throne {
  position:absolute; bottom:30%; left:45%; width:90px; height:90px;
  background: linear-gradient(180deg, #c78b4b 0%, #9d6b3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: db-throne 7s ease-in-out infinite;
}
.scn-derby-begs-for-servant .db-king {
  position:absolute; bottom:24%; left:50%; width:28px; height:48px;
  background: linear-gradient(180deg, #a37148 0%, #7a5533 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: db-king 4s ease-in-out infinite alternate;
}
.scn-derby-begs-for-servant .db-derby {
  position:absolute; bottom:22%; left:30%; width:22px; height:35px;
  background: linear-gradient(180deg, #6a4a30 0%, #3f2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-derby 3.5s ease-in-out infinite alternate;
}
.scn-derby-begs-for-servant .db-courtier-a {
  position:absolute; bottom:28%; left:65%; width:20px; height:38px;
  background: linear-gradient(180deg, #7a5c3e 0%, #4f3625 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: db-courtier-a 5s ease-in-out infinite alternate;
}
.scn-derby-begs-for-servant .db-courtier-b {
  position:absolute; bottom:30%; left:72%; width:18px; height:34px;
  background: linear-gradient(180deg, #8a6b48 0%, #5f4530 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: db-courtier-b 5.5s ease-in-out infinite alternate;
}
.scn-derby-begs-for-servant .db-staff {
  position:absolute; bottom:20%; left:32%; width:4px; height:40px;
  background: linear-gradient(180deg, #8b5e34 0%, #5a3a1e 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: db-staff 3s ease-in-out infinite alternate;
}
@keyframes db-wall {
  0% { opacity:0.88; filter:brightness(0.95); }
  50% { opacity:1; filter:brightness(1.08); }
  100% { opacity:0.92; filter:brightness(1); }
}
@keyframes db-throne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes db-king {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes db-derby {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes db-courtier-a {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(0.97) translateX(2px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes db-courtier-b {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(0.96) translateX(-2px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes db-staff {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

.scn-king-edward-grief {
  background: linear-gradient(180deg, #d4a373 0%, #b58a55 40%, #8b5e34 100%),
              radial-gradient(ellipse at 60% 30%, rgba(200,160,100,0.3) 0%, transparent 70%);
}
.scn-king-edward-grief .kg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #c9a96e 0%, #b58a55 50%, #9a7345 100%);
  animation: kg-wall 15s ease-in-out infinite alternate;
}
.scn-king-edward-grief .kg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a4525 0%, #4a2e18 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.35);
}
.scn-king-edward-grief .kg-throne {
  position:absolute; bottom:30%; left:45%; width:90px; height:95px;
  background: linear-gradient(180deg, #c78b4b 0%, #9d6b3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: kg-throne 8s ease-in-out infinite;
}
.scn-king-edward-grief .kg-king {
  position:absolute; bottom:24%; left:50%; width:28px; height:46px;
  background: linear-gradient(180deg, #8a6b48 0%, #5f4530 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: kg-king 4s ease-in-out infinite alternate;
}
.scn-king-edward-grief .kg-queen {
  position:absolute; bottom:26%; left:38%; width:24px; height:42px;
  background: linear-gradient(180deg, #a37148 0%, #7a5533 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kg-queen 4.5s ease-in-out infinite alternate;
}
.scn-king-edward-grief .kg-attendant {
  position:absolute; bottom:28%; left:65%; width:20px; height:36px;
  background: linear-gradient(180deg, #7a5c3e 0%, #4f3625 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: kg-attendant 5s ease-in-out infinite alternate;
}
.scn-king-edward-grief .kg-candle {
  position:absolute; bottom:34%; left:55%; width:6px; height:12px;
  background: linear-gradient(180deg, #ffe680 0%, #d9a050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: kg-candle 2.5s ease-in-out infinite alternate;
}
.scn-king-edward-grief .kg-shadow {
  position:absolute; bottom:22%; left:44%; width:50px; height:14px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: kg-shadow 4s ease-in-out infinite alternate;
}
@keyframes kg-wall {
  0% { opacity:0.85; filter:brightness(0.9); }
  50% { opacity:1; filter:brightness(1.05); }
  100% { opacity:0.9; filter:brightness(0.95); }
}
@keyframes kg-throne {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kg-king {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes kg-queen {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes kg-attendant {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(0.97); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes kg-candle {
  0% { transform: scaleY(1) rotate(-2deg); box-shadow:0 0 15px 5px rgba(255,200,100,0.4); }
  50% { transform: scaleY(1.05) rotate(2deg); box-shadow:0 0 25px 10px rgba(255,200,100,0.6); }
  100% { transform: scaleY(1) rotate(-2deg); box-shadow:0 0 15px 5px rgba(255,200,100,0.4); }
}
@keyframes kg-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:0.3; }
  50% { transform: translateX(5px) scaleX(1.2); opacity:0.45; }
  100% { transform: translateX(0) scaleX(1); opacity:0.3; }
}

.scn-anne-answers { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%) , radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 75%); }
.scn-anne-answers .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1e1e2a 0%, #2e2e3a 40%, #1a1a28 100%); animation: a3-bg 8s ease-in-out infinite alternate; }
.scn-anne-answers .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1e1a14 0%, #2e2a1e 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-anne-answers .doorway { position:absolute; bottom:25%; left:35%; width:30%; height:60%; background: #1a1a1a; border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.8); transform-origin: bottom center; animation: a3-door 6s ease-in-out infinite; }
.scn-anne-answers .torch { position:absolute; bottom:45%; left:12%; width:10px; height:16px; background: radial-gradient(circle, #ffb040 0%, #804020 60%, transparent 100%); border-radius: 40%; box-shadow: 0 0 30px 10px #ffb040; animation: a3-torch 2s ease-in-out infinite alternate; }
.scn-anne-answers .figure1 { position:absolute; bottom:18%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #0a0a14 0%, #1e1e2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: a3-fig1 4s ease-in-out infinite; }
.scn-anne-answers .figure2 { position:absolute; bottom:20%; left:30%; width:20px; height:42px; background: linear-gradient(180deg, #12121e 0%, #1c1c2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: a3-fig2 5s ease-in-out infinite 1s; }
.scn-anne-answers .shadow { position:absolute; bottom:26%; left:30%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform-origin: 0% 100%; animation: a3-shadow 6s ease-in-out infinite alternate; }
.scn-anne-answers .light-pool { position:absolute; bottom:20%; left:15%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(255,176,64,.15) 0%, transparent 100%); animation: a3-lightpool 3s ease-in-out infinite alternate; }
@keyframes a3-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes a3-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) translateY(-2px) } }
@keyframes a3-torch { 0% { transform: scale(1) rotate(-3deg) } 50% { transform: scale(1.15) rotate(3deg) opacity:.9 } 100% { transform: scale(1) rotate(-1deg) } }
@keyframes a3-fig1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes a3-fig2 { 0% { transform: translateX(0) scaleY(1) } 30% { transform: translateX(2px) scaleY(1.02) } 60% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(-1px) scaleY(1) } }
@keyframes a3-shadow { 0% { transform: skewX(-5deg) scaleX(1) opacity:.6 } 50% { transform: skewX(5deg) scaleX(1.1) opacity:.8 } 100% { transform: skewX(-3deg) scaleX(1) opacity:.7 } }
@keyframes a3-lightpool { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-brakenbury-refuses-entry { background: linear-gradient(180deg, #1c1c2e 0%, #141422 50%) , radial-gradient(ellipse at 30% 40%, #3a2a1e 0%, transparent 80%); }
.scn-brakenbury-refuses-entry .wall { position:absolute; inset:0; background: linear-gradient(90deg, #20202e 0%, #2e2e3e 50%, #1a1a2a 100%); animation: b3-wall 10s ease-in-out infinite alternate; }
.scn-brakenbury-refuses-entry .door { position:absolute; bottom:20%; right:10%; width:25%; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #1e1212 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.7); transform-origin: right center; animation: b3-door 5s ease-in-out infinite; }
.scn-brakenbury-refuses-entry .guard-figure { position:absolute; bottom:16%; right:22%; width:28px; height:60px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: b3-guard 3s ease-in-out infinite; }
.scn-brakenbury-refuses-entry .queen-figure { position:absolute; bottom:20%; left:15%; width:26px; height:55px; background: linear-gradient(180deg, #1a1a2e 0%, #121222 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: b3-queen 4s ease-in-out infinite 0.5s; }
.scn-brakenbury-refuses-entry .lantern { position:absolute; bottom:50%; left:40%; width:8px; height:12px; background: radial-gradient(circle, #c08040 0%, #603010 100%); border-radius: 20%; box-shadow: 0 0 20px 6px #c08040; animation: b3-lantern 2s ease-in-out infinite alternate; }
.scn-brakenbury-refuses-entry .shadow-floor { position:absolute; bottom:10%; left:10%; right:10%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: b3-shadowfloor 6s ease-in-out infinite alternate; }
.scn-brakenbury-refuses-entry .bars { position:absolute; bottom:20%; right:10%; width:25%; height:60%; background: repeating-linear-gradient(0deg, #2a2a2a 0px, #2a2a2a 4px, transparent 4px, transparent 10px); opacity:.6; animation: b3-bars 7s ease-in-out infinite; }
@keyframes b3-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes b3-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.01) translateY(2px) } }
@keyframes b3-guard { 0% { transform: rotate(0) translateX(0) } 30% { transform: rotate(2deg) translateX(2px) } 60% { transform: rotate(0) translateX(0) } 100% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes b3-queen { 0% { transform: scaleY(1) rotate(0) } 25% { transform: scaleY(1.02) rotate(2deg) } 50% { transform: scaleY(1) rotate(0) } 75% { transform: scaleY(1.01) rotate(-1deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes b3-lantern { 0% { transform: rotate(-5deg) translate(0,0) } 50% { transform: rotate(5deg) translate(2px, -1px) } 100% { transform: rotate(-3deg) translate(0,0) } }
@keyframes b3-shadowfloor { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes b3-bars { 0%,100% { opacity:.5 } 50% { opacity:.8 } }

.scn-duchess-insists { background: linear-gradient(180deg, #1e1e28 0%, #12121a 60%) , radial-gradient(ellipse at 50% 30%, #2e2218 0%, transparent 70%); }
.scn-duchess-insists .wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a24 0%, #262632 50%, #12121e 100%); animation: d3-wall 9s ease-in-out infinite alternate; }
.scn-duchess-insists .floor-stripes { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #1e1a16 0px, #1e1a16 12px, #2e2a22 12px, #2e2a22 20px); opacity:.7; }
.scn-duchess-insists .duchess { position:absolute; bottom:18%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: d3-duchess 3s ease-in-out infinite; }
.scn-duchess-insists .officer { position:absolute; bottom:16%; right:20%; width:26px; height:55px; background: linear-gradient(180deg, #141420 0%, #1a1a28 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: d3-officer 4s ease-in-out infinite 0.3s; }
.scn-duchess-insists .barred-window { position:absolute; top:15%; right:25%; width:14%; height:20%; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border: 2px solid #2a2a2a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.8); animation: d3-window 6s ease-in-out infinite; }
.scn-duchess-insists .barred-window::after { content: ''; position:absolute; inset:0; background: repeating-linear-gradient(0deg, #3a3a4a 0px, #3a3a4a 2px, transparent 2px, transparent 6px); opacity:.6; }
.scn-duchess-insists .tear-drop { position:absolute; bottom:30%; left:32%; width:4px; height:6px; background: radial-gradient(circle, #a0a0b0 0%, transparent 100%); border-radius: 50%; animation: d3-tear 2s ease-in-out infinite; }
.scn-duchess-insists .chain { position:absolute; bottom:10%; left:45%; width:20px; height:30px; background: repeating-linear-gradient(0deg, #3a3a3a 0px, #3a3a3a 2px, transparent 2px, transparent 6px); transform: rotate(10deg); animation: d3-chain 4s ease-in-out infinite; }
@keyframes d3-wall { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes d3-duchess { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(5deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes d3-officer { 0% { transform: scaleY(1) translateX(0) } 20% { transform: scaleY(1.02) translateX(-2px) } 40% { transform: scaleY(1) translateX(0) } 80% { transform: scaleY(1) translateX(1px) } 100% { transform: scaleY(1) translateX(0) } }
@keyframes d3-window { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes d3-tear { 0%,100% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(6px) scale(1.2); opacity:1 } }
@keyframes d3-chain { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(0) } }

.scn-stanley-brings-news { background: linear-gradient(180deg, #2e1e1e 0%, #1a1212 60%) , radial-gradient(ellipse at 40% 30%, #4a2a1a 0%, transparent 70%); }
.scn-stanley-brings-news .throne-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a14 0%, #3a2a22 40%, #1a1210 100%); animation: s3-bg 8s ease-in-out infinite alternate; }
.scn-stanley-brings-news .pillar { position:absolute; bottom:0; left:10%; width:6%; height:90%; background: linear-gradient(90deg, #3a2a22 0%, #4a3a32 30%, #3a2a22 100%); border-radius: 6px; box-shadow: 4px 0 12px rgba(0,0,0,.5); }
.scn-stanley-brings-news .stanley { position:absolute; bottom:16%; left:40%; width:22px; height:48px; background: linear-gradient(180deg, #1a1a24 0%, #0e0e1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: s3-stanley 6s ease-in-out infinite; }
.scn-stanley-brings-news .queen-eliz { position:absolute; bottom:20%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #1e1e2a 0%, #141422 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: s3-queen 5s ease-in-out infinite 1s; }
.scn-stanley-brings-news .anne { position:absolute; bottom:18%; left:68%; width:24px; height:46px; background: linear-gradient(180deg, #1c1c28 0%, #12121e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: s3-anne 4s ease-in-out infinite 2s; }
.scn-stanley-brings-news .crown { position:absolute; bottom:35%; left:58%; width:10px; height:8px; background: #5e3a1a; border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 0 8px 2px #7a4a2a; animation: s3-crown 3s ease-in-out infinite alternate; }
.scn-stanley-brings-news .drapery { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #3a2020 0%, #2a1515 100%); border-radius: 0 0 0 40%; opacity:.8; animation: s3-drapery 10s ease-in-out infinite; }
.scn-stanley-brings-news .footsteps { position:absolute; bottom:8%; left:30%; width:30%; height:6px; background: repeating-conic-gradient(#2a1a1a 0deg 90deg, transparent 90deg 180deg); border-radius: 50%; opacity:.3; animation: s3-step 4s linear infinite; }
@keyframes s3-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes s3-stanley { 0% { transform: scaleY(1) translateX(0) } 30% { transform: scaleY(.95) translateX(2px) } 60% { transform: scaleY(1) translateX(0) } 100% { transform: scaleY(.98) translateX(-1px) } }
@keyframes s3-queen { 0% { transform: rotate(0) } 30% { transform: rotate(5deg) } 60% { transform: rotate(0) } 100% { transform: rotate(-3deg) } }
@keyframes s3-anne { 0% { transform: translateY(0) } 20% { transform: translateY(-2px) } 40% { transform: translateY(0) } 80% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes s3-crown { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes s3-drapery { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes s3-step { 0% { background-position: 0 0; opacity:.2 } 50% { background-position: 20px 0; opacity:.4 } 100% { background-position: 40px 0; opacity:.2 } }

.scn-hasteings-rejects {
  background:
    linear-gradient(180deg, #2a1610 0%, #1a0e0a 100%),
    radial-gradient(circle at 70% 80%, #4a1a0a 0%, transparent 60%);
}
.scn-hasteings-rejects .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a201a 0%, #2a1610 100%);
  animation: hr-wall 15s ease-in-out infinite alternate;
}
.scn-hasteings-rejects .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #0d0a07 0%, #1a0e0a 100%);
  border-radius: 20% 20% 0 0;
  animation: hr-floor 8s ease-in-out infinite alternate;
}
.scn-hasteings-rejects .fireplace {
  position:absolute; bottom:30%; left:20%; width:30%; height:40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-hasteings-rejects .flame {
  position:absolute; bottom:35%; left:25%; width:10%; height:20%;
  background: radial-gradient(circle, #ffaa44 0%, #ff6600 50%, transparent 100%);
  box-shadow: 0 0 30px 10px #ff6600;
  animation: hr-flame 0.5s ease-in-out infinite alternate;
}
.scn-hasteings-rejects .figure-main {
  position:absolute; bottom:30%; left:55%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0f0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: hr-figure 6s ease-in-out infinite alternate;
}
.scn-hasteings-rejects .figure-catesby {
  position:absolute; bottom:30%; left:75%; width:8%; height:30%;
  background: linear-gradient(180deg, #2a1610 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hr-catesby 7s ease-in-out infinite alternate;
}
.scn-hasteings-rejects .shadow-layer {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.5) 100%);
  animation: hr-shadow 10s ease-in-out infinite alternate;
}
@keyframes hr-wall {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.75; }
}
@keyframes hr-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes hr-flame {
  0% { transform: scale(1) rotate(-2deg); opacity:.9; }
  50% { transform: scale(1.1) rotate(2deg); opacity:1; }
  100% { transform: scale(0.95) rotate(-1deg); opacity:.85; }
}
@keyframes hr-figure {
  0% { transform: scaleX(0.8) translateY(0) rotate(0deg); }
  50% { transform: scaleX(0.82) translateY(-2px) rotate(1deg); }
  100% { transform: scaleX(0.78) translateY(1px) rotate(-1deg); }
}
@keyframes hr-catesby {
  0% { transform: translateX(0) scaleX(0.7); }
  50% { transform: translateX(4px) scaleX(0.72); }
  100% { transform: translateX(-2px) scaleX(0.68); }
}
@keyframes hr-shadow {
  0% { opacity:.5; }
  50% { opacity:.6; }
  100% { opacity:.4; }
}

.scn-stanley-arrives {
  background:
    linear-gradient(180deg, #1c1a24 0%, #12101a 100%),
    radial-gradient(circle at 50% 100%, #322a3a 0%, transparent 70%);
}
.scn-stanley-arrives .bg-arch {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #2a2636 0%, #1a1824 50%, #2a2636 100%);
  animation: sa-bg 20s ease-in-out infinite alternate;
}
.scn-stanley-arrives .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #0e0c14 0%, #1a1824 100%);
  border-radius: 30% 30% 0 0;
  animation: sa-floor 12s ease-in-out infinite alternate;
}
.scn-stanley-arrives .doorway {
  position:absolute; bottom:25%; left:35%; width:30%; height:50%;
  background: #0a0910;
  border-radius: 50% 50% 5% 5% / 80% 80% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-stanley-arrives .figure-stanley {
  position:absolute; bottom:25%; left:48%; width:12%; height:45%;
  background: linear-gradient(180deg, #1c1a24 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.85);
  animation: sa-stanley 5s ease-in-out infinite alternate;
}
.scn-stanley-arrives .boar-spear {
  position:absolute; bottom:30%; left:60%; width:3%; height:50%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-15deg);
  animation: sa-spear 4s ease-in-out infinite alternate;
}
.scn-stanley-arrives .figure-catesby2 {
  position:absolute; bottom:25%; left:70%; width:8%; height:30%;
  background: linear-gradient(180deg, #2a2636 0%, #1a1824 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-catesby 6s ease-in-out infinite alternate;
}
.scn-stanley-arrives .torch {
  position:absolute; bottom:35%; left:20%; width:6%; height:15%;
  background: radial-gradient(circle at 50% 20%, #ffaa33 0%, #aa5500 80%, transparent 100%);
  box-shadow: 0 0 20px 5px #aa5500;
  animation: sa-torch 0.8s ease-in-out infinite alternate;
}
.scn-stanley-arrives .torch-glow {
  position:absolute; bottom:30%; left:12%; width:20%; height:25%;
  background: radial-gradient(circle, #ffaa33 0%, transparent 70%);
  opacity:.3;
  animation: sa-torchglow 3s ease-in-out infinite alternate;
}
@keyframes sa-bg {
  0% { opacity:.7; }
  50% { opacity:.9; }
  100% { opacity:.6; }
}
@keyframes sa-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes sa-stanley {
  0% { transform: scaleX(0.85) translateY(0) rotate(0deg); }
  50% { transform: scaleX(0.87) translateY(-3px) rotate(1deg); }
  100% { transform: scaleX(0.83) translateY(1px) rotate(-0.5deg); }
}
@keyframes sa-spear {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-17deg) translateY(1px); }
}
@keyframes sa-catesby {
  0% { transform: translateX(0) scaleX(0.7); }
  50% { transform: translateX(2px) scaleX(0.72); }
  100% { transform: translateX(-1px) scaleX(0.68); }
}
@keyframes sa-torch {
  0% { transform: scale(1) rotate(-2deg); opacity:.9; }
  50% { transform: scale(1.15) rotate(3deg); opacity:1; }
  100% { transform: scale(0.95) rotate(-1deg); opacity:.8; }
}
@keyframes sa-torchglow {
  0% { opacity:.2; transform: scale(1); }
  50% { opacity:.4; transform: scale(1.05); }
  100% { opacity:.25; transform: scale(0.95); }
}

.scn-hasteings-reassures-stanley {
  background:
    linear-gradient(180deg, #2e2a25 0%, #1e1a15 100%),
    radial-gradient(circle at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-hasteings-reassures-stanley .bg-panel {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #3a322a 0%, #2a221a 50%, #3a322a 100%);
  animation: hs-bg 18s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: hs-table 10s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .candle {
  position:absolute; bottom:32%; left:45%; width:4%; height:12%;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hs-candle 1.5s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .candle-glow {
  position:absolute; bottom:25%; left:35%; width:30%; height:30%;
  background: radial-gradient(circle, #ffcc66 0%, transparent 70%);
  opacity:.4;
  animation: hs-glow 4s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .figure-hastings {
  position:absolute; bottom:20%; left:35%; width:12%; height:40%;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: hs-hastings 8s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .figure-stanley2 {
  position:absolute; bottom:20%; left:55%; width:12%; height:40%;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8) scaleX(-1);
  animation: hs-stanley 9s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .chair-hastings {
  position:absolute; bottom:20%; left:32%; width:14%; height:18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.4);
  animation: hs-chair2 12s ease-in-out infinite alternate;
}
.scn-hasteings-reassures-stanley .chair-stanley {
  position:absolute; bottom:20%; left:54%; width:14%; height:18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.4);
  animation: hs-chair2 12s ease-in-out infinite alternate;
}
@keyframes hs-bg {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.85; }
}
@keyframes hs-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes hs-candle {
  0% { transform: rotate(-1deg) scaleY(1); opacity:.9; }
  50% { transform: rotate(1deg) scaleY(1.05); opacity:1; }
  100% { transform: rotate(-0.5deg) scaleY(0.98); opacity:.85; }
}
@keyframes hs-glow {
  0% { opacity:.3; transform: scale(1); }
  50% { opacity:.5; transform: scale(1.1); }
  100% { opacity:.35; transform: scale(0.95); }
}
@keyframes hs-hastings {
  0% { transform: scaleX(0.8) translateY(0) rotate(0deg); }
  50% { transform: scaleX(0.82) translateY(-2px) rotate(0.5deg); }
  100% { transform: scaleX(0.78) translateY(1px) rotate(-0.3deg); }
}
@keyframes hs-stanley {
  0% { transform: scaleX(0.8) scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(0.82) scaleX(-1) translateY(-2px) rotate(0.5deg); }
  100% { transform: scaleX(0.78) scaleX(-1) translateY(1px) rotate(-0.3deg); }
}
@keyframes hs-chair2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}

.scn-pursuivant-meets {
  background:
    linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%),
    radial-gradient(circle at 30% 60%, #4a4a5a 0%, transparent 70%);
}
.scn-pursuivant-meets .bg-corridor {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #1a1820 0%, #2a2832 50%, #1a1820 100%);
  animation: pm-bg 20s ease-in-out infinite alternate;
}
.scn-pursuivant-meets .window {
  position:absolute; top:15%; left:15%; width:25%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #bcc4d0 0%, #7a8a9a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: pm-window 10s ease-in-out infinite alternate;
}
.scn-pursuivant-meets .window-light {
  position:absolute; top:10%; left:10%; width:35%; height:50%;
  background: linear-gradient(180deg, rgba(180,190,210,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: pm-light 8s ease-in-out infinite alternate;
}
.scn-pursuivant-meets .figure-hastings2 {
  position:absolute; bottom:20%; left:30%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: pm-hastings 7s ease-in-out infinite alternate;
}
.scn-pursuivant-meets .figure-pursuivant {
  position:absolute; bottom:20%; left:55%; width:10%; height:35%;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.75);
  animation: pm-pur 8s ease-in-out infinite alternate;
}
.scn-pursuivant-meets .floor2 {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #0a0a0e 0%, #1a1820 100%);
  border-radius: 30% 30% 0 0;
  animation: pm-floor 15s ease-in-out infinite alternate;
}
.scn-pursuivant-meets .shadow-pool {
  position:absolute; bottom:0; left:35%; width:30%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: pm-pool 12s ease-in-out infinite alternate;
}
@keyframes pm-bg {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.75; }
}
@keyframes pm-window {
  0% { opacity:.5; transform: scaleY(1); }
  50% { opacity:.7; transform: scaleY(1.02); }
  100% { opacity:.4; transform: scaleY(0.98); }
}
@keyframes pm-light {
  0% { opacity:.2; transform: translateX(0); }
  50% { opacity:.4; transform: translateX(5px); }
  100% { opacity:.15; transform: translateX(-3px); }
}
@keyframes pm-hastings {
  0% { transform: scaleX(0.8) translateY(0) rotate(0deg); }
  50% { transform: scaleX(0.82) translateY(-2px) rotate(0.5deg); }
  100% { transform: scaleX(0.78) translateY(1px) rotate(-0.3deg); }
}
@keyframes pm-pur {
  0% { transform: scaleX(0.75) translateY(0) rotate(0deg); }
  50% { transform: scaleX(0.77) translateY(-2px) rotate(-0.5deg); }
  100% { transform: scaleX(0.73) translateY(1px) rotate(0.3deg); }
}
@keyframes pm-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes pm-pool {
  0% { opacity:.3; transform: scaleX(1); }
  50% { opacity:.5; transform: scaleX(1.1); }
  100% { opacity:.2; transform: scaleX(0.9); }
}

.scn-margaret-prophesies {
  background: linear-gradient(180deg, #1a0a0a 0%, #2d1313 30%, #0d0505 100%),
              radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 70%);
}
.scn-margaret-prophesies .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(60,20,10,0.3) 0%, transparent 70%);
}
.scn-margaret-prophesies .wall-left {
  position: absolute; left: 0; top: 0; bottom: 20%; width: 30%;
  background: linear-gradient(90deg, #2a1515 0%, #1a0a0a 100%);
  border-right: 2px solid #3a2020;
  box-shadow: 10px 0 20px rgba(0,0,0,0.5);
}
.scn-margaret-prophesies .wall-right {
  position: absolute; right: 0; top: 0; bottom: 20%; width: 30%;
  background: linear-gradient(270deg, #2a1515 0%, #1a0a0a 100%);
  border-left: 2px solid #3a2020;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
}
.scn-margaret-prophesies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-margaret-prophesies .figure {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0505 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mp-figure 6s ease-in-out infinite;
}
.scn-margaret-prophesies .brazier {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(160,70,26,0.6);
  animation: mp-brazier 2s ease-in-out infinite alternate;
}
.scn-margaret-prophesies .glow {
  position: absolute; bottom: 22%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(160,70,26,0.4) 0%, transparent 70%);
  transform: translate(-30px, -20px);
  animation: mp-glow 3s ease-in-out infinite alternate;
}
@keyframes mp-figure {
  0%   { transform: translateX(-50%) rotate(-2deg); }
  50%  { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes mp-brazier {
  0%   { box-shadow: 0 0 15px 8px rgba(160,70,26,0.5); }
  50%  { box-shadow: 0 0 25px 15px rgba(160,70,26,0.8); }
  100% { box-shadow: 0 0 20px 12px rgba(160,70,26,0.6); }
}
@keyframes mp-glow {
  0%   { opacity: 0.3; transform: translate(-30px, -20px) scale(1); }
  50%  { opacity: 0.5; transform: translate(-30px, -20px) scale(1.15); }
  100% { opacity: 0.6; transform: translate(-30px, -20px) scale(1.2); }
}

.scn-elizabeth-recalls-margaret {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-elizabeth-recalls-margaret .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(20,20,40,0.5) 0%, transparent 80%);
}
.scn-elizabeth-recalls-margaret .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.8);
}
.scn-elizabeth-recalls-margaret .figure-left {
  position: absolute; bottom: 14%; left: 35%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: er-kneel 5s ease-in-out infinite;
}
.scn-elizabeth-recalls-margaret .figure-right {
  position: absolute; bottom: 14%; left: 65%; width: 32px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 60% 60% 40% 40%;
  animation: er-stand 7s ease-in-out infinite;
}
.scn-elizabeth-recalls-margaret .candle {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b87a 0%, #a08050 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px 4px rgba(180,140,80,0.6);
  animation: er-candle 3s ease-in-out infinite alternate;
}
.scn-elizabeth-recalls-margaret .candle-glow {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(180,140,80,0.3) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: er-glow 4s ease-in-out infinite alternate;
}
.scn-elizabeth-recalls-margaret .curse {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(40,0,0,0.4) 0%, transparent 60%);
  transform: translate(-50%, -20%);
  animation: er-curse 8s ease-in-out infinite;
}
@keyframes er-kneel {
  0%   { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  50%  { transform: translateX(-50%) rotate(1deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes er-stand {
  0%   { transform: translateX(-50%) rotate(0deg); }
  50%  { transform: translateX(-50%) rotate(2deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes er-candle {
  0%   { height: 40px; box-shadow: 0 0 8px 4px rgba(180,140,80,0.4); }
  50%  { height: 42px; box-shadow: 0 0 14px 6px rgba(180,140,80,0.7); }
  100% { height: 38px; box-shadow: 0 0 10px 5px rgba(180,140,80,0.5); }
}
@keyframes er-glow {
  0%   { opacity: 0.3; transform: translate(-50%, -50%) scale(1); }
  50%  { opacity: 0.6; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 0.4; transform: translate(-50%, -50%) scale(1.1); }
}
@keyframes er-curse {
  0%   { opacity: 0; transform: translate(-50%, -20%) scale(0.8); }
  50%  { opacity: 0.5; transform: translate(-50%, -20%) scale(1.3); }
  100% { opacity: 0; transform: translate(-50%, -20%) scale(0.9); }
}

.scn-margaret-triumphs {
  background: linear-gradient(180deg, #1a0e0e 0%, #2a1515 40%, #0d0505 100%),
              radial-gradient(ellipse at 50% 20%, #3a1a1a 0%, transparent 60%);
}
.scn-margaret-triumphs .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(40,15,10,0.4) 0%, transparent 80%);
}
.scn-margaret-triumphs .beam {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(200,160,100,0.15) 0%, transparent 50%);
  transform: skewX(-5deg);
  animation: mt-beam 10s ease-in-out infinite alternate;
}
.scn-margaret-triumphs .throne {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2015 0%, #1a0a05 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
}
.scn-margaret-triumphs .margaret {
  position: absolute; bottom: 22%; left: 50%; width: 35px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a05 0%, #0d0505 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  animation: mt-margaret 4s ease-in-out infinite;
}
.scn-margaret-triumphs .elizabeth {
  position: absolute; bottom: 14%; left: 30%; width: 40px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1010 0%, #0d0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mt-elizabeth 6s ease-in-out infinite;
}
.scn-margaret-triumphs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-margaret-triumphs .scepter {
  position: absolute; bottom: 28%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 12px 4px rgba(200,160,100,0.4);
  transform: rotate(15deg);
  animation: mt-scepter 3s ease-in-out infinite alternate;
}
@keyframes mt-beam {
  0%   { opacity: 0.3; transform: skewX(-5deg) scaleY(1); }
  50%  { opacity: 0.6; transform: skewX(-5deg) scaleY(1.1); }
  100% { opacity: 0.4; transform: skewX(-5deg) scaleY(0.95); }
}
@keyframes mt-margaret {
  0%   { transform: translateX(-50%) rotate(-2deg); }
  50%  { transform: translateX(-50%) rotate(2deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes mt-elizabeth {
  0%   { transform: translateX(-50%) translateY(0) scale(1); }
  50%  { transform: translateX(-50%) translateY(-4px) scale(0.95); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes mt-scepter {
  0%   { transform: rotate(15deg); box-shadow: 0 0 10px 4px rgba(200,160,100,0.3); }
  50%  { transform: rotate(18deg); box-shadow: 0 0 18px 6px rgba(200,160,100,0.6); }
  100% { transform: rotate(12deg); box-shadow: 0 0 12px 5px rgba(200,160,100,0.4); }
}

.scn-margaret-farewell {
  background: linear-gradient(180deg, #121222 0%, #1a1a2e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 60%);
}
.scn-margaret-farewell .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(20,20,40,0.5) 0%, transparent 80%);
}
.scn-margaret-farewell .archway {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1a2e 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-margaret-farewell .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050515 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-margaret-farewell .margaret {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: mf-walk 8s ease-in-out infinite;
}
.scn-margaret-farewell .elizabeth {
  position: absolute; bottom: 20%; left: 70%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #22223a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: mf-collapse 6s ease-in-out infinite;
}
.scn-margaret-farewell .light {
  position: absolute; bottom: 0; left: 30%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(150,180,220,0.15) 0%, transparent 60%);
  transform: skewX(-10deg);
  animation: mf-light 8s ease-in-out infinite alternate;
}
@keyframes mf-walk {
  0%   { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25%  { transform: translateX(-50%) translateY(-5px) rotate(2deg); }
  50%  { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75%  { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes mf-collapse {
  0%   { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50%  { transform: translateX(-50%) scaleY(0.9); opacity: 0.5; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
}
@keyframes mf-light {
  0%   { opacity: 0.2; transform: skewX(-10deg) scaleX(1); }
  50%  { opacity: 0.5; transform: skewX(-10deg) scaleX(1.1); }
  100% { opacity: 0.3; transform: skewX(-10deg) scaleX(0.95); }
}

/* Scene 1: richard-counts-gains – dark dim interior */
.scn-richard-counts-gains {
  background:
    linear-gradient(180deg, #0f0c1a 0%, #1a142c 40%, #2c1e3a 70%, #1a142c 100%),
    radial-gradient(ellipse at 50% 80%, #3c2a4a 0%, transparent 60%);
}
.scn-richard-counts-gains .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0f0c1a 0%, #1a142c 60%, transparent 100%);
  animation: bg-rcg 15s ease-in-out infinite alternate;
}
.scn-richard-counts-gains .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2c1e3a 0%, #1a142c 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.6);
}
.scn-richard-counts-gains .desk {
  position: absolute; bottom: 22%; left: 50%; width: 90px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-richard-counts-gains .candle {
  position: absolute; bottom: 32%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c080 0%, #b08040 100%);
  border-radius: 2px 2px 1px 1px;
  animation: candle-rcg 2s ease-in-out infinite;
}
.scn-richard-counts-gains .glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.4) 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 30px rgba(255,208,128,0.3);
  animation: glow-rcg 3s ease-in-out infinite alternate;
}
.scn-richard-counts-gains .figure {
  position: absolute; bottom: 16%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a14 0%, #16121e 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-rcg 6s ease-in-out infinite;
}
.scn-richard-counts-gains .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%; filter: blur(3px);
  animation: shadow-rcg 6s ease-in-out infinite;
}
.scn-richard-counts-gains .scroll {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 0% 0% 30% 30% / 0% 0% 60% 60%;
  transform: rotate(15deg);
  animation: scroll-rcg 10s ease-in-out infinite alternate;
}
@keyframes bg-rcg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes candle-rcg { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes glow-rcg { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px 20px #ffd080, 0 0 100px 40px rgba(255,208,128,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 35px 12px #c08040, 0 0 70px 25px rgba(192,128,64,0.35); } }
@keyframes figure-rcg { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes shadow-rcg { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }
@keyframes scroll-rcg { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }

/* Scene 2: catesby-brings-bad-news – tense bright interior */
.scn-catesby-brings-bad-news {
  background:
    linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 70%);
}
.scn-catesby-brings-bad-news .bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 60%, transparent 100%);
  animation: bg-cbb 10s ease-in-out infinite alternate;
}
.scn-catesby-brings-bad-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%);
  border-radius: 5% 5% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 3px 10px rgba(0,0,0,0.3);
}
.scn-catesby-brings-bad-news .throne {
  position: absolute; bottom: 18%; left: 60%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: throne-cbb 5s ease-in-out infinite;
}
.scn-catesby-brings-bad-news .king {
  position: absolute; bottom: 26%; left: 60%; width: 22px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a142c 0%, #0f0c1a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  animation: king-cbb 4s ease-in-out infinite alternate;
}
.scn-catesby-brings-bad-news .catesby {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2c1e3a 0%, #1a142c 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: catesby-cbb 3s ease-in-out infinite;
}
.scn-catesby-brings-bad-news .window {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #8ab8d0 0%, #a0c8e0 100%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: window-cbb 15s linear infinite;
}
.scn-catesby-brings-bad-news .lightbeam {
  position: absolute; top: 5%; left: 30%; width: 120px; height: 120px;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 0% 100%);
  animation: beam-cbb 20s ease-in-out infinite alternate;
}
.scn-catesby-brings-bad-news .map {
  position: absolute; bottom: 10%; left: 15%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: map-cbb 8s ease-in-out infinite;
}
@keyframes bg-cbb { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes throne-cbb { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes king-cbb { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes catesby-cbb { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes window-cbb { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes beam-cbb { 0% { transform: rotate(0deg) scale(1); opacity: 0.3; } 50% { transform: rotate(5deg) scale(1.1); opacity: 0.5; } 100% { transform: rotate(-2deg) scale(0.9); opacity: 0.2; } }
@keyframes map-cbb { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }

/* Scene 3: queen-elizabeth-laments-babes – dark dim interior, moonlight */
.scn-queen-elizabeth-laments-babes {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #14142e 40%, #1c1e3a 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 70%);
}
.scn-queen-elizabeth-laments-babes .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 60%, transparent 100%);
  animation: bg-qel 12s ease-in-out infinite alternate;
}
.scn-queen-elizabeth-laments-babes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1c1e3a 0%, #0a0a1a 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.7);
}
.scn-queen-elizabeth-laments-babes .window {
  position: absolute; top: 8%; left: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 100%);
  border: 4px solid #1a1e2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.1);
}
.scn-queen-elizabeth-laments-babes .moonlight {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 150px;
  background: linear-gradient(135deg, rgba(200,220,255,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 40% 100%, 0% 100%);
  animation: moon-qel 25s ease-in-out infinite alternate;
}
.scn-queen-elizabeth-laments-babes .queen {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a142c 0%, #0f0c1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: queen-qel 6s ease-in-out infinite;
}
.scn-queen-elizabeth-laments-babes .ghost-a {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(200,220,255,0.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ghost-a-qel 8s ease-in-out infinite alternate;
}
.scn-queen-elizabeth-laments-babes .ghost-b {
  position: absolute; bottom: 28%; left: 60%; width: 16px; height: 28px;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(200,220,255,0.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ghost-b-qel 9s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-queen-elizabeth-laments-babes .tear {
  position: absolute; bottom: 22%; left: 52%; width: 4px; height: 8px;
  background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: tear-qel 4s ease-in-out infinite;
}
@keyframes bg-qel { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes moon-qel { 0% { opacity: 0.2; transform: rotate(-5deg); } 50% { opacity: 0.4; transform: rotate(5deg); } 100% { opacity: 0.15; transform: rotate(0deg); } }
@keyframes queen-qel { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ghost-a-qel { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 50% { transform: translate(5px, -5px) scale(1.05); opacity: 0.6; } 100% { transform: translate(-3px, -2px) scale(0.95); opacity: 0.3; } }
@keyframes ghost-b-qel { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 50% { transform: translate(-5px, -3px) scale(0.95); opacity: 0.6; } 100% { transform: translate(4px, -1px) scale(1.05); opacity: 0.3; } }
@keyframes tear-qel { 0% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(10px); opacity: 0.5; } 100% { transform: translateY(20px); opacity: 0; } }

/* Scene 4: margaret-accuses – dark dim interior, tension */
.scn-margaret-accuses {
  background:
    linear-gradient(180deg, #0c0a14 0%, #1a1428 40%, #2c1e3a 70%, #0c0a14 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 60%);
}
.scn-margaret-accuses .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0c0a14 0%, #1a1428 60%, transparent 100%);
  animation: bg-ma 14s ease-in-out infinite alternate;
}
.scn-margaret-accuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c1e3a 0%, #0c0a14 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.6);
}
.scn-margaret-accuses .figure-margaret {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a142c 0%, #0f0c1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: margaret-ma 5s ease-in-out infinite;
}
.scn-margaret-accuses .figure-edward {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, rgba(200,220,255,0.2) 0%, rgba(200,220,255,0.02) 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: edward-ma 7s ease-in-out infinite alternate;
}
.scn-margaret-accuses .crown {
  position: absolute; bottom: 14%; left: 48%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: crown-ma 8s ease-in-out infinite;
}
.scn-margaret-accuses .chains {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: chains-ma 3s ease-in-out infinite alternate;
}
.scn-margaret-accuses .shadow {
  position: absolute; bottom: 5%; left: 38%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%; filter: blur(4px);
  animation: shadow-ma 5s ease-in-out infinite;
}
@keyframes bg-ma { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes margaret-ma { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 80% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes edward-ma { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(-4px, -3px) scale(1.02); opacity: 0.5; } 100% { transform: translate(3px, -1px) scale(0.98); opacity: 0.2; } }
@keyframes crown-ma { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes chains-ma { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.05); } 100% { transform: translateX(-2px) scaleX(0.95); } }
@keyframes shadow-ma { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(0.8); opacity: 0.2; } }

.scn-gloucester-soliloquy-winter { background: linear-gradient(180deg, #4A90D9 0%, #87CEEB 40%, #FFD700 70%, #FFB347 100%); }
.scn-gloucester-soliloquy-winter .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6CA6E0 0%, transparent 100%); }
.scn-gloucester-soliloquy-winter .sun { position:absolute; top:15%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 50%, #FF8C00 100%); border-radius:50%; box-shadow: 0 0 40px 20px #FFD700; animation: gsw-sun 8s ease-in-out infinite alternate; }
.scn-gloucester-soliloquy-winter .ocean { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1E4D6B 0%, #3A7CA5 40%, #5FA8D3 100%); animation: gsw-ocean 12s ease-in-out infinite; }
.scn-gloucester-soliloquy-winter .cloud-sink { position:absolute; top:30%; left:10%; width:200px; height:40px; background: linear-gradient(90deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.2) 100%); border-radius:50%; filter: blur(8px); animation: gsw-clouds 20s ease-in-out infinite; }
.scn-gloucester-soliloquy-winter .monument { position:absolute; bottom:30%; left:25%; width:30px; height:80px; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-gloucester-soliloquy-winter .armor-hang { position:absolute; bottom:38%; left:24%; width:18px; height:24px; background: linear-gradient(180deg, #B8860B 0%, #DAA520 100%); border-radius:30% 30% 0 0; transform-origin: top center; animation: gsw-armor 4s ease-in-out infinite; }
.scn-gloucester-soliloquy-winter .figure { position:absolute; bottom:28%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #2F1E0E 0%, #1A0F05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gsw-figure 5s ease-in-out infinite; }
.scn-gloucester-soliloquy-winter .crown { position:absolute; bottom:53%; left:44.5%; width:20px; height:8px; background: linear-gradient(180deg, #FFD700 0%, #FFA500 100%); border-radius:30% 30% 0 0; clip-path: polygon(10% 0%, 90% 0%, 75% 100%, 25% 100%); animation: gsw-crown 6s ease-in-out infinite alternate; }
@keyframes gsw-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 30px 15px #FFD700; } 50% { transform: translate(4px,-4px) scale(1.1); box-shadow: 0 0 50px 25px #FFD700; } 100% { transform: translate(0,0) scale(1); box-shadow: 0 0 30px 15px #FFD700; } }
@keyframes gsw-ocean { 0% { background-position: 0% 100%; } 50% { background-position: 10% 100%; } 100% { background-position: 0% 100%; } }
@keyframes gsw-clouds { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.7; } 50% { transform: translateX(30px) translateY(15px) scale(1.1); opacity:0.4; } 100% { transform: translateX(0) translateY(30px) scale(1); opacity:0.2; } }
@keyframes gsw-armor { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes gsw-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes gsw-crown { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-gloucester-soliloquy-deformity { background: linear-gradient(135deg, #8B4513 0%, #D2B48C 40%, #F5F5DC 70%, #FFF8DC 100%); }
.scn-gloucester-soliloquy-deformity .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #3E2723 0%, #5D4037 50%, #795548 100%); opacity:0.6; }
.scn-gloucester-soliloquy-deformity .window { position:absolute; top:10%; right:15%; width:80px; height:120px; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); border:4px solid #5D4037; border-radius:4px; box-shadow: inset 0 0 20px #FFD700; }
.scn-gloucester-soliloquy-deformity .mirror-frame { position:absolute; top:25%; left:30%; width:90px; height:120px; background: transparent; border:6px solid #A0522D; border-radius:8px; box-shadow: 0 0 15px rgba(0,0,0,.3); }
.scn-gloucester-soliloquy-deformity .mirror-glass { position:absolute; top:28%; left:33%; width:78px; height:104px; background: linear-gradient(135deg, #E0E0E0 0%, #FFFFFF 40%, #B0B0B0 100%); opacity:0.7; border-radius:4px; animation: gsd-mirror 10s ease-in-out infinite alternate; }
.scn-gloucester-soliloquy-deformity .figure-deformed { position:absolute; bottom:15%; left:25%; width:24px; height:40px; background: linear-gradient(180deg, #2F1E0E 0%, #1A0F05 100%); border-radius:50% 50% 30% 60% / 60% 50% 40% 70%; transform-origin: bottom center; animation: gsd-fig 4s ease-in-out infinite; }
.scn-gloucester-soliloquy-deformity .shadow { position:absolute; bottom:12%; left:40%; width:30px; height:10px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(3px); animation: gsd-shadow 6s ease-in-out infinite; }
.scn-gloucester-soliloquy-deformity .sunbeam { position:absolute; top:0; right:10%; width:10px; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, rgba(255,255,200,0) 100%); transform: rotate(-30deg); transform-origin: top right; animation: gsd-beam 8s ease-in-out infinite alternate; }
.scn-gloucester-soliloquy-deformity .dust { position:absolute; top:30%; left:50%; width:2px; height:2px; background: #FFF; border-radius:50%; box-shadow: 0 0 2px #FFF; animation: gsd-dust 15s linear infinite; }
@keyframes gsd-mirror { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.02); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes gsd-fig { 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 gsd-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.6; } 100% { transform: scaleX(1); opacity:0.4; } }
@keyframes gsd-beam { 0% { transform: rotate(-35deg); opacity:0.5; } 50% { transform: rotate(-25deg); opacity:1; } 100% { transform: rotate(-35deg); opacity:0.5; } }
@keyframes gsd-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 50% { transform: translate(30px,-20px) scale(2); opacity:0.8; } 100% { transform: translate(60px,-40px) scale(1); opacity:0; } }

.scn-gloucester-soliloquy-villainy { background: linear-gradient(180deg, #FF7F50 0%, #FF6347 30%, #FFD700 60%, #FFFACD 100%); }
.scn-gloucester-soliloquy-villainy .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #FF8C00 0%, #FF7F50 50%, transparent 100%); }
.scn-gloucester-soliloquy-villainy .sun { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, #FF8C00 100%); border-radius:50%; box-shadow: 0 0 30px 15px #FFD700; animation: gsv-sun 10s ease-in-out infinite alternate; }
.scn-gloucester-soliloquy-villainy .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #556B2F 0%, #6B8E23 50%, #9ACD32 100%); }
.scn-gloucester-soliloquy-villainy .figure-limping { position:absolute; bottom:22%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #2F1E0E 0%, #1A0F05 100%); border-radius:50% 50% 40% 50% / 60% 50% 40% 60%; transform-origin: bottom center; animation: gsv-limp 3s ease-in-out infinite; }
.scn-gloucester-soliloquy-villainy .shadow-villain { position:absolute; bottom:18%; left:32%; width:30px; height:8px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(2px); animation: gsv-shadow 5s ease-in-out infinite; }
.scn-gloucester-soliloquy-villainy .dog-a { position:absolute; bottom:24%; left:55%; width:14px; height:10px; background: linear-gradient(180deg, #8B4513 0%, #5D4037 100%); border-radius:50% 50% 40% 40%; animation: gsv-dog1 2s ease-in-out infinite; }
.scn-gloucester-soliloquy-villainy .dog-b { position:absolute; bottom:24%; left:65%; width:14px; height:10px; background: linear-gradient(180deg, #6A4A3A 0%, #3A2A1A 100%); border-radius:50% 50% 40% 40%; animation: gsv-dog2 2.5s ease-in-out infinite 0.5s; }
.scn-gloucester-soliloquy-villainy .dagger { position:absolute; bottom:30%; left:40%; width:4px; height:16px; background: linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius:0 0 2px 2px; transform-origin: bottom center; transform: rotate(30deg); animation: gsv-dagger 4s ease-in-out infinite; }
@keyframes gsv-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px,-3px) scale(1.05); } 100% { transform: translate(0,0) scale(1); } }
@keyframes gsv-limp { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(5deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-1px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gsv-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:0.3; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes gsv-dog1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes gsv-dog2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-10deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes gsv-dagger { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }

.scn-clarence-and-brakenbury { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFD700 70%, #FFA500 100%); }
.scn-clarence-and-brakenbury .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6CA6E0 0%, transparent 100%); }
.scn-clarence-and-brakenbury .sun { position:absolute; top:12%; left:80%; width:45px; height:45px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, #FF8C00 100%); border-radius:50%; box-shadow: 0 0 25px 12px #FFD700; animation: cb-sun 9s ease-in-out infinite alternate; }
.scn-clarence-and-brakenbury .tower { position:absolute; bottom:30%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #A0522D 0%, #8B4513 50%, #5D4037 100%); border-radius:4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-clarence-and-brakenbury .gate { position:absolute; bottom:30%; left:28%; width:20px; height:40px; background: #2E1A0E; border-radius:10px 10px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.8); }
.scn-clarence-and-brakenbury .guard { position:absolute; bottom:28%; left:35%; width:18px; height:32px; background: linear-gradient(180deg, #B8860B 0%, #DAA520 50%, #8B6914 100%); border-radius:30% 30% 20% 20%; animation: cb-guard 4s ease-in-out infinite; }
.scn-clarence-and-brakenbury .clarence { position:absolute; bottom:28%; left:45%; width:18px; height:32px; background: linear-gradient(180deg, #4A2C1A 0%, #2E1A0E 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: cb-clarence 5s ease-in-out infinite; }
.scn-clarence-and-brakenbury .chain { position:absolute; bottom:33%; left:42%; width:6px; height:20px; background: linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius:2px; transform-origin: top center; animation: cb-chain 3s ease-in-out infinite; }
.scn-clarence-and-brakenbury .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #556B2F 0%, #6B8E23 50%, #9ACD32 100%); }
@keyframes cb-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 20px 10px #FFD700; } 50% { transform: translate(2px,-2px) scale(1.08); box-shadow: 0 0 35px 15px #FFD700; } 100% { transform: translate(0,0) scale(1); box-shadow: 0 0 20px 10px #FFD700; } }
@keyframes cb-guard { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cb-clarence { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cb-chain { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }

.scn-murderers-justify { background: linear-gradient(170deg, #1e1410 0%, #0d0a08 45%, #1a0e08 100%), radial-gradient(ellipse at 45% 85%, #3a1e12 0%, transparent 65%); }
.scn-murderers-justify .wall-bg { position:absolute; inset:0 0 32% 0; background: linear-gradient(180deg, #241a14 0%, #12100c 100%); animation: mj-wall 18s ease-in-out infinite alternate; }
.scn-murderers-justify .floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #16120e 0%, #0a0806 100%); }
.scn-murderers-justify .lantern-glow { position:absolute; bottom:28%; left:44%; width:18px; height:18px; background: radial-gradient(circle, #d48c30 0%, #b07020 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 35px 12px rgba(180,112,32,0.45), 0 0 70px 25px rgba(180,112,32,0.2); animation: mj-glow 4s ease-in-out infinite alternate; }
.scn-murderers-justify .figure-left { position:absolute; bottom:30%; left:18%; width:26px; height:58px; background: linear-gradient(180deg, #2a1e16 0%, #18120e 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom center; animation: mj-stand 7s ease-in-out infinite; }
.scn-murderers-justify .figure-right { position:absolute; bottom:30%; right:18%; width:26px; height:60px; background: linear-gradient(180deg, #2a1e16 0%, #18120e 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom center; animation: mj-stand 7s ease-in-out infinite reverse; }
.scn-murderers-justify .figure-clarence { position:absolute; bottom:32%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #36261a 0%, #241812 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom center; animation: mj-cower 9s ease-in-out infinite; }
.scn-murderers-justify .shadow-bars { position:absolute; bottom:26%; left:0; right:0; height:3px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 20%, rgba(0,0,0,0.25) 50%, rgba(0,0,0,0.5) 80%, transparent 100%); filter:blur(2px); animation: mj-shade 8s ease-in-out infinite alternate; }
@keyframes mj-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mj-glow { 0% { transform:scale(1); opacity:.85; box-shadow:0 0 30px 10px rgba(180,112,32,0.4),0 0 60px 20px rgba(180,112,32,0.15); } 50% { transform:scale(1.15); opacity:1; box-shadow:0 0 45px 18px rgba(200,130,40,0.55),0 0 85px 30px rgba(200,130,40,0.25); } 100% { transform:scale(0.95); opacity:.75; box-shadow:0 0 25px 8px rgba(160,100,28,0.35),0 0 55px 18px rgba(160,100,28,0.12); } }
@keyframes mj-stand { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 30% { transform:translateX(1px) translateY(-2px) rotate(0.5deg); } 60% { transform:translateX(-1px) translateY(-1px) rotate(-0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes mj-cower { 0% { transform:translateX(0) translateY(0) scale(1) rotate(0deg); } 25% { transform:translateX(1px) translateY(1px) scale(0.97) rotate(-1deg); } 50% { transform:translateX(-2px) translateY(2px) scale(0.95) rotate(1deg); } 75% { transform:translateX(1px) translateY(1px) scale(0.97) rotate(-0.5deg); } 100% { transform:translateX(0) translateY(0) scale(1) rotate(0deg); } }
@keyframes mj-shade { 0% { transform:scaleX(1); opacity:.5; } 50% { transform:scaleX(1.2); opacity:.7; } 100% { transform:scaleX(0.9); opacity:.4; } }

.scn-clarence-disbelieves { background: linear-gradient(175deg, #1c1614 0%, #0e0c0a 50%, #180e0a 100%), radial-gradient(ellipse at 55% 30%, #2a1a10 0%, transparent 60%); }
.scn-clarence-disbelieves .wall-bg { position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #221a16 0%, #12100c 100%); animation: cd-wall 20s ease-in-out infinite alternate; }
.scn-clarence-disbelieves .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #14120e 0%, #0a0806 100%); }
.scn-clarence-disbelieves .candle-glow { position:absolute; bottom:48%; right:22%; width:8px; height:14px; background: linear-gradient(180deg, #e8b050 0%, #c08830 100%); border-radius:20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow:0 0 20px 8px rgba(200,140,60,0.5),0 0 40px 16px rgba(200,140,60,0.2); animation: cd-flicker 3s ease-in-out infinite alternate; }
.scn-clarence-disbelieves .figure-clarence { position:absolute; bottom:30%; left:38%; width:24px; height:54px; background: linear-gradient(180deg, #3a2a1e 0%, #241812 100%); border-radius:40% 40% 30% 30% / 55% 55% 40% 40%; transform-origin:bottom center; animation: cd-turn 10s ease-in-out infinite; }
.scn-clarence-disbelieves .figure-murderer { position:absolute; bottom:30%; right:24%; width:26px; height:58px; background: linear-gradient(180deg, #2a1e16 0%, #18120e 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom center; animation: cd-lurk 12s ease-in-out infinite; }
.scn-clarence-disbelieves .shadow-pool { position:absolute; bottom:12%; left:30%; right:30%; height:18%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%); filter:blur(3px); animation: cd-pool 15s ease-in-out infinite alternate; }
@keyframes cd-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes cd-flicker { 0% { transform:scaleY(1) scaleX(1); opacity:.8; box-shadow:0 0 18px 6px rgba(200,140,60,0.4),0 0 35px 14px rgba(200,140,60,0.15); } 50% { transform:scaleY(1.2) scaleX(0.9); opacity:1; box-shadow:0 0 28px 12px rgba(220,160,70,0.55),0 0 50px 20px rgba(220,160,70,0.25); } 100% { transform:scaleY(0.9) scaleX(1.1); opacity:.75; box-shadow:0 0 15px 5px rgba(180,120,40,0.35),0 0 30px 12px rgba(180,120,40,0.12); } }
@keyframes cd-turn { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 20% { transform:translateX(3px) translateY(-1px) rotate(2deg); } 40% { transform:translateX(6px) translateY(-2px) rotate(4deg); } 60% { transform:translateX(3px) translateY(-1px) rotate(2deg); } 80% { transform:translateX(1px) translateY(0) rotate(0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes cd-lurk { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(-2px) translateY(-1px) rotate(-0.5deg); } 50% { transform:translateX(-4px) translateY(-2px) rotate(-1deg); } 75% { transform:translateX(-2px) translateY(-1px) rotate(-0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes cd-pool { 0% { transform:scaleX(1) scaleY(1); opacity:.4; } 50% { transform:scaleX(1.3) scaleY(0.8); opacity:.6; } 100% { transform:scaleX(0.9) scaleY(1.1); opacity:.35; } }

.scn-murderers-reveal-richard { background: linear-gradient(168deg, #1a1412 0%, #0e0c0a 40%, #1c0e08 100%), radial-gradient(ellipse at 50% 30%, #3a1e12 0%, transparent 55%); }
.scn-murderers-reveal-richard .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #201814 0%, #12100c 100%); animation: mr-wall 22s ease-in-out infinite alternate; }
.scn-murderers-reveal-richard .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #14120e 0%, #080604 100%); }
.scn-murderers-reveal-richard .light-shaft { position:absolute; top:0; left:35%; right:35%; bottom:40%; background: linear-gradient(180deg, rgba(200,160,80,0.08) 0%, rgba(200,160,80,0.03) 40%, transparent 100%); transform:skewX(-5deg); filter:blur(4px); animation: mr-shaft 14s ease-in-out infinite alternate; }
.scn-murderers-reveal-richard .figure-murderer { position:absolute; bottom:30%; left:28%; width:28px; height:62px; background: linear-gradient(180deg, #2a1e16 0%, #18120e 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom center; animation: mr-point 8s ease-in-out infinite; }
.scn-murderers-reveal-richard .figure-clarence { position:absolute; bottom:32%; right:28%; width:22px; height:46px; background: linear-gradient(180deg, #36261a 0%, #241812 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom center; animation: mr-recoil 6s ease-in-out infinite; }
.scn-murderers-reveal-richard .dagger { position:absolute; bottom:48%; left:34%; width:2px; height:12px; background: linear-gradient(180deg, #8a8a8a 0%, #c0c0c0 50%, #8a8a8a 100%); border-radius:10% 10% 20% 20%; box-shadow:0 0 6px 2px rgba(180,180,180,0.3); transform:rotate(-30deg); animation: mr-glimmer 4s ease-in-out infinite alternate; }
.scn-murderers-reveal-richard .shadow-cast { position:absolute; bottom:14%; left:20%; right:20%; height:16%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%); filter:blur(4px); animation: mr-cast 12s ease-in-out infinite alternate; }
@keyframes mr-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mr-shaft { 0% { transform:skewX(-5deg) scaleX(1); opacity:.6; } 50% { transform:skewX(-8deg) scaleX(1.2); opacity:1; } 100% { transform:skewX(-3deg) scaleX(0.9); opacity:.5; } }
@keyframes mr-point { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform:translateX(8px) translateY(-4px) rotate(6deg); } 75% { transform:translateX(4px) translateY(-2px) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes mr-recoil { 0% { transform:translateX(0) translateY(0) scale(1) rotate(0deg); } 30% { transform:translateX(-4px) translateY(2px) scale(0.96) rotate(-2deg); } 60% { transform:translateX(-8px) translateY(4px) scale(0.92) rotate(-4deg); } 100% { transform:translateX(-2px) translateY(1px) scale(0.98) rotate(-1deg); } }
@keyframes mr-glimmer { 0% { transform:rotate(-30deg) scaleY(1); opacity:.6; box-shadow:0 0 4px 1px rgba(180,180,180,0.2); } 50% { transform:rotate(-28deg) scaleY(1.1); opacity:1; box-shadow:0 0 10px 4px rgba(200,200,200,0.5); } 100% { transform:rotate(-32deg) scaleY(0.9); opacity:.5; box-shadow:0 0 3px 1px rgba(160,160,160,0.15); } }
@keyframes mr-cast { 0% { transform:scaleX(1) scaleY(1); opacity:.5; } 50% { transform:scaleX(1.4) scaleY(0.8); opacity:.7; } 100% { transform:scaleX(0.8) scaleY(1.2); opacity:.4; } }

.scn-clarence-questions { background: linear-gradient(172deg, #1c1410 0%, #0e0a08 45%, #160c06 100%), radial-gradient(ellipse at 40% 60%, #2a1810 0%, transparent 60%); }
.scn-clarence-questions .wall-bg { position:absolute; inset:0 0 34% 0; background: linear-gradient(180deg, #1e1612 0%, #100e0c 100%); animation: cq-wall 24s ease-in-out infinite alternate; }
.scn-clarence-questions .floor { position:absolute; bottom:0; left:0; right:0; height:34%; background: linear-gradient(180deg, #12100c 0%, #080604 100%); }
.scn-clarence-questions .cell-glow { position:absolute; top:8%; left:10%; right:10%; bottom:30%; background: radial-gradient(ellipse at 50% 0%, rgba(160,120,60,0.06) 0%, transparent 70%); filter:blur(6px); animation: cq-glint 16s ease-in-out infinite alternate; }
.scn-clarence-questions .figure-clarence { position:absolute; bottom:32%; left:44%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1e 0%, #241812 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom center; animation: cq-pray 11s ease-in-out infinite; }
.scn-clarence-questions .figure-murderer-one { position:absolute; bottom:32%; right:22%; width:26px; height:58px; background: linear-gradient(180deg, #2a1e16 0%, #18120e 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom center; animation: cq-turn 13s ease-in-out infinite; }
.scn-clarence-questions .figure-murderer-two { position:absolute; bottom:34%; right:8%; width:24px; height:54px; background: linear-gradient(180deg, #2a1e16 0%, #18120e 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin:bottom center; animation: cq-turn 13s ease-in-out infinite -4s; }
.scn-clarence-questions .cross-shadow { position:absolute; top:10%; left:48%; width:2px; height:18px; background: rgba(60,40,20,0.3); border-radius:10% 10% 0 0; box-shadow:-8px 0 0 0 rgba(60,40,20,0.3), 0 18px 0 0 rgba(60,40,20,0.15); transform:translateX(-50%); filter:blur(1px); animation: cq-cross 20s ease-in-out infinite alternate; }
@keyframes cq-wall { 0% { opacity:.88; } 50% { opacity:1; } 100% { opacity:.82; } }
@keyframes cq-glint { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.4; } }
@keyframes cq-pray { 0% { transform:translateX(0) translateY(0) rotate(0deg) scale(1); } 20% { transform:translateX(1px) translateY(-2px) rotate(1deg) scale(1.02); } 40% { transform:translateX(2px) translateY(-4px) rotate(2deg) scale(1.04); } 60% { transform:translateX(1px) translateY(-2px) rotate(1deg) scale(1.02); } 80% { transform:translateX(0) translateY(0) rotate(0deg) scale(1); } 100% { transform:translateX(1px) translateY(-1px) rotate(0.5deg) scale(1.01); } }
@keyframes cq-turn { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(-3px) translateY(-1px) rotate(-1.5deg); } 50% { transform:translateX(-6px) translateY(-2px) rotate(-3deg); } 75% { transform:translateX(-3px) translateY(-1px) rotate(-1.5deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes cq-cross { 0% { opacity:.25; transform:translateX(-50%) scaleY(1); } 50% { opacity:.45; transform:translateX(-50%) scaleY(1.2); } 100% { opacity:.2; transform:translateX(-50%) scaleY(0.9); } }

/* elizabeth-seeks-curses (esc) — dim interior, dark mood */
.scn-elizabeth-seeks-curses {
  background:
    linear-gradient(180deg, #1a1210 0%, #0d0806 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e1a 0%, transparent 60%);
}
.scn-elizabeth-seeks-curses .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 30%, #2f1c16 0%, transparent 60%);
  animation: esc-bg 12s ease-in-out infinite alternate;
}
.scn-elizabeth-seeks-curses .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #140b08 100%);
  border-bottom: 2px solid #1a0e0a;
}
.scn-elizabeth-seeks-curses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e120e 0%, #0d0806 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-elizabeth-seeks-curses .window {
  position: absolute; top: 20%; left: 30%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 60%, #3a4a5a 0%, #0d1420 70%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px 4px #2a3a4a, 0 0 30px 10px rgba(42,58,74,.3);
  animation: esc-window-glow 6s ease-in-out infinite alternate;
}
.scn-elizabeth-seeks-curses .figure {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0a08 0%, #080605 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: esc-figure-sway 4s ease-in-out infinite alternate;
}
.scn-elizabeth-seeks-curses .candle {
  position: absolute; bottom: 32%; left: 45%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-elizabeth-seeks-curses .flame {
  position: absolute; bottom: 38%; left: 45%; width: 6px; height: 12px;
  background: radial-gradient(circle at 50% 100%, #ffd060 0%, #b08030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #b08030, 0 0 40px 15px rgba(176,128,48,.4);
  animation: esc-flame-flicker 1.5s ease-in-out infinite alternate;
}
.scn-elizabeth-seeks-curses .shadow {
  position: absolute; bottom: 24%; left: 42%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: esc-shadow-shift 4s ease-in-out infinite alternate;
}
@keyframes esc-bg {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes esc-window-glow {
  0% { box-shadow: inset 0 0 20px 4px #2a3a4a, 0 0 30px 10px rgba(42,58,74,.3); opacity: .8; }
  50% { box-shadow: inset 0 0 30px 8px #3a5a6a, 0 0 50px 20px rgba(58,90,106,.5); opacity: 1; }
  100% { box-shadow: inset 0 0 20px 4px #2a3a4a, 0 0 30px 10px rgba(42,58,74,.3); opacity: .85; }
}
@keyframes esc-figure-sway {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes esc-flame-flicker {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  30% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  60% { transform: scaleY(.9) translateY(1px); opacity: .85; }
  100% { transform: scaleY(1.05) translateY(-1px); opacity: .95; }
}
@keyframes esc-shadow-shift {
  0% { transform: translateX(-4px) scaleX(.95); opacity: .6; }
  50% { transform: translateX(1px) scaleX(1.05); opacity: .8; }
  100% { transform: translateX(-2px) scaleX(1); opacity: .7; }
}

/* elizabeth-calamity-words (ecw) — dim interior, dark mood */
.scn-elizabeth-calamity-words {
  background:
    linear-gradient(180deg, #1c1412 0%, #0a0605 100%),
    radial-gradient(ellipse at 60% 20%, #2a1e1a 0%, transparent 60%);
}
.scn-elizabeth-calamity-words .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, #2a1a16 0%, transparent 70%);
  animation: ecw-bg 15s ease-in-out infinite alternate;
}
.scn-elizabeth-calamity-words .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #221612 0%, #100a08 100%);
  border-bottom: 1px solid #1a0e0a;
}
.scn-elizabeth-calamity-words .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a0e0a 0%, #080504 100%);
  box-shadow: inset 0 10px 15px rgba(0,0,0,.7);
}
.scn-elizabeth-calamity-words .figure {
  position: absolute; bottom: 35%; left: 55%; width: 22px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0a08 0%, #060403 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: ecw-figure-gesture 3s ease-in-out infinite alternate;
}
.scn-elizabeth-calamity-words .table {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #2a1c14 0%, #100a08 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-elizabeth-calamity-words .lamp {
  position: absolute; bottom: 32%; left: 32%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px rgba(90,74,58,.3);
}
.scn-elizabeth-calamity-words .breath-a {
  position: absolute; top: 30%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(200,200,220,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ecw-breath 8s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-elizabeth-calamity-words .breath-b {
  position: absolute; top: 35%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,200,220,.1) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ecw-breath 10s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-elizabeth-calamity-words .shadow {
  position: absolute; bottom: 28%; left: 50%; width: 35px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ecw-shadow-stretch 3s ease-in-out infinite alternate;
}
@keyframes ecw-bg {
  0% { opacity: .6; }
  50% { opacity: .85; }
  100% { opacity: .7; }
}
@keyframes ecw-figure-gesture {
  0% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes ecw-breath {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  20% { opacity: .4; }
  50% { transform: translateY(-20px) scale(1.5); opacity: .1; }
  100% { transform: translateY(-40px) scale(2); opacity: 0; }
}
@keyframes ecw-shadow-stretch {
  0% { transform: scaleX(.9) translateX(-2px); opacity: .7; }
  100% { transform: scaleX(1.1) translateX(2px); opacity: .9; }
}

/* richard-marches-by (rmb) — sunlit, dark mood */
.scn-richard-marches-by {
  background:
    linear-gradient(180deg, #f0d0a0 0%, #c08050 50%, #7a5030 100%),
    radial-gradient(ellipse at 50% 0%, #f8e8c0 0%, transparent 60%);
}
.scn-richard-marches-by .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c8a878 0%, #e8c898 50%, #f8e0b8 100%);
  animation: rmb-sky 20s ease-in-out infinite alternate;
}
.scn-richard-marches-by .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-richard-marches-by .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffecb0 0%, #f0c878 40%, #c89850 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #f0c878;
  animation: rmb-sun-pulse 6s ease-in-out infinite alternate;
}
.scn-richard-marches-by .richard {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0806 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: rmb-march 4s ease-in-out infinite alternate;
}
.scn-richard-marches-by .margaret {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: rmb-margaret-shake 2.5s ease-in-out infinite alternate;
}
.scn-richard-marches-by .horse {
  position: absolute; bottom: 20%; left: 48%; width: 35px; height: 30px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: rmb-horse-trot 3s ease-in-out infinite alternate;
}
.scn-richard-marches-by .shadow {
  position: absolute; bottom: 15%; left: 42%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rmb-shadow-shift 4s ease-in-out infinite alternate;
}
.scn-richard-marches-by .sword {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d0c0a0 0%, #f0e8d0 50%, #d0c0a0 100%);
  border-radius: 1px;
  transform: rotate(-15deg);
  box-shadow: 0 0 6px 2px rgba(240,232,208,.5);
  animation: rmb-sword-gleam 3s ease-in-out infinite;
}
@keyframes rmb-sky {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes rmb-sun-pulse {
  0% { box-shadow: 0 0 80px 40px #f0c878; transform: scale(1); }
  50% { box-shadow: 0 0 100px 60px #f8d898; transform: scale(1.05); }
  100% { box-shadow: 0 0 80px 40px #f0c878; transform: scale(1); }
}
@keyframes rmb-march {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes rmb-margaret-shake {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes rmb-horse-trot {
  0% { transform: translateX(-50%) translateY(0) scaleX(1); }
  50% { transform: translateX(-50%) translateY(-2px) scaleX(1.03); }
  100% { transform: translateX(-50%) translateY(0) scaleX(1); }
}
@keyframes rmb-shadow-shift {
  0% { transform: translateX(-6px) scaleX(.9); opacity: .6; }
  50% { transform: translateX(2px) scaleX(1.1); opacity: .8; }
  100% { transform: translateX(-4px) scaleX(1); opacity: .7; }
}
@keyframes rmb-sword-gleam {
  0% { opacity: .3; }
  50% { opacity: .8; }
  100% { opacity: .4; }
}

/* richard-drowns-women (rdw) — sunlit, dark mood */
.scn-richard-drowns-women {
  background:
    linear-gradient(180deg, #e8c870 0%, #b89040 50%, #7a6030 100%),
    radial-gradient(ellipse at 50% 10%, #f8e8b0 0%, transparent 50%);
}
.scn-richard-drowns-women .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d8b860 0%, #f0d890 100%);
  animation: rdw-sky 18s ease-in-out infinite alternate;
}
.scn-richard-drowns-women .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3020 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-richard-drowns-women .king {
  position: absolute; bottom: 35%; left: 50%; width: 28px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0806 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: rdw-king-march 3.5s ease-in-out infinite alternate;
}
.scn-richard-drowns-women .drum {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 20px;
  background: radial-gradient(circle, #a08050 0%, #5a4020 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.5);
  animation: rdw-drum-beat 1.2s ease-in-out infinite alternate;
}
.scn-richard-drowns-women .drummer {
  position: absolute; bottom: 22%; left: 32%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: rdw-drummer-strike 0.6s ease-in-out infinite alternate;
}
.scn-richard-drowns-women .woman-a {
  position: absolute; bottom: 20%; left: 20%; width: 14px; height: 35px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform: rotate(15deg);
  opacity: 0.8;
  animation: rdw-sink 5s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-richard-drowns-women .woman-b {
  position: absolute; bottom: 20%; left: 70%; width: 14px; height: 35px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform: rotate(-15deg);
  opacity: 0.8;
  animation: rdw-sink 6s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-richard-drowns-women .wave {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rdw-wave-motion 4s ease-in-out infinite alternate;
}
.scn-richard-drowns-women .trumpet {
  position: absolute; bottom: 40%; left: 60%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #d0c0a0 0%, #f0e8d0 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 0 6px 2px rgba(240,232,208,.4);
  animation: rdw-trumpet-shine 2s ease-in-out infinite alternate;
}
@keyframes rdw-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes rdw-king-march {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes rdw-drum-beat {
  0% { transform: scale(1); box-shadow: inset 0 -4px 6px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.5); }
  50% { transform: scale(1.08); box-shadow: inset 0 -6px 8px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.6); }
  100% { transform: scale(1); box-shadow: inset 0 -4px 6px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.5); }
}
@keyframes rdw-drummer-strike {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes rdw-sink {
  0% { transform: translateY(0) rotate(15deg) scale(1); opacity: .8; }
  50% { transform: translateY(12px) rotate(5deg) scale(.9); opacity: .5; }
  100% { transform: translateY(24px) rotate(-5deg) scale(.8); opacity: .2; }
}
@keyframes rdw-wave-motion {
  0% { transform: translateY(0) scaleX(1); opacity: .3; }
  50% { transform: translateY(-4px) scaleX(1.1); opacity: .5; }
  100% { transform: translateY(2px) scaleX(.95); opacity: .2; }
}
@keyframes rdw-trumpet-shine {
  0% { opacity: .3; box-shadow: 0 0 6px 2px rgba(240,232,208,.4); }
  50% { opacity: .9; box-shadow: 0 0 12px 6px rgba(240,232,208,.6); }
  100% { opacity: .4; box-shadow: 0 0 6px 2px rgba(240,232,208,.4); }
}

/* hastings-news: Tense, Sunlit - Palace interior with sharp shadows and a messenger */
.scn-hastings-news {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a0886a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255, 240, 200, 0.6) 0%, transparent 50%);
}
.scn-hastings-news .bg-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 18%, rgba(0,0,0,0.05) 18%, rgba(0,0,0,0.05) 20%);
  animation: rn1-sweep 12s ease-in-out infinite alternate;
}
.scn-hastings-news .window-arch {
  position: absolute; top: 10%; left: 55%; width: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #fff8e7 0%, #d4c4a8 70%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 40px 10px rgba(255, 235, 200, 0.8);
  animation: rn1-glow 4s ease-in-out infinite alternate;
}
.scn-hastings-news .eagle-prophecy {
  position: absolute; bottom: 45%; left: 18%; width: 80px; height: 50px;
  background: #4a3b2c;
  border-radius: 60% 40% 50% 50% / 50% 40% 60% 50%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rn1-wing 3s ease-in-out infinite;
}
.scn-hastings-news .messenger {
  position: absolute; bottom: 15%; right: 10%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a523a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn1-haste 2.5s ease-in-out infinite;
}
.scn-hastings-news .shadow-bars {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(0deg, transparent 0%, transparent 8%, rgba(0,0,0,0.15) 8%, rgba(0,0,0,0.15) 10%),
    repeating-linear-gradient(90deg, transparent 0%, transparent 5%, rgba(0,0,0,0.1) 5%, rgba(0,0,0,0.1) 7%);
  animation: rn1-sweep 12s ease-in-out infinite alternate;
}
@keyframes rn1-wing { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1) translateY(-4px); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes rn1-haste { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-15px) rotate(2deg); } 50% { transform: translateX(-30px) rotate(0deg); } 75% { transform: translateX(-45px) rotate(-2deg); } 100% { transform: translateX(-60px) rotate(0deg); opacity: 0.7; } }
@keyframes rn1-sweep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes rn1-glow { 0% { box-shadow: inset 0 0 30px 5px rgba(255, 235, 200, 0.6); opacity: 0.9; } 50% { box-shadow: inset 0 0 60px 20px rgba(255, 235, 200, 0.9); opacity: 1; } 100% { box-shadow: inset 0 0 40px 10px rgba(255, 235, 200, 0.7); opacity: 0.85; } }

/* richard-reacts-king-sick: Tense, Sunlit - Bedchamber, Richard bowing with sunbeam */
.scn-richard-reacts-king-sick {
  background:
    linear-gradient(180deg, #4a3b2c 0%, #2a1e14 40%, #1a120c 100%),
    radial-gradient(ellipse at 50% 80%, rgba(200, 150, 80, 0.3) 0%, transparent 60%);
}
.scn-richard-reacts-king-sick .curtain-l {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #702243 0%, #3a1222 100%);
  border-radius: 0 20% 40% 0 / 0 10% 20% 0;
  animation: rn2-sway 6s ease-in-out infinite alternate;
}
.scn-richard-reacts-king-sick .curtain-r {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #702243 0%, #3a1222 100%);
  border-radius: 20% 0 0 40% / 10% 0 0 20%;
  animation: rn2-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-richard-reacts-king-sick .royal-bed {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-richard-reacts-king-sick .king-figure {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 25%;
  background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.7;
  animation: rn2-fade 8s ease-in-out infinite;
}
.scn-richard-reacts-king-sick .richard-bow {
  position: absolute; bottom: 12%; left: 60%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn2-bow 4s ease-in-out infinite;
}
.scn-richard-reacts-king-sick .sunbeam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255, 240, 180, 0.4) 0%, rgba(255, 240, 180, 0.1) 60%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  filter: blur(4px);
  animation: rn2-pivot 8s ease-in-out infinite alternate;
}
@keyframes rn2-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes rn2-fade { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes rn2-bow { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-5px); } 60% { transform: rotate(-2deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rn2-pivot { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.1); } 100% { transform: rotate(-2deg) scaleX(0.9); } }

/* richard-solo-plot: Dark, Sunlit - Harsh contrasts, long shadows, plotting figure */
.scn-richard-solo-plot {
  background:
    linear-gradient(180deg, #fff4da 0%, #e8dcc4 40%, #c8b89a 100%),
    radial-gradient(ellipse at 50% 0%, #fff4da 0%, transparent 60%);
}
.scn-richard-solo-plot .courtyard-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #b0c4de 0%, #e8dcc4 100%);
  animation: rn3-burn 10s ease-in-out infinite alternate;
}
.scn-richard-solo-plot .blazing-sun {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4da 0%, #ffd080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255, 200, 100, 0.6);
  animation: rn3-track 15s linear infinite;
}
.scn-richard-solo-plot .crown-throne {
  position: absolute; bottom: 35%; left: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8a45c 0%, #8a7020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 4px rgba(200, 164, 92, 0.4);
  animation: rn3-shine 3s ease-in-out infinite;
}
.scn-richard-solo-plot .richard-plot {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 60px;
  background: #1a1a1a;
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rn3-stand 4s ease-in-out infinite;
}
.scn-richard-solo-plot .shadow-lie {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 15px;
  background: rgba(0,0,0,0.7);
  border-radius: 50%;
  filter: blur(8px);
  animation: rn3-grow 8s ease-in-out infinite alternate;
}
.scn-richard-solo-plot .stone-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #8a7a6a 0%, #8a7a6a 8%, #6a5a4a 8%, #6a5a4a 16%);
  animation: rn3-creep 12s linear infinite;
}
@keyframes rn3-burn { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { background: linear-gradient(180deg, #8a9aad 0%, #c8b89a 100%); } }
@keyframes rn3-track { 0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(40px); } }
@keyframes rn3-stand { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-48%) rotate(3deg); } 60% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes rn3-grow { 0% { transform: scaleX(1) scaleY(1); opacity: 0.6; } 50% { transform: scaleX(1.5) scaleY(0.8); opacity: 0.8; } 100% { transform: scaleX(0.8) scaleY(1.2); opacity: 0.7; } }
@keyframes rn3-creep { 0% { background-position: 0 0; } 100% { background-position: -50px 0; } }
@keyframes rn3-shine { 0% { box-shadow: 0 0 10px 2px rgba(200, 164, 92, 0.3); } 50% { box-shadow: 0 0 30px 8px rgba(200, 164, 92, 0.6); } 100% { box-shadow: 0 0 15px 4px rgba(200, 164, 92, 0.4); } }

/* henry-corpse: Dark, Dim-interior - Vault, candles, hearse, and a mourner */
.scn-henry-corpse {
  background:
    linear-gradient(180deg, #1a120c 0%, #2b1e16 40%, #170d08 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-henry-corpse .vault-dark {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 12%, rgba(0,0,0,0.2) 12%, rgba(0,0,0,0.2) 14%);
  animation: rn4-keen 10s ease-in-out infinite;
}
.scn-henry-corpse .hearse-drape {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #5e1a1d 0%, #2e0a0c 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.8);
  animation: rn4-settle 6s ease-in-out infinite;
}
.scn-henry-corpse .king-pale {
  position: absolute; bottom: 25%; left: 32%; width: 36%; height: 15%;
  background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.4;
  animation: rn4-fade 8s ease-in-out infinite;
}
.scn-henry-corpse .candle-l {
  position: absolute; bottom: 30%; left: 22%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c88840 60%, #2e1a0c 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 -10px 40px 10px rgba(255, 200, 100, 0.5);
  animation: rn4-glow 2s ease-in-out infinite alternate;
}
.scn-henry-corpse .candle-r {
  position: absolute; bottom: 30%; right: 22%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c88840 60%, #2e1a0c 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 -10px 40px 10px rgba(255, 200, 100, 0.5);
  animation: rn4-glow 2s ease-in-out infinite alternate-reverse;
}
.scn-henry-corpse .mourner-wail {
  position: absolute; bottom: 15%; left: 15%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: rn4-keen 4s ease-in-out infinite;
}
@keyframes rn4-glow { 0% { box-shadow: 0 -10px 30px 5px rgba(255, 200, 100, 0.4); opacity: 0.8; } 50% { box-shadow: 0 -15px 60px 15px rgba(255, 200, 100, 0.7); opacity: 1; } 100% { box-shadow: 0 -10px 40px 8px rgba(255, 200, 100, 0.5); opacity: 0.9; } }
@keyframes rn4-fade { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes rn4-keen { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(-10px) rotate(-3deg); } 75% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rn4-settle { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* elizabeth-sarcastic – tense sunlit, silhouette and beating heart */
.scn-elizabeth-sarcastic {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a373 50%, #c08a5c 100%),
              radial-gradient(ellipse at 40% 20%, #fff8e7 0%, transparent 60%);
}
.scn-elizabeth-sarcastic .wall-es {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ebe0cc 0%, #cbb59a 100%);
}
.scn-elizabeth-sarcastic .window-es {
  position: absolute; top: 5%; left: 8%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #a1c4fd 0%, #74b9ff 100%);
  border: 6px solid #8a7a64; border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(255,255,255,0.3);
  animation: es-windowglow 3s ease-in-out infinite alternate;
}
.scn-elizabeth-sarcastic .sunlight-es {
  position: absolute; top: 5%; left: 8%; width: 150%; height: 200%;
  background: linear-gradient(135deg, rgba(255,248,230,0.25) 0%, rgba(255,248,230,0) 60%);
  transform-origin: top left; animation: es-sunlight 0.8s ease-in-out infinite;
}
.scn-elizabeth-sarcastic .figure-es {
  position: absolute; bottom: 10%; left: 55%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%);
  border-radius: 45% 55% 40% 60% / 60% 50% 40% 50%;
  transform-origin: bottom center; animation: es-figure 0.6s ease-in-out infinite;
}
.scn-elizabeth-sarcastic .heart-es {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 20px;
  background: #c8553d; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-45deg); animation: es-heart 0.5s ease-in-out infinite;
}
@keyframes es-windowglow {
  0% { box-shadow: inset 0 0 10px rgba(255,255,255,0.2); }
  50% { box-shadow: inset 0 0 25px rgba(255,255,255,0.5); }
  100% { box-shadow: inset 0 0 8px rgba(255,255,255,0.15); }
}
@keyframes es-sunlight {
  0% { transform: scale(1,1) skewX(-8deg) translateX(0); }
  33% { transform: scale(1.02,1) skewX(8deg) translateX(6px); }
  66% { transform: scale(0.98,1) skewX(-6deg) translateX(-3px); }
  100% { transform: scale(1,1) skewX(-8deg) translateX(0); }
}
@keyframes es-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes es-heart {
  0% { transform: rotate(-45deg) scale(1); opacity: 0.7; }
  50% { transform: rotate(-45deg) scale(1.3); opacity: 1; }
  100% { transform: rotate(-45deg) scale(1); opacity: 0.7; }
}

/* elizabeth-mocks – two bleeding hearts, cloth, figure */
.scn-elizabeth-mocks {
  background: linear-gradient(180deg, #f2dfc8 0%, #c89a6b 50%, #a67b5b 100%),
              radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 50%);
}
.scn-elizabeth-mocks .wall-em {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e5d5bd 0%, #bba482 100%);
}
.scn-elizabeth-mocks .window-em {
  position: absolute; top: 3%; right: 5%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #9cb8e6 0%, #6a9ad8 100%);
  border: 6px solid #7a6a54; border-radius: 3px;
  box-shadow: inset 0 0 12px rgba(255,255,255,0.25);
  animation: em-windowglow 4s ease-in-out infinite alternate;
}
.scn-elizabeth-mocks .heart1-em {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 18px;
  background: #c8553d; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-45deg); animation: em-heartbeat 0.4s ease-in-out infinite;
}
.scn-elizabeth-mocks .heart2-em {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 22px;
  background: #a0461a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(45deg); animation: em-heartbeat 0.5s ease-in-out infinite 0.1s;
}
.scn-elizabeth-mocks .cloth-em {
  position: absolute; bottom: 10%; left: 15%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f5ebd0 0%, #ddd0b0 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
  animation: em-cloth 1.2s ease-in-out infinite;
}
.scn-elizabeth-mocks .figure-em {
  position: absolute; bottom: 10%; right: 20%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #1a252f 0%, #0f161c 100%);
  border-radius: 45% 55% 40% 60% / 60% 50% 40% 50%;
  transform-origin: bottom center; animation: em-figure 0.7s ease-in-out infinite;
}
.scn-elizabeth-mocks .blooddrop-em {
  position: absolute; bottom: 40%; left: 42%; width: 6px; height: 8px;
  background: #b32b1a; border-radius: 50%; animation: em-drop 0.3s ease-in-out infinite;
}
@keyframes em-windowglow {
  0% { box-shadow: inset 0 0 8px rgba(255,255,255,0.2); }
  50% { box-shadow: inset 0 0 22px rgba(255,255,255,0.5); }
  100% { box-shadow: inset 0 0 10px rgba(255,255,255,0.15); }
}
@keyframes em-heartbeat {
  0% { transform: scale(1) rotate(-45deg); }
  30% { transform: scale(1.3) rotate(-45deg); }
  50% { transform: scale(1) rotate(-45deg); }
  80% { transform: scale(1.1) rotate(-45deg); }
  100% { transform: scale(1) rotate(-45deg); }
}
@keyframes em-cloth {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(2px) rotate(-3deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes em-figure {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  20% { transform: translateY(-2px) rotate(4deg) scale(1.02); }
  40% { transform: translateY(1px) rotate(-3deg) scale(0.98); }
  60% { transform: translateY(-1px) rotate(2deg) scale(1.01); }
  80% { transform: translateY(0) rotate(-1deg) scale(0.99); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes em-drop {
  0% { transform: translateY(0) scaleX(1); opacity: 0.9; }
  30% { transform: translateY(8px) scaleX(1.2); opacity: 0.7; }
  60% { transform: translateY(0) scaleX(1); opacity: 0.9; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.9; }
}

/* elizabeth-continues-mock – scroll, dagger, figure, shadow */
.scn-elizabeth-continues-mock {
  background: linear-gradient(180deg, #ede0c8 0%, #d4a97a 50%, #b8865c 100%),
              radial-gradient(ellipse at 50% 20%, #fffae8 0%, transparent 55%);
}
.scn-elizabeth-continues-mock .wall-ecm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e2d0b8 0%, #c0a482 100%);
}
.scn-elizabeth-continues-mock .window-ecm {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #91b6e0 0%, #5a8bd4 100%);
  border: 5px solid #7a6a54; border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2);
  animation: ecm-windowglow 5s ease-in-out infinite alternate;
}
.scn-elizabeth-continues-mock .scroll-ecm {
  position: absolute; bottom: 30%; left: 10%; width: 50px; height: 70px;
  background: linear-gradient(90deg, #f5e6c8 0%, #dfc9a0 20%, #f5e6c8 40%, #dfc9a0 60%, #f5e6c8 80%, #dfc9a0 100%);
  border-radius: 5px 5px 3px 3px;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: ecm-scroll 2s ease-in-out infinite;
}
.scn-elizabeth-continues-mock .figure-ecm {
  position: absolute; bottom: 10%; right: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1f2a33 0%, #0f141a 100%);
  border-radius: 45% 55% 40% 60% / 60% 50% 40% 50%;
  transform-origin: bottom center; animation: ecm-figure 0.7s ease-in-out infinite;
}
.scn-elizabeth-continues-mock .blade-ecm {
  position: absolute; bottom: 15%; left: 50%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 0 0 60% 60% / 0 0 20% 20%;
  transform: rotate(20deg); animation: ecm-blade 0.5s ease-in-out infinite;
}
.scn-elizabeth-continues-mock .hilt-ecm {
  position: absolute; bottom: 44%; left: 49.3%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(20deg); animation: ecm-hilt 0.5s ease-in-out infinite;
}
.scn-elizabeth-continues-mock .shadow-ecm {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 20%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: ecm-shadow 3s ease-in-out infinite;
}
@keyframes ecm-windowglow {
  0% { box-shadow: inset 0 0 10px rgba(255,255,255,0.15); }
  50% { box-shadow: inset 0 0 30px rgba(255,255,255,0.4); }
  100% { box-shadow: inset 0 0 12px rgba(255,255,255,0.2); }
}
@keyframes ecm-scroll {
  0% { transform: scaleY(1) translateX(0); }
  30% { transform: scaleY(1.05) translateX(3px); }
  50% { transform: scaleY(0.95) translateX(-2px); }
  70% { transform: scaleY(1.02) translateX(1px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes ecm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ecm-blade {
  0% { transform: rotate(20deg) translateY(0); }
  25% { transform: rotate(22deg) translateY(-2px); }
  50% { transform: rotate(18deg) translateY(1px); }
  75% { transform: rotate(21deg) translateY(-1px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes ecm-hilt {
  0% { transform: rotate(20deg) translateY(0); }
  25% { transform: rotate(22deg) translateY(-2px); }
  50% { transform: rotate(18deg) translateY(1px); }
  75% { transform: rotate(21deg) translateY(-1px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes ecm-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* richard-argues – king, child, crown, chain */
.scn-richard-argues {
  background: linear-gradient(180deg, #e8d9c2 0%, #c89a6b 50%, #a87a4c 100%),
              radial-gradient(ellipse at 40% 30%, #fff7e0 0%, transparent 50%);
}
.scn-richard-argues .wall-ra {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #ded0ba 0%, #bba68a 100%);
}
.scn-richard-argues .window-ra {
  position: absolute; top: 2%; left: 12%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #86ade0 0%, #4f7fc7 100%);
  border: 7px solid #7a6a54; border-radius: 5px;
  box-shadow: inset 0 0 18px rgba(255,255,255,0.3);
  animation: ra-windowglow 4s ease-in-out infinite alternate;
}
.scn-richard-argues .crown-ra {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 22px;
  background: linear-gradient(180deg, #d4af37 0%, #b8962e 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(0% 0%, 25% 100%, 50% 40%, 75% 100%, 100% 0%); /* but clip-path is allowed for non-figures */
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.4));
  animation: ra-crown 1s ease-in-out infinite;
}
.scn-richard-argues .figure-ra {
  position: absolute; bottom: 10%; left: 40%; width: 38px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #151a22 100%);
  border-radius: 45% 55% 40% 60% / 60% 50% 40% 50%;
  transform-origin: bottom center; animation: ra-figure 0.6s ease-in-out infinite;
}
.scn-richard-argues .child-ra {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 45% 55% 40% 60% / 60% 50% 40% 50%;
  transform-origin: bottom center; animation: ra-child 0.8s ease-in-out infinite;
}
.scn-richard-argues .chain-ra {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 10px;
  background: repeating-linear-gradient(90deg, #8a7a64 0px, #8a7a64 4px, transparent 4px, transparent 8px);
  border-radius: 5px;
  animation: ra-chain 0.5s ease-in-out infinite;
}
@keyframes ra-windowglow {
  0% { box-shadow: inset 0 0 10px rgba(255,255,255,0.2); }
  50% { box-shadow: inset 0 0 28px rgba(255,255,255,0.5); }
  100% { box-shadow: inset 0 0 12px rgba(255,255,255,0.15); }
}
@keyframes ra-crown {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  70% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ra-figure {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  20% { transform: translateY(-2px) rotate(2deg) scale(1.01); }
  40% { transform: translateY(1px) rotate(-1deg) scale(0.99); }
  60% { transform: translateY(-1px) rotate(1deg) scale(1.01); }
  80% { transform: translateY(0) rotate(-2deg) scale(0.99); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes ra-child {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(3deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ra-chain {
  0% { transform: scaleX(1) translateX(0); }
  25% { transform: scaleX(1.1) translateX(2px); }
  50% { transform: scaleX(0.9) translateX(-2px); }
  75% { transform: scaleX(1.05) translateX(1px); }
  100% { transform: scaleX(1) translateX(0); }
}

.scn-hastings-news-sanctuary {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8b896 30%, #4a3e3e 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,235,200,0.6) 0%, transparent 60%);
}
.scn-hastings-news-sanctuary .wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(74,62,62,0.3) 0%, transparent 30%, transparent 70%, rgba(74,62,62,0.3) 100%);
  pointer-events: none;
}
.scn-hastings-news-sanctuary .window {
  position:absolute; top:15%; left:60%; width:80px; height:120px;
  background: radial-gradient(circle at 50% 100%, #ffe8c0 0%, #d4b896 60%, #4a3e3e 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-hastings-news-sanctuary .light-beam {
  position:absolute; top:15%; left:55%; width:120px; height:200px;
  background: linear-gradient(135deg, rgba(255,235,200,0.4) 0%, transparent 70%);
  transform: translateX(-50%) rotate(15deg) skewX(-10deg);
  filter: blur(3px);
  animation: hs-beam 8s ease-in-out infinite alternate;
}
.scn-hastings-news-sanctuary .cross {
  position:absolute; bottom:40%; left:30%; width:60px; height:100px;
  background: linear-gradient(180deg, #8b6f47 0%, #5c4a30 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: hs-cross 6s ease-in-out infinite;
}
.scn-hastings-news-sanctuary .cross::before {
  content:''; position:absolute; top:20px; left:-30px; width:120px; height:20px;
  background: linear-gradient(90deg, #8b6f47 0%, #5c4a30 100%);
  border-radius: 4px;
}
.scn-hastings-news-sanctuary .figure {
  position:absolute; bottom:30%; left:45%; width:24px; height:60px;
  background: linear-gradient(180deg, #3a2e2e 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-figure 4s ease-in-out infinite;
}
.scn-hastings-news-sanctuary .shadow {
  position:absolute; bottom:30%; left:42%; width:60px; height:4px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: hs-shadow 4s ease-in-out infinite;
}
@keyframes hs-beam {
  0% { opacity:0.5; transform: translateX(-50%) rotate(15deg) skewX(-10deg); }
  50% { opacity:0.8; transform: translateX(-45%) rotate(20deg) skewX(-8deg); }
  100% { opacity:0.6; transform: translateX(-55%) rotate(12deg) skewX(-12deg); }
}
@keyframes hs-cross {
  0%,100% { box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
  50% { box-shadow: 0 4px 20px rgba(200,180,140,0.3); }
}
@keyframes hs-figure {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-0.5deg); }
  75% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes hs-shadow {
  0%,100% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(1.2); opacity:0.8; }
}

.scn-buckingham-urges-force {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, #c2b280 100%),
              radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.3) 0%, transparent 70%);
}
.scn-buckingham-urges-force .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%);
  animation: bf-sky 10s ease-in-out infinite alternate;
}
.scn-buckingham-urges-force .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #c2b280 0%, #8b7355 100%);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
}
.scn-buckingham-urges-force .figure-buck {
  position:absolute; bottom:20%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #2c2c2c 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-buck 3s ease-in-out infinite;
}
.scn-buckingham-urges-force .figure-hast {
  position:absolute; bottom:20%; left:55%; width:28px; height:65px;
  background: linear-gradient(180deg, #3a2e2e 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-hast 3.5s ease-in-out infinite;
}
.scn-buckingham-urges-force .arm {
  position:absolute; bottom:40%; left:32%; width:40px; height:8px;
  background: linear-gradient(90deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 20px;
  transform-origin: right center;
  animation: bf-arm 2.5s ease-in-out infinite;
}
.scn-buckingham-urges-force .stir {
  position:absolute; bottom:20%; left:35%; width:20px; height:10px;
  background: #8b7355;
  border-radius: 10px;
  filter: blur(4px);
  opacity:0.7;
  animation: bf-stir 6s linear infinite;
}
@keyframes bf-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes bf-buck {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(4deg); }
}
@keyframes bf-hast {
  0%,100% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes bf-arm {
  0%,100% { transform: rotate(-30deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-20deg); }
  75% { transform: rotate(5deg); }
}
@keyframes bf-stir {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.5); }
  100% { transform: translateX(0) scaleX(1); }
}

.scn-buckingham-argues-sanctuary {
  background: linear-gradient(180deg, #d4c4a8 0%, #8b7a62 40%, #4a3e3e 100%),
              radial-gradient(ellipse at 60% 20%, rgba(255,220,150,0.5) 0%, transparent 60%);
}
.scn-buckingham-argues-sanctuary .bg-hall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(74,62,62,0.2) 0%, transparent 50%, rgba(74,62,62,0.2) 100%);
}
.scn-buckingham-argues-sanctuary .table {
  position:absolute; bottom:25%; left:30%; width:200px; height:30px;
  background: linear-gradient(180deg, #6b5a45 0%, #4a3a2a 100%);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: bs-table 10s ease-in-out infinite alternate;
}
.scn-buckingham-argues-sanctuary .figure-cardinal {
  position:absolute; bottom:30%; left:20%; width:30px; height:80px;
  background: linear-gradient(180deg, #5a4a4a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-cardinal 5s ease-in-out infinite;
}
.scn-buckingham-argues-sanctuary .figure-buck {
  position:absolute; bottom:30%; left:55%; width:30px; height:75px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-buck 5.5s ease-in-out infinite;
}
.scn-buckingham-argues-sanctuary .candle {
  position:absolute; bottom:40%; left:42%; width:8px; height:40px;
  background: linear-gradient(180deg, #f5c842 0%, #c08030 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(245,200,66,0.6);
  animation: bs-candle 3s ease-in-out infinite alternate;
}
.scn-buckingham-argues-sanctuary .papers {
  position:absolute; bottom:20%; left:60%; width:40px; height:30px;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: bs-papers 8s ease-in-out infinite alternate;
}
@keyframes bs-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes bs-cardinal {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes bs-buck {
  0%,100% { transform: translateY(0) rotate(1deg); }
  30% { transform: translateY(-3px) rotate(3deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bs-candle {
  0% { opacity:0.8; box-shadow: 0 0 10px 2px rgba(245,200,66,0.4); }
  50% { opacity:1; box-shadow: 0 0 25px 8px rgba(245,200,66,0.8); }
  100% { opacity:0.9; box-shadow: 0 0 15px 4px rgba(245,200,66,0.5); }
}
@keyframes bs-papers {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(3deg) scale(1); }
}

.scn-prince-asks-about-tower {
  background: linear-gradient(180deg, #b0c4de 0%, #f5deb3 60%, #d2b48c 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.4) 0%, transparent 70%);
}
.scn-prince-asks-about-tower .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0c4de 0%, #f0e68c 100%);
  animation: pt-sky 12s ease-in-out infinite alternate;
}
.scn-prince-asks-about-tower .walls {
  position:absolute; bottom:30%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0896b 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
  animation: pt-walls 15s ease-in-out infinite alternate;
}
.scn-prince-asks-about-tower .tower {
  position:absolute; bottom:40%; left:20%; width:60px; height:120px;
  background: linear-gradient(180deg, #c2a878 0%, #8b7355 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-prince-asks-about-tower .tower::before {
  content:''; position:absolute; top:-20px; left:0; width:60px; height:20px;
  background: linear-gradient(180deg, #a0896b 0%, #8b7355 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-prince-asks-about-tower .figure-prince {
  position:absolute; bottom:20%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-prince 6s ease-in-out infinite;
}
.scn-prince-asks-about-tower .figure-gloucester {
  position:absolute; bottom:20%; left:50%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2e2e 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-gloucester 6.5s ease-in-out infinite;
}
.scn-prince-asks-about-tower .flag {
  position:absolute; top:30%; left:16%; width:8px; height:40px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 2px;
  animation: pt-flag 5s ease-in-out infinite alternate;
}
@keyframes pt-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes pt-walls {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes pt-prince {
  0%,100% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes pt-gloucester {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(0) rotate(0deg); }
}
@keyframes pt-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}

.scn-murderers-argue-conscience {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #0d0a08 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-murderers-argue-conscience .wall {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 40px, rgba(0,0,0,0.1) 40px, rgba(0,0,0,0.1) 42px);
}
.scn-murderers-argue-conscience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
}
.scn-murderers-argue-conscience .window {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #5a7a8a 0%, #1a2a3a 70%);
  border: 4px solid #0d0a08; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(90,122,138,0.3);
  animation: mac-window 6s ease-in-out infinite alternate;
}
.scn-murderers-argue-conscience .bed {
  position: absolute; bottom: 30%; left: 10%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-murderers-argue-conscience .candle {
  position: absolute; bottom: 32%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c080 0%, #c08030 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px rgba(240,192,128,0.6), 0 0 40px 12px rgba(240,192,128,0.3);
  animation: mac-candle 2s ease-in-out infinite alternate;
}
.scn-murderers-argue-conscience .figure1 {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #0a0705 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mac-fig1 4s ease-in-out infinite;
}
.scn-murderers-argue-conscience .figure2 {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #0a0705 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mac-fig2 5s ease-in-out infinite;
}
@keyframes mac-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(90,122,138,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(90,122,138,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(90,122,138,0.3); }
}
@keyframes mac-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 15px 4px rgba(240,192,128,0.5); }
  50% { transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(240,192,128,0.7); }
  100% { transform: scaleY(0.95); box-shadow: 0 0 18px 5px rgba(240,192,128,0.4); }
}
@keyframes mac-fig1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mac-fig2 {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-murderers-conscience {
  background: linear-gradient(180deg, #121018 0%, #1a1620 40%, #080610 100%), radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-murderers-conscience .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: repeating-linear-gradient(0deg, transparent 0, transparent 30px, rgba(255,255,255,0.02) 30px, rgba(255,255,255,0.02) 31px);
}
.scn-murderers-conscience .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a121a 0%, #0a080a 100%);
}
.scn-murderers-conscience .table {
  position: absolute; bottom: 25%; left: 40%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 4px; box-shadow: inset 0 3px 6px rgba(0,0,0,0.5);
  animation: mc-table 8s ease-in-out infinite;
}
.scn-murderers-conscience .book {
  position: absolute; bottom: 38%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; transform: rotate(-5deg);
}
.scn-murderers-conscience .dagger {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #888 0%, #444 100%);
  border-radius: 2px; transform: rotate(20deg);
  box-shadow: 0 0 8px 2px rgba(200,200,200,0.3);
  animation: mc-dagger 3s ease-in-out infinite alternate;
}
.scn-murderers-conscience .figure1 {
  position: absolute; bottom: 25%; left: 25%; width: 26px; height: 75px;
  background: linear-gradient(180deg, #0a080a 0%, #181218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-fig1 6s ease-in-out infinite;
}
.scn-murderers-conscience .figure2 {
  position: absolute; bottom: 25%; left: 60%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #0a080a 0%, #181218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-fig2 4s ease-in-out infinite;
}
.scn-murderers-conscience .lightcone {
  position: absolute; top: 0; left: 35%; width: 120px; height: 70%;
  background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: mc-light 5s ease-in-out infinite alternate;
}
@keyframes mc-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes mc-dagger {
  0% { transform: rotate(15deg) scale(1); box-shadow: 0 0 6px 1px rgba(200,200,200,0.2); }
  50% { transform: rotate(25deg) scale(1.02); box-shadow: 0 0 12px 4px rgba(200,200,200,0.5); }
  100% { transform: rotate(15deg) scale(1); box-shadow: 0 0 6px 1px rgba(200,200,200,0.2); }
}
@keyframes mc-fig1 {
  0% { transform: translateY(0) rotate(2deg); }
  30% { transform: translateY(-4px) rotate(0deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes mc-fig2 {
  0% { transform: scaleY(1) translateX(0); }
  25% { transform: scaleY(0.98) translateX(2px); }
  50% { transform: scaleY(1.02) translateX(-1px); }
  75% { transform: scaleY(0.99) translateX(1px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes mc-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-murderers-reward {
  background: linear-gradient(180deg, #0a0808 0%, #151010 50%, #0a0606 100%), radial-gradient(ellipse at 60% 50%, #1a1010 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-murderers-reward .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a1210 0%, #0a0808 100%);
}
.scn-murderers-reward .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #201818 0%, #0a0606 100%);
}
.scn-murderers-reward .chest {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 6px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: mr-chest 12s ease-in-out infinite;
}
.scn-murderers-reward .purse {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 28px;
  background: radial-gradient(circle at 30% 20%, #c89840, #8a5a20);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 12px 3px rgba(200,152,64,0.5), 0 0 24px 6px rgba(200,152,64,0.2);
  animation: mr-purse 2s ease-in-out infinite alternate;
}
.scn-murderers-reward .dagger {
  position: absolute; bottom: 30%; left: 55%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #aaa 0%, #555 100%);
  border-radius: 2px; transform: rotate(-30deg);
  box-shadow: 0 0 6px 1px rgba(200,200,200,0.2);
  animation: mr-dagger 4s ease-in-out infinite;
}
.scn-murderers-reward .hand {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 30px;
  background: #1a1410;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-hand 5s ease-in-out infinite;
}
.scn-murderers-reward .shadow-figure {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 90px;
  background: rgba(0,0,0,0.6);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: mr-shadow 10s ease-in-out infinite alternate;
}
@keyframes mr-chest {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes mr-purse {
  0% { transform: scale(1); box-shadow: 0 0 10px 2px rgba(200,152,64,0.4); }
  50% { transform: scale(1.08); box-shadow: 0 0 20px 6px rgba(200,152,64,0.7); }
  100% { transform: scale(1); box-shadow: 0 0 12px 3px rgba(200,152,64,0.4); }
}
@keyframes mr-dagger {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(2px); }
  100% { transform: rotate(-30deg) translateX(0); }
}
@keyframes mr-hand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mr-shadow {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.02); }
  100% { opacity: 0.5; transform: scaleY(1); }
}

.scn-murderers-conscience-danger {
  background: linear-gradient(180deg, #120a0a 0%, #1a1010 40%, #080404 100%), radial-gradient(ellipse at 40% 60%, #2a1414 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-murderers-conscience-danger .bg-dark {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0, transparent 50px, rgba(255,255,255,0.01) 50px, rgba(255,255,255,0.01) 51px);
}
.scn-murderers-conscience-danger .lantern {
  position: absolute; bottom: 20%; left: 15%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #f0b050 0%, #b07030 100%);
  border-radius: 3px; box-shadow: 0 0 30px 10px rgba(240,176,80,0.5), 0 0 60px 20px rgba(240,176,80,0.2);
  animation: mcd-lantern 3s ease-in-out infinite alternate;
}
.scn-murderers-conscience-danger .window-grate {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 80px;
  background: rgba(50,60,80,0.4);
  border: 3px solid #0a0a0a; border-radius: 2px;
  box-shadow: inset 0 0 15px rgba(100,120,140,0.2);
  animation: mcd-window 7s ease-in-out infinite alternate;
}
.scn-murderers-conscience-danger .figure-dagger {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcd-dagger 4s ease-in-out infinite;
}
.scn-murderers-conscience-danger .blade {
  position: absolute; bottom: 50%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #aaa 0%, #666 100%);
  border-radius: 1px; transform: rotate(40deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px 1px rgba(200,200,200,0.3);
  animation: mcd-blade 4s ease-in-out infinite;
}
.scn-murderers-conscience-danger .figure-cower {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcd-cower 3s ease-in-out infinite;
}
.scn-murderers-conscience-danger .shadow-on-wall {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 150px;
  background: rgba(0,0,0,0.3);
  filter: blur(8px);
  animation: mcd-shadow 8s ease-in-out infinite alternate;
}
@keyframes mcd-lantern {
  0% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(240,176,80,0.4); }
  50% { transform: translateY(-2px) rotate(2deg); box-shadow: 0 0 35px 12px rgba(240,176,80,0.6); }
  100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(240,176,80,0.4); }
}
@keyframes mcd-window {
  0% { opacity: 0.3; box-shadow: inset 0 0 10px rgba(100,120,140,0.1); }
  50% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(100,120,140,0.4); }
  100% { opacity: 0.4; box-shadow: inset 0 0 15px rgba(100,120,140,0.2); }
}
@keyframes mcd-dagger {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mcd-blade {
  0% { transform: rotate(35deg) scaleY(1); }
  50% { transform: rotate(45deg) scaleY(1.02); }
  100% { transform: rotate(35deg) scaleY(1); }
}
@keyframes mcd-cower {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mcd-shadow {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.05); opacity: 0.5; }
  100% { transform: scale(0.95); opacity: 0.2; }
}

.scn-Young-York-Taunts {
  background:
    linear-gradient(180deg, #6ba3d6 0%, #b8d4e8 30%, #e8d8a0 55%, #d4b870 75%, #b89850 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,235,180,.5) 0%, transparent 60%);
}
.scn-Young-York-Taunts .sun-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0e6c0 0%, #ffe8a0 40%, #d4b870 100%);
  opacity: .6;
  animation: yyt-sky 10s ease-in-out infinite alternate;
}
.scn-Young-York-Taunts .arch-back {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 50%;
  background: linear-gradient(135deg, #c8b078 0%, #a88850 50%, #907040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.3);
}
.scn-Young-York-Taunts .pillar-left {
  position: absolute; bottom: 0; left: 8%; width: 7%; height: 75%;
  background: linear-gradient(90deg, #c8b888 0%, #e8d8b0 30%, #c8b888 60%, #a89868 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,.2);
}
.scn-Young-York-Taunts .pillar-right {
  position: absolute; bottom: 0; right: 8%; width: 7%; height: 75%;
  background: linear-gradient(90deg, #a89868 0%, #c8b888 30%, #e8d8b0 60%, #c8b888 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,.2);
}
.scn-Young-York-Taunts .figure-large {
  position: absolute; bottom: 0; left: 38%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: -8px 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: yyt-large 6s ease-in-out infinite;
}
.scn-Young-York-Taunts .figure-small {
  position: absolute; bottom: 0; left: 52%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: yyt-small 4s ease-in-out infinite alternate;
}
.scn-Young-York-Taunts .shadow-sharp {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 28%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 20%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.1) 80%, transparent 100%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  animation: yyt-shadow 8s ease-in-out infinite alternate;
}
.scn-Young-York-Taunts .glint-sword {
  position: absolute; bottom: 38%; left: 45%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e8d8a0 30%, #d0c080 60%, #c0b070 100%);
  border-radius: 2px 2px 30% 30%;
  box-shadow: 0 0 16px 4px rgba(240,224,192,.6), 0 0 32px 8px rgba(240,224,192,.3);
  transform-origin: bottom center;
  animation: yyt-glin 3s ease-in-out infinite alternate;
}
@keyframes yyt-sky    { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .55; } }
@keyframes yyt-large  { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(.98) translateY(1px); } }
@keyframes yyt-small  { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(6px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(-2px) translateY(0) rotate(-1deg); } }
@keyframes yyt-shadow { 0% { opacity: .7; transform: skewX(-2deg); } 50% { opacity: 1; transform: skewX(2deg); } 100% { opacity: .6; transform: skewX(-1deg); } }
@keyframes yyt-glin  { 0% { opacity: .9; transform: rotate(-5deg) scaleY(1); } 50% { opacity: 1; transform: rotate(-3deg) scaleY(1.05); box-shadow: 0 0 24px 6px rgba(240,224,192,.8), 0 0 48px 12px rgba(240,224,192,.4); } 100% { opacity: .8; transform: rotate(-7deg) scaleY(.95); } }

.scn-Prince-Defends {
  background:
    linear-gradient(180deg, #7ab0d8 0%, #b8d8e8 25%, #e0d8a8 50%, #d0b870 75%, #b89850 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,240,200,.6) 0%, transparent 60%);
}
.scn-Prince-Defends .sun-sky-wide {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f8ecc8 0%, #ffe8a0 40%, #e0d090 70%, #c8b870 100%);
  opacity: .5;
  animation: pd-sky 14s ease-in-out infinite alternate;
}
.scn-Prince-Defends .colonnade {
  position: absolute; bottom: 25%; left: 5%; width: 90%; height: 50%;
  background:
    linear-gradient(90deg, transparent 0%, #c0a870 8%, transparent 20%, #c0a870 28%, transparent 40%, #c0a870 48%, transparent 60%, #c0a870 68%, transparent 80%, #c0a870 88%, transparent 100%),
    linear-gradient(135deg, #d0b880 0%, #a88850 50%, #907040 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.25);
  background-size: 100% 100%, 100% 100%;
}
.scn-Prince-Defends .floor-stones {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background:
    repeating-linear-gradient(90deg, #b8a070 0px, #b8a070 4px, #c8b088 4px, #c8b088 8px),
    linear-gradient(180deg, #c8b080 0%, #a08858 50%, #807040 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
}
.scn-Prince-Defends .figure-center {
  position: absolute; bottom: 0; left: 42%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 25% 25% 12% 12% / 45% 45% 25% 25%;
  box-shadow: -6px 0 16px rgba(0,0,0,.45);
  transform-origin: bottom center;
  animation: pd-center 5s ease-in-out infinite alternate;
}
.scn-Prince-Defends .figure-left {
  position: absolute; bottom: 0; left: 28%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: pd-left 7s ease-in-out infinite;
}
.scn-Prince-Defends .figure-right {
  position: absolute; bottom: 0; right: 28%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a0a 40%, #0a0a00 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 4px 0 16px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pd-right 6s ease-in-out infinite alternate;
}
.scn-Prince-Defends .shadow-long {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 20%, rgba(0,0,0,.4) 45%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.1) 80%, transparent 100%);
  clip-path: polygon(15% 10%, 85% 10%, 65% 100%, 35% 100%);
  animation: pd-shadow 9s ease-in-out infinite alternate;
}
.scn-Prince-Defends .sunburst {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,240,180,.7) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pd-burst 6s ease-in-out infinite alternate;
}
@keyframes pd-sky    { 0% { opacity: .4; } 50% { opacity: .65; } 100% { opacity: .5; } }
@keyframes pd-center { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes pd-left   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 66% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pd-right  { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.04) translateY(-4px); } 100% { transform: scaleX(.97) translateY(2px); } }
@keyframes pd-shadow { 0% { opacity: .6; transform: skewX(-3deg); } 50% { opacity: .9; transform: skewX(3deg); } 100% { opacity: .7; transform: skewX(-2deg); } }
@keyframes pd-burst  { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.15); } 100% { opacity: .7; transform: scaleY(.9); } }

/* Scene 1: young-york-teases-richard */
.scn-young-york-teases-richard {
  background: linear-gradient(180deg, #ffe6b0 0%, #b8d4e8 40%, #d4e8b0 100%),
              radial-gradient(ellipse at 50% 80%, #f0d080 0%, transparent 60%);
}
.scn-young-york-teases-richard .sun {
  position: absolute; top: 8%; left: 75%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #ffd060 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,208,96,0.4);
  animation: ytr-sunpulse 6s ease-in-out infinite alternate;
}
.scn-young-york-teases-richard .sky-layer {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,230,178,0.6) 0%, rgba(184,212,232,0.3) 100%);
}
.scn-young-york-teases-richard .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9ac47a 0%, #6ea84e 40%, #4c802c 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-young-york-teases-richard .weed-left {
  position: absolute; bottom: 38%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #6e9e4e 0%, #4a6e2e 100%);
  border-radius: 50% 50% 20% 20%; transform-origin: bottom center;
  animation: ytr-weedsway 3s ease-in-out infinite alternate;
}
.scn-young-york-teases-richard .weed-right {
  position: absolute; bottom: 35%; left: 35%; width: 6px; height: 32px;
  background: linear-gradient(180deg, #7aae5a 0%, #4a6e2e 100%);
  border-radius: 50% 50% 20% 20%; transform-origin: bottom center;
  animation: ytr-weedsway 3.5s ease-in-out infinite alternate-reverse;
}
.scn-young-york-teases-richard .figure-richard {
  position: absolute; bottom: 18%; left: 48%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #5e3a2e 0%, #3a2216 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center; animation: ytr-figurebob 4s ease-in-out infinite;
}
.scn-young-york-teases-richard .figure-york {
  position: absolute; bottom: 18%; left: 58%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #6e4a3a 0%, #4e2e1e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center; animation: ytr-figurebob 4.2s ease-in-out infinite -0.5s;
}
.scn-young-york-teases-richard .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: ytr-clouddrift 30s linear infinite;
}
.scn-young-york-teases-richard .cloud-b {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ytr-clouddrift 45s linear infinite reverse;
}
@keyframes ytr-sunpulse {
  0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,208,96,0.4); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,208,96,0.6); }
  100% { transform: scale(0.98); box-shadow: 0 0 35px 15px rgba(255,208,96,0.3); }
}
@keyframes ytr-weedsway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ytr-figurebob {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes ytr-clouddrift {
  0% { transform: translateX(-50px); }
  50% { transform: translateX(30vw); }
  100% { transform: translateX(-50px); }
}

/* Scene 2: young-york-asks-dagger */
.scn-young-york-asks-dagger {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8b090 50%, #a08060 100%),
              radial-gradient(ellipse at 30% 60%, rgba(255,230,180,0.3) 0%, transparent 70%);
}
.scn-young-york-asks-dagger .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d0a8 0%, #b89870 60%, #706040 100%);
}
.scn-young-york-asks-dagger .shadow-stripe {
  position: absolute; top: 20%; left: 30%; width: 15%; height: 60%;
  background: linear-gradient(180deg, rgba(20,15,10,0.4) 0%, rgba(20,15,10,0.2) 100%);
  filter: blur(8px);
  animation: yad-shadowshift 4s ease-in-out infinite alternate;
}
.scn-young-york-asks-dagger .arm-hold {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5e3a2e 0%, #3e2216 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg); transform-origin: bottom left;
  animation: yad-armhold 6s ease-in-out infinite;
}
.scn-young-york-asks-dagger .arm-reach {
  position: absolute; bottom: 28%; left: 58%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #6e4a3a 0%, #4e2e1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg); transform-origin: bottom right;
  animation: yad-armreach 2.5s ease-in-out infinite alternate;
}
.scn-young-york-asks-dagger .dagger-blade {
  position: absolute; bottom: 48%; left: 50%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #c0b8a0 0%, #908878 50%, #706860 100%);
  border-radius: 2px; transform: translateX(-50%) rotate(45deg);
  animation: yad-daggertremor 3s ease-in-out infinite -1s;
}
.scn-young-york-asks-dagger .dagger-glint {
  position: absolute; bottom: 52%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%; transform: translate(-50%, -50%);
  animation: yad-glintspark 2s ease-in-out infinite alternate;
}
.scn-young-york-asks-dagger .light-ray {
  position: absolute; top: 10%; left: 45%; width: 3px; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: rotate(-10deg); filter: blur(2px);
  animation: yad-lightray 8s ease-in-out infinite alternate;
}
@keyframes yad-shadowshift {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(10px); }
  100% { opacity: 0.2; transform: translateX(-5px); }
}
@keyframes yad-armhold {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(22deg); }
  100% { transform: rotate(18deg); }
}
@keyframes yad-armreach {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(5px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes yad-daggertremor {
  0% { transform: translateX(-50%) rotate(45deg); }
  25% { transform: translateX(-50%) rotate(44deg); }
  50% { transform: translateX(-50%) rotate(46deg); }
  75% { transform: translateX(-50%) rotate(44.5deg); }
  100% { transform: translateX(-50%) rotate(45deg); }
}
@keyframes yad-glintspark {
  0% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.8); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.3); }
  100% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9); }
}
@keyframes yad-lightray {
  0% { opacity: 0.2; transform: rotate(-10deg) scaleY(1); }
  50% { opacity: 0.6; transform: rotate(-8deg) scaleY(1.1); }
  100% { opacity: 0.3; transform: rotate(-12deg) scaleY(0.9); }
}

.scn-prince-defends {
  background: linear-gradient(180deg, #5b8fb4 0%, #c9a96e 60%, #f0d080 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,230,150,0.3) 0%, transparent 50%);
}
.scn-prince-defends .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(255,215,140,0.2) 100%);
}
.scn-prince-defends .sun {
  position: absolute; top: 10%; right: 18%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5c0 0%, #ffd66b 40%, #c99a40 80%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,210,100,0.5), 0 0 120px 40px rgba(255,210,100,0.2);
  animation: pd-sun 6s ease-in-out infinite alternate;
}
.scn-prince-defends .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: pd-ground 8s ease-in-out infinite alternate;
}
.scn-prince-defends .figure-prince {
  position: absolute; bottom: 28%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.3);
  animation: pd-prince 2s ease-in-out infinite;
}
.scn-prince-defends .figure-uncle {
  position: absolute; bottom: 22%; right: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 8px rgba(0,0,0,0.4);
  animation: pd-uncle 4s ease-in-out infinite;
}
.scn-prince-defends .shadow-cast {
  position: absolute; bottom: 30%; left: 30%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.5) 70%, transparent 100%);
  filter: blur(2px);
  animation: pd-shadow 5s ease-in-out infinite alternate;
}
.scn-prince-defends .dust-a {
  position: absolute; top: 40%; left: 10%; width: 4px; height: 4px;
  background: rgba(255,230,180,0.6); border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,230,180,0.3);
  animation: pd-dust 3s ease-in-out infinite;
}
.scn-prince-defends .dust-b {
  position: absolute; top: 60%; right: 15%; width: 3px; height: 3px;
  background: rgba(255,220,160,0.5); border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,220,160,0.2);
  animation: pd-dust 4s ease-in-out infinite reverse;
}

@keyframes pd-sun {
  0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 60px 20px rgba(255,210,100,0.5); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 80px 30px rgba(255,210,100,0.6); }
  100% { transform: scale(0.95); opacity: 0.85; box-shadow: 0 0 50px 15px rgba(255,210,100,0.4); }
}
@keyframes pd-ground {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(-2px); opacity: 0.95; }
  100% { transform: translateY(0); opacity: 1; }
}
@keyframes pd-prince {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pd-uncle {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pd-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(0.9); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
@keyframes pd-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.6; }
  50% { transform: translate(10px,-15px) scale(1.5); opacity: 0.2; }
  100% { transform: translate(20px,-30px) scale(0.5); opacity: 0; }
}

.scn-young-york-taunts {
  background: linear-gradient(180deg, #b0d4f1 0%, #f9e7b3 50%, #f0c27a 100%), radial-gradient(ellipse at 30% 20%, #fff5c4 0%, transparent 60%);
}
.scn-young-york-taunts .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, transparent 100%);
  animation: yyt-sky 15s ease-in-out infinite alternate;
}
.scn-young-york-taunts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6b4e 0%, #4c3d2e 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-young-york-taunts .sun {
  position: absolute; top: 10%; left: 25%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe066 0%, #ffb347 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #ffb347;
  animation: yyt-sun 4s ease-in-out infinite alternate;
}
.scn-young-york-taunts .figure {
  position: absolute; bottom: 30%; left: 50%;
  width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yyt-figure 3s ease-in-out infinite;
}
.scn-young-york-taunts .blade {
  position: absolute; bottom: 55%; left: 58%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #f0f0f0 0%, #ccc 50%, #fff 100%);
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 0 6px 2px #fff;
  animation: yyt-blade 1.5s ease-in-out infinite;
}
.scn-young-york-taunts .shadow {
  position: absolute; bottom: 0; left: 30%;
  width: 80px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  transform: skewX(-10deg);
  animation: yyt-shadow 3s ease-in-out infinite;
}
.scn-young-york-taunts .dust-a {
  position: absolute; top: 20%; left: 40%;
  width: 4px; height: 4px;
  background: rgba(255,220,150,0.4);
  border-radius: 50%;
  animation: yyt-dust-a 10s linear infinite;
}
.scn-young-york-taunts .dust-b {
  position: absolute; top: 30%; left: 50%;
  width: 3px; height: 3px;
  background: rgba(255,200,100,0.3);
  border-radius: 50%;
  animation: yyt-dust-b 12s linear infinite;
}

@keyframes yyt-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes yyt-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 10px #ffb347; } 50% { transform: scale(1.1); box-shadow: 0 0 50px 15px #ffd27f; } 100% { transform: scale(0.95); box-shadow: 0 0 25px 8px #ffb347; } }
@keyframes yyt-figure { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-3deg) translateY(0); } 75% { transform: translateX(-50%) rotate(7deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes yyt-blade { 0% { transform: rotate(-5deg); opacity:0.7; } 30% { transform: rotate(0deg); opacity:1; } 60% { transform: rotate(5deg); opacity:0.8; } 100% { transform: rotate(-5deg); opacity:0.7; } }
@keyframes yyt-shadow { 0% { transform: skewX(-10deg) scaleX(1); opacity:0.6; } 50% { transform: skewX(-15deg) scaleX(1.1); opacity:0.8; } 100% { transform: skewX(-10deg) scaleX(1); opacity:0.6; } }
@keyframes yyt-dust-a { 0% { transform: translate(0,0); opacity:0.3; } 50% { transform: translate(30px, -20px); opacity:0.6; } 100% { transform: translate(60px, -40px); opacity:0.1; } }
@keyframes yyt-dust-b { 0% { transform: translate(0,0); opacity:0.2; } 50% { transform: translate(-20px, -10px); opacity:0.5; } 100% { transform: translate(-40px, -20px); opacity:0.1; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cloud-el { position: absolute; pointer-events: none; }
.dcr-chain2 { position: absolute; pointer-events: none; }
.drop-1 { position: absolute; pointer-events: none; }
.drop-2 { position: absolute; pointer-events: none; }
.heavy { position: absolute; pointer-events: none; }
.orphan { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-item-crown-tudor-triumph {
  background:
    linear-gradient(180deg, #7b8a9c 0%, #5b6a7c 40%, #3b4a5c 100%),
    radial-gradient(ellipse at 60% 20%, #a0b0c0 0%, transparent 70%);
}

.scn-item-crown-tudor-triumph .bg-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
  animation: crt-overlay 15s ease-in-out infinite alternate;
}

.scn-item-crown-tudor-triumph .wall-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a535e 0%, #2a3340 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}

.scn-item-crown-tudor-triumph .window-light {
  position: absolute; top: 5%; left: 25%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,210,220,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: crt-window 20s ease-in-out infinite alternate;
}

.scn-item-crown-tudor-triumph .cushion {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 40px;
  background: linear-gradient(180deg, #5e3a45 0%, #3a1e2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: crt-cushion 6s ease-in-out infinite;
}

.scn-item-crown-tudor-triumph .crown-band {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 30px;
  background: linear-gradient(180deg, #b8a060 0%, #8a7030 50%, #6a5020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 2px 6px rgba(255,215,100,0.5);
  animation: crt-band 7s ease-in-out infinite alternate;
}

.scn-item-crown-tudor-triumph .crown-arch-left {
  position: absolute; bottom: 43%; left: 40%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #b8a060 0%, #8a7030 100%);
  border-radius: 50% 0 0 50% / 80% 0 0 80%;
  transform-origin: right center;
  animation: crt-arch 8s ease-in-out infinite alternate;
}

.scn-item-crown-tudor-triumph .crown-arch-right {
  position: absolute; bottom: 43%; right: 40%; width: 30px; height: 30px;
  background: linear-gradient(225deg, #b8a060 0%, #8a7030 100%);
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  transform-origin: left center;
  animation: crt-arch 8s ease-in-out infinite alternate-reverse;
}

.scn-item-crown-tudor-triumph .gem-center {
  position: absolute; bottom: 48%; left: 50%; transform: translate(-50%, 0);
  width: 12px; height: 12px;
  background: radial-gradient(circle at 30% 30%, #c0d0e0 0%, #607080 60%, #303840 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(100,150,200,0.4);
  animation: crt-gem 4s ease-in-out infinite;
}

.scn-item-crown-tudor-triumph .glow-effect {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,210,220,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: crt-glow 10s ease-in-out infinite alternate;
}

@keyframes crt-overlay {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

@keyframes crt-window {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

@keyframes crt-cushion {
  0%, 100% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.01); }
}

@keyframes crt-band {
  0% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) scale(1.005); }
  100% { transform: translateX(-50%) rotate(-0.3deg); }
}

@keyframes crt-arch {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(4deg) scaleY(1.03); }
  100% { transform: rotate(-2deg) scaleY(0.97); }
}

@keyframes crt-gem {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(100,150,200,0.3); }
  50% { opacity: 1; box-shadow: 0 0 18px 6px rgba(100,150,200,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(100,150,200,0.4); }
}

@keyframes crt-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.2; transform: translateX(-50%) scale(0.9); }
}

/* Scene 1: richmond-lands-rebellions */
.scn-richmond-lands-rebellions {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 80%);
}
.scn-richmond-lands-rebellions .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  animation: rlr-sky 12s ease-in-out infinite alternate;
}
.scn-richmond-lands-rebellions .tent {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #5a6b5a 0%, #3a4a3a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  box-shadow: 6px 6px 20px rgba(0,0,0,0.6);
  transform: skewX(-5deg);
}
.scn-richmond-lands-rebellions .tent-flag {
  position: absolute; bottom: 38%; left: 29%;
  width: 20px; height: 30px;
  background: #7a5a3a; /* terracotta, not bright red */
  border-radius: 0 0 40% 40%;
  transform-origin: top;
  animation: rlr-flag 4s ease-in-out infinite alternate;
}
.scn-richmond-lands-rebellions .figure-commander {
  position: absolute; bottom: 28%; left: 38%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rlr-fig1 3s ease-in-out infinite;
}
.scn-richmond-lands-rebellions .figure-soldier {
  position: absolute; bottom: 28%; left: 48%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rlr-fig2 3.5s ease-in-out infinite;
}
.scn-richmond-lands-rebellions .ground-mud {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  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.5);
  animation: rlr-ground 20s linear infinite;
}
@keyframes rlr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rlr-flag { 0% { transform: rotate(-8deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-8deg) } }
@keyframes rlr-fig1 { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes rlr-fig2 { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }
@keyframes rlr-ground { 0% { background-position: 0 0 } 100% { background-position: -200px 0 } }

/* Scene 2: ghosts-visit-richard */
.scn-ghosts-visit-richard {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-ghosts-visit-richard .tent-dark {
  position: absolute; inset: 10% 10% 20% 10%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 15% 15% 5% 5% / 25% 25% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-ghosts-visit-richard .bed {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-ghosts-visit-richard .ghost-1 {
  position: absolute; top: 25%; left: 20%;
  width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,240,0.4) 0%, rgba(200,200,240,0.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: gvr-ghost1 8s ease-in-out infinite;
}
.scn-ghosts-visit-richard .ghost-2 {
  position: absolute; top: 30%; right: 25%;
  width: 25px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,240,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: gvr-ghost2 10s ease-in-out infinite alternate;
}
.scn-ghosts-visit-richard .ghost-3 {
  position: absolute; top: 40%; left: 55%;
  width: 20px; height: 45px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,200,240,0.25) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: gvr-ghost3 12s ease-in-out infinite;
}
.scn-ghosts-visit-richard .lantern-dim {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #4a5a3a 0%, #1a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(100,130,80,0.4);
  animation: gvr-lantern 5s ease-in-out infinite alternate;
}
@keyframes gvr-ghost1 { 0%,100% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-8px) } }
@keyframes gvr-ghost2 { 0%,100% { opacity:0.2; transform: translateY(0) rotate(0) } 50% { opacity:0.6; transform: translateY(-6px) rotate(5deg) } }
@keyframes gvr-ghost3 { 0%,100% { opacity:0.15; transform: translateY(0) } 50% { opacity:0.5; transform: translateY(-10px) } }
@keyframes gvr-lantern { 0% { box-shadow: 0 0 8px 1px rgba(100,130,80,0.3); } 50% { box-shadow: 0 0 16px 4px rgba(100,130,80,0.6); } 100% { box-shadow: 0 0 8px 1px rgba(100,130,80,0.3); } }

/* Scene 3: battle-richard-falls */
.scn-battle-richard-falls {
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 30%, #1a1a0a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-battle-richard-falls .sky-battle {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  animation: brf-sky 15s ease-in-out infinite alternate;
}
.scn-battle-richard-falls .ground-battle {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-battle-richard-falls .horse-fallen {
  position: absolute; bottom: 20%; left: 30%;
  width: 80px; height: 50px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 20% 10% 10% / 30% 20% 10% 10%;
  transform: rotate(-15deg);
  box-shadow: 4px 4px 10px rgba(0,0,0,0.5);
  animation: brf-horse 4s ease-in-out infinite;
}
.scn-battle-richard-falls .richard-fallen {
  position: absolute; bottom: 16%; left: 42%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: brf-richard 3s ease-in-out infinite;
}
.scn-battle-richard-falls .sword-broken {
  position: absolute; bottom: 18%; left: 50%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(30deg);
  animation: brf-sword 2.5s ease-in-out infinite;
}
.scn-battle-richard-falls .body-bg {
  position: absolute; bottom: 15%; left: 20%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 100%);
  filter: blur(8px);
  animation: brf-body 6s ease-in-out infinite alternate;
}
@keyframes brf-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes brf-horse { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes brf-richard { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes brf-sword { 0% { transform: rotate(30deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(30deg) } }
@keyframes brf-body { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

/* Scene 4: richmond-proclaims-peace */
.scn-richmond-proclaims-peace {
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 50%, #4a5a4a 100%),
              radial-gradient(ellipse at 50% 80%, #6a7a6a 0%, transparent 80%);
}
.scn-richmond-proclaims-peace .sky-calm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #7a8a7a 100%);
  animation: rpp-sky 20s ease-in-out infinite alternate;
}
.scn-richmond-proclaims-peace .dais {
  position: absolute; bottom: 25%; left: 30%; width: 140px; height: 40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 5% 5% / 10% 10% 5% 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}
.scn-richmond-proclaims-peace .crown {
  position: absolute; bottom: 44%; left: 42%;
  width: 24px; height: 18px;
  background: linear-gradient(135deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 2px 8px rgba(200,180,120,0.5);
  animation: rpp-crown 2s ease-in-out infinite alternate;
}
.scn-richmond-proclaims-peace .banner-left {
  position: absolute; bottom: 38%; left: 18%;
  width: 14px; height: 60px;
  background: linear-gradient(180deg, #8a7a3a 0%, #5a4a1a 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: top;
  animation: rpp-banner 8s ease-in-out infinite alternate;
}
.scn-richmond-proclaims-peace .banner-right {
  position: absolute; bottom: 38%; right: 18%;
  width: 14px; height: 60px;
  background: linear-gradient(180deg, #6a7a3a 0%, #4a5a1a 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: top;
  animation: rpp-banner 8s ease-in-out infinite alternate-reverse;
}
.scn-richmond-proclaims-peace .king-richmond {
  position: absolute; bottom: 28%; left: 38%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rpp-king 5s ease-in-out infinite;
}
.scn-richmond-proclaims-peace .queen-elizabeth {
  position: absolute; bottom: 28%; left: 48%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rpp-queen 5.5s ease-in-out infinite;
}
.scn-richmond-proclaims-peace .rose-white {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 14px;
  background: radial-gradient(circle, #ffffff 0%, #e0e0d0 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,255,255,0.3);
  animation: rpp-rose 3s ease-in-out infinite alternate;
}
@keyframes rpp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rpp-crown { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes rpp-banner { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }
@keyframes rpp-king { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes rpp-queen { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes rpp-rose { 0% { opacity:0.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.7; transform: translateX(-50%) scale(1) } }

/* opening-richard-villain (tag: orv) */
.scn-opening-richard-villain { background: linear-gradient(180deg, #4a4a5a 0%, #2e2e3a 50%, #1a1a26 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 60%); }
.scn-opening-richard-villain .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: orv-sky 15s ease-in-out infinite alternate; }
.scn-opening-richard-villain .building-left { position:absolute; bottom:30%; left:0; width:35%; height:70%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); transform: skewY(-2deg); animation: orv-build 20s ease-in-out infinite; }
.scn-opening-richard-villain .building-right { position:absolute; bottom:30%; right:0; width:40%; height:60%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); transform: skewY(1deg); animation: orv-build 22s ease-in-out infinite reverse; }
.scn-opening-richard-villain .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2e2e3a 0%, #1a1a26 100%); border-radius: 20% 40% 0 0 / 30% 60% 0 0; animation: orv-street 18s ease-in-out infinite alternate; }
.scn-opening-richard-villain .figure-ri { position:absolute; bottom:20%; left:50%; width:30px; height:54px; margin-left:-15px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: orv-figure 6s ease-in-out infinite; }
.scn-opening-richard-villain .shadow-pool { position:absolute; bottom:15%; left:45%; width:20%; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); border-radius: 50%; animation: orv-shadow 6s ease-in-out infinite; }
.scn-opening-richard-villain .cobblestone { position:absolute; bottom:23%; left:20%; width:12px; height:6px; background: #3a3a4a; border-radius: 50%; filter: blur(1px); animation: orv-stone 10s ease-in-out infinite; }
@keyframes orv-sky   { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes orv-build { 0% { transform: skewY(-2deg) translateY(0) } 50% { transform: skewY(-2deg) translateY(-2px) } 100% { transform: skewY(-2deg) translateY(0) } }
@keyframes orv-street{ 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes orv-figure{ 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-4px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes orv-shadow{ 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(1); opacity:.3 } }
@keyframes orv-stone { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(2px) scale(0.9) } 100% { transform: translateY(0) scale(1) } }

/* clarence-prophecy-suspicion (tag: cps) */
.scn-clarence-prophecy-suspicion { background: linear-gradient(180deg, #3a3a3e 0%, #25252a 50%, #15151a 100%), radial-gradient(ellipse at 70% 20%, #4a4a52 0%, transparent 60%); }
.scn-clarence-prophecy-suspicion .bg-cell { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a30 0%, #1a1a1e 100%); border-radius: 2% 2% 0 0; }
.scn-clarence-prophecy-suspicion .window-bars { position:absolute; top:10%; left:10%; width:40%; height:50%; background: repeating-linear-gradient(0deg, #4a4a50 0px, #4a4a50 4px, transparent 4px, transparent 20px), repeating-linear-gradient(90deg, #4a4a50 0px, #4a4a50 4px, transparent 4px, transparent 20px); border: 4px solid #3a3a42; box-shadow: inset 0 0 20px rgba(0,0,0,.6); opacity:.6; animation: cps-bars 8s ease-in-out infinite alternate; }
.scn-clarence-prophecy-suspicion .light-shaft { position:absolute; top:15%; left:15%; width:30%; height:70%; background: linear-gradient(180deg, rgba(180,180,200,.4) 0%, rgba(180,180,200,.1) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(6px); animation: cps-light 12s ease-in-out infinite alternate; }
.scn-clarence-prophecy-suspicion .figure-cla { position:absolute; bottom:25%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #3a3a42 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cps-figure 5s ease-in-out infinite; }
.scn-clarence-prophecy-suspicion .shadow-guard { position:absolute; bottom:25%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #2a2a32 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: cps-guard 6s ease-in-out infinite; }
.scn-clarence-prophecy-suspicion .prophecy-scroll { position:absolute; bottom:35%; left:52%; width:14px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(15deg); animation: cps-scroll 9s ease-in-out infinite alternate; }
@keyframes cps-bars  { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes cps-light { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.05) } 100% { opacity:.2; transform: scaleY(0.95) } }
@keyframes cps-figure{ 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cps-guard { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-1px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes cps-scroll{ 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(15deg) scaleX(1) } }

/* richard-plots-advancement (tag: rpa) */
.scn-richard-plots-advancement { background: linear-gradient(180deg, #1a1a1e 0%, #2a2a2e 30%, #1a1a1e 100%), radial-gradient(ellipse at 50% 60%, #3a3a40 0%, transparent 70%); }
.scn-richard-plots-advancement .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a2e 0%, #1a1a1e 100%); border-radius: 4%; box-shadow: inset 0 0 60px rgba(0,0,0,.8); }
.scn-richard-plots-advancement .table-wood { position:absolute; bottom:20%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: rpa-table 6s ease-in-out infinite; }
.scn-richard-plots-advancement .candle-glow { position:absolute; bottom:28%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #e0a040 0%, #c08030 40%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 12px #a06020, 0 0 80px 20px rgba(160,96,32,.4); animation: rpa-candle 4s ease-in-out infinite alternate; }
.scn-richard-plots-advancement .figure-ri-plot { position:absolute; bottom:25%; left:35%; width:34px; height:60px; background: linear-gradient(180deg, #2a2a32 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rpa-figure 7s ease-in-out infinite; }
.scn-richard-plots-advancement .map-spread { position:absolute; bottom:24%; left:30%; width:40%; height:14%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 6% 6% 10% 10%; transform: rotate(3deg); animation: rpa-map 12s ease-in-out infinite alternate; }
.scn-richard-plots-advancement .shadow-corner { position:absolute; top:0; right:0; width:40%; height:40%; background: radial-gradient(ellipse at 100% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: rpa-shadow 8s ease-in-out infinite alternate; }
@keyframes rpa-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rpa-candle{ 0% { transform: scale(1) rotate(-2deg); opacity:.8 } 50% { transform: scale(1.08) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:.9 } }
@keyframes rpa-figure{ 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes rpa-map   { 0% { transform: rotate(3deg) scaleX(1) } 50% { transform: rotate(0deg) scaleX(1.02) } 100% { transform: rotate(3deg) scaleX(1) } }
@keyframes rpa-shadow{ 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }

/* richard-woos-anne (tag: rwa) */
.scn-richard-woos-anne { background: linear-gradient(180deg, #4a4a56 0%, #3a3a46 40%, #2a2a36 100%), radial-gradient(ellipse at 30% 50%, #5a5a66 0%, transparent 70%); }
.scn-richard-woos-anne .bg-street-grey { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a56 0%, #2a2a36 100%); border-radius: 4% 4% 0 0; }
.scn-richard-woos-anne .corpse-bier { position:absolute; bottom:22%; left:30%; width:45%; height:16%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 20% 20%; transform: rotate(-2deg); animation: rwa-bier 8s ease-in-out infinite; }
.scn-richard-woos-anne .figure-anne { position:absolute; bottom:38%; left:28%; width:28px; height:56px; background: linear-gradient(180deg, #3a3a48 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rwa-figureA 5s ease-in-out infinite; }
.scn-richard-woos-anne .figure-ri-woo { position:absolute; bottom:34%; right:28%; width:32px; height:58px; background: linear-gradient(180deg, #2a2a38 0%, #0a0a16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rwa-figureR 6s ease-in-out infinite; }
.scn-richard-woos-anne .mourning-veil { position:absolute; bottom:40%; left:26%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(150,150,180,.3) 0%, transparent 100%); filter: blur(8px); animation: rwa-veil 10s ease-in-out infinite alternate; }
.scn-richard-woos-anne .stone-wall { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #3a3a46 0px, #3a3a46 8px, #4a4a56 8px, #4a4a56 16px), linear-gradient(180deg, #3a3a46 0%, #2a2a36 100%); border-radius: 10% 10% 0 0; animation: rwa-wall 20s ease-in-out infinite; }
.scn-richard-woos-anne .distant-tower { position:absolute; top:10%; right:10%; width:20px; height:50px; background: linear-gradient(180deg, #4a4a56 0%, #2a2a36 100%); border-radius: 20% 20% 10% 10%; transform: skewY(-3deg); animation: rwa-tower 25s ease-in-out infinite alternate; }
@keyframes rwa-bier   { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rwa-figureA{ 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(-1deg) } }
@keyframes rwa-figureR{ 0% { transform: translateY(0) rotate(2deg) } 20% { transform: translateY(-2px) rotate(-1deg) } 40% { transform: translateY(0) rotate(1deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 80% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes rwa-veil   { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.1) } 100% { opacity:.3; transform: scaleY(0.9) } }
@keyframes rwa-wall   { 0% { background-position: 0 0 } 100% { background-position: 32px 0 } }
@keyframes rwa-tower  { 0% { transform: skewY(-3deg) scaleY(1) } 50% { transform: skewY(-3deg) scaleY(1.02) } 100% { transform: skewY(-3deg) scaleY(1) } }

/* pomfret-executions */
.scn-pomfret-executions {
  background: linear-gradient(180deg, #2c3e4e 0%, #1a2a32 40%, #0e1a20 100%), radial-gradient(ellipse at 30% 60%, #3c4e5e 0%, transparent 70%);
}
.scn-pomfret-executions .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5c6a 0%, #2c3e4e 100%);
  animation: pe-sky 12s ease-in-out infinite alternate;
}
.scn-pomfret-executions .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(180,190,200,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: pe-clouds 30s linear infinite;
}
.scn-pomfret-executions .castle-wall {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  transform: scaleX(1.1);
}
.scn-pomfret-executions .scaffold {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a4030 0%, #6a5040 50%, #5a4030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-pomfret-executions .figure-rivers {
  position: absolute; bottom: 32%; left: 36%; width: 16px; 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: pe-figure 6s ease-in-out infinite;
}
.scn-pomfret-executions .figure-grey {
  position: absolute; bottom: 32%; left: 44%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 6s ease-in-out infinite 0.2s;
}
.scn-pomfret-executions .figure-vaughan {
  position: absolute; bottom: 32%; left: 52%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 6s ease-in-out infinite 0.4s;
}
.scn-pomfret-executions .executioner {
  position: absolute; bottom: 28%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pe-executioner 4s ease-in-out infinite;
}
.scn-pomfret-executions .straw {
  position: absolute; bottom: 27%; left: 48%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #8a7040 0%, #a08050 50%, #8a7040 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pe-straw 8s ease-in-out infinite;
}
@keyframes pe-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pe-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes pe-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pe-executioner { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes pe-straw { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(5px); } 100% { opacity: 0.3; transform: translateX(0); } }

/* richard-accuses-hastings */
.scn-richard-accuses-hastings {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 60%);
}
.scn-richard-accuses-hastings .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-richard-accuses-hastings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
.scn-richard-accuses-hastings .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 15px;
  background: linear-gradient(90deg, #5a4030 0%, #7a6050 50%, #5a4030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(5deg);
}
.scn-richard-accuses-hastings .strawberries {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #a05030 0%, #603020 60%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rah-strawberry 5s ease-in-out infinite;
}
.scn-richard-accuses-hastings .richard {
  position: absolute; bottom: 18%; left: 30%; width: 20px; 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: rah-richard 4s ease-in-out infinite;
}
.scn-richard-accuses-hastings .hastings {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 58px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rah-hastings 5s ease-in-out infinite;
}
.scn-richard-accuses-hastings .buckingham {
  position: absolute; bottom: 20%; left: 42%; width: 16px; height: 55px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rah-buckingham 4.5s ease-in-out infinite 0.5s;
}
.scn-richard-accuses-hastings .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd060 0%, #b08030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3);
  animation: rah-candle 3s ease-in-out infinite alternate;
}
@keyframes rah-strawberry { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes rah-richard { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rah-hastings { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes rah-buckingham { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rah-candle { 0% { opacity: 0.8; transform: scaleY(1) rotate(-2deg); } 50% { opacity: 1; transform: scaleY(1.05) rotate(2deg); } 100% { opacity: 0.9; transform: scaleY(1) rotate(0); } }

/* richard-pretends-piety */
.scn-richard-pretends-piety {
  background: linear-gradient(180deg, #0e0e1a 0%, #1e1e2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 20%, #3e3e4e 0%, transparent 60%);
}
.scn-richard-pretends-piety .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
}
.scn-richard-pretends-piety .pulpit {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-richard-pretends-piety .richard-silhouette {
  position: absolute; bottom: 14%; left: 40%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpp-richard 5s ease-in-out infinite;
}
.scn-richard-pretends-piety .buckingham-silhouette {
  position: absolute; bottom: 14%; left: 52%; width: 16px; height: 58px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpp-buckingham 5s ease-in-out infinite 0.3s;
}
.scn-richard-pretends-piety .cross {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7040 0%, #5a4030 100%);
  border-radius: 1px;
  box-shadow: 0 0 8px 2px rgba(200,170,100,0.3);
  animation: rpp-cross 10s ease-in-out infinite;
}
.scn-richard-pretends-piety .light-ray {
  position: absolute; bottom: 70%; left: 40%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,160,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: rpp-light 6s ease-in-out infinite alternate;
}
@keyframes rpp-richard { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes rpp-buckingham { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } }
@keyframes rpp-cross { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rpp-light { 0% { opacity: 0.2; transform: scale(0.8); } 100% { opacity: 0.5; transform: scale(1.1); } }

/* richard-accepts-crown */
.scn-richard-accepts-crown {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 60%);
}
.scn-richard-accepts-crown .throne-room {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-richard-accepts-crown .crown-cushion {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #604030 70%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rac-cushion 6s ease-in-out infinite;
}
.scn-richard-accepts-crown .richard {
  position: absolute; bottom: 18%; left: 45%; width: 20px; 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: rac-richard 4s ease-in-out infinite;
}
.scn-richard-accepts-crown .buckingham {
  position: absolute; bottom: 20%; left: 38%; width: 16px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rac-buckingham 4.5s ease-in-out infinite 0.2s;
}
.scn-richard-accepts-crown .mayor {
  position: absolute; bottom: 20%; left: 58%; width: 18px; height: 56px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rac-mayor 5s ease-in-out infinite 0.4s;
}
.scn-richard-accepts-crown .torch {
  position: absolute; bottom: 25%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffd060 0%, #b08030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 16px rgba(255,208,96,0.2);
  animation: rac-torch 3s ease-in-out infinite alternate;
}
.scn-richard-accepts-crown .shadow {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: rac-shadow 6s ease-in-out infinite;
}
@keyframes rac-cushion { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } }
@keyframes rac-richard { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes rac-buckingham { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes rac-mayor { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes rac-torch { 0% { opacity: 0.8; transform: scaleY(1) rotate(-2deg); } 50% { opacity: 1; transform: scaleY(1.1) rotate(2deg); } 100% { opacity: 0.9; transform: scaleY(1) rotate(0); } }
@keyframes rac-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* Scene: court-shocked-clarence-death */
.scn-court-shocked-clarence-death {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #3a2222 30%, #1a1212 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a2a 0%, transparent 60%);
}
.scn-court-shocked-clarence-death .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%);
  border-bottom: 4px solid #2a1a1a;
}
.scn-court-shocked-clarence-death .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1212 0%, #0e0a0a 100%);
}
.scn-court-shocked-clarence-death .throne {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e301a 0%, #3a1a0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-court-shocked-clarence-death .king-being-carried {
  position: absolute; bottom: 38%; left: 50%; width: 22px; height: 32px;
  transform: translateX(-60%);
  background: linear-gradient(180deg, #6a3a3a 0%, #3a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: crt-carried 3s ease-in-out infinite alternate;
}
.scn-court-shocked-clarence-death .stanley {
  position: absolute; bottom: 34%; left: 32%; width: 18px; height: 38px;
  transform: rotate(5deg);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: crt-bow 4s ease-in-out infinite;
}
.scn-court-shocked-clarence-death .courtier-left {
  position: absolute; bottom: 35%; left: 18%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: perspective(50px) rotateY(-10deg);
  animation: crt-shock 2s ease-in-out infinite alternate;
}
.scn-court-shocked-clarence-death .courtier-right {
  position: absolute; bottom: 35%; right: 18%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: perspective(50px) rotateY(10deg);
  animation: crt-shock 2.3s ease-in-out infinite alternate-reverse;
}
.scn-court-shocked-clarence-death .candle-glow {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8a040 0%, #7a5a1a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: crt-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes crt-carried {
  0% { transform: translateX(-60%) rotate(-2deg); }
  50% { transform: translateX(-58%) rotate(0deg); }
  100% { transform: translateX(-60%) rotate(2deg); }
}
@keyframes crt-bow {
  0%,100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
}
@keyframes crt-shock {
  0% { transform: perspective(50px) rotateY(-10deg) translateY(0); }
  100% { transform: perspective(50px) rotateY(-10deg) translateY(-3px); }
}
@keyframes crt-flicker {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

/* Scene: king-edward-dies */
.scn-king-edward-dies {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 70%, #3a3a5a 0%, transparent 60%);
}
.scn-king-edward-dies .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%);
  opacity: 0.8;
}
.scn-king-edward-dies .bed {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%);
  border-radius: 8% 8% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-king-edward-dies .queen-elizabeth {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a2e 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: edie-grief 4s ease-in-out infinite;
}
.scn-king-edward-dies .duchess {
  position: absolute; bottom: 30%; right: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0e1e 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform: rotate(-8deg);
  animation: edie-grief 4.5s ease-in-out infinite alternate;
}
.scn-king-edward-dies .children-left {
  position: absolute; bottom: 26%; left: 42%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a14 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: edie-sob 2.8s ease-in-out infinite;
}
.scn-king-edward-dies .children-right {
  position: absolute; bottom: 24%; right: 42%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a14 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: edie-sob 3.2s ease-in-out infinite alternate;
}
.scn-king-edward-dies .tear-drop {
  position: absolute; bottom: 38%; left: 40%; width: 4px; height: 8px;
  background: radial-gradient(circle at 50% 30%, #a0a0c0 0%, #707090 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: edie-tear 5s ease-in-out infinite;
}
.scn-king-edward-dies .grief-aura {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(80,80,120,0.15) 0%, transparent 70%);
  animation: edie-pulse 6s ease-in-out infinite alternate;
}
@keyframes edie-grief {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes edie-sob {
  0% { transform: translateY(0); }
  30% { transform: translateY(-2px); }
  60% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes edie-tear {
  0% { opacity: 0; transform: translateY(0); }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 0; transform: translateY(10px); }
}
@keyframes edie-pulse {
  0% { opacity: 0.5; }
  100% { opacity: 1; }
}

/* Scene: richard-buckingham-plot */
.scn-richard-buckingham-plot {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 70%);
}
.scn-richard-buckingham-plot .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: plot-sky 15s ease-in-out infinite alternate;
}
.scn-richard-buckingham-plot .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
}
.scn-richard-buckingham-plot .richard {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform: rotate(-4deg);
  animation: plot-turn 4s ease-in-out infinite;
}
.scn-richard-buckingham-plot .buckingham {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform: rotate(3deg);
  animation: plot-whisper 3.5s ease-in-out infinite alternate;
}
.scn-richard-buckingham-plot .citizen-a {
  position: absolute; bottom: 22%; left: 12%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: plot-look 5s ease-in-out infinite;
}
.scn-richard-buckingham-plot .citizen-b {
  position: absolute; bottom: 20%; left: 22%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scale(0.95);
  animation: plot-look 5.2s ease-in-out infinite alternate;
}
.scn-richard-buckingham-plot .citizen-c {
  position: absolute; bottom: 23%; right: 20%; width: 17px; height: 37px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: plot-look 4.8s ease-in-out infinite reverse;
}
.scn-richard-buckingham-plot .shadow-hint {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2a 100%);
  opacity: 0.5;
}
@keyframes plot-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.6; }
  100% { opacity: 0.9; }
}
@keyframes plot-turn {
  0%,100% { transform: rotate(-4deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(3px); }
}
@keyframes plot-whisper {
  0% { transform: rotate(3deg) translateX(0); }
  100% { transform: rotate(5deg) translateX(-2px); }
}
@keyframes plot-look {
  0% { transform: translateX(0); }
  25% { transform: translateX(2px); }
  75% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}

/* Scene: princes-taken-tower */
.scn-princes-taken-tower {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, transparent 60%);
}
.scn-princes-taken-tower .tower-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  opacity: 0.6;
}
.scn-princes-taken-tower .tower-wall {
  position: absolute; bottom: 10%; left: 50%; width: 180px; height: 250px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-princes-taken-tower .prince-elder {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: tower-step 3s ease-in-out infinite;
}
.scn-princes-taken-tower .prince-york {
  position: absolute; bottom: 25%; left: 52%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform: scale(0.9);
  animation: tower-step 3.2s ease-in-out infinite alternate;
}
.scn-princes-taken-tower .richard-observing {
  position: absolute; bottom: 30%; left: 22%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: tower-watch 5s ease-in-out infinite;
}
.scn-princes-taken-tower .catesby {
  position: absolute; bottom: 28%; right: 22%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: tower-bow 4s ease-in-out infinite alternate;
}
.scn-princes-taken-tower .tower-gate {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  border: 2px solid #1a1a0e;
}
.scn-princes-taken-tower .cloud-overcast {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(100,100,120,0.6) 0%, rgba(80,80,100,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: tower-cloud 40s linear infinite;
}
@keyframes tower-step {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tower-watch {
  0%,100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
}
@keyframes tower-bow {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}
@keyframes tower-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

/* Scene: duchess-curses-richard */
.scn-duchess-curses-richard {
  background: linear-gradient(180deg, #1a1423 0%, #2d1f2a 40%, #3b2a30 100%), radial-gradient(ellipse at 40% 60%, #5a3a3a 0%, transparent 70%);
}
.scn-duchess-curses-richard .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e26 0%, #1f141f 100%);
  animation: dcr-wall 12s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%);
  border-top: 2px solid #3a2020;
}
.scn-duchess-curses-richard .window-bars {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 40%;
  background: repeating-linear-gradient(0deg, #2a2a2a 0px, #2a2a2a 4px, transparent 4px, transparent 20px);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: dcr-bars 8s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .candle-glow {
  position: absolute; bottom: 38%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #b87a4a 0%, #8a5a3a 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.6;
  animation: dcr-candle 4s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .figure-duchess {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2030 0%, #1a1018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dcr-duchess 5s ease-in-out infinite;
}
.scn-duchess-curses-richard .figure-richard {
  position: absolute; bottom: 28%; right: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: dcr-richard 7s ease-in-out infinite alternate;
}
.scn-duchess-curses-richard .shadow-curse {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(80,20,20,0.6) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dcr-shad 6s ease-in-out infinite;
}
.scn-duchess-curses-richard .dust-motes {
  position: absolute; top: 10%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dcr-dust 15s linear infinite;
}
@keyframes dcr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dcr-bars {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes dcr-candle {
  0% { transform: scale(1) translate(0,0); opacity: 0.5; }
  50% { transform: scale(1.1) translate(-2px,-2px); opacity: 0.7; }
  100% { transform: scale(0.95) translate(1px,1px); opacity: 0.6; }
}
@keyframes dcr-duchess {
  0% { transform: translate(0,0) rotate(-2deg); }
  25% { transform: translate(3px,-2px) rotate(0deg); }
  50% { transform: translate(-2px,-3px) rotate(2deg); }
  75% { transform: translate(2px,-1px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(-2deg); }
}
@keyframes dcr-richard {
  0% { transform: scaleX(-1) translate(0,0); }
  50% { transform: scaleX(-1) translate(-5px, 3px); }
  100% { transform: scaleX(-1) translate(0,0); }
}
@keyframes dcr-shad {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes dcr-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  50% { transform: translate(20px,30px) scale(1.5); opacity: 0.1; }
  100% { transform: translate(40px,60px) scale(0.8); opacity: 0.3; }
}

/* Scene: item-crown-princes-murdered */
.scn-item-crown-princes-murdered {
  background: linear-gradient(180deg, #1f1a24 0%, #1a121e 40%, #0d0810 100%), radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 70%);
}
.scn-item-crown-princes-murdered .bg-chamber {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2230 0%, #1a1220 100%);
  animation: icp-chamber 10s ease-in-out infinite alternate;
}
.scn-item-crown-princes-murdered .bed-frame {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(180deg, #2a202a 0%, #181018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-item-crown-princes-murdered .prince-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a2020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: icp-prince-left 9s ease-in-out infinite;
}
.scn-item-crown-princes-murdered .prince-right {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a2020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: icp-prince-right 9s ease-in-out infinite 4.5s;
}
.scn-item-crown-princes-murdered .figure-tyrrel {
  position: absolute; bottom: 22%; right: 20%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: icp-tyrrel 12s ease-in-out infinite;
}
.scn-item-crown-princes-murdered .crown-item {
  position: absolute; bottom: 55%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #b0a070 0%, #706040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: icp-crown 8s ease-in-out infinite alternate;
}
.scn-item-crown-princes-murdered .drapes {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #1a1220 0%, transparent 100%);
  animation: icp-drapes 15s linear infinite alternate;
}
.scn-item-crown-princes-murdered .fog {
  position: absolute; top: 10%; left: 0; width: 100%; height: 60%;
  background: radial-gradient(ellipse at 30% 50%, rgba(40,30,50,0.4) 0%, transparent 80%);
  filter: blur(12px);
  animation: icp-fog 20s ease-in-out infinite;
}
@keyframes icp-chamber {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes icp-prince-left {
  0%, 100% { transform: translate(0,0) rotate(2deg); }
  50% { transform: translate(2px,-2px) rotate(-2deg); }
}
@keyframes icp-prince-right {
  0%, 100% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(-2px,-2px) rotate(2deg); }
}
@keyframes icp-tyrrel {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(-5px, -3px) rotate(2deg); }
  60% { transform: translate(-2px, 2px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes icp-crown {
  0% { transform: scale(1) translate(0,0); opacity: 0.6; }
  50% { transform: scale(1.1) translate(0,-4px); opacity: 1; }
  100% { transform: scale(0.9) translate(0,0); opacity: 0.5; }
}
@keyframes icp-drapes {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes icp-fog {
  0% { opacity: 0.3; transform: translate(0,0); }
  50% { opacity: 0.6; transform: translate(10px,10px); }
  100% { opacity: 0.2; transform: translate(-10px,-10px); }
}

/* Scene: margaret-gloats-mourning */
.scn-margaret-gloats-mourning {
  background: linear-gradient(180deg, #1c1624 0%, #241a2e 30%, #1f1420 100%), radial-gradient(ellipse at 30% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-margaret-gloats-mourning .bg-hall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-bottom: 2px solid #3a2a3a;
}
.scn-margaret-gloats-mourning .column-left {
  position: absolute; top: 0; left: 10%; width: 15%; height: 75%;
  background: linear-gradient(90deg, #1f1828 0%, #2c2030 50%, #1f1828 100%);
  box-shadow: 5px 0 15px rgba(0,0,0,0.5);
}
.scn-margaret-gloats-mourning .column-right {
  position: absolute; top: 0; right: 10%; width: 15%; height: 75%;
  background: linear-gradient(90deg, #1f1828 0%, #2c2030 50%, #1f1828 100%);
  box-shadow: -5px 0 15px rgba(0,0,0,0.5);
}
.scn-margaret-gloats-mourning .figure-margaret {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3050 0%, #2a1a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mgm-margaret 8s ease-in-out infinite alternate;
}
.scn-margaret-gloats-mourning .figure-elizabeth {
  position: absolute; bottom: 25%; left: 40%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #3a3050 0%, #1a2030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mgm-elizabeth 10s ease-in-out infinite;
}
.scn-margaret-gloats-mourning .figure-duchess-mourning {
  position: absolute; bottom: 25%; right: 20%; width: 55px; height: 105px;
  background: linear-gradient(180deg, #2a203a 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mgm-duchess 12s ease-in-out infinite alternate;
}
.scn-margaret-gloats-mourning .torch-glow {
  position: absolute; top: 15%; left: 48%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, #b07040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  opacity: 0.5;
  animation: mgm-torch 5s ease-in-out infinite alternate;
}
.scn-margaret-gloats-mourning .shadow-veil {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(10,10,20,0.6) 100%);
  animation: mgm-veil 15s ease-in-out infinite;
}
@keyframes mgm-margaret {
  0% { transform: translate(0,0) rotate(1deg); }
  50% { transform: translate(4px,-2px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(1deg); }
}
@keyframes mgm-elizabeth {
  0% { transform: translate(0,0); }
  25% { transform: translate(2px, -3px); }
  75% { transform: translate(-2px, -1px); }
  100% { transform: translate(0,0); }
}
@keyframes mgm-duchess {
  0% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(-4px,3px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(-2deg); }
}
@keyframes mgm-torch {
  0% { opacity: 0.4; transform: scale(1) translate(0,0); }
  50% { opacity: 0.7; transform: scale(1.1) translate(-1px,-2px); }
  100% { opacity: 0.5; transform: scale(0.9) translate(1px,1px); }
}
@keyframes mgm-veil {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* Scene: richard-woos-elizabeth-daughter */
.scn-richard-woos-elizabeth-daughter {
  background: linear-gradient(180deg, #1a1a2e 0%, #1f2030 40%, #2a2030 100%), radial-gradient(ellipse at 40% 70%, #2a2a3a 0%, transparent 70%);
}
.scn-richard-woos-elizabeth-daughter .bg-chamber-door {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #202030 0%, #101020 100%);
  border-bottom: 2px solid #303050;
}
.scn-richard-woos-elizabeth-daughter .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-conic-gradient(#181828 0% 25%, #1a1a2a 0% 50%) 0 0 / 40px 40px;
  opacity: 0.4;
  border-top: 1px solid #2a2a3a;
}
.scn-richard-woos-elizabeth-daughter .figure-richard-kneeling {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwe-richard 8s ease-in-out infinite alternate;
}
.scn-richard-woos-elizabeth-daughter .figure-elizabeth-facing {
  position: absolute; bottom: 28%; right: 25%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: rwe-elizabeth 10s ease-in-out infinite;
}
.scn-richard-woos-elizabeth-daughter .hand-gesture {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 30% 30% 50% 50%;
  animation: rwe-hand 6s ease-in-out infinite;
}
.scn-richard-woos-elizabeth-daughter .candle-stand {
  position: absolute; bottom: 25%; left: 10%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a2018 100%);
  border-radius: 2px;
}
.scn-richard-woos-elizabeth-daughter .candle-stand::after {
  content: ''; position: absolute; top: -5px; left: -2px; width: 12px; height: 12px;
  background: radial-gradient(circle, #b08040 0%, #8a5a2a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(176,128,64,0.5);
  animation: rwe-candle 4s ease-in-out infinite alternate;
}
.scn-richard-woos-elizabeth-daughter .window-light {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,20,0.5);
  animation: rwe-window 15s ease-in-out infinite alternate;
}
.scn-richard-woos-elizabeth-daughter .prayer-beads {
  position: absolute; bottom: 30%; right: 35%; width: 16px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: rwe-beads 7s ease-in-out infinite;
}
@keyframes rwe-richard {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(5px,-3px) rotate(3deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes rwe-elizabeth {
  0% { transform: scaleX(-1) translate(0,0); }
  50% { transform: scaleX(-1) translate(-3px,2px); }
  100% { transform: scaleX(-1) translate(0,0); }
}
@keyframes rwe-hand {
  0% { transform: translate(0,0) rotate(-5deg); }
  50% { transform: translate(-3px,-2px) rotate(0deg); }
  100% { transform: translate(0,0) rotate(-5deg); }
}
@keyframes rwe-candle {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.15); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes rwe-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes rwe-beads {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(2px,-1px) scale(1.2); }
  100% { transform: translate(0,0) scale(1); }
}

.scn-richard-hires-clarence-murder {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1a33 40%, #2a2a44 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a5a 0%, transparent 50%);
}
.scn-richard-hires-clarence-murder .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1c1c2e 0%, #12121f 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
}
.scn-richard-hires-clarence-murder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-richard-hires-clarence-murder .table {
  position: absolute; bottom: 22%; left: 38%; width: 100px; height: 14px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rh-table 12s ease-in-out infinite;
}
.scn-richard-hires-clarence-murder .candle {
  position: absolute; bottom: 40%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d0b070 0%, #a08040 50%, #604020 100%);
  border-radius: 2px;
  box-shadow: 0 -6px 8px 4px #f0c060;
}
.scn-richard-hires-clarence-murder .glow {
  position: absolute; bottom: 38%; left: 38%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,192,96,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: rh-glow 3s ease-in-out infinite alternate;
}
.scn-richard-hires-clarence-murder .richard {
  position: absolute; bottom: 26%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-figure 6s ease-in-out infinite;
}
.scn-richard-hires-clarence-murder .murderer1 {
  position: absolute; bottom: 26%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1e1e30 0%, #0e0e1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: rh-figure 7s ease-in-out infinite 0.5s;
}
.scn-richard-hires-clarence-murder .murderer2 {
  position: absolute; bottom: 26%; left: 60%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0c0c18 100%);
  border-radius: 40% 40% 38% 38% / 50% 50% 38% 38%;
  transform-origin: bottom center;
  animation: rh-figure 8s ease-in-out infinite 1s;
}
@keyframes rh-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes rh-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes rh-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-clarence-dream-told {
  background:
    linear-gradient(180deg, #0f0f1f 0%, #15152a 40%, #1a1a30 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a44 0%, transparent 60%);
}
.scn-clarence-dream-told .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #12121e 0%, #0a0a16 100%);
}
.scn-clarence-dream-told .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 0 0 8% 8%;
}
.scn-clarence-dream-told .window {
  position: absolute; top: 15%; right: 12%; width: 40px; height: 50px;
  background: #0a0a14;
  border: 3px solid #2a2a3e;
  border-radius: 4px;
  box-shadow: inset 0 0 10px 2px #3a3a5a;
  animation: cd-window 10s ease-in-out infinite alternate;
}
.scn-clarence-dream-told .bed {
  position: absolute; bottom: 18%; left: 25%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-clarence-dream-told .clarence {
  position: absolute; bottom: 22%; left: 28%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 8s ease-in-out infinite;
}
.scn-clarence-dream-told .brakenbury {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1e1e30 0%, #0e0e1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 9s ease-in-out infinite 1s;
}
.scn-clarence-dream-told .dream-wreck {
  position: absolute; top: 10%; left: 10%; width: 50px; height: 30px;
  background: linear-gradient(270deg, rgba(80,60,40,.3) 0%, transparent 100%);
  border-radius: 40% 0 0 40%;
  filter: blur(3px);
  animation: cd-drift 20s linear infinite;
}
.scn-clarence-dream-told .dream-jewels {
  position: absolute; top: 20%; right: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c0a060 0%, transparent 70%);
  filter: blur(2px);
  animation: cd-sparkle 4s ease-in-out infinite;
}
.scn-clarence-dream-told .dream-water {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #2a2a4a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cd-wave 12s ease-in-out infinite alternate;
}
@keyframes cd-window {
  0% { opacity: 0.4; box-shadow: inset 0 0 10px 2px #3a3a5a; }
  50% { opacity: 0.7; box-shadow: inset 0 0 20px 4px #4a4a6a; }
  100% { opacity: 0.3; box-shadow: inset 0 0 8px 2px #2a2a4a; }
}
@keyframes cd-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cd-drift {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(20px) scale(1.1); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes cd-sparkle {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.2; transform: scale(0.8); }
}
@keyframes cd-wave {
  0% { transform: translateX(-5px) scale(1); }
  50% { transform: translateX(5px) scale(1.05); }
  100% { transform: translateX(-5px) scale(1); }
}

.scn-murderers-conscience-argument {
  background:
    linear-gradient(180deg, #0c0c1a 0%, #16162a 40%, #1e1e32 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a44 0%, transparent 50%);
}
.scn-murderers-conscience-argument .bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #12121e 0%, #0a0a16 100%);
}
.scn-murderers-conscience-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 0 0 8% 8%;
}
.scn-murderers-conscience-argument .murderer1 {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-figure 6s ease-in-out infinite;
}
.scn-murderers-conscience-argument .murderer2 {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1c1c30 0%, #0c0c18 100%);
  border-radius: 45% 45% 38% 38% / 55% 55% 38% 38%;
  transform-origin: bottom center;
  animation: mc-figure 7s ease-in-out infinite 0.8s;
}
.scn-murderers-conscience-argument .coin-purse {
  position: absolute; bottom: 28%; left: 38%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: mc-purse 5s ease-in-out infinite;
}
.scn-murderers-conscience-argument .conscience-hand {
  position: absolute; bottom: 35%; left: 42%; width: 16px; height: 22px;
  background: radial-gradient(circle, #a0a0b0 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  opacity: 0.5;
  animation: mc-hand 8s ease-in-out infinite alternate;
}
.scn-murderers-conscience-argument .shadow {
  position: absolute; bottom: 0; left: 25%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: mc-shadow 10s ease-in-out infinite alternate;
}
@keyframes mc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1.5deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mc-purse {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes mc-hand {
  0% { opacity: 0.3; transform: scale(0.9) translateY(0); }
  50% { opacity: 0.7; transform: scale(1.1) translateY(-5px); }
  100% { opacity: 0.4; transform: scale(0.95) translateY(2px); }
}
@keyframes mc-shadow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}

.scn-clarence-murdered-malmsey {
  background:
    linear-gradient(180deg, #0a0a18 0%, #141428 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a44 0%, transparent 50%);
}
.scn-clarence-murdered-malmsey .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #080812 100%);
}
.scn-clarence-murdered-malmsey .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #16162a 0%, #0a0a14 100%);
  border-radius: 0 0 10% 10%;
}
.scn-clarence-murdered-malmsey .malmsey-butt {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4);
  animation: cm-barrel 12s ease-in-out infinite alternate;
}
.scn-clarence-murdered-malmsey .clarence {
  position: absolute; bottom: 24%; left: 42%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  animation: cm-figure 5s ease-in-out infinite alternate;
}
.scn-clarence-murdered-malmsey .murderer-arm {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #1e1e30 0%, #0a0a16 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom left;
  transform: rotate(30deg);
  animation: cm-arm 4s ease-in-out infinite alternate;
}
.scn-clarence-murdered-malmsey .blood {
  position: absolute; bottom: 20%; left: 44%; width: 12px; height: 8px;
  background: radial-gradient(ellipse, #702243 0%, #5e1a1d 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cm-blood 6s ease-in-out infinite;
}
.scn-clarence-murdered-malmsey .splash {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #2a2a4a 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cm-splash 3s ease-in-out infinite alternate;
}
@keyframes cm-barrel {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes cm-figure {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-25deg) translateY(2px); }
}
@keyframes cm-arm {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(35deg); }
  100% { transform: rotate(25deg); }
}
@keyframes cm-blood {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.3); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes cm-splash {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(3px); }
}

.scn-anne-accepts-ring {
  background: radial-gradient(ellipse at 50% 100%, #c8a06e 0%, transparent 60%),
              linear-gradient(180deg, #d4c0a0 0%, #b09070 40%, #806050 100%);
}
.scn-anne-accepts-ring .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(255, 230, 180, 0.3) 0%, transparent 60%);
  animation: ar-bg 12s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #b8a080 0%, #9a7a5a 50%, #7a5a3a 100%);
}
.scn-anne-accepts-ring .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
}
.scn-anne-accepts-ring .window-overcast {
  position: absolute; top: 12%; left: 28%; width: 28%; height: 38%;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b89a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255, 240, 200, 0.4);
  animation: ar-window 10s ease-in-out infinite;
}
.scn-anne-accepts-ring .kneeler {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ar-kneel 3s ease-in-out infinite;
}
.scn-anne-accepts-ring .stander {
  position: absolute; bottom: 28%; right: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ar-stand 4s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .ring-glow {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.5);
  animation: ar-ring 2s ease-in-out infinite alternate;
}
.scn-anne-accepts-ring .soft-shadow {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ar-shadow 5s ease-in-out infinite;
}
@keyframes ar-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ar-window {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.02); opacity: 0.9; }
  100% { transform: scaleY(0.98); opacity: 0.7; }
}
@keyframes ar-kneel {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes ar-stand {
  0% { transform: rotate(0deg) translateY(0); }
  100% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes ar-ring {
  0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.45); opacity: 0.8; }
}
@keyframes ar-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
}

.scn-richard-self-congratulation {
  background: radial-gradient(ellipse at 50% 60%, #2a1a30 0%, transparent 70%),
              linear-gradient(180deg, #0e0a14 0%, #1a1428 40%, #0a0810 100%);
}
.scn-richard-self-congratulation .bg-dim {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(20,15,30,0.2) 0px, transparent 10px);
  animation: rs-bg 15s linear infinite;
}
.scn-richard-self-congratulation .wall-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%);
}
.scn-richard-self-congratulation .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0a0810 0%, #040206 100%);
}
.scn-richard-self-congratulation .figure-richard {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e34 0%, #140c1c 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(100,80,120,0.3);
  animation: rs-richard 4s ease-in-out infinite;
}
.scn-richard-self-congratulation .crown-glint {
  position: absolute; bottom: 78%; left: 50%; width: 14px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a050 0%, #806030 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 16px 6px #806030, 0 0 30px 12px rgba(128,96,48,0.4);
  animation: rs-crown 3s ease-in-out infinite alternate;
}
.scn-richard-self-congratulation .throne {
  position: absolute; bottom: 28%; left: 44%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1022 0%, #0e0812 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}
.scn-richard-self-congratulation .spotlight {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 60%;
  background: radial-gradient(ellipse, rgba(150,130,180,0.15) 0%, transparent 70%);
  animation: rs-spot 8s ease-in-out infinite alternate;
}
@keyframes rs-bg {
  0% { background-position: 0 0; }
  100% { background-position: 200px 200px; }
}
@keyframes rs-richard {
  0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
}
@keyframes rs-crown {
  0% { transform: translateX(-50%) translateY(0); opacity: 0.6; box-shadow: 0 0 10px 3px #604020; }
  50% { transform: translateX(-50%) translateY(-2px); opacity: 0.9; box-shadow: 0 0 24px 8px #c0a050; }
  100% { transform: translateX(-50%) translateY(1px); opacity: 0.7; box-shadow: 0 0 14px 5px #806030; }
}
@keyframes rs-spot {
  0% { opacity: 0.3; transform: scaleY(1); }
  100% { opacity: 0.6; transform: scaleY(1.1); }
}

.scn-richard-quarrels-elizabeth {
  background: radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 60%),
              linear-gradient(180deg, #12101a 0%, #1a1824 40%, #0e0c16 100%);
}
.scn-richard-quarrels-elizabeth .bg-tense {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(40,30,50,0.1) 0px, transparent 8px);
  animation: qe-flicker 0.2s steps(2) infinite;
}
.scn-richard-quarrels-elizabeth .wall-tense {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1624 0%, #12101a 100%);
}
.scn-richard-quarrels-elizabeth .floor-tense {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0e0c16 0%, #080610 100%);
}
.scn-richard-quarrels-elizabeth .richard-profile {
  position: absolute; bottom: 30%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #22182e 0%, #100a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(8deg);
  animation: qe-richard 0.5s ease-in-out infinite alternate;
}
.scn-richard-quarrels-elizabeth .elizabeth-profile {
  position: absolute; bottom: 30%; right: 40%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2a2038 0%, #181024 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-6deg);
  animation: qe-elizabeth 0.5s ease-in-out infinite alternate;
}
.scn-richard-quarrels-elizabeth .table {
  position: absolute; bottom: 24%; left: 40%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0e1e 100%);
  border-radius: 4% 4% 10% 10%;
}
.scn-richard-quarrels-elizabeth .candle-flicker {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c08040 0%, #604020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #c07030, 0 0 40px 12px rgba(192,112,48,0.4);
  animation: qe-candle 0.1s steps(3) infinite;
}
.scn-richard-quarrels-elizabeth .hand-shadow {
  position: absolute; bottom: 32%; left: 44%; width: 16px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform: rotate(-20deg);
  animation: qe-hand 0.8s ease-in-out infinite alternate;
}
@keyframes qe-flicker {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes qe-richard {
  0% { transform: rotate(7deg) translateX(0); }
  100% { transform: rotate(10deg) translateX(3px); }
}
@keyframes qe-elizabeth {
  0% { transform: rotate(-5deg) translateX(0); }
  100% { transform: rotate(-8deg) translateX(-3px); }
}
@keyframes qe-candle {
  0% { box-shadow: 0 0 18px 5px #b06030, 0 0 35px 10px rgba(176,96,48,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 24px 8px #d08040, 0 0 50px 15px rgba(208,128,64,0.6); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px #a05020, 0 0 30px 8px rgba(160,80,32,0.35); opacity: 0.7; }
}
@keyframes qe-hand {
  0% { transform: rotate(-15deg) scale(1); opacity: 0.4; }
  100% { transform: rotate(-25deg) scale(1.1); opacity: 0.7; }
}

.scn-margaret-prophecies-doom {
  background: radial-gradient(ellipse at 50% 30%, #2a0a20 0%, transparent 60%),
              linear-gradient(180deg, #0a0410 0%, #140a1a 40%, #06020a 100%);
}
.scn-margaret-prophecies-doom .bg-doom {
  position: absolute; inset: 0;
  background: repeating-radial-gradient(circle at 50% 50%, rgba(40,10,30,0.15) 0px, transparent 20px);
  animation: pd-pulse 6s ease-in-out infinite;
}
.scn-margaret-prophecies-doom .wall-doom {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #120a1a 0%, #0a0610 100%);
}
.scn-margaret-prophecies-doom .floor-doom {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #06020a 0%, #020104 100%);
}
.scn-margaret-prophecies-doom .margaret-silhouette {
  position: absolute; bottom: 30%; left: 50%; width: 26px; height: 58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a1e 0%, #0a0210 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(80,20,60,0.4);
  animation: pd-margaret 5s ease-in-out infinite;
}
.scn-margaret-prophecies-doom .edward-silhouette {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #12081a 0%, #08040e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pd-silhouette 7s ease-in-out infinite alternate;
}
.scn-margaret-prophecies-doom .prince-silhouette {
  position: absolute; bottom: 26%; left: 22%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #10061a 0%, #06020e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pd-silhouette 7s ease-in-out infinite alternate-reverse;
}
.scn-margaret-prophecies-doom .elizabeth-silhouette {
  position: absolute; bottom: 28%; right: 30%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #140a1a 0%, #08040e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pd-silhouette 9s ease-in-out infinite alternate;
}
.scn-margaret-prophecies-doom .curse-aura {
  position: absolute; bottom: 40%; left: 44%; width: 12%; height: 24%;
  background: radial-gradient(ellipse, rgba(100,30,80,0.3) 0%, transparent 70%);
  animation: pd-aura 4s ease-in-out infinite alternate;
}
.scn-margaret-prophecies-doom .fate-lines {
  position: absolute; top: 12%; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(60,10,40,0.05) 8px, rgba(60,10,40,0.05) 10px);
  animation: pd-lines 20s linear infinite;
}
@keyframes pd-pulse {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes pd-margaret {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}
@keyframes pd-silhouette {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  100% { transform: translateY(-2px) scale(1.02); opacity: 0.6; }
}
@keyframes pd-aura {
  0% { opacity: 0.2; transform: scale(1); }
  100% { opacity: 0.5; transform: scale(1.3); }
}
@keyframes pd-lines {
  0% { background-position: 0 0; }
  100% { background-position: 200px 200px; }
}
/* end per-scene blocks */
