/* 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-gloucester-arrested-treason {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89878 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-gloucester-arrested-treason .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 50%, #b8a888 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: ga-hall 8s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #b8a888 0%, #988878 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-gloucester-arrested-treason .throne {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-gloucester-arrested-treason .figure-queen {
  position: absolute; bottom: 12%; left: 42%; width: 22px; height: 60px;
  background: radial-gradient(circle at 50% 20%, #c8a888 0%, #a87858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-queen 4s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .figure-cardinal {
  position: absolute; bottom: 10%; left: 60%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #a84838 0%, #682828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ga-cardinal 4.5s ease-in-out infinite 0.5s;
}
.scn-gloucester-arrested-treason .figure-gloucester-arrested {
  position: absolute; bottom: 5%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ga-gloucester 3s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .chains {
  position: absolute; bottom: 8%; left: 33%; width: 15px; height: 30px;
  border: 2px solid #6a6a6a;
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 0 1px #888;
  animation: ga-chains 2s ease-in-out infinite alternate;
}
.scn-gloucester-arrested-treason .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: ga-beam 5s ease-in-out infinite;
}
@keyframes ga-hall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ga-queen { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1px) rotate(2deg) } 70% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ga-cardinal { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ga-gloucester { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ga-chains { 0% { transform: rotate(0deg) } 100% { transform: rotate(20deg) } }
@keyframes ga-beam { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }

.scn-york-engages-clifford { background: linear-gradient(180deg, #f9e9c3 0%, #c8a882 40%, #a0785e 100%), radial-gradient(ellipse at 50% 0%, #f9e9c3 0%, transparent 60%); }
.scn-york-engages-clifford .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe8b0 0%, #d4b98a 100%); animation: yec-sky 10s ease-in-out infinite alternate; }
.scn-york-engages-clifford .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #9a7a5e 0%, #6a4e3a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-york-engages-clifford .figure-york { position:absolute; bottom:24%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yec-figure-york 5s ease-in-out infinite; }
.scn-york-engages-clifford .figure-clifford { position:absolute; bottom:24%; right:30%; width:28px; height:62px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yec-figure-clifford 5s ease-in-out infinite reverse; }
.scn-york-engages-clifford .sword-york { position:absolute; bottom:34%; left:38%; width:4px; height:36px; background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%); border-radius: 2px; transform-origin: bottom center; transform: rotate(30deg); animation: yec-sword 2s ease-in-out infinite; }
.scn-york-engages-clifford .dust { position:absolute; bottom:18%; left:20%; right:20%; height:8px; background: radial-gradient(ellipse, rgba(180,160,120,.4) 0%, transparent 80%); filter: blur(4px); animation: yec-dust 4s ease-in-out infinite; }
@keyframes yec-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes yec-figure-york { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes yec-figure-clifford { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes yec-sword { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(25deg) } }
@keyframes yec-dust { 0% { opacity:0.2; transform: scaleY(1) } 50% { opacity:0.6; transform: scaleY(1.5) } 100% { opacity:0.2; transform: scaleY(1) } }

.scn-young-clifford-laments { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%); }
.scn-young-clifford-laments .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: ycl-sky 12s ease-in-out infinite alternate; }
.scn-young-clifford-laments .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-young-clifford-laments .body-left { position:absolute; bottom:14%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-15deg); animation: ycl-body 8s ease-in-out infinite; }
.scn-young-clifford-laments .body-right { position:absolute; bottom:12%; right:25%; width:26px; height:18px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: ycl-body 8s ease-in-out infinite reverse; }
.scn-young-clifford-laments .flag-broken { position:absolute; top:18%; left:40%; width:3px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform-origin: bottom center; transform: rotate(20deg); animation: ycl-flag 6s ease-in-out infinite; }
.scn-young-clifford-laments .figure-clifford { position:absolute; bottom:20%; left:50%; width:28px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: ycl-figure 4s ease-in-out infinite; }
@keyframes ycl-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ycl-body { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } }
@keyframes ycl-flag { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(10deg) } }
@keyframes ycl-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }

.scn-young-clifford-carries-father { background: linear-gradient(180deg, #c8a882 0%, #a0785e 40%, #6a4e3a 100%), radial-gradient(ellipse at 50% 0%, #e8c8a0 0%, transparent 60%); }
.scn-young-clifford-carries-father .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f0d8b0 0%, #d4b98a 100%); animation: ycf-sky 14s ease-in-out infinite alternate; }
.scn-young-clifford-carries-father .road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a6a4e 0%, #5a3e2a 100%); clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 100%); }
.scn-young-clifford-carries-father .clifford { position:absolute; bottom:22%; left:40%; width:28px; height:66px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ycf-clifford 5s ease-in-out infinite; }
.scn-young-clifford-carries-father .father { position:absolute; bottom:34%; left:42%; width:30px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: ycf-father 5s ease-in-out infinite; }
.scn-young-clifford-carries-father .cloak { position:absolute; bottom:32%; left:39%; width:40px; height:20px; background: linear-gradient(180deg, rgba(60,40,20,.5) 0%, rgba(30,20,10,.3) 100%); border-radius: 50%; filter: blur(4px); animation: ycf-cloak 8s ease-in-out infinite; }
@keyframes ycf-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ycf-clifford { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes ycf-father { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } }
@keyframes ycf-cloak { 0%,100% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } }

.scn-item-alehouse-sign { background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 70%); }
.scn-item-alehouse-sign .wall { position:absolute; right:0; top:0; bottom:0; width:60%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); clip-path: polygon(0% 10%, 100% 0%, 100% 100%, 0% 100%); }
.scn-item-alehouse-sign .sign { position:absolute; top:20%; left:50%; width:50px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border: 3px solid #4a3a1a; border-radius: 10% 10% 5% 5%; transform: rotate(-5deg); animation: iah-sign 3s ease-in-out infinite; }
.scn-item-alehouse-sign .body-dead { position:absolute; bottom:12%; left:45%; width:32px; height:22px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(20deg); animation: iah-body 6s ease-in-out infinite; }
.scn-item-alehouse-sign .sword { position:absolute; bottom:30%; left:52%; width:3px; height:40px; background: linear-gradient(180deg, #b0a090 0%, #706050 100%); border-radius: 2px; transform: rotate(-60deg); transform-origin: bottom center; animation: iah-sword 4s ease-in-out infinite; }
.scn-item-alehouse-sign .chain { position:absolute; top:15%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 3px; animation: iah-chain 2s ease-in-out infinite; }
@keyframes iah-sign { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } }
@keyframes iah-body { 0%,100% { opacity:.8; transform: rotate(20deg) translateY(0) } 50% { opacity:1; transform: rotate(15deg) translateY(-2px) } }
@keyframes iah-sword { 0%,100% { transform: rotate(-60deg) } 50% { transform: rotate(-55deg) } }
@keyframes iah-chain { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }

/* one block per scene id. Append to style.css. */
.scn-salisbury-thanks-richard {
  background: linear-gradient(180deg, #ffd8a0 0%, #ffb870 30%, #c07050 70%, #504030 100%),
              radial-gradient(ellipse at 50% 20%, #ffe080 0%, transparent 60%);
}
.scn-salisbury-thanks-richard .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffd8a0 0%, #ffc080 40%, transparent 100%);
  animation: str-sky 8s ease-in-out infinite alternate;
}
.scn-salisbury-thanks-richard .sun {
  position:absolute; top:12%; left:60%;
  width:60px; height:60px;
  background: radial-gradient(circle, #fff0c0 0%, #ffe080 40%, #ffb000 80%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.5), 0 0 120px 40px rgba(255,180,50,0.3);
  animation: str-sun 6s ease-in-out infinite alternate;
}
.scn-salisbury-thanks-richard .hills {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: str-hills 12s ease-in-out infinite alternate;
}
.scn-salisbury-thanks-richard .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-salisbury-thanks-richard .figure {
  position:absolute; bottom:20%; left:35%;
  width:30px; height:60px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-figure 4s ease-in-out infinite;
}
.scn-salisbury-thanks-richard .sword {
  position:absolute; bottom:30%; left:43%;
  width:4px; height:36px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%);
  border-radius: 2px;
  transform: rotate(-30deg) translate(-10px, 5px);
  box-shadow: 0 0 6px 2px rgba(192,160,96,0.6);
  animation: str-sword 3s ease-in-out infinite alternate;
}
.scn-salisbury-thanks-richard .banner {
  position:absolute; bottom:45%; left:30%;
  width:18px; height:24px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 50% 50% 0;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: str-banner 5s ease-in-out infinite;
}
.scn-salisbury-thanks-richard .dust {
  position:absolute; bottom:22%; left:50%;
  width:40px; height:12px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: str-dust 4s ease-in-out infinite alternate;
}
@keyframes str-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes str-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px rgba(255,200,80,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255,200,80,0.6); } 100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,200,80,0.5); } }
@keyframes str-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes str-figure { 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); } }
@keyframes str-sword { 0% { transform: rotate(-35deg) translate(-10px, 5px); } 100% { transform: rotate(-25deg) translate(-10px, 5px); } }
@keyframes str-banner { 0% { transform: rotate(5deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(5deg); } }
@keyframes str-dust { 0% { transform: translateX(0) scale(1); opacity:0.5 } 50% { transform: translateX(10px) scale(1.3); opacity:0.8 } 100% { transform: translateX(0) scale(1); opacity:0.5 } }

.scn-plan-pursuit {
  background: linear-gradient(180deg, #d0b080 0%, #b09060 30%, #806040 70%, #403020 100%),
              radial-gradient(ellipse at 60% 30%, #ffe080 0%, transparent 50%);
}
.scn-plan-pursuit .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #d0b080 0%, #c0a070 40%, transparent 100%);
  animation: pp-sky 7s ease-in-out infinite alternate;
}
.scn-plan-pursuit .sun {
  position:absolute; top:10%; left:50%;
  width:50px; height:50px;
  background: radial-gradient(circle, #fff0c0 0%, #ffd060 40%, #ffb000 80%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 50px 20px rgba(255,200,80,0.5), 0 0 100px 40px rgba(255,180,50,0.3);
  animation: pp-sun 5s ease-in-out infinite alternate;
}
.scn-plan-pursuit .hills {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pp-hills 14s ease-in-out infinite alternate;
}
.scn-plan-pursuit .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e18 100%);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-plan-pursuit .rider {
  position:absolute; bottom:18%; left:30%;
  width:40px; height:50px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pp-rider 2.4s linear infinite;
}
.scn-plan-pursuit .horse {
  position:absolute; bottom:10%; left:25%;
  width:80px; height:40px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a10 60%, #1a0e08 100%);
  border-radius: 50% 50% 20% 20% / 60% 40% 20% 20%;
  transform-origin: center bottom;
  animation: pp-horse 2.4s linear infinite;
}
.scn-plan-pursuit .spear {
  position:absolute; bottom:40%; left:33%;
  width:4px; height:45px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%);
  border-radius: 2px;
  transform: rotate(15deg) translate(-5px, 10px);
  box-shadow: 0 0 4px 1px rgba(192,160,96,0.5);
  animation: pp-spear 2.4s linear infinite;
}
.scn-plan-pursuit .dust-cloud {
  position:absolute; bottom:5%; left:15%;
  width:100px; height:30px;
  background: radial-gradient(ellipse, rgba(160,120,80,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: pp-dust 2s ease-in-out infinite alternate;
}
@keyframes pp-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pp-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 10px rgba(255,200,80,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 60px 25px rgba(255,200,80,0.6); } 100% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(255,200,80,0.5); } }
@keyframes pp-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pp-rider { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pp-horse { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-2px) scaleX(1.02); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes pp-spear { 0% { transform: rotate(12deg) translate(-5px, 10px); } 50% { transform: rotate(18deg) translate(-5px, 10px); } 100% { transform: rotate(12deg) translate(-5px, 10px); } }
@keyframes pp-dust { 0% { transform: translateX(0) scale(1); opacity:0.4 } 50% { transform: translateX(15px) scale(1.5); opacity:0.7 } 100% { transform: translateX(0) scale(1); opacity:0.4 } }

/* palace-petitioners */
.scn-palace-petitioners { background: linear-gradient(180deg, #f5e6d0 0%, #d3b895 40%, #a67c52 100%), radial-gradient(ellipse at 60% 80%, #c9a87c 0%, transparent 60%); }
.scn-palace-petitioners .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b0926a 0%, #7a5d3b 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-palace-petitioners .wall  { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #e8d5b8 0%, #c9b08a 100%); }
.scn-palace-petitioners .throne { position:absolute; bottom:30%; left:58%; width:60px; height:70px; background: linear-gradient(180deg, #c8863a 0%, #9e6728 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.4); transform: translateX(-50%); }
.scn-palace-petitioners .protector { position:absolute; bottom:25%; left:58%; width:36px; height:60px; background: linear-gradient(180deg, #6b4e3a 0%, #3f2c1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pp1-bob 3s ease-in-out infinite; }
.scn-palace-petitioners .petitioner-a { position:absolute; bottom:28%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #5e7a5e 0%, #2f462f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pp1-bow 5s ease-in-out infinite; }
.scn-palace-petitioners .petitioner-b { position:absolute; bottom:30%; left:35%; width:22px; height:46px; background: linear-gradient(180deg, #6b5a4a 0%, #3f2f20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pp1-bow 5s ease-in-out infinite 2s; }
.scn-palace-petitioners .candle { position:absolute; bottom:32%; left:50%; width:6px; height:14px; background: linear-gradient(180deg, #f0d080 0%, #c09040 100%); border-radius: 4px; box-shadow: 0 0 12px 3px #f0c060; animation: pp1-flicker 2s ease-in-out infinite; }
.scn-palace-petitioners .banner { position:absolute; top:10%; left:15%; width:40px; height:60px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pp1-sway 6s ease-in-out infinite; }
@keyframes pp1-bob { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes pp1-bow { 0%,100% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(0) scaleY(0.9) } 60% { transform: translateY(-1px) scaleY(1) } }
@keyframes pp1-flicker { 0%,100% { box-shadow: 0 0 10px 2px #f0c060; opacity:0.9 } 30% { box-shadow: 0 0 16px 5px #f0d080; opacity:1 } 70% { box-shadow: 0 0 8px 1px #c09040; opacity:0.8 } }
@keyframes pp1-sway { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }

/* palace-accusation */
.scn-palace-accusation { background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 50%, #8a6e56 100%), radial-gradient(ellipse at 30% 50%, #6a5240 0%, transparent 50%); }
.scn-palace-accusation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5d3b 0%, #4a3420 100%); border-radius: 10% 10% 0 0; }
.scn-palace-accusation .wall  { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #c4b49c 0%, #a69078 100%); }
.scn-palace-accusation .accuser { position:absolute; bottom:25%; left:30%; width:30px; height:55px; background: linear-gradient(180deg, #4a3640 0%, #241c26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: pa1-point 4s ease-in-out infinite; }
.scn-palace-accusation .accused { position:absolute; bottom:26%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pa1-tremble 2s ease-in-out infinite; }
.scn-palace-accusation .guard { position:absolute; bottom:22%; left:70%; width:26px; height:52px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pa1-stand 6s linear infinite; }
.scn-palace-accusation .desk { position:absolute; bottom:20%; left:46%; width:50px; height:10px; background: linear-gradient(90deg, #6a5a4a 0%, #9a8a7a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-palace-accusation .chains { position:absolute; bottom:38%; left:52%; width:16px; height:16px; border: 2px solid #8a8a8a; border-radius: 50%; box-shadow: 0 0 4px #aaa; animation: pa1-chain-sway 5s ease-in-out infinite; }
@keyframes pa1-point { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes pa1-tremble { 0%,100% { transform: translateX(0) } 20% { transform: translateX(1px) } 40% { transform: translateX(-1px) } 60% { transform: translateX(0.5px) } 80% { transform: translateX(-0.5px) } }
@keyframes pa1-stand { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes pa1-chain-sway { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } }

/* palace-queen-complaint */
.scn-palace-queen-complaint { background: linear-gradient(180deg, #b8c4d0 0%, #8898a8 60%, #5a6a7a 100%), radial-gradient(ellipse at 50% 30%, #d0d8e0 0%, transparent 60%); }
.scn-palace-queen-complaint .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%); border-radius: 15% 15% 0 0; }
.scn-palace-queen-complaint .wall  { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #a0b0c0 0%, #8090a0 100%); }
.scn-palace-queen-complaint .window { position:absolute; top:8%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #e0e8f0 0%, #a0b8d0 100%); border: 4px solid #5a6a7a; border-radius: 8px; box-shadow: inset 0 0 20px #d0e0f0; animation: qc1-light 10s ease-in-out infinite alternate; }
.scn-palace-queen-complaint .queen { position:absolute; bottom:18%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #7a6a8a 0%, #3a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qc1-sway 8s ease-in-out infinite; }
.scn-palace-queen-complaint .crown { position:absolute; bottom:72%; left:40%; width:24px; height:12px; background: linear-gradient(180deg, #d0b060 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: qc1-sparkle 3s ease-in-out infinite; }
.scn-palace-queen-complaint .cape { position:absolute; bottom:10%; left:34%; width:60px; height:40px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: scaleX(1.2); animation: qc1-drift 12s ease-in-out infinite; }
.scn-palace-queen-complaint .shadow { position:absolute; bottom:8%; left:35%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: qc1-shadow-pulse 6s ease-in-out infinite; }
@keyframes qc1-light { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes qc1-sway { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes qc1-sparkle { 0%,100% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } }
@keyframes qc1-drift { 0%,100% { transform: scaleX(1.2) translateX(0) } 50% { transform: scaleX(1.2) translateX(4px) } }
@keyframes qc1-shadow-pulse { 0%,100% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.1) } }

/* palace-regentship-dispute */
.scn-palace-regentship-dispute { background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 50%, #a09880 100%), radial-gradient(ellipse at 50% 70%, #c0b8a0 0%, transparent 60%); }
.scn-palace-regentship-dispute .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a08864 0%, #70502c 100%); border-radius: 30% 30% 0 0; }
.scn-palace-regentship-dispute .wall  { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a0 100%); }
.scn-palace-regentship-dispute .table { position:absolute; bottom:15%; left:20%; width:60%; height:14px; background: linear-gradient(90deg, #8a7a5a 0%, #b8a88b 100%); border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.3); }
.scn-palace-regentship-dispute .figure-york { position:absolute; bottom:22%; left:28%; width:24px; height:48px; background: linear-gradient(180deg, #5a6a5a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rd1-speak 6s ease-in-out infinite; }
.scn-palace-regentship-dispute .figure-somerset { position:absolute; bottom:24%; left:48%; width:26px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rd1-listen 6s ease-in-out infinite 1s; }
.scn-palace-regentship-dispute .figure-king { position:absolute; bottom:20%; left:68%; width:28px; height:55px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rd1-nod 4s ease-in-out infinite; }
.scn-palace-regentship-dispute .goblet { position:absolute; bottom:14%; left:50%; width:12px; height:18px; background: linear-gradient(180deg, #c8a860 0%, #987840 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 0 4px #b89848; animation: rd1-glow 8s ease-in-out infinite; }
@keyframes rd1-speak { 0%,100% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-1px) rotate(3deg) } 60% { transform: translateY(0) rotate(0deg) } }
@keyframes rd1-listen { 0%,100% { transform: translateY(0) scaleY(1) } 40% { transform: translateY(0) scaleY(0.95) } }
@keyframes rd1-nod { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } }
@keyframes rd1-glow { 0%,100% { box-shadow: 0 0 4px #b89848; opacity:0.8 } 50% { box-shadow: 0 0 10px 3px #e8c878; opacity:1 } }

.scn-york-confronts-queen {
  background: linear-gradient(180deg, #d4b87a 0%, #c4a46a 30%, #9a7a4a 60%, #5a3a1a 100%), radial-gradient(ellipse at 50% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-york-confronts-queen .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8965a 0%, #d4b87a 30%, #c4a46a 70%, #b8965a 100%);
  animation: ycq-shimmer 8s ease-in-out infinite;
}
.scn-york-confronts-queen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  border-radius: 20% 20% 0 0;
}
.scn-york-confronts-queen .column-left {
  position: absolute; left: 10%; bottom: 20%; width: 20px; height: 80%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 8px 0 12px rgba(0,0,0,0.3);
  animation: ycq-column 6s ease-in-out infinite;
}
.scn-york-confronts-queen .column-right {
  position: absolute; right: 10%; bottom: 20%; width: 20px; height: 80%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: -8px 0 12px rgba(0,0,0,0.3);
  animation: ycq-column 6s ease-in-out infinite alternate;
}
.scn-york-confronts-queen .throne {
  position: absolute; bottom: 28%; right: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c4a040 0%, #8a6a20 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(2deg);
}
.scn-york-confronts-queen .figure-york {
  position: absolute; bottom: 24%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ycq-york 4s ease-in-out infinite;
}
.scn-york-confronts-queen .figure-queen {
  position: absolute; bottom: 28%; right: 30%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ycq-queen 5s ease-in-out infinite;
}
.scn-york-confronts-queen .light-shaft {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: ycq-shaft 10s ease-in-out infinite alternate;
}
@keyframes ycq-shimmer { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ycq-column { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ycq-york { 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(-2deg); } }
@keyframes ycq-queen { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02) rotate(1deg); } 100% { transform: translateY(0) scale(1); } }
@keyframes ycq-shaft { 0% { opacity: 0.3; transform: rotate(-2deg); } 50% { opacity: 0.7; transform: rotate(2deg); } 100% { opacity: 0.4; transform: rotate(0); } }

.scn-arrest-of-york {
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 30%, #2a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #b09870 0%, transparent 60%);
}
.scn-arrest-of-york .bg-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-arrest-of-york .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(135deg, #3a2a1a 25%, #5a4a3a 25%, #5a4a3a 50%, #3a2a1a 50%, #3a2a1a 75%, #5a4a3a 75%);
  background-size: 40px 40px;
  animation: aoy-floor 12s linear infinite;
}
.scn-arrest-of-york .door-frame {
  position: absolute; bottom: 30%; left: 15%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-arrest-of-york .figure-york-arrest {
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 64px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: aoy-york 3s ease-in-out infinite;
}
.scn-arrest-of-york .guard-left {
  position: absolute; bottom: 26%; left: 30%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  animation: aoy-guard-left 4s ease-in-out infinite;
}
.scn-arrest-of-york .guard-right {
  position: absolute; bottom: 26%; right: 35%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: aoy-guard-right 4s ease-in-out infinite;
}
.scn-arrest-of-york .chain {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 6px;
  background: repeating-linear-gradient(90deg, #8a7020 0px, #8a7020 4px, transparent 4px, transparent 8px);
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: aoy-chain 2s ease-in-out infinite;
}
.scn-arrest-of-york .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: aoy-shadow 4s ease-in-out infinite alternate;
}
@keyframes aoy-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes aoy-york { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes aoy-guard-left { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes aoy-guard-right { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes aoy-chain { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes aoy-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.2); } }

.scn-clifford-arrives {
  background: linear-gradient(180deg, #b8965a 0%, #9a7a4a 40%, #7a5a2a 70%, #4a2a0a 100%), radial-gradient(ellipse at 30% 30%, #ffe8b0 0%, transparent 50%);
}
.scn-clifford-arrives .tent-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
}
.scn-clifford-arrives .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
}
.scn-clifford-arrives .tent-flap-left {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 70%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%);
  transform: skewY(10deg);
  transform-origin: top left;
  animation: ca-flap-left 5s ease-in-out infinite;
}
.scn-clifford-arrives .tent-flap-right {
  position: absolute; bottom: 30%; right: 35%; width: 30px; height: 70%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%);
  transform: skewY(-10deg);
  transform-origin: top right;
  animation: ca-flap-right 5s ease-in-out infinite;
}
.scn-clifford-arrives .figure-clifford {
  position: absolute; bottom: 26%; left: 20%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ca-clifford 4s ease-in-out infinite;
}
.scn-clifford-arrives .figure-young-clifford {
  position: absolute; bottom: 24%; left: 34%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ca-young 3s ease-in-out infinite;
}
.scn-clifford-arrives .sword {
  position: absolute; bottom: 34%; left: 24%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0a060 0%, #8a7020 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: ca-sword 2s ease-in-out infinite alternate;
}
@keyframes ca-flap-left { 0% { transform: skewY(10deg) translateX(0); } 50% { transform: skewY(14deg) translateX(-2px); } 100% { transform: skewY(10deg) translateX(0); } }
@keyframes ca-flap-right { 0% { transform: skewY(-10deg) translateX(0); } 50% { transform: skewY(-14deg) translateX(2px); } 100% { transform: skewY(-10deg) translateX(0); } }
@keyframes ca-clifford { 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(-2deg); } }
@keyframes ca-young { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ca-sword { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.05); } 100% { transform: rotate(30deg) scaleY(1); } }

.scn-warwick-enters {
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 40%, #2a1a0a 80%, #0a0500 100%), radial-gradient(ellipse at 60% 20%, #c0a060 0%, transparent 60%);
}
.scn-warwick-enters .hall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
}
.scn-warwick-enters .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-warwick-enters .banner-pole {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 70%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  animation: we-pole 10s ease-in-out infinite;
}
.scn-warwick-enters .banner-cloth {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a06030 0%, #6a3a1a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: top center;
  animation: we-banner 6s ease-in-out infinite;
}
.scn-warwick-enters .figure-warwick {
  position: absolute; bottom: 26%; left: 30%; width: 30px; height: 66px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: we-warwick 4s ease-in-out infinite;
}
.scn-warwick-enters .figure-salisbury {
  position: absolute; bottom: 24%; left: 44%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: we-salisbury 5s ease-in-out infinite;
}
.scn-warwick-enters .bear-shadow {
  position: absolute; bottom: 10%; left: 55%; width: 50px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: we-bear 8s ease-in-out infinite alternate;
}
@keyframes we-pole { 0% { transform: translateX(-50%) skewY(0); } 50% { transform: translateX(-50%) skewY(2deg); } 100% { transform: translateX(-50%) skewY(0); } }
@keyframes we-banner { 0% { transform: translateX(-50%) rotate(5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(8deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(5deg) scaleY(1); } }
@keyframes we-warwick { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes we-salisbury { 0% { transform: translateY(0) scale(1) rotate(0); } 50% { transform: translateY(-2px) scale(1.02) rotate(2deg); } 100% { transform: translateY(0) scale(1) rotate(0); } }
@keyframes we-bear { 0% { opacity: 0.2; transform: scaleX(1); } 100% { opacity: 0.5; transform: scaleX(1.3); } }

.scn-palace-strike { background: linear-gradient(180deg, #d4c9a8 0%, #c2b38a 40%, #a8956e 100%), radial-gradient(ellipse at 50% 0%, #e8dcc0 0%, transparent 60%); }
.scn-palace-strike .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #b8a882 0%, #9a8765 100%); }
.scn-palace-strike .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6b4f 0%, #5c4f3a 100%); border-radius: 2px 2px 0 0; }
.scn-palace-strike .column-left, .scn-palace-strike .column-right { position:absolute; bottom:30%; width:12%; height:70%; background: linear-gradient(90deg, #c9b48a 0%, #b09870 50%, #c9b48a 100%); box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-palace-strike .column-left { left:10%; }
.scn-palace-strike .column-right { right:10%; }
.scn-palace-strike .window { position:absolute; top:8%; left:30%; width:40%; height:25%; background: radial-gradient(circle at 50% 30%, #f0e4c0 0%, #d4c9a8 70%); border:4px solid #8a7b60; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-palace-strike .figure { position:absolute; bottom:20%; width:50px; height:100px; background: linear-gradient(180deg, #4a3c2a 0%, #2e2418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-palace-strike .figure.duchess { left:30%; transform-origin: bottom center; animation: ps-duchess 2s ease-in-out infinite; }
.scn-palace-strike .figure.maid { right:30%; transform-origin: bottom center; animation: ps-maid 2s ease-in-out infinite; }
.scn-palace-strike .hand-strike { position:absolute; bottom:60%; left:45%; width:30px; height:20px; background: #7a6548; border-radius: 40% 40% 20% 20%; transform-origin: 100% 100%; transform: rotate(-20deg); animation: ps-hand 2s ease-in-out infinite; }
.scn-palace-strike .fan-falling { position:absolute; bottom:65%; left:55%; width:40px; height:30px; background: linear-gradient(135deg, #d4a574 0%, #b8865a 100%); border-radius: 0 60% 60% 0; transform-origin: left center; animation: ps-fan 2s ease-in-out infinite; }
@keyframes ps-duchess { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(-3deg); } 50% { transform: translateY(2px) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes ps-maid { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-10px) rotate(5deg); } }
@keyframes ps-hand { 0%,100% { transform: rotate(-20deg) translate(0,0); } 50% { transform: rotate(10deg) translate(5px,-5px); } }
@keyframes ps-fan { 0%,100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(30deg) translateY(20px); opacity:0.8; } 50% { transform: rotate(60deg) translateY(40px); opacity:0.5; } 75% { transform: rotate(90deg) translateY(60px); opacity:0.2; } }

.scn-palace-regentship-debate { background: linear-gradient(180deg, #e8dcc0 0%, #d4c9a8 50%, #c2b38a 100%), radial-gradient(ellipse at 50% 0%, #f5edd8 0%, transparent 70%); }
.scn-palace-regentship-debate .hall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #d4c9a8 0%, #b8a882 100%); border-radius: 0 0 20% 20%; }
.scn-palace-regentship-debate .throne { position:absolute; bottom:25%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6b3a 0%, #6a4f2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-palace-regentship-debate .arch-left, .scn-palace-regentship-debate .arch-right { position:absolute; bottom:25%; width:30%; height:75%; background: linear-gradient(90deg, #c9b48a 0%, #b09870 100%); border-radius: 0 0 30% 30%; }
.scn-palace-regentship-debate .arch-left { left:5%; }
.scn-palace-regentship-debate .arch-right { right:5%; }
.scn-palace-regentship-debate .figure { position:absolute; bottom:15%; width:45px; height:90px; background: linear-gradient(180deg, #3a2e1e 0%, #241a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-palace-regentship-debate .figure.king { left:40%; transform-origin: bottom center; animation: prd-king 6s ease-in-out infinite; }
.scn-palace-regentship-debate .figure.york { right:35%; transform-origin: bottom center; animation: prd-york 7s ease-in-out infinite; }
.scn-palace-regentship-debate .figure.suffolk { left:20%; bottom:12%; width:40px; height:80px; animation: prd-suffolk 8s ease-in-out infinite; }
.scn-palace-regentship-debate .crown-glow { position:absolute; top:8%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffd700 0%, #b8860b 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.3); animation: prd-crown 4s ease-in-out infinite alternate; }
@keyframes prd-king { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes prd-york { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(1deg); } }
@keyframes prd-suffolk { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes prd-crown { 0% { opacity:0.7; } 100% { opacity:1; box-shadow:0 0 40px 15px rgba(255,215,0,0.5); } }

.scn-palace-combat-ordered { background: linear-gradient(180deg, #a88c6e 0%, #8a7355 50%, #6a5538 100%), radial-gradient(ellipse at 50% 0%, #c4a882 0%, transparent 60%); }
.scn-palace-combat-ordered .stone-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #9a8770 0%, #76634e 100%); border-radius: 0 0 10% 10%; }
.scn-palace-combat-ordered .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:35%; background: repeating-linear-gradient(90deg, #5c4f3a 0px, #5c4f3a 30px, #7a6b4f 30px, #7a6b4f 60px); }
.scn-palace-combat-ordered .torch { position:absolute; bottom:40%; width:8px; height:20px; background: linear-gradient(180deg, #8a6b3a 0%, #5c4f3a 100%); border-radius: 2px; }
.scn-palace-combat-ordered .torch.torch-a { left:20%; animation: pco-torch 1.5s ease-in-out infinite alternate; }
.scn-palace-combat-ordered .torch.torch-b { right:20%; animation: pco-torch 2.1s ease-in-out infinite alternate-reverse; }
.scn-palace-combat-ordered .figure { position:absolute; bottom:15%; width:55px; height:100px; background: linear-gradient(180deg, #2e2418 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-palace-combat-ordered .figure.accuser { left:25%; transform-origin: bottom center; animation: pco-accuser 1.5s ease-in-out infinite; }
.scn-palace-combat-ordered .figure.accused { right:25%; transform-origin: bottom center; animation: pco-accused 1.5s ease-in-out infinite; }
.scn-palace-combat-ordered .sword { position:absolute; bottom:55%; width:4px; height:60px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 2px; transform-origin: bottom center; }
.scn-palace-combat-ordered .sword.accuser-sword { left:38%; transform: rotate(30deg); animation: pco-sword-a 1.5s ease-in-out infinite; }
.scn-palace-combat-ordered .sword.accused-sword { right:38%; transform: rotate(-30deg); animation: pco-sword-b 1.5s ease-in-out infinite; }
.scn-palace-combat-ordered .chains { position:absolute; bottom:10%; left:40%; width:20%; height:5px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 2px; animation: pco-chains 2s ease-in-out infinite; }
@keyframes pco-torch { 0% { opacity:1; transform: scaleY(1); } 100% { opacity:0.8; transform: scaleY(1.3); } }
@keyframes pco-accuser { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(3deg); } }
@keyframes pco-accused { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(-3deg); } }
@keyframes pco-sword-a { 0%,100% { transform: rotate(30deg); } 50% { transform: rotate(25deg); } }
@keyframes pco-sword-b { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg); } }
@keyframes pco-chains { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }

.scn-gloucester-garden-conjuration { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 50%, #2a1a3a 100%), radial-gradient(ellipse at 50% 80%, #2a1a3a 0%, transparent 70%); }
.scn-gloucester-garden-conjuration .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 80%); }
.scn-gloucester-garden-conjuration .garden-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 0 0; }
.scn-gloucester-garden-conjuration .bush-left, .scn-gloucester-garden-conjuration .bush-right { position:absolute; bottom:30%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 0 0; }
.scn-gloucester-garden-conjuration .bush-left { left:5%; }
.scn-gloucester-garden-conjuration .bush-right { right:5%; }
.scn-gloucester-garden-conjuration .circle-magic { position:absolute; bottom:15%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, rgba(100,50,150,0.3) 0%, rgba(50,20,80,0.1) 70%, transparent 100%); border:2px solid #6a3a8a; border-radius:50%; box-shadow: 0 0 40px 20px rgba(100,50,150,0.2); animation: ggc-circle 4s ease-in-out infinite alternate; }
.scn-gloucester-garden-conjuration .figure { position:absolute; bottom:5%; width:45px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-gloucester-garden-conjuration .figure.hume { left:25%; transform-origin: bottom center; animation: ggc-hume 3s ease-in-out infinite; }
.scn-gloucester-garden-conjuration .figure.duchess-gg { right:25%; transform-origin: bottom center; animation: ggc-duchess 3s ease-in-out infinite; }
.scn-gloucester-garden-conjuration .glow-orb { position:absolute; bottom:40%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c080ff 0%, #6030a0 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(100,50,150,0.5); animation: ggc-orb 2s ease-in-out infinite alternate; }
.scn-gloucester-garden-conjuration .sparkles { position:absolute; bottom:35%; left:30%; width:40%; height:20%; background: radial-gradient(circle, #d0a0ff 0%, transparent 70%); filter: blur(2px); animation: ggc-sparkles 5s ease-in-out infinite; }
@keyframes ggc-circle { 0% { transform: translateX(-50%) scale(1); opacity:0.6; } 100% { transform: translateX(-50%) scale(1.05); opacity:0.8; } }
@keyframes ggc-hume { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ggc-duchess { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ggc-orb { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(1.3); } }
@keyframes ggc-sparkles { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }

/* warwick-returns-corps */
.scn-warwick-returns-corps {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #6a3a1a 70%, #8a4a2a 100%),
    radial-gradient(ellipse at 50% 80%, #e08040 0%, transparent 70%);
}
.scn-warwick-returns-corps .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%);
  border-bottom: 4px solid #5a3a2a;
}
.scn-warwick-returns-corps .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-warwick-returns-corps .bed {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-warwick-returns-corps .body {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 20px #1a0a00;
  animation: wrc-body 8s ease-in-out infinite;
}
.scn-warwick-returns-corps .warwick {
  position: absolute; bottom: 30%; left: 15%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wrc-warwick 6s ease-in-out infinite;
}
.scn-warwick-returns-corps .torch {
  position: absolute; top: 40%; right: 15%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #a06030 0%, #402010 100%);
  border-radius: 3px;
}
.scn-warwick-returns-corps .glow {
  position: absolute; top: 30%; right: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  animation: wrc-glow 3s ease-in-out infinite alternate;
}
@keyframes wrc-body {
  0% { box-shadow: inset 0 0 20px #1a0a00; }
  50% { box-shadow: inset 0 0 30px #2a1000, 0 0 10px #5a3010; }
  100% { box-shadow: inset 0 0 20px #1a0a00; }
}
@keyframes wrc-warwick {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes wrc-glow {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* warwick-proofs-murder */
.scn-warwick-proofs-murder {
  background: 
    linear-gradient(180deg, #1a0a05 0%, #3a2010 30%, #5a3018 60%, #7a4020 100%),
    radial-gradient(ellipse at 40% 60%, #d09050 0%, transparent 60%);
}
.scn-warwick-proofs-murder .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 50%, #2a1a0e 100%);
}
.scn-warwick-proofs-murder .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-warwick-proofs-murder .body {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
}
.scn-warwick-proofs-murder .face {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 8%;
  background: radial-gradient(circle at 40% 30%, #b08050 0%, #6a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 10px #3a1a0a, 0 0 6px #a06030;
  animation: wpm-face 10s ease-in-out infinite;
}
.scn-warwick-proofs-murder .warwick {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wpm-warwick 5s ease-in-out infinite;
}
.scn-warwick-proofs-murder .hand {
  position: absolute; bottom: 40%; left: 30%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(20deg);
  animation: wpm-hand 4s ease-in-out infinite alternate;
}
.scn-warwick-proofs-murder .blood {
  position: absolute; bottom: 22%; left: 45%; width: 6%; height: 4%;
  background: radial-gradient(circle, #5e1a1d 0%, #8a2a2a 50%, transparent 70%);
  border-radius: 50%;
  animation: wpm-blood 6s ease-in-out infinite;
}
@keyframes wpm-face {
  0% { box-shadow: inset 0 0 10px #3a1a0a, 0 0 6px #a06030; }
  50% { box-shadow: inset 0 0 20px #5a2a10, 0 0 15px #c08040; }
  100% { box-shadow: inset 0 0 10px #3a1a0a, 0 0 6px #a06030; }
}
@keyframes wpm-warwick {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg) translateX(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes wpm-hand {
  0% { transform: rotate(15deg) scaleY(1); }
  100% { transform: rotate(25deg) scaleY(1.2); }
}
@keyframes wpm-blood {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.9; }
}

/* queen-suffolk-defiance-warwick */
.scn-queen-suffolk-defiance-warwick {
  background: 
    linear-gradient(180deg, #1a0a05 0%, #3a2010 30%, #5a3018 60%, #7a4020 100%),
    radial-gradient(ellipse at 50% 40%, #d09050 0%, transparent 60%);
}
.scn-queen-suffolk-defiance-warwick .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 30%, #2a1a0e 100%);
}
.scn-queen-suffolk-defiance-warwick .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
}
.scn-queen-suffolk-defiance-warwick .warwick {
  position: absolute; bottom: 20%; left: 10%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qsd-warwick 5s ease-in-out infinite;
}
.scn-queen-suffolk-defiance-warwick .queen {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qsd-queen 4s ease-in-out infinite;
}
.scn-queen-suffolk-defiance-warwick .suffolk {
  position: absolute; bottom: 20%; right: 10%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qsd-suffolk 6s ease-in-out infinite;
}
.scn-queen-suffolk-defiance-warwick .crown {
  position: absolute; top: 20%; left: 43%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px #c08040;
  animation: qsd-crown 3s ease-in-out infinite alternate;
}
@keyframes qsd-warwick {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(0deg); }
}
@keyframes qsd-queen {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes qsd-suffolk {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg) translateX(-4px); }
  100% { transform: rotate(0deg); }
}
@keyframes qsd-crown {
  0% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}

/* warwick-challenges-suffolk */
.scn-warwick-challenges-suffolk {
  background: 
    linear-gradient(180deg, #1a0a05 0%, #3a2010 30%, #5a3018 60%, #7a4020 100%),
    radial-gradient(ellipse at 40% 50%, #d09050 0%, transparent 70%);
}
.scn-warwick-challenges-suffolk .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #3a2a1a 50%, #2a1a0e 100%);
}
.scn-warwick-challenges-suffolk .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
}
.scn-warwick-challenges-suffolk .warwick {
  position: absolute; bottom: 25%; left: 15%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcs-warwick 5s ease-in-out infinite;
}
.scn-warwick-challenges-suffolk .suffolk {
  position: absolute; bottom: 25%; right: 20%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcs-suffolk 6s ease-in-out infinite;
}
.scn-warwick-challenges-suffolk .sword {
  position: absolute; bottom: 40%; left: 25%; width: 3%; height: 45%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: wcs-sword 3s ease-in-out infinite alternate;
  box-shadow: 0 0 8px #d0d0d0;
}
.scn-warwick-challenges-suffolk .torch-left {
  position: absolute; top: 30%; left: 5%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #a06030 0%, #402010 100%);
  border-radius: 3px;
}
.scn-warwick-challenges-suffolk .torch-right {
  position: absolute; top: 30%; right: 5%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #a06030 0%, #402010 100%);
  border-radius: 3px;
}
.scn-warwick-challenges-suffolk .glow {
  position: absolute; top: 20%; left: 2%; right: 2%; height: 60%;
  background: radial-gradient(ellipse at 20% 50%, rgba(200,130,50,0.3) 0%, transparent 60%);
  animation: wcs-glow 4s ease-in-out infinite alternate;
}
@keyframes wcs-warwick {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(4px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes wcs-suffolk {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-4px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes wcs-sword {
  0% { transform: rotate(-35deg) scale(1); }
  100% { transform: rotate(-25deg) scale(1.1); }
}
@keyframes wcs-glow {
  0% { opacity: 0.6; }
  100% { opacity: 0.9; }
}

.scn-gloucester-led-away {
  background:
    linear-gradient(180deg, #d4b896 0%, #c8a47a 30%, #a67c5b 70%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 100%, #f4d0a0 0%, transparent 70%);
}
.scn-gloucester-led-away .gla-bg { position:absolute; inset:0; background: linear-gradient(90deg, #8b5e3c33 0%, #a67c5b22 50%, #8b5e3c33 100%); }
.scn-gloucester-led-away .gla-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a5633 0%, #5a3a1e 100%); }
.scn-gloucester-led-away .gla-column-left { position:absolute; left:15%; top:0; bottom:20%; width:8%; background: linear-gradient(90deg, #c8a47a 0%, #a67c5b 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.3); }
.scn-gloucester-led-away .gla-column-right { position:absolute; right:15%; top:0; bottom:20%; width:8%; background: linear-gradient(90deg, #c8a47a 0%, #a67c5b 100%); box-shadow: -4px 0 12px rgba(0,0,0,0.3); }
.scn-gloucester-led-away .gla-figure-gloucester { position:absolute; bottom:20%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gla-figure 4s ease-in-out infinite; }
.scn-gloucester-led-away .gla-guard-left { position:absolute; bottom:20%; left:38%; width:18px; height:55px; background: linear-gradient(180deg, #7a5633 0%, #4a301a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: gla-guard 3s ease-in-out infinite alternate; }
.scn-gloucester-led-away .gla-guard-right { position:absolute; bottom:20%; right:38%; width:18px; height:55px; background: linear-gradient(180deg, #7a5633 0%, #4a301a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: gla-guard 3s ease-in-out infinite alternate-reverse; }
.scn-gloucester-led-away .gla-chain { position:absolute; bottom:32%; left:50%; width:4px; height:30px; background: #c8553d; transform-origin: bottom center; animation: gla-chain 2s ease-in-out infinite; box-shadow: 0 0 2px #a0461a; }
.scn-gloucester-led-away .gla-light { position:absolute; top:10%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #f4d0a0 0%, #e0b080 40%, transparent 70%); border-radius:50%; animation: gla-light 1.5s ease-in-out infinite alternate; }

@keyframes gla-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes gla-guard {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px); }
  100% { transform: translateX(0); }
}
@keyframes gla-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes gla-light {
  0% { opacity:0.7; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(1); }
}

.scn-henry-grief-gloucester {
  background:
    linear-gradient(180deg, #8b6b4a 0%, #6b5030 40%, #4a3520 70%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 80%, #c8a87a 0%, transparent 60%);
}
.scn-henry-grief-gloucester .hgg-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a352033 0%, #2a1a1044 100%); }
.scn-henry-grief-gloucester .hgg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2515 0%, #1a0e08 100%); }
.scn-henry-grief-gloucester .hgg-throne { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6b5030 0%, #3a2515 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
.scn-henry-grief-gloucester .hgg-figure-henry { position:absolute; bottom:30%; left:50%; width:22px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a20 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hgg-henry 8s ease-in-out infinite; }
.scn-henry-grief-gloucester .hgg-crown { position:absolute; bottom:52%; left:50%; width:14px; height:8px; transform:translateX(-50%); background: #c8a87a; border-radius: 50% 50% 0 0; animation: hgg-crown 6s ease-in-out infinite; }
.scn-henry-grief-gloucester .hgg-shadow { position:absolute; bottom:25%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: hgg-shadow 8s ease-in-out infinite; }
.scn-henry-grief-gloucester .hgg-tear { position:absolute; bottom:36%; left:50.5%; width:3px; height:5px; background: linear-gradient(180deg, rgba(180,200,255,0.8) 0%, transparent 100%); border-radius:50%; animation: hgg-tear 4s ease-in-out infinite; }

@keyframes hgg-henry {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(5px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes hgg-crown {
  0% { transform: translateX(-50%) rotate(-10deg); }
  50% { transform: translateX(-50%) rotate(-15deg); }
  100% { transform: translateX(-50%) rotate(-10deg); }
}
@keyframes hgg-shadow {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.2); }
  100% { opacity:0.4; transform: scaleX(1); }
}
@keyframes hgg-tear {
  0% { opacity:0; transform: translateY(0); }
  30% { opacity:1; }
  70% { opacity:1; transform: translateY(10px); }
  100% { opacity:0; transform: translateY(15px); }
}

.scn-conspirators-decide-death {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a10 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 50%, #8b5e3c 0%, transparent 70%);
}
.scn-conspirators-decide-death .cdd-bg { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a1033 0%, #1a0e0822 50%, #2a1a1033 100%); }
.scn-conspirators-decide-death .cdd-table { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #5a3a20 0%, #3a2212 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.6); }
.scn-conspirators-decide-death .cdd-figure-a { position:absolute; bottom:35%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a2212 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cdd-figure 5s ease-in-out infinite; }
.scn-conspirators-decide-death .cdd-figure-b { position:absolute; bottom:35%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a2212 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cdd-figure 5s ease-in-out infinite reverse; }
.scn-conspirators-decide-death .cdd-snake { position:absolute; bottom:40%; left:45%; width:40px; height:6px; background: linear-gradient(90deg, #5e1a1d 0%, #8b3a2a 50%, #5e1a1d 100%); border-radius: 50%; filter: blur(1px); animation: cdd-snake 7s ease-in-out infinite; }
.scn-conspirators-decide-death .cdd-crocodile-tear { position:absolute; bottom:38%; right:35%; width:4px; height:4px; background: radial-gradient(circle, #a0c0d0 0%, transparent 70%); border-radius:50%; animation: cdd-tear 4s ease-in-out infinite; }
.scn-conspirators-decide-death .cdd-light { position:absolute; top:10%; left:48%; width:30px; height:30px; background: radial-gradient(circle, #f4c080 0%, #c8a060 30%, transparent 60%); border-radius:50%; animation: cdd-light 3s ease-in-out infinite alternate; }

@keyframes cdd-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cdd-snake {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(10deg); }
  50% { transform: translateX(0) rotate(-10deg); }
  75% { transform: translateX(-5px) rotate(10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cdd-tear {
  0% { opacity:0; transform: translateY(0); }
  30% { opacity:1; }
  70% { opacity:1; transform: translateY(10px); }
  100% { opacity:0; transform: translateY(15px); }
}
@keyframes cdd-light {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.3); }
  100% { opacity:0.7; transform: scale(0.9); }
}

.scn-conspirators-argue-methods {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 50%, #8b6b4a 0%, transparent 70%);
}
.scn-conspirators-argue-methods .cam-bg { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a33 0%, #1a0e0822 50%, #3a2a1a33 100%); }
.scn-conspirators-argue-methods .cam-table { position:absolute; bottom:20%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #6b5030 0%, #3a2515 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.6); }
.scn-conspirators-argue-methods .cam-figure-york { position:absolute; bottom:32%; left:25%; width:18px; height:45px; background: linear-gradient(180deg, #5a3a20 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cam-york 4s ease-in-out infinite; }
.scn-conspirators-argue-methods .cam-figure-other { position:absolute; bottom:32%; right:25%; width:18px; height:45px; background: linear-gradient(180deg, #5a3a20 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cam-other 4s ease-in-out infinite reverse; }
.scn-conspirators-argue-methods .cam-hand-a { position:absolute; bottom:35%; left:28%; width:10px; height:14px; background: #5a3a20; border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%; transform-origin: bottom left; animation: cam-hand 2s ease-in-out infinite; }
.scn-conspirators-argue-methods .cam-hand-b { position:absolute; bottom:35%; right:28%; width:10px; height:14px; background: #5a3a20; border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%; transform-origin: bottom right; animation: cam-hand 2s ease-in-out infinite alternate; }
.scn-conspirators-argue-methods .cam-map { position:absolute; bottom:20%; left:40%; width:40px; height:30px; background: linear-gradient(135deg, #c8a060 0%, #a67c3a 100%); border-radius: 5%; border: 1px solid #8b5e3c; animation: cam-map 10s ease-in-out infinite; }

@keyframes cam-york {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cam-other {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cam-hand {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(30deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes cam-map {
  0% { opacity:0.8; transform: scale(1) rotate(0deg); }
  50% { opacity:1; transform: scale(1.05) rotate(2deg); }
  100% { opacity:0.8; transform: scale(1) rotate(0deg); }
}

/* ---- scene: st-albans-miracle (calm, sunlit) ---- */
.scn-st-albans-miracle {
  background:
    linear-gradient(180deg, #7bb3d9 0%, #e6dab3 40%, #f0d48a 70%, #d9b45a 100%),
    radial-gradient(ellipse at 60% 10%, #fff4d4 0%, transparent 60%);
}
.scn-st-albans-miracle .sky      { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, transparent 100%); animation: sm-sky 15s ease-in-out infinite alternate; }
.scn-st-albans-miracle .sun      { position:absolute; top:8%; left:55%; width:80px; height:80px; background: radial-gradient(circle, #fff8e0 0%, #fce29a 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(252,226,154,0.4); animation: sm-sun 20s linear infinite; }
.scn-st-albans-miracle .shrine   { position:absolute; bottom:10%; left:25%; width:150px; height:180px; background: linear-gradient(180deg, #c9b68e 0%, #8a7a5a 100%); border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3); animation: sm-shrine 12s ease-in-out infinite alternate; }
.scn-st-albans-miracle .figure-kneeling { position:absolute; bottom:9%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-kneel 6s ease-in-out infinite; }
.scn-st-albans-miracle .rays     { position:absolute; top:15%; left:55%; width:200px; height:200px; background: radial-gradient(circle, rgba(255,248,224,0.4) 0%, transparent 60%); filter: blur(8px); animation: sm-rays 12s ease-in-out infinite alternate; }
.scn-st-albans-miracle .ground   { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #7a6b4a 0%, #4a3b2a 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; }
.scn-st-albans-miracle .cloud    { position:absolute; top:10%; right:10%; width:120px; height:30px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(8px); animation: sm-cloud 35s linear infinite; }
@keyframes sm-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sm-sun   { 0% { transform: translateX(-20px) scale(1); opacity:0.8 } 50% { transform: translateX(10px) scale(1.05); opacity:1 } 100% { transform: translateX(-20px) scale(1); opacity:0.8 } }
@keyframes sm-shrine { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sm-kneel { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes sm-rays { 0% { transform: scale(0.9) rotate(-5deg); opacity:0.6 } 50% { transform: scale(1.1) rotate(0deg); opacity:1 } 100% { transform: scale(0.9) rotate(5deg); opacity:0.6 } }
@keyframes sm-cloud { 0% { transform: translateX(0); opacity:0.4 } 50% { opacity:0.7 } 100% { transform: translateX(-100vw); opacity:0.4 } }

/* ---- scene: st-albans-news (dark mood, sunlit) ---- */
.scn-st-albans-news {
  background:
    linear-gradient(180deg, #c8d8e0 0%, #f2e6c0 30%, #d9b45a 60%, #a08040 100%),
    radial-gradient(ellipse at 60% 0%, #fff5d0 0%, transparent 50%);
}
.scn-st-albans-news .sky          { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,230,0.2) 0%, transparent 100%); animation: sn-sky 18s ease-in-out infinite alternate; }
.scn-st-albans-news .sun          { position:absolute; top:5%; right:20%; width:90px; height:90px; background: radial-gradient(circle, #fff8d0 0%, #fce29a 20%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(252,226,154,0.6); animation: sn-sun 25s linear infinite; }
.scn-st-albans-news .figure-left  { position:absolute; bottom:8%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-figureL 5s ease-in-out infinite; }
.scn-st-albans-news .figure-right { position:absolute; bottom:8%; right:25%; width:40px; height:85px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-figureR 7s ease-in-out infinite; }
.scn-st-albans-news .shadow-cross { position:absolute; bottom:25%; left:45%; width:80px; height:120px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.7) 100%); clip-path: polygon(45% 0, 55% 0, 55% 40%, 100% 40%, 100% 50%, 55% 50%, 55% 100%, 45% 100%, 45% 50%, 0 50%, 0 40%, 45% 40%); animation: sn-cross 10s ease-in-out infinite alternate; }
.scn-st-albans-news .spear        { position:absolute; bottom:20%; left:60%; width:4px; height:140px; background: linear-gradient(180deg, #5a4a3a 0%, #2a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: sn-spear 8s ease-in-out infinite; }
.scn-st-albans-news .ground       { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 100% 100% 0 0; }
.scn-st-albans-news .dust         { position:absolute; bottom:12%; left:30%; width:200px; height:30px; background: radial-gradient(ellipse, rgba(180,160,100,0.3) 0%, transparent 70%); filter: blur(12px); animation: sn-dust 12s ease-in-out infinite alternate; }
@keyframes sn-sky    { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes sn-sun    { 0% { transform: translateX(-20px) scale(1); opacity:0.7 } 50% { transform: translateX(10px) scale(1.08); opacity:1 } 100% { transform: translateX(-20px) scale(1); opacity:0.7 } }
@keyframes sn-figureL { 0% { transform: rotate(2deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(5px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(2deg) translateX(-5px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes sn-figureR { 0% { transform: rotate(-3deg) translateX(0); } 33% { transform: rotate(1deg) translateX(-4px); } 66% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes sn-cross  { 0% { transform: scaleY(1); opacity:0.6 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(1); opacity:0.6 } }
@keyframes sn-spear  { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(10px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes sn-dust   { 0% { transform: translateX(0) scaleY(1); opacity:0.3 } 50% { transform: translateX(40px) scaleY(1.5); opacity:0.6 } 100% { transform: translateX(0) scaleY(1); opacity:0.3 } }

/* ---- scene: york-garden-claim (calm, dusk) ---- */
.scn-york-garden-claim {
  background:
    linear-gradient(180deg, #4a3a5a 0%, #8a6a7a 30%, #c8a080 60%, #d9b45a 80%, #6a5a3a 100%),
    radial-gradient(ellipse at 40% 10%, #f0c8a0 0%, transparent 60%);
}
.scn-york-garden-claim .sky           { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,120,100,0.2) 0%, transparent 100%); animation: yc-sky 20s ease-in-out infinite alternate; }
.scn-york-garden-claim .trees         { position:absolute; bottom:20%; left:5%; right:5%; height:60%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.3); animation: yc-trees 25s ease-in-out infinite alternate; }
.scn-york-garden-claim .path          { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; }
.scn-york-garden-claim .figure-york   { position:absolute; bottom:5%; left:35%; width:28px; height:70px; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yc-york 8s ease-in-out infinite; }
.scn-york-garden-claim .figure-warwick { position:absolute; bottom:5%; right:30%; width:30px; height:72px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yc-warwick 10s ease-in-out infinite; }
.scn-york-garden-claim .hedge         { position:absolute; bottom:15%; left:10%; width:120px; height:40px; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: yc-hedge 15s ease-in-out infinite alternate; }
.scn-york-garden-claim .glow          { position:absolute; top:10%; left:50%; width:100px; height:100px; background: radial-gradient(circle, rgba(240,200,160,0.3) 0%, transparent 70%); filter: blur(15px); animation: yc-glow 18s ease-in-out infinite alternate; }
@keyframes yc-sky     { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes yc-trees   { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes yc-york    { 0% { transform: rotate(-2deg) translateX(0) } 33% { transform: rotate(1deg) translateX(8px) } 66% { transform: rotate(-1deg) translateX(-4px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes yc-warwick { 0% { transform: rotate(2deg) translateX(0) } 25% { transform: rotate(-2deg) translateX(-6px) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(1deg) translateX(6px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes yc-hedge   { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes yc-glow    { 0% { transform: scale(0.8); opacity:0.3 } 50% { transform: scale(1.2); opacity:0.6 } 100% { transform: scale(0.8); opacity:0.3 } }

/* ---- scene: york-plotting (tense, dim-interior) ---- */
.scn-york-plotting {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 50%, #5a4a3a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #8a6a3a 0%, transparent 60%);
}
.scn-york-plotting .bg-interior   { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 40%, rgba(0,0,0,0.4) 100%); animation: yp-bg 10s ease-in-out infinite alternate; }
.scn-york-plotting .window-dull   { position:absolute; top:10%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: yp-win 12s ease-in-out infinite alternate; }
.scn-york-plotting .table         { position:absolute; bottom:12%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2% / 60% 60% 30% 30%; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); animation: yp-table 14s ease-in-out infinite alternate; }
.scn-york-plotting .candle        { position:absolute; bottom:25%; left:45%; width:8px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #8a6a4a 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 20px 10px rgba(200,160,128,0.5); animation: yp-candle 4s ease-in-out infinite; }
.scn-york-plotting .figure-york   { position:absolute; bottom:8%; left:30%; width:34px; height:70px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-figureY 6s ease-in-out infinite; }
.scn-york-plotting .figure-other  { position:absolute; bottom:10%; right:25%; width:36px; height:68px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-figureO 8s ease-in-out infinite; }
.scn-york-plotting .shadow-floor  { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%); animation: yp-shadow 10s ease-in-out infinite alternate; }
@keyframes yp-bg      { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes yp-win     { 0% { transform: translateY(0); opacity:0.3 } 50% { transform: translateY(4px); opacity:0.5 } 100% { transform: translateY(0); opacity:0.3 } }
@keyframes yp-table   { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes yp-candle  { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.7 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(1) rotate(-2deg); opacity:0.7 } }
@keyframes yp-figureY { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(5px) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(3deg) translateX(-5px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes yp-figureO { 0% { transform: rotate(2deg) translateX(0) } 33% { transform: rotate(-2deg) translateX(-6px) } 66% { transform: rotate(0deg) translateX(4px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes yp-shadow  { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

/* York dismisses forces – tense bright interior */
.scn-york-dismisses-forces {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a08870 100%), radial-gradient(ellipse at 50% 0%, #f0e4d0 0%, transparent 60%);
}
.scn-york-dismisses-forces .tent-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a088 0%, #907860 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ydf-roof 8s ease-in-out infinite alternate;
}
.scn-york-dismisses-forces .tent-wall {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 30%, #c8b898 70%, #b0a088 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-york-dismisses-forces .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a08870 0%, #806848 100%);
}
.scn-york-dismisses-forces .york {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.2);
  animation: ydf-york 5s ease-in-out infinite;
}
.scn-york-dismisses-forces .soldier-left {
  position: absolute; bottom: 23%; left: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ydf-soldier 6s ease-in-out infinite alternate;
}
.scn-york-dismisses-forces .soldier-right {
  position: absolute; bottom: 23%; right: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ydf-soldier 6s ease-in-out infinite alternate-reverse;
}
.scn-york-dismisses-forces .lantern {
  position: absolute; top: 30%; left: 48%; width: 12px; height: 18px;
  background: radial-gradient(circle, #f0d080 0%, #c89550 70%);
  border-radius: 20%;
  box-shadow: 0 0 24px 8px #d0a060, 0 0 50px 16px rgba(208,160,96,0.4);
  animation: ydf-lantern 3s ease-in-out infinite alternate;
}
.scn-york-dismisses-forces .drape {
  position: absolute; top: 20%; left: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #a06848 0%, #785028 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: top center;
  animation: ydf-drape 8s ease-in-out infinite alternate;
}
.scn-york-dismisses-forces .shadow-stripe {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%);
  animation: ydf-stripe 5s ease-in-out infinite alternative;
}
@keyframes ydf-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes ydf-york { 0% { transform: scale(1.2) translate(0,0); } 50% { transform: scale(1.2) translate(2px,-2px); } 100% { transform: scale(1.2) translate(-2px,1px); } }
@keyframes ydf-soldier { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(0,-3px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ydf-lantern { 0% { opacity:0.7; box-shadow: 0 0 18px 4px #c8a050; } 50% { opacity:1; box-shadow: 0 0 32px 8px #f0d080, 0 0 50px 16px rgba(240,208,128,0.5); } 100% { opacity:0.8; box-shadow: 0 0 22px 6px #c8a050; } }
@keyframes ydf-drape { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ydf-stripe { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* King Henry enters – tense bright interior */
.scn-king-henry-enters {
  background: linear-gradient(180deg, #e4d4c0 0%, #c4b4a0 40%, #a09078 100%), radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 60%);
}
.scn-king-henry-enters .tent-interior {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #d4c4b0 0%, #e8d8c8 30%, #d4c4b0 70%, #c0b098 100%);
  border-radius: 20% 20% 0 0;
}
.scn-king-henry-enters .king {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #d0b890 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.2);
  animation: khe-king 5s ease-in-out infinite;
}
.scn-king-henry-enters .buckingham {
  position: absolute; bottom: 20%; left: 50%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #b0a090 0%, #806850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: khe-buck 6s ease-in-out infinite alternate;
}
.scn-king-henry-enters .york-small {
  position: absolute; bottom: 20%; left: 60%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: khe-york 4s ease-in-out infinite;
}
.scn-king-henry-enters .throne {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #b09070 0%, #806048 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: khe-throne 7s ease-in-out infinite alternate;
}
.scn-king-henry-enters .candle {
  position: absolute; top: 30%; left: 45%; width: 6px; height: 14px;
  background: radial-gradient(circle, #f0d080 0%, #c89550 70%);
  border-radius: 20%;
  box-shadow: 0 0 16px 4px #d0a060;
  animation: khe-candle 2s ease-in-out infinite alternate;
}
.scn-king-henry-enters .standard {
  position: absolute; top: 10%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #a06848 0%, #784828 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 80%, 0% 100%);
  animation: khe-standard 9s ease-in-out infinite;
}
.scn-king-henry-enters .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #8a664a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: khe-rug 12s ease-in-out infinite alternate;
}
@keyframes khe-king { 0% { transform: scale(1.2) translate(0,0) rotate(0deg); } 50% { transform: scale(1.2) translate(2px,-2px) rotate(-1deg); } 100% { transform: scale(1.2) translate(-2px,0) rotate(1deg); } }
@keyframes khe-buck { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(0,-2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes khe-york { 0% { transform: translate(0,0); } 50% { transform: translate(3px,-1px); } 100% { transform: translate(0,0); } }
@keyframes khe-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes khe-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(0.98); } }
@keyframes khe-standard { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes khe-rug { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* Item Cade head – dark bright interior (firelit) */
.scn-item-cade-head {
  background: linear-gradient(180deg, #1a1018 0%, #2a1a20 30%, #3a2228 60%, #4a3020 100%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-item-cade-head .bg-dark {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 50% 70%, #3a2820 0%, #1a1010 100%);
  animation: ich-bg 8s ease-in-out infinite alternate;
}
.scn-item-cade-head .platform {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
}
.scn-item-cade-head .iden {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ich-iden 6s ease-in-out infinite;
}
.scn-item-cade-head .head-pole {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #8a7060 0%, #605048 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ich-pole 4s ease-in-out infinite;
}
.scn-item-cade-head .head {
  position: absolute; bottom: 68%; left: 50%; width: 24px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #b87878 0%, #5e1a1d 80%);
  border-radius: 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(15deg);
  box-shadow: 0 0 20px 6px rgba(120,40,30,0.6);
  animation: ich-head 2s ease-in-out infinite alternate;
}
.scn-item-cade-head .torch {
  position: absolute; bottom: 15%; left: 65%; width: 8px; height: 20px;
  background: radial-gradient(circle, #f0c068 0%, #d08030 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d08030, 0 0 60px 20px rgba(208,128,48,0.4);
  animation: ich-torch 3s ease-in-out infinite alternate;
}
.scn-item-cade-head .shadow-figures {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, rgba(10,5,5,0.3) 0%, rgba(10,5,5,0.6) 100%);
  border-radius: 30% 30% 0 0;
  animation: ich-shadows 10s ease-in-out infinite alternate;
}
.scn-item-cade-head .stone-wall {
  position: absolute; top: 0%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1518 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
@keyframes ich-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ich-iden { 0% { transform: translate(0,0); } 50% { transform: translate(2px,-2px); } 100% { transform: translate(-1px,1px); } }
@keyframes ich-pole { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ich-head { 0% { transform: translateX(-50%) rotate(15deg); } 50% { transform: translateX(-50%) rotate(12deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(18deg); } }
@keyframes ich-torch { 0% { opacity:0.8; box-shadow: 0 0 20px 6px #d08030; } 50% { opacity:1; box-shadow: 0 0 40px 14px #f0c068, 0 0 60px 20px rgba(240,192,104,0.5); } 100% { opacity:0.9; box-shadow: 0 0 25px 8px #d08030; } }
@keyframes ich-shadows { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* Knighting of Iden – warm bright interior */
.scn-knighting-of-iden {
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 40%, #b8a888 100%), radial-gradient(ellipse at 50% 0%, #f8e8d0 0%, transparent 60%);
}
.scn-knighting-of-iden .hall {
  position: absolute; inset:0;
  background: linear-gradient(90deg, #d8c8b0 0%, #e8d8c0 30%, #d8c8b0 70%, #c8b8a0 100%);
  border-radius: 10% 10% 0 0;
}
.scn-knighting-of-iden .king-throne {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.2);
  animation: koi-king 5s ease-in-out infinite;
}
.scn-knighting-of-iden .iden-kneeling {
  position: absolute; bottom: 15%; left: 48%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleY(0.8);
  animation: koi-iden 6s ease-in-out infinite alternate;
}
.scn-knighting-of-iden .sword {
  position: absolute; bottom: 30%; left: 40%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #e0d0a0 0%, #b8a070 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  transform-origin: 50% 100%;
  animation: koi-sword 4s ease-in-out infinite;
}
.scn-knighting-of-iden .candle-light {
  position: absolute; top: 20%; left: 45%; width: 10px; height: 16px;
  background: radial-gradient(circle, #f0d080 0%, #c89550 70%);
  border-radius: 30%;
  box-shadow: 0 0 40px 12px #d0a060, 0 0 80px 24px rgba(208,160,96,0.3);
  animation: koi-candle 3s ease-in-out infinite alternate;
}
.scn-knighting-of-iden .banner {
  position: absolute; top: 10%; left: 60%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #a06848 0%, #784828 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 85%, 0% 100%);
  animation: koi-banner 8s ease-in-out infinite;
}
.scn-knighting-of-iden .step {
  position: absolute; bottom: 12%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #b8a088 0%, #987868 100%);
  border-radius: 10% 10% 0 0;
}
.scn-knighting-of-iden .ray {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(90deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0.1) 100%);
  animation: koi-ray 7s ease-in-out infinite alternate;
}
@keyframes koi-king { 0% { transform: scale(1.2) translate(0,0) rotate(0deg); } 50% { transform: scale(1.2) translate(2px,-2px) rotate(-1deg); } 100% { transform: scale(1.2) translate(0,0) rotate(1deg); } }
@keyframes koi-iden { 0% { transform: scaleY(0.8) translate(0,0); } 50% { transform: scaleY(0.8) translate(-1px,-2px); } 100% { transform: scaleY(0.8) translate(1px,0); } }
@keyframes koi-sword { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(22deg) scaleY(1.02); } 100% { transform: rotate(18deg) scaleY(0.98); } }
@keyframes koi-candle { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.9; transform: scale(0.95); } }
@keyframes koi-banner { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes koi-ray { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.1; } }

.scn-news-gloucester-dead {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1d16 30%, #3c2a1e 60%, #1a110c 100%),
    radial-gradient(ellipse at 50% 100%, #4a3622 0%, transparent 70%);
}
.scn-news-gloucester-dead .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2e221c 0%, #3c2e24 50%, #4a382e 100%);
  animation: ngd-wall 14s ease-in-out infinite alternate;
}
.scn-news-gloucester-dead .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120c 100%);
  border-top: 2px solid #4a362a;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-news-gloucester-dead .bed {
  position: absolute; bottom: 20%; left: 10%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e221c 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6), inset 0 2px 4px rgba(200,160,120,.2);
  animation: ngd-bed 18s ease-in-out infinite;
}
.scn-news-gloucester-dead .figure-king {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngd-figure-king 6s ease-in-out infinite;
  box-shadow: -4px 2px 6px rgba(0,0,0,.4);
}
.scn-news-gloucester-dead .figure-messenger {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2e221c 0%, #1a120c 100%);
  border-radius: 45% 55% 40% 40% / 55% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngd-figure-messenger 8s ease-in-out infinite alternate;
}
.scn-news-gloucester-dead .candle {
  position: absolute; bottom: 25%; right: 20%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,.4);
  animation: ngd-candle-glow 4s ease-in-out infinite alternate;
}
.scn-news-gloucester-dead .shadow-shape {
  position: absolute; bottom: 18%; left: 30%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: ngd-shadow 10s ease-in-out infinite alternate;
}
@keyframes ngd-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ngd-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ngd-figure-king { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) scaleY(0.95) } 75% { transform: translateX(-1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ngd-figure-messenger { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes ngd-candle-glow { 0% { box-shadow: 0 0 16px 4px #d09050, 0 0 32px 8px rgba(208,144,80,.3); opacity: .85 } 50% { box-shadow: 0 0 28px 10px #ffd080, 0 0 50px 18px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,.35); opacity: .9 } }
@keyframes ngd-shadow { 0% { opacity: .6; transform: scaleX(1) } 50% { opacity: .8; transform: scaleX(1.1) } 100% { opacity: .5; transform: scaleX(0.95) } }

.scn-henry-accuses-suffolk {
  background:
    linear-gradient(180deg, #1e1612 0%, #2e221c 30%, #3c2e24 60%, #1a120c 100%),
    radial-gradient(ellipse at 50% 90%, #4a3622 0%, transparent 70%);
}
.scn-henry-accuses-suffolk .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #4a382e 50%, #5a4438 100%);
  animation: has-wall 16s ease-in-out infinite alternate;
}
.scn-henry-accuses-suffolk .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2e1e16 0%, #1a120c 100%);
  border-top: 2px solid #4a362a;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-henry-accuses-suffolk .column-left {
  position: absolute; bottom: 0; left: 15%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 2px;
  box-shadow: 4px 0 8px rgba(0,0,0,.4);
}
.scn-henry-accuses-suffolk .column-right {
  position: absolute; bottom: 0; right: 15%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 2px;
  box-shadow: -4px 0 8px rgba(0,0,0,.4);
}
.scn-henry-accuses-suffolk .figure-king-accusing {
  position: absolute; bottom: 32%; left: 40%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3c2a1e 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: has-king-accuse 7s ease-in-out infinite;
  box-shadow: -4px 2px 6px rgba(0,0,0,.5);
}
.scn-henry-accuses-suffolk .figure-suffolk {
  position: absolute; bottom: 32%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2e221c 0%, #1a120c 100%);
  border-radius: 45% 55% 40% 40% / 55% 60% 40% 40%;
  transform-origin: bottom center;
  animation: has-suffolk 9s ease-in-out infinite alternate;
}
.scn-henry-accuses-suffolk .torch {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b07040 60%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 24px 8px #d09050, 0 0 48px 16px rgba(208,144,80,.4);
  animation: has-torch-glow 3s ease-in-out infinite alternate;
}
.scn-henry-accuses-suffolk .shadow-pool {
  position: absolute; bottom: 24%; left: 35%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: has-shadow 12s ease-in-out infinite alternate;
}
@keyframes has-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes has-king-accuse { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-1px) rotate(-5deg) scaleY(0.98) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-1px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes has-suffolk { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes has-torch-glow { 0% { box-shadow: 0 0 18px 5px #d09050, 0 0 36px 10px rgba(208,144,80,.3); opacity: .8 } 50% { box-shadow: 0 0 30px 12px #ffd080, 0 0 56px 20px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 22px 7px #d09050, 0 0 40px 14px rgba(208,144,80,.35); opacity: .9 } }
@keyframes has-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.2) } 100% { opacity: .4; transform: scaleX(0.9) } }

.scn-queen-defends-suffolk-laments {
  background:
    linear-gradient(180deg, #2a1e18 0%, #3a2a22 30%, #4a382e 60%, #1e1410 100%),
    radial-gradient(ellipse at 50% 95%, #5a4432 0%, transparent 70%);
}
.scn-queen-defends-suffolk-laments .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e24 0%, #4a3a30 50%, #5a463c 100%);
  animation: qds-wall 15s ease-in-out infinite alternate;
}
.scn-queen-defends-suffolk-laments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e221c 0%, #1a1410 100%);
  border-top: 2px solid #4a362a;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-queen-defends-suffolk-laments .figure-queen {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3c2a1e 0%, #1e1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qds-queen 6s ease-in-out infinite;
  box-shadow: -4px 2px 6px rgba(0,0,0,.5);
}
.scn-queen-defends-suffolk-laments .figure-suffolk-bow {
  position: absolute; bottom: 28%; right: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2e221c 0%, #1a120c 100%);
  border-radius: 45% 55% 40% 40% / 55% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qds-suffolk-bow 8s ease-in-out infinite alternate;
}
.scn-queen-defends-suffolk-laments .figure-king-shadow {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .5;
  filter: blur(1px);
  animation: qds-king-shadow 10s ease-in-out infinite alternate;
}
.scn-queen-defends-suffolk-laments .candle {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,.4);
  animation: qds-candle-glow 4s ease-in-out infinite alternate;
}
.scn-queen-defends-suffolk-laments .drapery {
  position: absolute; top: 0; left: 10%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #5a4438 0%, #3a2a22 100%);
  border-radius: 0 0 30% 30%;
  filter: blur(3px);
  opacity: .3;
  animation: qds-drapery 20s ease-in-out infinite alternate;
}
@keyframes qds-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes qds-queen { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-4deg) scaleY(0.97) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes qds-suffolk-bow { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-5deg) scaleY(0.93) } 100% { transform: translateX(0) rotate(0) } }
@keyframes qds-king-shadow { 0% { opacity: .4; transform: translateX(0) scale(1) } 50% { opacity: .6; transform: translateX(-2px) scale(1.05) } 100% { opacity: .3; transform: translateX(0) scale(0.95) } }
@keyframes qds-candle-glow { 0% { box-shadow: 0 0 16px 4px #d09050, 0 0 32px 8px rgba(208,144,80,.3); opacity: .85 } 50% { box-shadow: 0 0 28px 10px #ffd080, 0 0 50px 18px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,.35); opacity: .9 } }
@keyframes qds-drapery { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }

.scn-henry-grief-returns {
  background:
    linear-gradient(180deg, #1e1410 0%, #2e1e18 30%, #3c2a22 60%, #1a120c 100%),
    radial-gradient(ellipse at 50% 80%, #4a3622 0%, transparent 70%);
}
.scn-henry-grief-returns .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e221c 0%, #3c2e24 50%, #4a382e 100%);
  animation: hgr-wall 14s ease-in-out infinite alternate;
}
.scn-henry-grief-returns .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120c 100%);
  border-top: 2px solid #4a362a;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-henry-grief-returns .arch {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 65%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e221c 100%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  opacity: .2;
  filter: blur(4px);
  animation: hgr-arch 20s ease-in-out infinite alternate;
}
.scn-henry-grief-returns .figure-henry-turning {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgr-henry 8s ease-in-out infinite;
  box-shadow: -4px 2px 6px rgba(0,0,0,.5);
}
.scn-henry-grief-returns .figure-queen-reaching {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2e221c 0%, #1a120c 100%);
  border-radius: 45% 55% 40% 40% / 55% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgr-queen 10s ease-in-out infinite alternate;
}
.scn-henry-grief-returns .lantern {
  position: absolute; bottom: 22%; left: 50%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b07040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #d09050, 0 0 48px 16px rgba(208,144,80,.4);
  animation: hgr-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-henry-grief-returns .shadow-on-wall {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: hgr-shadow 12s ease-in-out infinite alternate;
}
@keyframes hgr-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hgr-arch { 0% { opacity: .15; transform: scaleX(1) } 50% { opacity: .25; transform: scaleX(1.05) } 100% { opacity: .15; transform: scaleX(1) } }
@keyframes hgr-henry { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(-6deg) scaleY(0.96) } 60% { transform: translateX(0) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hgr-queen { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(4deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hgr-lantern-glow { 0% { box-shadow: 0 0 18px 5px #d09050, 0 0 36px 10px rgba(208,144,80,.3); opacity: .8 } 50% { box-shadow: 0 0 30px 12px #ffd080, 0 0 56px 20px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 22px 7px #d09050, 0 0 40px 14px rgba(208,144,80,.35); opacity: .9 } }
@keyframes hgr-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .3; transform: scaleX(0.9) } }

.scn-eleanor-penance-continued { 
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 40%, #8a7a5a 100%),
              radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-eleanor-penance-continued .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4f0 0%, #e0e8f0 100%); animation: epc-sky 8s ease-in-out infinite alternate; }
.scn-eleanor-penance-continued .sun { position:absolute; top:5%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff8d0 0%, #ffe680 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,230,128,0.5); animation: epc-sun 6s ease-in-out infinite; }
.scn-eleanor-penance-continued .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a09070 0%, #6a5a3a 100%); border-radius: 30% 40% 0 0; }
.scn-eleanor-penance-continued .figure { position:absolute; bottom:30%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epc-figure 4s ease-in-out infinite alternate; }
.scn-eleanor-penance-continued .placard { position:absolute; bottom:38%; left:48%; width:40px; height:30px; background: #d4c0a0; border:1px solid #8a7a5a; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: epc-placard 3s ease-in-out infinite; }
.scn-eleanor-penance-continued .shadow { position:absolute; bottom:28%; left:40%; width:50px; height:12px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(4px); animation: epc-shadow 5s ease-in-out infinite; }
@keyframes epc-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes epc-sun { 0% { box-shadow: 0 0 60px 20px rgba(255,230,128,0.4); transform: scale(1); } 50% { box-shadow: 0 0 100px 40px rgba(255,230,128,0.7); transform: scale(1.05); } 100% { box-shadow: 0 0 70px 25px rgba(255,230,128,0.5); transform: scale(0.98); } }
@keyframes epc-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes epc-placard { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes epc-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.6; } 50% { transform: scaleX(0.9) translateX(5px); opacity:0.4; } 100% { transform: scaleX(1.1) translateX(-3px); opacity:0.5; } }

.scn-eleanor-penance-warning { 
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b89a 30%, #8a7a5a 100%),
              radial-gradient(ellipse at 40% 10%, #fff0d0 0%, transparent 70%);
}
.scn-eleanor-penance-warning .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0caf0 0%, #d8e0f0 100%); animation: epw-sky 10s ease-in-out infinite alternate; }
.scn-eleanor-penance-warning .wall { position:absolute; bottom:30%; left:0; width:40%; height:70%; background: linear-gradient(90deg, #c0b090 0%, #a09070 100%); border-right: 4px solid #8a7a5a; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-eleanor-penance-warning .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a8a6a 0%, #5a4a2a 100%); border-radius: 40% 60% 0 0; }
.scn-eleanor-penance-warning .figure { position:absolute; bottom:28%; left:45%; width:28px; height:70px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epw-figure 2s ease-in-out infinite alternate; }
.scn-eleanor-penance-warning .arm { position:absolute; bottom:48%; left:48%; width:30px; height:8px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 10% 10% 40%; transform-origin: left center; animation: epw-arm 1.5s ease-in-out infinite; }
.scn-eleanor-penance-warning .shadow { position:absolute; bottom:25%; left:42%; width:40px; height:20px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: epw-shadow 3s ease-in-out infinite; }
@keyframes epw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes epw-figure { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes epw-arm { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes epw-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(8px) scaleX(1.2); opacity:0.3; } 100% { transform: translateX(-4px) scaleX(0.9); opacity:0.4; } }

.scn-gloucester-reply-patience { 
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 40%, #c8a880 100%),
              radial-gradient(ellipse at 50% 15%, #fff8e8 0%, transparent 60%);
}
.scn-gloucester-reply-patience .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4f0 0%, #d4e4f0 100%); animation: grp-sky 12s ease-in-out infinite alternate; }
.scn-gloucester-reply-patience .sunburst { position:absolute; top:5%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #fff8d0 0%, #ffe080 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 100px 50px rgba(255,224,128,0.6); animation: grp-sunburst 8s ease-in-out infinite; }
.scn-gloucester-reply-patience .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8b080 0%, #8a7a5a 100%); border-radius: 20% 30% 0 0; }
.scn-gloucester-reply-patience .gloucester { position:absolute; bottom:30%; left:35%; width:32px; height:75px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grp-gloucester 5s ease-in-out infinite alternate; }
.scn-gloucester-reply-patience .eleanor { position:absolute; bottom:28%; left:50%; width:28px; height:65px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grp-eleanor 5s ease-in-out infinite alternate; }
.scn-gloucester-reply-patience .embrace { position:absolute; bottom:32%; left:40%; width:30px; height:20px; background: rgba(255,240,200,0.15); border-radius: 50% 50% 40% 40%; filter: blur(8px); animation: grp-embrace 7s ease-in-out infinite; }
@keyframes grp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes grp-sunburst { 0% { box-shadow: 0 0 80px 30px rgba(255,224,128,0.4); transform: scale(1); } 50% { box-shadow: 0 0 120px 50px rgba(255,224,128,0.7); transform: scale(1.08); } 100% { box-shadow: 0 0 90px 40px rgba(255,224,128,0.5); transform: scale(0.96); } }
@keyframes grp-gloucester { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes grp-eleanor { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(-1px) rotate(1deg); } }
@keyframes grp-embrace { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-herald-summons-parliament { 
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 40%, #8a7a5a 100%),
              radial-gradient(ellipse at 30% 20%, #fff0d0 0%, transparent 70%);
}
.scn-herald-summons-parliament .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a8a6a 0%, #5a4a2a 100%); border-radius: 10% 10% 0 0; }
.scn-herald-summons-parliament .wall { position:absolute; bottom:30%; left:10%; width:80%; height:70%; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); border: 2px solid #6a5a3a; }
.scn-herald-summons-parliament .column { position:absolute; bottom:30%; left:20%; width:20px; height:70%; background: linear-gradient(90deg, #b0a080 0%, #8a7a5a 50%, #b0a080 100%); border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2); }
.scn-herald-summons-parliament .herald { position:absolute; bottom:28%; left:25%; width:25px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsp-herald 4s ease-in-out infinite; }
.scn-herald-summons-parliament .gloucester { position:absolute; bottom:28%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsp-gloucester 6s ease-in-out infinite alternate; }
.scn-herald-summons-parliament .eleanor { position:absolute; bottom:28%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsp-eleanor 5s ease-in-out infinite alternate; }
.scn-herald-summons-parliament .shadow { position:absolute; bottom:24%; left:25%; width:30px; height:10px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: hsp-shadow 4s ease-in-out infinite; }
@keyframes hsp-herald { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes hsp-gloucester { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-5px) rotate(3deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes hsp-eleanor { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes hsp-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.5); opacity:0.2; } 100% { transform: scaleX(0.8); opacity:0.3; } }

/* Scene 1: York Ireland Commission */
.scn-york-ireland-commission {
  background:
    linear-gradient(180deg, #d4c4a0 0%, #b89a70 30%, #6b5a3e 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 60%, #f0d8b0 0%, transparent 60%);
}
.scn-york-ireland-commission .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8b48a 0%, #9a8258 100%); }
.scn-york-ireland-commission .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); }
.scn-york-ireland-commission .window { position:absolute; top:10%; left:60%; width:25%; height:40%; background: linear-gradient(180deg, #b0d0e8 0%, #8098b0 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); animation: yiw-glow 8s ease-in-out infinite alternate; }
.scn-york-ireland-commission .table { position:absolute; bottom:25%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-york-ireland-commission .map { position:absolute; bottom:30%; left:30%; width:40%; height:15%; background: radial-gradient(circle at 50% 50%, #f5e8c8 0%, #c8a870 70%, #8a6a40 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: yiw-map 12s ease-in-out infinite alternate; }
.scn-york-ireland-commission .candle { position:absolute; bottom:38%; left:45%; width:4px; height:18px; background: linear-gradient(180deg, #f0d8b0 0%, #c8a060 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 20px 6px #f0c880, 0 0 40px 12px rgba(240,200,128,0.3); animation: yiw-candle 3s ease-in-out infinite alternate; }
.scn-york-ireland-commission .figure-yi { position:absolute; bottom:28%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yiw-figure 6s ease-in-out infinite; }
.scn-york-ireland-commission .shadow-yi { position:absolute; bottom:23%; left:33%; width:40px; height:8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: yiw-shadow 6s ease-in-out infinite; }
@keyframes yiw-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes yiw-map { 0% { transform: scale(0.95); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes yiw-candle { 0% { transform: scaleY(0.95) translateY(0); } 50% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes yiw-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes yiw-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

/* Scene 2: Conspiracy to Murder and Prepare */
.scn-conspiracy-to-murder-and-prepare {
  background:
    linear-gradient(180deg, #1e1a28 0%, #2a2438 30%, #3a3048 60%, #1a1620 100%),
    radial-gradient(ellipse at 50% 70%, #f0c880 0%, transparent 50%);
}
.scn-conspiracy-to-murder-and-prepare .wall-cmp { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2438 0%, #1e1a28 100%); }
.scn-conspiracy-to-murder-and-prepare .floor-cmp { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1620 0%, #0e0c12 100%); }
.scn-conspiracy-to-murder-and-prepare .table-cmp { position:absolute; bottom:22%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-conspiracy-to-murder-and-prepare .candle-cmp { position:absolute; bottom:32%; left:50%; width:5px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #c89860 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #f0c880, 0 0 60px 16px rgba(240,200,128,0.3); animation: cmp-candle 2.5s ease-in-out infinite alternate; }
.scn-conspiracy-to-murder-and-prepare .figure-cmp-a { position:absolute; bottom:25%; left:30%; 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; animation: cmp-figure-a 8s ease-in-out infinite; }
.scn-conspiracy-to-murder-and-prepare .figure-cmp-b { position:absolute; bottom:25%; left:55%; 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; animation: cmp-figure-b 8s ease-in-out infinite 2s; }
.scn-conspiracy-to-murder-and-prepare .shadow-cmp-a { position:absolute; bottom:20%; left:28%; width:45px; height:10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(5px); animation: cmp-shadow 8s ease-in-out infinite; }
.scn-conspiracy-to-murder-and-prepare .shadow-cmp-b { position:absolute; bottom:20%; left:53%; width:45px; height:10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(5px); animation: cmp-shadow 8s ease-in-out infinite 2s; }
@keyframes cmp-candle { 0% { transform: scaleY(0.9) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(0); opacity: 0.9; } }
@keyframes cmp-figure-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cmp-figure-b { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-3px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes cmp-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.3); opacity: 0.7; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

/* Scene 3: York Soliloquy Ambition */
.scn-york-soliloquy-ambition {
  background:
    linear-gradient(180deg, #3a3040 0%, #2a2030 40%, #1a1020 70%, #0a0810 100%),
    radial-gradient(ellipse at 40% 50%, #f0c880 0%, transparent 60%);
}
.scn-york-soliloquy-ambition .wall-ys { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); }
.scn-york-soliloquy-ambition .floor-ys { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%); }
.scn-york-soliloquy-ambition .candle-ys { position:absolute; bottom:40%; left:55%; width:4px; height:22px; background: linear-gradient(180deg, #f0d0a0 0%, #c89860 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 25px 8px #f0c880, 0 0 50px 15px rgba(240,200,128,0.3); animation: ys-candle 4s ease-in-out infinite alternate; }
.scn-york-soliloquy-ambition .chair-ys { position:absolute; bottom:30%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 8px rgba(0,0,0,0.6); }
.scn-york-soliloquy-ambition .book-ys { position:absolute; bottom:28%; left:42%; width:12px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-10deg); animation: ys-book 10s ease-in-out infinite alternate; }
.scn-york-soliloquy-ambition .web-ys { position:absolute; top:10%; left:10%; width:80px; height:80px; background: radial-gradient(circle, transparent 0%, transparent 40%, rgba(200,200,200,0.1) 41%, rgba(200,200,200,0.2) 45%, transparent 46%); border-radius: 50%; opacity: 0.3; animation: ys-web 20s ease-in-out infinite; }
.scn-york-soliloquy-ambition .figure-ys { position:absolute; bottom:25%; left:45%; width:18px; 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: ys-figure 7s ease-in-out infinite; }
@keyframes ys-candle { 0% { transform: scaleY(0.92) translateY(1px); } 50% { transform: scaleY(1.08) translateY(-1px); } 100% { transform: scaleY(0.96) translateY(0); } }
@keyframes ys-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes ys-web { 0% { transform: scale(0.95); opacity: 0.2; } 50% { transform: scale(1.05); opacity: 0.4; } 100% { transform: scale(0.98); opacity: 0.25; } }
@keyframes ys-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }

/* Scene 4: York Soliloquy Plans Cade */
.scn-york-soliloquy-plans-cade {
  background:
    linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 30%, #1a0a1a 70%, #0a000a 100%),
    radial-gradient(ellipse at 60% 40%, #f0c880 0%, transparent 50%);
}
.scn-york-soliloquy-plans-cade .wall-yc { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); }
.scn-york-soliloquy-plans-cade .floor-yc { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); }
.scn-york-soliloquy-plans-cade .table-yc { position:absolute; bottom:22%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-york-soliloquy-plans-cade .map-yc { position:absolute; bottom:28%; left:20%; width:60%; height:14%; background: radial-gradient(circle at 50% 50%, #f5e8c8 0%, #c8a870 60%, #8a6a40 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: yc-map 15s ease-in-out infinite alternate; }
.scn-york-soliloquy-plans-cade .window-yc { position:absolute; top:12%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); overflow: hidden; }
.scn-york-soliloquy-plans-cade .storm-yc { position:absolute; top:10%; left:8%; width:26%; height:38%; background: radial-gradient(circle at 30% 50%, #a0b8c8 0%, #4a5a6a 70%, transparent 100%); filter: blur(8px); animation: yc-storm 6s ease-in-out infinite alternate; }
.scn-york-soliloquy-plans-cade .candle-yc { position:absolute; bottom:34%; left:50%; width:5px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #c89860 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #f0c880, 0 0 60px 16px rgba(240,200,128,0.3); animation: yc-candle 3.5s ease-in-out infinite alternate; }
.scn-york-soliloquy-plans-cade .figure-yc { position:absolute; bottom:25%; left:40%; 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 center; animation: yc-figure 8s ease-in-out infinite; }
.scn-york-soliloquy-plans-cade .papers-yc { position:absolute; bottom:20%; left:38%; width:16px; height:12px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b090 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 1px 4px rgba(0,0,0,0.4); animation: yc-papers 12s ease-in-out infinite alternate; }
@keyframes yc-map { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }
@keyframes yc-storm { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-5px) scale(1.1); opacity: 0.9; } 100% { transform: translateY(0) scale(0.95); opacity: 0.5; } }
@keyframes yc-candle { 0% { transform: scaleY(0.9) translateY(1px); } 50% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(0.95) translateY(0); } }
@keyframes yc-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes yc-papers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); } }

.scn-gloucester-house-objection {
  background: linear-gradient(180deg, #1a1218 0%, #0e0a10 60%, #160d12 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a20 0%, transparent 70%);
}
.scn-gloucester-house-objection .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e24 0%, #1a1218 100%);
  animation: gh-o-wall 14s ease-in-out infinite alternate;
}
.scn-gloucester-house-objection .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-gloucester-house-objection .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gh-o-fig-left 4s ease-in-out infinite;
}
.scn-gloucester-house-objection .figure-right {
  position: absolute; bottom: 28%; right: 28%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1e1412 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gh-o-fig-right 4.2s ease-in-out infinite 0.5s;
}
.scn-gloucester-house-objection .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c070 0%, #b08030 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(232,192,112,.5);
  animation: gh-o-candle 3s ease-in-out infinite alternate;
}
.scn-gloucester-house-objection .glow {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(232,192,112,.45) 0%, rgba(232,192,112,.15) 40%, transparent 70%);
  border-radius: 50%;
  animation: gh-o-glow 2.8s ease-in-out infinite alternate;
}
.scn-gloucester-house-objection .shadow-curtain {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(0,0,0,.5) 90%);
  pointer-events: none;
}
@keyframes gh-o-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes gh-o-fig-left { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes gh-o-fig-right { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes gh-o-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes gh-o-glow { 0% { opacity: .7; transform: translateX(-50%) scale(1) } 50% { opacity: .9; transform: translateX(-50%) scale(1.08) } 100% { opacity: .75; transform: translateX(-50%) scale(0.95) } }

.scn-item-staff-dream {
  background: linear-gradient(180deg, #0e0812 0%, #160c1e 30%, #0e0812 60%, #080410 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a3a 0%, transparent 80%);
}
.scn-item-staff-dream .bg-abyss {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #1a1220 0%, #0c0810 80%);
  animation: isd-abyss 20s ease-in-out infinite alternate;
}
.scn-item-staff-dream .staff {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a07840 50%, #704820 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: 0 0 10px rgba(160,120,64,.3);
  z-index: 2;
  animation: isd-staff 8s ease-in-out infinite alternate;
}
.scn-item-staff-dream .piece-left {
  position: absolute; bottom: 25%; left: 46%; width: 6px; height: 20%;
  transform: rotate(-25deg) translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #805828 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(200,160,96,.3);
  z-index: 3;
  animation: isd-piece-left 6s ease-in-out infinite alternate;
}
.scn-item-staff-dream .piece-right {
  position: absolute; bottom: 25%; left: 54%; width: 6px; height: 22%;
  transform: rotate(30deg) translateX(50%);
  background: linear-gradient(180deg, #c8a060 0%, #7a5028 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(200,160,96,.3);
  z-index: 3;
  animation: isd-piece-right 6.4s ease-in-out infinite alternate;
}
.scn-item-staff-dream .head-left {
  position: absolute; bottom: 42%; left: 38%; width: 28px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(100,60,80,.4);
  animation: isd-head-left 5s ease-in-out infinite;
}
.scn-item-staff-dream .head-right {
  position: absolute; bottom: 44%; right: 36%; width: 30px; height: 32px;
  background: radial-gradient(circle at 50% 40%, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(100,60,80,.4);
  animation: isd-head-right 5.6s ease-in-out infinite 0.8s;
}
.scn-item-staff-dream .dream-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(80,40,100,.08) 0%, transparent 60%),
              radial-gradient(ellipse at 60% 30%, rgba(100,60,120,.06) 0%, transparent 50%);
  pointer-events: none;
  animation: isd-haze 12s ease-in-out infinite alternate;
}
@keyframes isd-abyss { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes isd-staff { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(1.02) rotate(-2deg) } }
@keyframes isd-piece-left { 0% { transform: rotate(-25deg) translateX(-50%) scale(1) } 50% { transform: rotate(-35deg) translateX(-50%) scale(0.95) } 100% { transform: rotate(-20deg) translateX(-50%) scale(1.05) } }
@keyframes isd-piece-right { 0% { transform: rotate(30deg) translateX(50%) scale(1) } 50% { transform: rotate(40deg) translateX(50%) scale(0.95) } 100% { transform: rotate(25deg) translateX(50%) scale(1.05) } }
@keyframes isd-head-left { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(-3px,-2px) scale(1.03) } 50% { transform: translate(2px,-1px) scale(0.97) } 75% { transform: translate(-1px,3px) scale(1.02) } 100% { transform: translate(0,0) scale(1) } }
@keyframes isd-head-right { 0% { transform: translate(0,0) scale(1) } 30% { transform: translate(4px,-2px) scale(1.04) } 60% { transform: translate(-2px,2px) scale(0.96) } 100% { transform: translate(0,0) scale(1) } }
@keyframes isd-haze { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .35 } }

.scn-gloucester-house-dismissal {
  background: linear-gradient(180deg, #1a1418 0%, #0e0a0e 50%, #1a1016 100%),
              radial-gradient(ellipse at 50% 20%, #2a1a22 0%, transparent 70%);
}
.scn-gloucester-house-dismissal .dark-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1218 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: ghd-panel 18s ease-in-out infinite alternate;
}
.scn-gloucester-house-dismissal .candle-sconce {
  position: absolute; top: 25%; right: 20%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #d8b060 0%, #a08030 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 0 18px 6px rgba(200,160,80,.4);
  animation: ghd-candle 4s ease-in-out infinite alternate;
}
.scn-gloucester-house-dismissal .figure-kneeling {
  position: absolute; bottom: 28%; left: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1) rotate(5deg);
  transform-origin: bottom center;
  animation: ghd-kneel 3.5s ease-in-out infinite;
}
.scn-gloucester-house-dismissal .figure-standing {
  position: absolute; bottom: 24%; right: 26%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1e1412 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  transform-origin: bottom center;
  animation: ghd-stand 4s ease-in-out infinite 0.3s;
}
.scn-gloucester-house-dismissal .broken-stick {
  position: absolute; bottom: 30%; left: 44%; width: 4px; height: 16px;
  background: #b89050;
  border-radius: 10%;
  transform: rotate(-40deg);
  box-shadow: 0 0 4px rgba(184,144,80,.2);
  animation: ghd-stick 2.5s ease-in-out infinite alternate;
}
.scn-gloucester-house-dismissal .shadow-sweep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  pointer-events: none;
  animation: ghd-sweep 10s ease-in-out infinite alternate;
}
.scn-gloucester-house-dismissal .glint {
  position: absolute; top: 30%; left: 20%; width: 2px; height: 2px;
  background: rgba(200,160,80,.8);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,80,.5);
  animation: ghd-glint 5s ease-in-out infinite alternate;
}
@keyframes ghd-panel { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes ghd-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.04) scaleX(0.96) } 100% { transform: scaleY(0.96) scaleX(1.04) } }
@keyframes ghd-kneel { 0% { transform: scaleX(-1) rotate(5deg) translateY(0) } 30% { transform: scaleX(-1) rotate(3deg) translateY(-2px) } 60% { transform: scaleX(-1) rotate(6deg) translateY(0) } 100% { transform: scaleX(-1) rotate(4deg) translateY(-1px) } }
@keyframes ghd-stand { 0%,100% { transform: rotate(-3deg) } 25% { transform: rotate(-1deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(0deg) } }
@keyframes ghd-stick { 0% { transform: rotate(-40deg) scaleY(1) } 50% { transform: rotate(-35deg) scaleY(0.8) } 100% { transform: rotate(-45deg) scaleY(1.1) } }
@keyframes ghd-sweep { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes ghd-glint { 0% { opacity: 0 } 50% { opacity: .8 } 100% { opacity: .2 } }

.scn-gloucester-house-chastisement {
  background: linear-gradient(180deg, #1a1218 0%, #0e0a0e 40%, #1a1218 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a22 0%, transparent 80%);
}
.scn-gloucester-house-chastisement .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1218 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: ghc-wall 16s ease-in-out infinite alternate;
}
.scn-gloucester-house-chastisement .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
}
.scn-gloucester-house-chastisement .accuser {
  position: absolute; bottom: 26%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-4deg);
  transform-origin: bottom center;
  animation: ghc-accuser 3.8s ease-in-out infinite;
}
.scn-gloucester-house-chastisement .accused {
  position: absolute; bottom: 26%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1e1412 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  transform-origin: bottom center;
  animation: ghc-accused 4.2s ease-in-out infinite 0.4s;
}
.scn-gloucester-house-chastisement .hammer {
  position: absolute; bottom: 32%; left: 46%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #806040 0%, #503828 100%);
  border-radius: 20% 20% 20% 20% / 40% 40% 40% 40%;
  transform: rotate(-20deg);
  box-shadow: 0 0 6px rgba(80,56,40,.3);
  animation: ghc-hammer 2s ease-in-out infinite alternate;
}
.scn-gloucester-house-chastisement .candle-drip {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #e8c070 0%, #b08030 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 6px rgba(232,192,112,.4);
  animation: ghc-drip 1.5s ease-in-out infinite alternate;
}
.scn-gloucester-house-chastisement .glow-warm {
  position: absolute; bottom: 40%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(232,192,112,.3) 0%, rgba(232,192,112,.1) 50%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: ghc-glow 3s ease-in-out infinite alternate;
}
@keyframes ghc-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ghc-accuser { 0% { transform: rotate(-4deg) translateY(0) } 30% { transform: rotate(-6deg) translateY(-3px) } 60% { transform: rotate(-2deg) translateY(1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ghc-accused { 0%,100% { transform: rotate(2deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } 75% { transform: rotate(1deg) } }
@keyframes ghc-hammer { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(0.9) } 100% { transform: rotate(-30deg) scaleY(1.1) } }
@keyframes ghc-drip { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.3) } }
@keyframes ghc-glow { 0% { opacity: .6; transform: translateX(-50%) scale(1) } 50% { opacity: .9; transform: translateX(-50%) scale(1.06) } 100% { opacity: .7; transform: translateX(-50%) scale(0.95) } }

/* Scene 1: salisbury-supports-york – tense interior council chamber */
.scn-salisbury-supports-york {
  background: linear-gradient(180deg, #c8b88a 0%, #8a7a5a 40%, #5a4a3a 100%), linear-gradient(90deg, rgba(200,184,138,0.3) 0%, transparent 20%, rgba(100,80,50,0.4) 80%, rgba(200,184,138,0.2) 100%);
}
.scn-salisbury-supports-york .wall-bg {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(0deg, #6a5a3a 0%, #9a8a6a 60%, #c8b88a 100%);
  animation: ssy-wall 20s ease-in-out infinite alternate;
}
.scn-salisbury-supports-york .wall-side {
  position: absolute; inset: 0 30% 45% 60%;
  background: linear-gradient(135deg, #7a6a4a, #4a3a2a);
  border-radius: 0 0 20% 20%;
  box-shadow: 8px 8px 20px rgba(0,0,0,0.5);
  animation: ssy-pillar 14s ease-in-out infinite alternate;
}
.scn-salisbury-supports-york .dais {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #9a7a5a, #6a4a2a);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: ssy-dais 8s ease-in-out infinite;
}
.scn-salisbury-supports-york .figure {
  position: absolute; bottom: 32%; left: 38%; 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: ssy-figure 4s ease-in-out infinite;
}
.scn-salisbury-supports-york .scroll {
  position: absolute; bottom: 38%; left: 42%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #e8d8b8, #c8a878);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: ssy-scroll 6s ease-in-out infinite alternate;
}
.scn-salisbury-supports-york .rose-emblem {
  position: absolute; bottom: 28%; left: 35%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d8e0d0 20%, #c8d0b0 40%, #b0b89a 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(200,210,176,0.5);
  animation: ssy-rose 10s linear infinite;
}
.scn-salisbury-supports-york .candle {
  position: absolute; bottom: 36%; left: 48%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #d8c8a0, #a08860);
  border-radius: 2px;
  animation: ssy-candle 3s ease-in-out infinite;
}
.scn-salisbury-supports-york .glow {
  position: absolute; bottom: 34%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(240,220,160,0.6) 0%, rgba(240,220,160,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ssy-glow 3s ease-in-out infinite alternate;
}
@keyframes ssy-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ssy-pillar { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ssy-dais { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes ssy-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(0deg); } }
@keyframes ssy-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ssy-rose { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ssy-candle { 0%, 100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(1px); } }
@keyframes ssy-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }

/* Scene 2: item-bear-emblem – tense display of bear and ragged staff */
.scn-item-bear-emblem {
  background: linear-gradient(180deg, #b8a888 0%, #8a7a5a 50%, #5a4a3a 100%), radial-gradient(ellipse at 50% 30%, #c8b898 0%, transparent 80%);
}
.scn-item-bear-emblem .banner-back {
  position: absolute; left: 20%; right: 20%; top: 15%; bottom: 25%;
  background: linear-gradient(135deg, #6a5a4a, #4a3a2a);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 6px 6px 24px rgba(0,0,0,0.6);
  animation: ibe-banner 18s ease-in-out infinite alternate;
}
.scn-item-bear-emblem .bear {
  position: absolute; bottom: 40%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleX(-1);
  animation: ibe-bear 6s ease-in-out infinite;
}
.scn-item-bear-emblem .staff {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a, #3a1a0a);
  border-radius: 2px;
  animation: ibe-staff 12s ease-in-out infinite;
}
.scn-item-bear-emblem .ragged-edge {
  position: absolute; bottom: 38%; left: 46%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a7a5a 30%, #5a4a3a 30%, #5a4a3a 60%, #8a7a5a 60%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 50%, 100% 100%, 0% 100%, 10% 50%);
  animation: ibe-ragged 4s ease-in-out infinite alternate;
}
.scn-item-bear-emblem .stand {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 4px;
  background: linear-gradient(90deg, #4a3a2a, #6a5a3a, #4a3a2a);
  border-radius: 2px;
  animation: ibe-stand 10s ease-in-out infinite;
}
.scn-item-bear-emblem .shadow {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ibe-shadow 8s ease-in-out infinite;
}
.scn-item-bear-emblem .spark {
  position: absolute; top: 30%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0e0c0, #c8a868);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(200,168,104,0.6);
  animation: ibe-spark 2s ease-in-out infinite alternate;
}
@keyframes ibe-banner { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ibe-bear { 0%, 100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } }
@keyframes ibe-staff { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ibe-ragged { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.9); } }
@keyframes ibe-stand { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ibe-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(0.9); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes ibe-spark { 0% { opacity: 0.5; transform: scale(0.5); } 100% { opacity: 1; transform: scale(1.5); } }

/* Scene 3: challenge-emblems – tense duel of emblems */
.scn-challenge-emblems {
  background: linear-gradient(180deg, #c8b88a 0%, #8a7a5a 60%, #5a4a3a 100%), radial-gradient(ellipse at 50% 30%, #d8c8a8 0%, transparent 70%);
}
.scn-challenge-emblems .arena-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #4a3a2a, #7a6a4a);
  border-radius: 40% 40% 0 0;
  animation: ce-floor 20s ease-in-out infinite alternate;
}
.scn-challenge-emblems .figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-fig-l 4s ease-in-out infinite;
}
.scn-challenge-emblems .figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-fig-r 4s ease-in-out infinite;
}
.scn-challenge-emblems .emblem-left {
  position: absolute; bottom: 32%; left: 28%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #b0a88a, #8a7a5a);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(50% 0%, 100% 20%, 80% 60%, 50% 100%, 20% 60%, 0% 20%);
  animation: ce-embl-l 6s linear infinite alternate;
}
.scn-challenge-emblems .emblem-right {
  position: absolute; bottom: 32%; right: 28%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #a8987a, #7a6a4a);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(50% 0%, 100% 20%, 80% 60%, 50% 100%, 20% 60%, 0% 20%);
  animation: ce-embl-r 6s linear infinite alternate;
}
.scn-challenge-emblems .clash-spark {
  position: absolute; top: 35%; left: 48%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0e0c0, #c8a868);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,168,104,0.6);
  animation: ce-spark 1.6s ease-in-out infinite alternate;
}
.scn-challenge-emblems .dust {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 30px;
  background: radial-gradient(ellipse, rgba(100,80,50,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: ce-dust 4s ease-in-out infinite;
}
@keyframes ce-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ce-fig-l { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(0deg); } }
@keyframes ce-fig-r { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(3px) rotate(0deg); } }
@keyframes ce-embl-l { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ce-embl-r { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ce-spark { 0% { opacity: 0.3; transform: scale(0.5); } 100% { opacity: 1; transform: scale(2); } }
@keyframes ce-dust { 0% { opacity: 0.2; transform: translateY(0) scale(1); } 50% { opacity: 0.4; transform: translateY(-5px) scale(1.2); } 100% { opacity: 0.2; transform: translateY(0) scale(1); } }

/* Scene 4: warwick-calls-clifford – tense sunlit battlefield */
.scn-warwick-calls-clifford {
  background: linear-gradient(180deg, #d8e0e8 0%, #a8b0c0 40%, #7a8a9a 100%), radial-gradient(ellipse at 50% 0%, #e8f0f8 0%, transparent 60%);
}
.scn-warwick-calls-clifford .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #e0e8f0 60%, #f0f4f8 100%);
  animation: wcc-sky 12s ease-in-out infinite alternate;
}
.scn-warwick-calls-clifford .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #5a6a3a 0%, #8a9a6a 50%, #aaba8a 100%);
  border-radius: 20% 20% 0 0;
  animation: wcc-ground 18s ease-in-out infinite alternate;
}
.scn-warwick-calls-clifford .warwick {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcc-w 5s ease-in-out infinite;
}
.scn-warwick-calls-clifford .clifford {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcc-c 5s ease-in-out infinite;
}
.scn-warwick-calls-clifford .sword {
  position: absolute; bottom: 35%; left: 40%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #d8e0e8, #a8b0c0);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,210,220,0.5);
  animation: wcc-sword 2s ease-in-out infinite alternate;
}
.scn-warwick-calls-clifford .sunburst {
  position: absolute; top: 8%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,240,200,0.4) 0%, rgba(240,240,200,0.1) 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: wcc-sun 10s ease-in-out infinite;
}
.scn-warwick-calls-clifford .dust {
  position: absolute; bottom: 20%; left: 40%; right: 30%; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: wcc-dust 6s ease-in-out infinite;
}
@keyframes wcc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wcc-ground { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes wcc-w { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0deg); } }
@keyframes wcc-c { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } }
@keyframes wcc-sword { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes wcc-sun { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.8); } }
@keyframes wcc-dust { 0% { opacity: 0.1; transform: translateY(0) scale(1); } 50% { opacity: 0.3; transform: translateY(-6px) scale(1.1); } 100% { opacity: 0.1; transform: translateY(0) scale(1); } }

.scn-suffolk-farewell {
  background:
    radial-gradient(ellipse at 30% 20%, #6a4a2a 0%, transparent 60%),
    radial-gradient(ellipse at 80% 80%, #2a1a0a 0%, transparent 70%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-suffolk-farewell .bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 100%);
  animation: sf-bg 8s ease-in-out infinite alternate;
}
.scn-suffolk-farewell .floor {
  position:absolute; left:0; right:0; bottom:0; height:20%;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  border-radius: 2% 2% 0 0;
}
.scn-suffolk-farewell .candle {
  position:absolute; bottom:38%; left:25%; width:8px; height:18px;
  background: linear-gradient(180deg, #ffd080 0%, #b07040 100%);
  border-radius: 4px 4px 2px 2px;
  animation: sf-candle 2s ease-in-out infinite alternate;
}
.scn-suffolk-farewell .glow {
  position:absolute; bottom:36%; left:25%; width:60px; height:60px;
  background: radial-gradient(circle, #ffd080 0%, #d09050 30%, transparent 70%);
  border-radius:50%;
  transform: translate(-50%,50%);
  filter: blur(8px);
  animation: sf-glow 3s ease-in-out infinite alternate;
}
.scn-suffolk-farewell .figure-left {
  position:absolute; bottom:20%; left:38%; width:22px; height:44px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-left 6s ease-in-out infinite;
}
.scn-suffolk-farewell .figure-right {
  position:absolute; bottom:20%; left:50%; width:24px; height:46px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-right 6s ease-in-out infinite;
}
.scn-suffolk-farewell .tear.top {
  position:absolute; bottom:48%; left:47%; width:3px; height:3px;
  background: radial-gradient(circle, #ffefc0 0%, #c09060 100%);
  border-radius:50%;
  animation: sf-tear-top 4s ease-in-out infinite;
}
.scn-suffolk-farewell .tear.bot {
  position:absolute; bottom:44%; left:51%; width:2px; height:2px;
  background: #ffefc0;
  border-radius:50%;
  animation: sf-tear-bot 5s ease-in-out infinite 1s;
}
@keyframes sf-bg        { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sf-candle    { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1.05) } }
@keyframes sf-glow      { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes sf-left      { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(-4px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sf-right     { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sf-tear-top  { 0% { opacity:0; transform: translateY(0) } 30% { opacity:1; transform: translateY(2px) } 70% { opacity:1; transform: translateY(6px) } 100% { opacity:0; transform: translateY(10px) } }
@keyframes sf-tear-bot  { 0% { opacity:0; transform: translateY(0) } 30% { opacity:1; transform: translateY(1px) } 70% { opacity:1; transform: translateY(4px) } 100% { opacity:0; transform: translateY(8px) } }

.scn-vaux-beaufort-news {
  background:
    radial-gradient(ellipse at 50% 60%, #2a0a2a 0%, transparent 60%),
    radial-gradient(ellipse at 20% 80%, #1a001a 0%, transparent 50%),
    linear-gradient(180deg, #1a0a20 0%, #0a0010 100%);
}
.scn-vaux-beaufort-news .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #251030 0%, #0a0010 100%);
  animation: vb-bg 6s ease-in-out infinite alternate;
}
.scn-vaux-beaufort-news .wall-shadow {
  position:absolute; left:50%; right:0; bottom:20%; height:50%;
  background: linear-gradient(90deg, transparent 0%, #0a0008 100%);
  opacity:.4;
  animation: vb-wall-shadow 12s ease-in-out infinite alternate;
}
.scn-vaux-beaufort-news .bed {
  position:absolute; bottom:18%; left:30%; width:40%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 15px rgba(0,0,0,.6);
}
.scn-vaux-beaufort-news .cardinal-figure {
  position:absolute; bottom:17%; left:37%; width:30px; height:40px;
  background: linear-gradient(180deg, #4a3020 0%, #201008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vb-cardinal 3s ease-in-out infinite;
}
.scn-vaux-beaufort-news .vaux-figure {
  position:absolute; bottom:20%; left:10%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vb-vaux 8s ease-in-out infinite;
}
.scn-vaux-beaufort-news .candle-flicker {
  position:absolute; bottom:36%; left:70%; width:6px; height:14px;
  background: linear-gradient(180deg, #ffc070 0%, #a06030 100%);
  border-radius:2px;
  animation: vb-candle 1.6s ease-in-out infinite alternate;
}
.scn-vaux-beaufort-news .candle-glow {
  position:absolute; bottom:32%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #ffc070 0%, #a06030 40%, transparent 80%);
  border-radius:50%;
  transform: translate(-50%,50%);
  filter: blur(10px);
  animation: vb-glow 2.4s ease-in-out infinite alternate;
}
.scn-vaux-beaufort-news .shadow-floor {
  position:absolute; bottom:0; left:20%; width:60%; height:5%;
  background: linear-gradient(90deg, transparent 0%, #0a0008 20%, #0a0008 80%, transparent 100%);
  animation: vb-shadow-floor 5s ease-in-out infinite alternate;
}
@keyframes vb-bg          { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.7 } }
@keyframes vb-wall-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes vb-cardinal    { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-2px) rotate(-3deg); } 60% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes vb-vaux        { 0% { transform: translateX(0) } 30% { transform: translateX(5px) } 60% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes vb-candle      { 0% { transform: scaleY(1) } 50% { transform: scaleY(.9) } 100% { transform: scaleY(1.1) } }
@keyframes vb-glow        { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes vb-shadow-floor { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-queen-grief-suffolk {
  background:
    radial-gradient(ellipse at 50% 30%, #1a0a2a 0%, transparent 60%),
    radial-gradient(ellipse at 20% 70%, #0a001a 0%, transparent 50%),
    linear-gradient(180deg, #0a0015 0%, #00000a 100%);
}
.scn-queen-grief-suffolk .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a0a2a 0%, #050010 100%);
  animation: qg-bg 15s ease-in-out infinite alternate;
}
.scn-queen-grief-suffolk .floor-dark {
  position:absolute; left:0; right:0; bottom:0; height:18%;
  background: linear-gradient(180deg, #151010 0%, #080808 100%);
  border-radius: 5% 5% 0 0;
}
.scn-queen-grief-suffolk .queen-shape {
  position:absolute; bottom:18%; left:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qg-queen 10s ease-in-out infinite;
}
.scn-queen-grief-suffolk .veil {
  position:absolute; bottom:25%; left:30%; width:40px; height:30px;
  background: linear-gradient(180deg, rgba(40,20,40,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: qg-veil 8s ease-in-out infinite alternate;
}
.scn-queen-grief-suffolk .candle-dim {
  position:absolute; bottom:40%; left:55%; width:5px; height:12px;
  background: linear-gradient(180deg, #c08040 0%, #703020 100%);
  border-radius:2px;
  animation: qg-candle 4s ease-in-out infinite alternate;
}
.scn-queen-grief-suffolk .candle-glow-soft {
  position:absolute; bottom:36%; left:55%; width:40px; height:40px;
  background: radial-gradient(circle, #c08040 0%, #703020 30%, transparent 70%);
  border-radius:50%;
  transform: translate(-50%,50%);
  filter: blur(12px);
  animation: qg-glow 6s ease-in-out infinite alternate;
}
.scn-queen-grief-suffolk .tear-drop.a {
  position:absolute; bottom:40%; left:44%; width:3px; height:4px;
  background: radial-gradient(circle, #a0b0ff 0%, #6068c0 100%);
  border-radius:50%;
  animation: qg-tear-a 5s ease-in-out infinite;
}
.scn-queen-grief-suffolk .tear-drop.b {
  position:absolute; bottom:38%; left:48%; width:2px; height:3px;
  background: #9098e0;
  border-radius:50%;
  animation: qg-tear-b 6s ease-in-out infinite 1s;
}
.scn-queen-grief-suffolk .shadow-cast {
  position:absolute; bottom:0; left:30%; width:50%; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: qg-shadow 12s ease-in-out infinite alternate;
}
@keyframes qg-bg       { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes qg-queen    { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes qg-veil     { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes qg-candle   { 0% { transform: scaleY(1) } 50% { transform: scaleY(.92) } 100% { transform: scaleY(1.06) } }
@keyframes qg-glow     { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes qg-tear-a   { 0% { opacity:0; transform: translateY(0) } 30% { opacity:1; transform: translateY(2px) } 70% { opacity:1; transform: translateY(6px) } 100% { opacity:0; transform: translateY(10px) } }
@keyframes qg-tear-b   { 0% { opacity:0; transform: translateY(0) } 30% { opacity:1; transform: translateY(1px) } 70% { opacity:1; transform: translateY(5px) } 100% { opacity:0; transform: translateY(9px) } }
@keyframes qg-shadow   { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-suffolk-plea {
  background:
    radial-gradient(ellipse at 50% 40%, #4a3020 0%, transparent 60%),
    radial-gradient(ellipse at 30% 80%, #1a0a08 0%, transparent 50%),
    linear-gradient(180deg, #3a2018 0%, #1a1008 100%);
}
.scn-suffolk-plea .bg-warm {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a2818 0%, #1a0a08 100%);
  animation: sp-bg 10s ease-in-out infinite alternate;
}
.scn-suffolk-plea .floor-warm {
  position:absolute; left:0; right:0; bottom:0; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 3% 3% 0 0;
}
.scn-suffolk-plea .candle-light {
  position:absolute; bottom:30%; left:45%; width:7px; height:16px;
  background: linear-gradient(180deg, #ffd090 0%, #b08050 100%);
  border-radius:3px;
  animation: sp-candle 2.5s ease-in-out infinite alternate;
}
.scn-suffolk-plea .embrace-left {
  position:absolute; bottom:25%; left:38%; width:25px; height:45px;
  background: linear-gradient(180deg, #2a2010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: sp-left 5s ease-in-out infinite;
}
.scn-suffolk-plea .embrace-right {
  position:absolute; bottom:25%; left:45%; width:28px; height:48px;
  background: linear-gradient(180deg, #3a1820 0%, #1a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: sp-right 5s ease-in-out infinite;
}
.scn-suffolk-plea .heart-glow {
  position:absolute; bottom:38%; left:43%; width:10px; height:10px;
  background: radial-gradient(circle, #d08050 0%, #904020 60%, transparent 100%);
  border-radius:50%;
  filter: blur(2px);
  animation: sp-heart 3s ease-in-out infinite alternate;
}
.scn-suffolk-plea .warm-haze {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 40% 50%, rgba(200,150,100,.15) 0%, transparent 60%);
  animation: sp-haze 12s ease-in-out infinite alternate;
}
@keyframes sp-bg     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes sp-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(.93) } 100% { transform: scaleY(1.04) } }
@keyframes sp-left   { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-2px) rotate(-4deg) } 60% { transform: translateX(1px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes sp-right  { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(3px) rotate(4deg) } 60% { transform: translateX(-1px) rotate(0) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes sp-heart  { 0% { opacity:.5; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes sp-haze   { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }

.scn-queen-mocks-salisbury {
  background: linear-gradient(180deg, #f2e6c9 0%, #d4b88a 50%, #b8945c 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-queen-mocks-salisbury .bg-arch { position:absolute; bottom:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #8b7355 0%, #6b4f2e 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; }
.scn-queen-mocks-salisbury .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #d4b88a 0%, #f2e6c9 30%, #f2e6c9 70%, #d4b88a 100%); animation: qms-wall 8s ease-in-out infinite alternate; }
.scn-queen-mocks-salisbury .throne { position:absolute; bottom:25%; left:50%; width:90px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #8b5e3c 0%, #5a3d22 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-queen-mocks-salisbury .queen-sil { position:absolute; bottom:30%; left:50%; width:36px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: qms-queen 4s ease-in-out infinite; }
.scn-queen-mocks-salisbury .crown { position:absolute; bottom:75%; left:50%; width:24px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c060 0%, #d09030 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 0%, 30% 100%, 50% 70%, 70% 100%, 100% 0%); box-shadow: 0 0 12px 4px rgba(240,192,96,.6); animation: qms-crown 3s ease-in-out infinite alternate; }
.scn-queen-mocks-salisbury .torch-l { position:absolute; bottom:20%; left:15%; width:10px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5px; }
.scn-queen-mocks-salisbury .torch-l::after { content:''; position:absolute; bottom:100%; left:50%; width:16px; height:16px; margin-left:-8px; background: radial-gradient(circle, #ffd080 0%, #e09040 70%, transparent 100%); border-radius:50%; animation: qms-torch 1.5s ease-in-out infinite alternate; }
.scn-queen-mocks-salisbury .torch-r { position:absolute; bottom:20%; right:15%; width:10px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5px; }
.scn-queen-mocks-salisbury .torch-r::after { content:''; position:absolute; bottom:100%; left:50%; width:16px; height:16px; margin-left:-8px; background: radial-gradient(circle, #ffd080 0%, #e09040 70%, transparent 100%); border-radius:50%; animation: qms-torch 2.1s ease-in-out infinite alternate-reverse; }
.scn-queen-mocks-salisbury .banner { position:absolute; bottom:35%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #b04040 0%, #702828 100%); border-radius:3px; transform:skewX(-5deg); animation: qms-banner 12s ease-in-out infinite; }
@keyframes qms-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes qms-queen { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes qms-crown { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg) } 100% { transform: translateX(-50%) scale(1) rotate(-2deg) } }
@keyframes qms-torch { 0% { transform: scale(1); opacity:.8 } 100% { transform: scale(1.1); opacity:1 } }
@keyframes qms-banner { 0% { transform: skewX(-5deg) } 50% { transform: skewX(-2deg) scaleY(1.02) } 100% { transform: skewX(-6deg) } }

.scn-queen-pleads-for-suffolk {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a0 40%, #b8a080 100%), radial-gradient(ellipse at 50% 100%, #e8d8b8 0%, transparent 70%);
}
.scn-queen-pleads-for-suffolk .bg-columns { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(90deg, #8b7355 0%, #6b4f2e 30%, #8b7355 50%, #6b4f2e 70%, #8b7355 100%); border-radius: 0 0 20% 20%; }
.scn-queen-pleads-for-suffolk .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); }
.scn-queen-pleads-for-suffolk .king-sil { position:absolute; bottom:25%; left:65%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -12px 24px rgba(0,0,0,.5); animation: qps-king 5s ease-in-out infinite; }
.scn-queen-pleads-for-suffolk .queen-plead { position:absolute; bottom:25%; left:45%; width:34px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: qps-queen 3s ease-in-out infinite; }
.scn-queen-pleads-for-suffolk .sceptre { position:absolute; bottom:30%; left:45%; width:4px; height:40px; background: linear-gradient(180deg, #c0a040 0%, #806020 100%); border-radius:2px; transform-origin: bottom center; animation: qps-sceptre 3s ease-in-out infinite; }
.scn-queen-pleads-for-suffolk .window { position:absolute; bottom:40%; left:70%; width:50px; height:70px; background: linear-gradient(180deg, #b0d0f0 0%, #8090b0 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: qps-window 10s ease-in-out infinite alternate; }
.scn-queen-pleads-for-suffolk .candle { position:absolute; bottom:15%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius:3px 3px 0 0; box-shadow: 0 -20px 30px 10px rgba(255,200,100,.4); animation: qps-candle 2s ease-in-out infinite alternate; }
@keyframes qps-king { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes qps-queen { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-48%) translateY(-3px) } 50% { transform: translateX(-50%) translateY(-1px) } 75% { transform: translateX(-52%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes qps-sceptre { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes qps-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes qps-candle { 0% { transform: scaleY(1); opacity:.9 } 100% { transform: scaleY(1.1); opacity:1 } }

.scn-queen-curses-henry-warwick {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 40%, #3a1515 100%), radial-gradient(ellipse at 50% 80%, #4a1a1a 0%, transparent 70%);
}
.scn-queen-curses-henry-warwick .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0f0508 0%, #1a0a10 60%, #2a1218 100%); animation: qch-deep 12s ease-in-out infinite alternate; }
.scn-queen-curses-henry-warwick .altar { position:absolute; bottom:20%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10px 10px 30% 30%; box-shadow: 0 -10px 30px rgba(200,50,50,.3); }
.scn-queen-curses-henry-warwick .queen-curse { position:absolute; bottom:30%; left:50%; width:38px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: inset 0 -12px 24px rgba(0,0,0,.5); animation: qch-queen 3s ease-in-out infinite; }
.scn-queen-curses-henry-warwick .hand-claw { position:absolute; bottom:45%; left:47%; width:18px; height:24px; background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: qch-claw 1.5s ease-in-out infinite; }
.scn-queen-curses-henry-warwick .candle-f { position:absolute; bottom:35%; left:30%; width:6px; height:18px; background: linear-gradient(180deg, #f0c080 0%, #c08040 100%); border-radius:2px; box-shadow: 0 -10px 20px 5px rgba(240,192,128,.5); animation: qch-candle 1.6s ease-in-out infinite alternate; }
.scn-queen-curses-henry-warwick .shadow-1 { position:absolute; bottom:20%; left:30%; width:40px; height:50px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(10px); animation: qch-shadow1 4s ease-in-out infinite; }
.scn-queen-curses-henry-warwick .shadow-2 { position:absolute; bottom:20%; right:30%; width:50px; height:60px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(12px); animation: qch-shadow2 5s ease-in-out infinite alternate; }
@keyframes qch-deep { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes qch-queen { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(-3deg) } 75% { transform: translateX(-50%) rotate(4deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes qch-claw { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(15deg) scaleY(1.1) } 50% { transform: rotate(-10deg) scaleY(0.9) } 75% { transform: rotate(20deg) scaleY(1.1) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes qch-candle { 0% { transform: scaleY(1); opacity:.7 } 100% { transform: scaleY(1.2); opacity:1 } }
@keyframes qch-shadow1 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(5px,-3px) scale(1.1) } 100% { transform: translate(-2px,2px) scale(0.9) } }
@keyframes qch-shadow2 { 0% { transform: translate(0,0) } 100% { transform: translate(-10px,5px) } }

.scn-queen-suffolk-parting {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%);
}
.scn-queen-suffolk-parting .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #151530 60%, #202040 100%); animation: qsp-night 15s ease-in-out infinite alternate; }
.scn-queen-suffolk-parting .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #2a2a4a 0px, #3a3a5a 2px, #2a2a4a 4px); animation: qsp-tiles 20s linear infinite; }
.scn-queen-suffolk-parting .figure-a { position:absolute; bottom:20%; left:35%; width:36px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0c0c1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: qsp-figA 8s ease-in-out infinite; }
.scn-queen-suffolk-parting .figure-b { position:absolute; bottom:20%; left:65%; width:38px; height:58px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0c0c1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: qsp-figB 8s ease-in-out infinite reverse; }
.scn-queen-suffolk-parting .lantern-s { position:absolute; bottom:35%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c0a060 0%, #806040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(192,160,96,.5), 0 0 40px 12px rgba(192,160,96,.2); animation: qsp-lantern 4s ease-in-out infinite alternate; }
.scn-queen-suffolk-parting .chain { position:absolute; bottom:50%; left:50%; width:2px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #605040 0%, #403020 100%); border-radius:1px; }
.scn-queen-suffolk-parting .mist { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(40,40,80,.4) 0%, transparent 100%); filter: blur(10px); animation: qsp-mist 12s ease-in-out infinite; }
@keyframes qsp-night { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes qsp-tiles { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes qsp-figA { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-46%) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-54%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes qsp-figB { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-54%) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-46%) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes qsp-lantern { 0% { transform: translateX(-50%) rotate(-5deg); opacity:.8 } 50% { transform: translateX(-50%) rotate(5deg); opacity:1 } 100% { transform: translateX(-50%) rotate(-3deg); opacity:.9 } }
@keyframes qsp-mist { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }

/* ===== london-palace-conspiracy (tense, bright-interior) ===== */
.scn-london-palace-conspiracy {
  background:
    linear-gradient(180deg, #f5e8c0 0%, #d4c8a0 30%, #b0a080 100%),
    radial-gradient(circle at 50% 20%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-london-palace-conspiracy .palace-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.15);
}
.scn-london-palace-conspiracy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-conic-gradient(#8a7a60 0% 25%, transparent 0% 50%) 0 0 / 60px 60px,
              linear-gradient(180deg, #9a8a70 0%, #6a5a40 100%);
  opacity: 0.9;
}
.scn-london-palace-conspiracy .window-warm {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #ffe8b0 0%, #f0c880 60%, #d0a050 100%);
  border-radius: 4px 4px 20px 20px;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.5), 0 0 80px rgba(255,200,100,0.3);
  animation: lpc-window 8s ease-in-out infinite alternate;
}
.scn-london-palace-conspiracy .column {
  position: absolute; bottom: 40%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 30%, #e0d0b0 50%, #c8b898 70%, #a89070 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-london-palace-conspiracy .column-left { left: 15%; }
.scn-london-palace-conspiracy .column-right { right: 15%; animation: lpc-column-sway 12s ease-in-out infinite; }
.scn-london-palace-conspiracy .conspirators {
  position: absolute; bottom: 30%; left: 20%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lpc-whisper 4s ease-in-out infinite;
}
.scn-london-palace-conspiracy .shadow-plot {
  position: absolute; bottom: 20%; left: 55%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: lpc-shadow-fade 6s ease-in-out infinite alternate;
}
.scn-london-palace-conspiracy .crown-glow {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 12%;
  background: radial-gradient(circle, #ffd070 0%, #c89550 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px rgba(200,150,80,0.4);
  animation: lpc-crown-pulse 3s ease-in-out infinite;
}

@keyframes lpc-window { 0% { opacity: 0.85; } 50% { opacity: 1; box-shadow: 0 0 80px rgba(255,200,100,0.5); } 100% { opacity: 0.8; } }
@keyframes lpc-column-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes lpc-whisper { 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 lpc-shadow-fade { 0% { opacity: 0.3; transform: scaleY(0.95); } 100% { opacity: 0.7; transform: scaleY(1.05); } }
@keyframes lpc-crown-pulse { 0%,100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.15); opacity: 1; } }

/* ===== london-palace-ambition (calm, bright-interior) ===== */
.scn-london-palace-ambition {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 40%, #c8b898 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,245,220,0.6) 0%, transparent 70%);
}
.scn-london-palace-ambition .hall-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #d8c8b0 0%, #e8dcc0 30%, #f0e8d0 50%, #e0d4b8 70%, #c8b898 100%);
}
.scn-london-palace-ambition .checkered-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-conic-gradient(#d0c0a0 0% 25%, #b8a888 0% 50%) 0 0 / 40px 40px;
  opacity: 0.8;
}
.scn-london-palace-ambition .sunbeam {
  position: absolute; top: 0; left: 20%; width: 10%; height: 65%;
  background: linear-gradient(180deg, rgba(255,245,200,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: lpa-beam-swing 18s ease-in-out infinite alternate;
}
.scn-london-palace-ambition .noble-figure {
  position: absolute; bottom: 25%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpa-bow 8s ease-in-out infinite;
}
.scn-london-palace-ambition .ambition-throne {
  position: absolute; bottom: 15%; left: 50%; width: 20%; height: 25%;
  background: linear-gradient(135deg, #b09878 0%, #8a7054 50%, #6a5438 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
}
.scn-london-palace-ambition .orb {
  position: absolute; top: 20%; left: 58%; width: 6%; height: 8%;
  background: radial-gradient(circle at 40% 30%, #f0e0b0 0%, #c09850 50%, #705030 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(192,152,80,0.5);
  animation: lpa-orb-glow 5s ease-in-out infinite alternate;
}
.scn-london-palace-ambition .curtain-left, .scn-london-palace-ambition .curtain-right {
  position: absolute; top: 0; width: 12%; height: 100%;
  background: linear-gradient(90deg, #8a2030 0%, #b03040 30%, #d04050 50%, #b03040 70%, #8a2030 100%);
  border-radius: 0 20% 20% 0 / 0 50% 50% 0;
  opacity: 0.7;
}
.scn-london-palace-ambition .curtain-left { left: 0; border-radius: 0 20% 20% 0; }
.scn-london-palace-ambition .curtain-right { right: 0; border-radius: 20% 0 0 20%; animation: lpa-curtain-sway 12s ease-in-out infinite; }

@keyframes lpa-beam-swing { 0% { transform: skewX(-3deg); opacity: 0.3; } 100% { transform: skewX(3deg); opacity: 0.5; } }
@keyframes lpa-bow { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes lpa-orb-glow { 0% { box-shadow: 0 0 20px rgba(192,152,80,0.3); } 100% { box-shadow: 0 0 50px rgba(192,152,80,0.6); } }
@keyframes lpa-curtain-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }

/* ===== london-palace-york-ambition (dark, bright-interior) ===== */
.scn-london-palace-york-ambition {
  background:
    linear-gradient(180deg, #c8c0b0 0%, #a09888 40%, #706860 100%),
    radial-gradient(circle at 60% 20%, rgba(200,190,170,0.4) 0%, transparent 60%);
}
.scn-london-palace-york-ambition .cold-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #a09888 0%, #b8b0a0 30%, #c0b8a8 50%, #a8a090 70%, #908878 100%);
}
.scn-london-palace-york-ambition .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #787060 0px 2px, #888070 2px 4px);
  opacity: 0.8;
}
.scn-london-palace-york-ambition .map-table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 16%;
  background: linear-gradient(180deg, #806858 0%, #605040 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-london-palace-york-ambition .york-figure {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a3030 0%, #201818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpy-lean 6s ease-in-out infinite;
}
.scn-london-palace-york-ambition .candle {
  position: absolute; bottom: 30%; left: 55%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e0c070 0%, #c8a050 60%, #806030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(200,160,80,0.6);
  animation: lpy-candle-flicker 1.6s ease-in-out infinite alternate;
}
.scn-london-palace-york-ambition .goblet {
  position: absolute; bottom: 24%; left: 38%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #b09880 0%, #706050 60%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.scn-london-palace-york-ambition .shadow-conspiracy {
  position: absolute; bottom: 15%; left: 10%; width: 60%; height: 35%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: lpy-shadow-move 10s ease-in-out infinite alternate;
}

@keyframes lpy-lean { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes lpy-candle-flicker { 0% { opacity: 0.7; box-shadow: 0 0 15px rgba(200,160,80,0.4); } 100% { opacity: 1; box-shadow: 0 0 25px rgba(200,160,80,0.7); } }
@keyframes lpy-shadow-move { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(10px) scaleY(1.1); } }

/* ===== gloucester-house-welcome (calm, dim-interior) ===== */
.scn-gloucester-house-welcome {
  background:
    linear-gradient(180deg, #2a2030 0%, #3a2a3a 30%, #4a3a4a 60%, #3a2a3a 100%),
    radial-gradient(ellipse at 30% 70%, rgba(60,40,30,0.6) 0%, transparent 60%);
}
.scn-gloucester-house-welcome .chamber-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
}
.scn-gloucester-house-welcome .night-window {
  position: absolute; top: 5%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 100%);
  border: 3px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,80,60,0.3);
  animation: ghw-night 20s ease-in-out infinite alternate;
}
.scn-gloucester-house-welcome .fireplace {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(20,10,5,0.5);
}
.scn-gloucester-house-welcome .fire-glow {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #e08040 0%, #d06030 30%, transparent 70%);
  filter: blur(8px);
  animation: ghw-fire-breathe 4s ease-in-out infinite alternate;
}
.scn-gloucester-house-welcome .duke-humphrey {
  position: absolute; bottom: 8%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ghw-sit-sag 6s ease-in-out infinite;
}
.scn-gloucester-house-welcome .armchair {
  position: absolute; bottom: 5%; left: 18%; width: 16%; height: 25%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
}
.scn-gloucester-house-welcome .scroll-desk {
  position: absolute; bottom: 5%; left: 50%; width: 16%; height: 12%;
  background: linear-gradient(90deg, #605040 0%, #7a6a5a 50%, #605040 100%);
  border-radius: 2px;
}
.scn-gloucester-house-welcome .footstool {
  position: absolute; bottom: 2%; left: 32%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
}

@keyframes ghw-night { 0% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 100%); } 100% { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a40 100%); } }
@keyframes ghw-fire-breathe { 0% { opacity: 0.4; transform: scaleY(0.9); } 100% { opacity: 0.8; transform: scaleY(1.1); } }
@keyframes ghw-sit-sag { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-1deg); } }

/* queen-flees-battle */
.scn-queen-flees-battle {
  background: linear-gradient(180deg, #ffe0a0 0%, #ffcc80 30%, #b0c4de 70%, #8a9bbd 100%), 
              radial-gradient(ellipse at 30% 80%, #ffd700 0%, transparent 60%);
}
.scn-queen-flees-battle .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffd080 0%, #ffe0a0 40%, transparent 100%);
  animation: qfb-sky 6s ease-in-out infinite alternate;
}
.scn-queen-flees-battle .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b08040 0%, #705020 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
  animation: qfb-ground 3s ease-in-out infinite;
}
.scn-queen-flees-battle .sun {
  position:absolute; top:15%; left:60%; width:40px; height:40px;
  background: radial-gradient(circle, #ffe680 0%, #ffd700 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.5);
  animation: qfb-sun 4s ease-in-out infinite alternate;
}
.scn-queen-flees-battle .queen-profile {
  position:absolute; bottom:30%; left:25%; width:14px; height:48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qfb-runner 1.6s ease-in-out infinite;
}
.scn-queen-flees-battle .soldier1 {
  position:absolute; bottom:32%; left:55%; width:16px; height:42px;
  background: linear-gradient(180deg, #2a2a2a 0%, #4a4a4a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qfb-runner 1.8s ease-in-out infinite;
}
.scn-queen-flees-battle .soldier2 {
  position:absolute; bottom:30%; left:70%; width:14px; height:38px;
  background: linear-gradient(180deg, #2a2a2a 0%, #4a4a4a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qfb-runner 2s ease-in-out infinite;
}
.scn-queen-flees-battle .dust-a {
  position:absolute; bottom:35%; left:20%; width:30px; height:15px;
  background: rgba(200,160,100,0.4);
  border-radius:50%; filter: blur(4px);
  animation: qfb-dust 2s ease-in-out infinite;
}
.scn-queen-flees-battle .dust-b {
  position:absolute; bottom:33%; left:60%; width:25px; height:12px;
  background: rgba(200,160,100,0.3);
  border-radius:50%; filter: blur(3px);
  animation: qfb-dust 2.5s ease-in-out infinite;
}
@keyframes qfb-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes qfb-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes qfb-sun   { 0% { transform:scale(0.9) rotate(0deg) } 50% { transform:scale(1.1) rotate(5deg) } 100% { transform:scale(0.95) rotate(-5deg) } }
@keyframes qfb-runner { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform:translateX(8px) translateY(0) rotate(2deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(0deg) } 100% { transform:translateX(16px) translateY(0) rotate(-2deg) } }
@keyframes qfb-dust  { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(8px) scale(1.3) } 100% { transform:translateX(16px) scale(1) } }

/* young-clifford-advises-flight */
.scn-young-clifford-advises-flight {
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 40%, #b09070 80%), 
              radial-gradient(ellipse at 50% 100%, #c0a070 0%, transparent 70%);
}
.scn-young-clifford-advises-flight .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffe0c0 0%, #f0d0b0 50%, transparent 100%);
  animation: yca-sky 8s ease-in-out infinite alternate;
}
.scn-young-clifford-advises-flight .road {
  position:absolute; bottom:25%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-young-clifford-advises-flight .clifford {
  position:absolute; bottom:30%; left:38%; width:20px; height:52px;
  background: linear-gradient(180deg, #1a1a1a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yca-gesture 3s ease-in-out infinite;
}
.scn-young-clifford-advises-flight .clifford::before {
  content:''; position:absolute; top:-10px; left:15px; width:12px; height:6px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(20deg);
  animation: yca-arm 3s ease-in-out infinite;
}
.scn-young-clifford-advises-flight .listener {
  position:absolute; bottom:30%; left:55%; width:18px; height:40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #4a4a4a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
}
.scn-young-clifford-advises-flight .city-silhouette {
  position:absolute; bottom:40%; right:5%; width:80px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  filter: blur(3px);
  animation: yca-city 12s ease-in-out infinite alternate;
}
.scn-young-clifford-advises-flight .dust-c {
  position:absolute; bottom:32%; left:20%; width:20px; height:10px;
  background: rgba(160,120,80,0.4);
  border-radius:50%; filter: blur(3px);
  animation: yca-dust 3s ease-in-out infinite;
}
.scn-young-clifford-advises-flight .banner-pole {
  position:absolute; bottom:35%; left:20%; width:2px; height:50px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: yca-banner 4s ease-in-out infinite;
}
@keyframes yca-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes yca-gesture { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 50% { transform:translateX(4px) translateY(-2px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }
@keyframes yca-arm    { 0% { transform: rotate(15deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(15deg) } }
@keyframes yca-city   { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.05) } 100% { transform:translateY(0) scale(0.95) } }
@keyframes yca-dust   { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(10px) scale(1.4) } 100% { transform:translateX(20px) scale(1) } }
@keyframes yca-banner { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

/* salisbury-safety-concern */
.scn-salisbury-safety-concern {
  background: linear-gradient(180deg, #8cb0d0 0%, #6a8caa 40%, #3a5a7a 80%), 
              radial-gradient(ellipse at 70% 20%, #b0d0e0 0%, transparent 60%);
}
.scn-salisbury-safety-concern .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #a0c0e0 0%, #c0d8f0 40%, transparent 100%);
  animation: ssc-sky 9s ease-in-out infinite alternate;
}
.scn-salisbury-safety-concern .hill {
  position:absolute; bottom:20%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  animation: ssc-hill 6s ease-in-out infinite;
}
.scn-salisbury-safety-concern .salisbury-figure {
  position:absolute; bottom:25%; left:35%; width:22px; height:55px;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssc-figure 4s ease-in-out infinite;
}
.scn-salisbury-safety-concern .salisbury-figure::before {
  content:''; position:absolute; top:-8px; left:-4px; width:10px; height:5px;
  background: #1a1a3a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-salisbury-safety-concern .richard-figure {
  position:absolute; bottom:25%; left:50%; width:18px; height:45px;
  background: linear-gradient(180deg, #2a2a4a 0%, #4a4a6a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ssc-figure 4s ease-in-out infinite reverse;
}
.scn-salisbury-safety-concern .staff {
  position:absolute; bottom:30%; left:42%; width:3px; height:60px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(10deg);
  animation: ssc-staff 5s ease-in-out infinite;
}
.scn-salisbury-safety-concern .ground-shadow {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
}
.scn-salisbury-safety-concern .dust-d {
  position:absolute; bottom:30%; left:60%; width:25px; height:12px;
  background: rgba(100,120,100,0.3);
  border-radius:50%; filter: blur(4px);
  animation: ssc-dust 3s ease-in-out infinite;
}
@keyframes ssc-sky    { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ssc-hill   { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes ssc-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 50% { transform:translateX(2px) translateY(-3px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }
@keyframes ssc-staff  { 0% { transform:rotate(8deg) } 50% { transform:rotate(12deg) } 100% { transform:rotate(8deg) } }
@keyframes ssc-dust   { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(6px) scale(1.2) } 100% { transform:translateX(12px) scale(1) } }

/* richard-reports-salisbury */
.scn-richard-reports-salisbury {
  background: linear-gradient(180deg, #f0c880 0%, #d0a060 30%, #b08040 70%), 
              radial-gradient(ellipse at 60% 30%, #ffd700 0%, transparent 50%);
}
.scn-richard-reports-salisbury .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #ffd080 0%, #ffe0a0 50%, transparent 100%);
  animation: rrs-sky 12s ease-in-out infinite alternate;
}
.scn-richard-reports-salisbury .ground-warm {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 30% 70% 0 0 / 40% 30% 0 0;
}
.scn-richard-reports-salisbury .campfire {
  position:absolute; bottom:30%; left:50%; width:30px; height:30px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.5);
  animation: rrs-fire 2s ease-in-out infinite alternate;
}
.scn-richard-reports-salisbury .richard-arm {
  position:absolute; bottom:32%; left:42%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: rrs-support 6s ease-in-out infinite;
}
.scn-richard-reports-salisbury .salisbury-old {
  position:absolute; bottom:30%; left:55%; width:22px; height:48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rrs-figure 6s ease-in-out infinite;
}
.scn-richard-reports-salisbury .glow-orb {
  position:absolute; bottom:38%; left:52%; width:8px; height:8px;
  background: radial-gradient(circle, #ffe080 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 8px rgba(255,224,128,0.6);
  animation: rrs-glow 3s ease-in-out infinite alternate;
}
.scn-richard-reports-salisbury .ember-a {
  position:absolute; bottom:35%; left:48%; width:4px; height:4px;
  background: #ff8000;
  border-radius:50%;
  animation: rrs-ember 1.5s ease-in-out infinite;
}
.scn-richard-reports-salisbury .ember-b {
  position:absolute; bottom:34%; left:53%; width:5px; height:5px;
  background: #ffa040;
  border-radius:50%;
  animation: rrs-ember 2s ease-in-out infinite reverse;
}
@keyframes rrs-sky     { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes rrs-fire    { 0% { transform:scale(0.9) } 50% { transform:scale(1.2) } 100% { transform:scale(1) } }
@keyframes rrs-support { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 50% { transform:translateX(3px) translateY(-2px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }
@keyframes rrs-figure  { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(-2px) rotate(1deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes rrs-glow    { 0% { opacity:0.7; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.8; transform:scale(1) } }
@keyframes rrs-ember   { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-8px) scale(1.5) } 100% { transform:translateY(0) scale(0.5) } }

/* abbey-parliament-suffolk-reinforces – tense, bright interior */
.scn-abbey-parliament-suffolk-reinforces {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b8a88c 50%, #9c8c70 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 60%);
}
.scn-abbey-parliament-suffolk-reinforces .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
}
.scn-abbey-parliament-suffolk-reinforces .back-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c4b498 0%, #a8987c 100%);
}
.scn-abbey-parliament-suffolk-reinforces .window-arch {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #fff5e0 0%, #e8dcc0 40%, transparent 60%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px #fff5e0;
}
.scn-abbey-parliament-suffolk-reinforces .sunlight {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,245,224,0.5) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: ap1-sunlight 8s ease-in-out infinite alternate;
}
.scn-abbey-parliament-suffolk-reinforces .pillar-left {
  position: absolute; top: 10%; left: 15%; width: 6%; height: 65%;
  background: linear-gradient(90deg, #8a7a6a 0%, #b8a88c 30%, #8a7a6a 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-abbey-parliament-suffolk-reinforces .pillar-right {
  position: absolute; top: 10%; right: 15%; width: 6%; height: 65%;
  background: linear-gradient(90deg, #8a7a6a 0%, #b8a88c 30%, #8a7a6a 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-abbey-parliament-suffolk-reinforces .figure-suffolk {
  position: absolute; bottom: 28%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap1-figure-s 4s ease-in-out infinite;
}
.scn-abbey-parliament-suffolk-reinforces .figure-others {
  position: absolute; bottom: 28%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap1-figure-o 5s ease-in-out infinite;
}
.scn-abbey-parliament-suffolk-reinforces .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(10,5,20,0.3) 0%, transparent 70%);
  animation: ap1-shadow 6s ease-in-out infinite alternate;
}
@keyframes ap1-sunlight {
  0% { opacity: 0.6; transform: skewX(-2deg); }
  50% { opacity: 1; transform: skewX(0deg); }
  100% { opacity: 0.7; transform: skewX(2deg); }
}
@keyframes ap1-figure-s {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes ap1-figure-o {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes ap1-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* abbey-parliament-suffolk-conslies – tense, bright interior */
.scn-abbey-parliament-suffolk-conslies {
  background: 
    linear-gradient(180deg, #cfbea8 0%, #b09e88 50%, #917e68 100%),
    radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 70%);
}
.scn-abbey-parliament-suffolk-conslies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5c4c3c 0%, #3c2c1c 100%);
}
.scn-abbey-parliament-suffolk-conslies .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b8a490 0%, #9c8874 100%);
}
.scn-abbey-parliament-suffolk-conslies .table {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-abbey-parliament-suffolk-conslies .figure-left {
  position: absolute; bottom: 32%; left: 22%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap2-figure-l 4.5s ease-in-out infinite;
}
.scn-abbey-parliament-suffolk-conslies .figure-right {
  position: absolute; bottom: 32%; right: 22%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap2-figure-r 5s ease-in-out infinite;
}
.scn-abbey-parliament-suffolk-conslies .figure-center {
  position: absolute; bottom: 30%; left: 46%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap2-figure-c 3s ease-in-out infinite;
}
.scn-abbey-parliament-suffolk-conslies .light-pool {
  position: absolute; top: 8%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse, #fff5e0 0%, transparent 70%);
  opacity: 0.4;
  animation: ap2-light 7s ease-in-out infinite alternate;
}
.scn-abbey-parliament-suffolk-conslies .chandelier {
  position: absolute; top: 2%; left: 46%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #d4a040 0%, transparent 60%);
  box-shadow: 0 0 20px 5px #d4a040;
  border-radius: 50% 50% 0 0;
  animation: ap2-chandelier 6s ease-in-out infinite;
}
@keyframes ap2-figure-l {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes ap2-figure-r {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(-1deg); }
  80% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes ap2-figure-c {
  0%, 100% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-3px) scaleY(1.02); }
  75% { transform: translateY(-1px) scaleY(0.98); }
}
@keyframes ap2-light {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes ap2-chandelier {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}

/* abbey-parliament-accusations-mount – tense, bright interior */
.scn-abbey-parliament-accusations-mount {
  background: 
    linear-gradient(180deg, #d8c8b0 0%, #b8a890 50%, #988878 100%),
    radial-gradient(ellipse at 60% 20%, #fff5e0 0%, transparent 70%);
}
.scn-abbey-parliament-accusations-mount .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-abbey-parliament-accusations-mount .back-wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
}
.scn-abbey-parliament-accusations-mount .arch {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #e8dcc0 0%, transparent 60%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-abbey-parliament-accusations-mount .figure-accuser {
  position: absolute; bottom: 28%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap3-accuser 3s ease-in-out infinite;
}
.scn-abbey-parliament-accusations-mount .figure-accused {
  position: absolute; bottom: 28%; left: 50%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap3-accused 4s ease-in-out infinite;
}
.scn-abbey-parliament-accusations-mount .shadow-accuser {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 10%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ap3-shad-a 3.5s ease-in-out infinite alternate;
}
.scn-abbey-parliament-accusations-mount .shadow-accused {
  position: absolute; bottom: 22%; left: 48%; width: 18%; height: 8%;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(4px);
  animation: ap3-shad-b 4s ease-in-out infinite alternate;
}
.scn-abbey-parliament-accusations-mount .dais {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
}
@keyframes ap3-accuser {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes ap3-accused {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(-2deg); }
  80% { transform: translateY(0) rotate(1deg); }
}
@keyframes ap3-shad-a {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.2; }
}
@keyframes ap3-shad-b {
  0% { transform: scaleX(1); opacity: 0.25; }
  50% { transform: scaleX(1.1); opacity: 0.4; }
  100% { transform: scaleX(0.8); opacity: 0.15; }
}

/* abbey-parliament-queen-warwick-comparison – tense, bright interior */
.scn-abbey-parliament-queen-warwick-comparison {
  background: 
    linear-gradient(180deg, #d0c0a8 0%, #b0a088 50%, #908070 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-abbey-parliament-queen-warwick-comparison .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-abbey-parliament-queen-warwick-comparison .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
}
.scn-abbey-parliament-queen-warwick-comparison .pillar-left {
  position: absolute; top: 10%; left: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #8a7a6a 0%, #b8a88c 30%, #8a7a6a 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-abbey-parliament-queen-warwick-comparison .pillar-right {
  position: absolute; top: 10%; right: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #8a7a6a 0%, #b8a88c 30%, #8a7a6a 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-abbey-parliament-queen-warwick-comparison .figure-queen {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap4-queen 3.5s ease-in-out infinite;
}
.scn-abbey-parliament-queen-warwick-comparison .figure-warwick {
  position: absolute; bottom: 25%; right: 30%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap4-warwick 4.2s ease-in-out infinite;
}
.scn-abbey-parliament-queen-warwick-comparison .dove {
  position: absolute; bottom: 45%; left: 35%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #fff5e0 0%, #d0c0a0 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: ap4-dove 6s ease-in-out infinite alternate;
}
.scn-abbey-parliament-queen-warwick-comparison .raven {
  position: absolute; bottom: 45%; right: 35%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: ap4-raven 7s ease-in-out infinite alternate;
}
.scn-abbey-parliament-queen-warwick-comparison .throne {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
@keyframes ap4-queen {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes ap4-warwick {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(-1deg); }
  80% { transform: translateY(0) rotate(1deg); }
}
@keyframes ap4-dove {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-8px) scaleY(0.9); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ap4-raven {
  0% { transform: translateY(0) scaleY(1) rotate(0deg); }
  30% { transform: translateY(-5px) scaleY(0.85) rotate(5deg); }
  70% { transform: translateY(-3px) scaleY(0.9) rotate(-5deg); }
  100% { transform: translateY(0) scaleY(1) rotate(0deg); }
}

/* conspirators-advocate-murder */
.scn-conspirators-advocate-murder {
  background: linear-gradient(180deg, #1f1a1a 0%, #2a1f1a 40%, #1f1410 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1010 70%);
}
.scn-conspirators-advocate-murder .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #3a2a1a 60%, #1f1410 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: cam-wall 12s ease-in-out infinite alternate;
}
.scn-conspirators-advocate-murder .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-conspirators-advocate-murder .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cam-table 8s ease-in-out infinite;
}
.scn-conspirators-advocate-murder .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c878 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: cam-candle 3s ease-in-out infinite alternate;
}
.scn-conspirators-advocate-murder .glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(255,200,80,.8) 0%, rgba(200,140,40,.4) 40%, transparent 70%);
  border-radius: 50%;
  animation: cam-glow 3s ease-in-out infinite alternate;
}
.scn-conspirators-advocate-murder .figure-a {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cam-fig-a 6s ease-in-out infinite;
}
.scn-conspirators-advocate-murder .figure-b {
  position: absolute; bottom: 18%; left: 52%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1f1810 0%, #100c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cam-fig-b 7s ease-in-out infinite;
}
.scn-conspirators-advocate-murder .figure-c {
  position: absolute; bottom: 18%; left: 70%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cam-fig-c 8s ease-in-out infinite;
}
.scn-conspirators-advocate-murder .shadow {
  position: absolute; bottom: 15%; left: 50%; width: 140px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.6) 50%, rgba(0,0,0,.4) 70%, transparent 100%);
  filter: blur(4px);
  animation: cam-shadow 10s ease-in-out infinite alternate;
}
@keyframes cam-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cam-table { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes cam-candle { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes cam-glow { 0% { opacity:0.7; transform: translate(-50%,0) scale(1); } 50% { opacity:1; transform: translate(-50%,0) scale(1.2); } 100% { opacity:0.8; transform: translate(-50%,0) scale(0.9); } }
@keyframes cam-fig-a { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } }
@keyframes cam-fig-b { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg); } 33% { transform: translateX(-1px) translateY(-1px) rotate(0deg); } 66% { transform: translateX(1px) translateY(0) rotate(3deg); } }
@keyframes cam-fig-c { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg); } }
@keyframes cam-shadow { 0% { opacity:0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.6; transform: translateX(-50%) scaleX(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scaleX(0.9); } }

/* conspirators-agree-murder */
.scn-conspirators-agree-murder {
  background: linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #1a1410 100%),
              radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, #1a1010 70%);
}
.scn-conspirators-agree-murder .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #3a2a1a 60%, #1f1410 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: cag-room 15s ease-in-out infinite alternate;
}
.scn-conspirators-agree-murder .table {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cag-table 10s ease-in-out infinite;
}
.scn-conspirators-agree-murder .dagger {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 30px;
  transform: translateX(-50%) rotate(-20deg);
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 10% 10% 60% 60% / 10% 10% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(192,160,112,.4);
  animation: cag-dagger 5s ease-in-out infinite alternate;
}
.scn-conspirators-agree-murder .glow {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 50px;
  transform: translate(-50%,0);
  background: radial-gradient(circle, rgba(255,180,60,.7) 0%, rgba(200,120,40,.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: cag-glow 4s ease-in-out infinite alternate;
}
.scn-conspirators-agree-murder .figure-left {
  position: absolute; bottom: 18%; left: 32%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cag-fig-l 6s ease-in-out infinite;
}
.scn-conspirators-agree-murder .figure-right {
  position: absolute; bottom: 18%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cag-fig-r 7s ease-in-out infinite;
}
.scn-conspirators-agree-murder .shadow {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.7) 50%, rgba(0,0,0,.5) 70%, transparent 100%);
  filter: blur(5px);
  animation: cag-shadow 12s ease-in-out infinite alternate;
}
@keyframes cag-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cag-table { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes cag-dagger { 0% { transform: translateX(-50%) rotate(-20deg); } 50% { transform: translateX(-50%) rotate(-25deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes cag-glow { 0% { opacity:0.6; transform: translate(-50%,0) scale(1); } 50% { opacity:1; transform: translate(-50%,0) scale(1.3); } 100% { opacity:0.7; transform: translate(-50%,0) scale(0.9); } }
@keyframes cag-fig-l { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); } }
@keyframes cag-fig-r { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 66% { transform: translateX(1px) translateY(0) rotate(1deg); } }
@keyframes cag-shadow { 0% { opacity:0.5; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.7; transform: translateX(-50%) scaleX(1.1); } 100% { opacity:0.6; transform: translateX(-50%) scaleX(0.9); } }

/* news-ireland-rebellion */
.scn-news-ireland-rebellion {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 60% 30%, #4a2a3a 0%, #1a1a2a 70%);
}
.scn-news-ireland-rebellion .bg-hall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 60%, #1a1a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: nir-hall 10s ease-in-out infinite alternate;
}
.scn-news-ireland-rebellion .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-news-ireland-rebellion .door {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform-origin: left center;
  animation: nir-door 6s ease-in-out infinite;
}
.scn-news-ireland-rebellion .messenger {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1f1a1a 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nir-mess 4s ease-in-out infinite;
}
.scn-news-ireland-rebellion .lord-seated {
  position: absolute; bottom: 18%; left: 60%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nir-lord-s 7s ease-in-out infinite;
}
.scn-news-ireland-rebellion .lord-standing {
  position: absolute; bottom: 18%; left: 75%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nir-lord-st 8s ease-in-out infinite;
}
.scn-news-ireland-rebellion .letter {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 18px;
  background: linear-gradient(135deg, #d0b080 0%, #a08040 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: nir-letter 3s ease-in-out infinite;
}
.scn-news-ireland-rebellion .shadow-mess {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: nir-shad 5s ease-in-out infinite;
}
@keyframes nir-hall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nir-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-60deg); } 75% { transform: rotateY(-60deg); } 100% { transform: rotateY(0deg); } }
@keyframes nir-mess { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-1px) rotate(2deg); } }
@keyframes nir-lord-s { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 66% { transform: translateX(2px) translateY(0) rotate(2deg); } }
@keyframes nir-lord-st { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } }
@keyframes nir-letter { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes nir-shad { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(15px); } 100% { opacity:0.4; transform: translateX(0); } }

/* york-somerset-quarrel */
.scn-york-somerset-quarrel {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, #1a1a2a 70%);
}
.scn-york-somerset-quarrel .bg-court {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 60%, #1a1a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: ysq-court 12s ease-in-out infinite alternate;
}
.scn-york-somerset-quarrel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-york-somerset-quarrel .york {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ysq-york 5s ease-in-out infinite;
}
.scn-york-somerset-quarrel .somerset {
  position: absolute; bottom: 20%; left: 60%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ysq-som 6s ease-in-out infinite;
}
.scn-york-somerset-quarrel .table {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ysq-table 8s ease-in-out infinite;
}
.scn-york-somerset-quarrel .map {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%) rotate(5deg);
  background: linear-gradient(135deg, #d0b080 0%, #a08040 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ysq-map 7s ease-in-out infinite alternate;
}
.scn-york-somerset-quarrel .shadow-quarrel {
  position: absolute; bottom: 16%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ysq-shad 10s ease-in-out infinite alternate;
}
@keyframes ysq-court { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ysq-york { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-4px) translateY(-2px) rotate(-5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-3deg); } }
@keyframes ysq-som { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(3deg); } }
@keyframes ysq-table { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes ysq-map { 0% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ysq-shad { 0% { opacity:0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.6; transform: translateX(-50%) scaleX(1.2); } 100% { opacity:0.5; transform: translateX(-50%) scaleX(0.8); } }

/* Scene 1: stanley-takes-custody - warm sunlit garden */
.scn-stanley-takes-custody {
  background: linear-gradient(180deg, #fcea9f 0%, #e8c076 40%, #b8854a 100%) , radial-gradient(ellipse at 50% 100%, #d9a96e 0%, transparent 60%);
}
.scn-stanley-takes-custody .sun {
  position: absolute; top: -10%; left: 70%; width: 18%; height: 30%;
  background: radial-gradient(circle, #fff5d6 0%, #ffdfa0 50%, transparent 100%);
  filter: blur(4px); animation: stc-sun 6s ease-in-out infinite alternate;
}
.scn-stanley-takes-custody .doorway {
  position: absolute; bottom: 20%; left: 25%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #7a4a2e 0%, #3a2212 100%);
  border-radius: 12% 12% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateY(8deg);
}
.scn-stanley-takes-custody .figure-a {
  position: absolute; bottom: 15%; left: 32%; width: 7%; height: 25%;
  background: linear-gradient(180deg, #4b3824 0%, #2e1f12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stc-figA 4s ease-in-out infinite;
}
.scn-stanley-takes-custody .figure-b {
  position: absolute; bottom: 15%; left: 45%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3320 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stc-figB 5s ease-in-out infinite;
}
.scn-stanley-takes-custody .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c4a060 0%, #8b6d3f 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-stanley-takes-custody .shadow-light {
  position: absolute; bottom: 18%; left: 30%; width: 30%; height: 6%;
  background: rgba(255,230,180,0.25); filter: blur(8px);
  animation: stc-shadow 6s ease-in-out infinite alternate;
}
.scn-stanley-takes-custody .leaf-drift {
  position: absolute; top: 30%; left: 0; width: 20px; height: 12px;
  background: #7a693a; border-radius: 40% 60% 60% 40%;
  filter: blur(1px); opacity: 0.5; animation: stc-leaf 14s linear infinite;
}
@keyframes stc-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(1.05); } 100% { transform: translateX(-4px) scale(0.95); } }
@keyframes stc-figA { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes stc-figB { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes stc-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes stc-leaf { 0% { transform: translateX(-20px) rotate(0deg); } 100% { transform: translateX(120vw) rotate(360deg); } }

/* Scene 2: eleanor-resigned - dark mood, sunlit window */
.scn-eleanor-resigned {
  background: linear-gradient(180deg, #4a3b2e 0%, #2d221a 40%, #1a1410 100%) , radial-gradient(ellipse at 50% 0%, #735a3a 0%, transparent 60%);
}
.scn-eleanor-resigned .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px rgba(255,220,150,0.3), 0 0 40px rgba(255,220,150,0.2);
}
.scn-eleanor-resigned .light-shaft {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: er-shaft 8s ease-in-out infinite alternate;
}
.scn-eleanor-resigned .figure {
  position: absolute; bottom: 20%; left: 48%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2f1f15 0%, #0f0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er-figure 6s ease-in-out infinite;
}
.scn-eleanor-resigned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f150c 100%);
  border-radius: 20% 20% 0 0;
}
.scn-eleanor-resigned .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(180deg, #4a3b30 0%, #2e221a 100%);
}
.scn-eleanor-resigned .chair {
  position: absolute; bottom: 18%; left: 55%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #5a3f2a 0%, #3a2515 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: er-chair 10s ease-in-out infinite alternate;
}
.scn-eleanor-resigned .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 2px; height: 2px;
  background: #f0d8a0; border-radius: 50%; box-shadow: 10px 10px 0 #f0d8a0, 20px -5px 0 #f0d8a0, -10px 15px 0 #f0d8a0, 5px -20px 0 #f0d8a0;
  filter: blur(1px); animation: er-dust 15s linear infinite;
}
@keyframes er-shaft { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.05); } 100% { opacity: 0.5; transform: scaleY(0.95); } }
@keyframes er-figure { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes er-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes er-dust { 0% { transform: translate(0,0); } 100% { transform: translate(20px, -30px); } }

/* Scene 3: eleanor-farewell-sheriff - dark mood, sunlit street */
.scn-eleanor-farewell-sheriff {
  background: linear-gradient(180deg, #7a6a52 0%, #4a3b2a 50%, #2a1f14 100%) , radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%);
}
.scn-eleanor-farewell-sheriff .door {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2818 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-eleanor-farewell-sheriff .figure-duchess {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0f0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: efs-duchess 5s ease-in-out infinite;
}
.scn-eleanor-farewell-sheriff .figure-sheriff {
  position: absolute; bottom: 18%; left: 52%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: efs-sheriff 4s ease-in-out infinite;
}
.scn-eleanor-farewell-sheriff .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #8a7a62 0%, #5a4a36 100%);
  border-radius: 40% 40% 0 0;
}
.scn-eleanor-farewell-sheriff .shadow-door {
  position: absolute; bottom: 18%; left: 30%; width: 25%; height: 10%;
  background: rgba(0,0,0,0.4); filter: blur(6px);
  animation: efs-shadow 6s ease-in-out infinite alternate;
}
.scn-eleanor-farewell-sheriff .cobblestones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, #6a5a44 0px, #6a5a44 4px, #8a7a62 4px, #8a7a62 8px);
  opacity: 0.5;
}
.scn-eleanor-farewell-sheriff .lantern-post {
  position: absolute; bottom: 20%; left: 60%; width: 2%; height: 30%;
  background: #4a3a2a; border-radius: 4px 4px 0 0;
  animation: efs-post 8s ease-in-out infinite;
}
.scn-eleanor-farewell-sheriff .lantern-post::after {
  content: ''; position: absolute; top: -8%; left: -50%; width: 200%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  box-shadow: 0 0 20px 10px rgba(255,208,128,0.4);
}
@keyframes efs-duchess { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes efs-sheriff { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes efs-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.9; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes efs-post { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }

/* Scene 4: abbey-parliament-york-accuses - tense bright interior */
.scn-abbey-parliament-york-accuses {
  background: linear-gradient(180deg, #d4c8a8 0%, #b4a484 50%, #8a7a5a 100%) , radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%);
}
.scn-abbey-parliament-york-accuses .columns {
  position: absolute; top: 0; bottom: 0; left: 10%; width: 6%;
  background: linear-gradient(90deg, #8a7a5a 0%, #a09070 50%, #7a6a4a 100%);
  border-radius: 4px; box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: apy-columns 8s ease-in-out infinite alternate;
}
.scn-abbey-parliament-york-accuses .columns::before {
  content: ''; position: absolute; top: 0; bottom: 0; left: -200%; width: 200%;
  background: linear-gradient(90deg, transparent 10%, rgba(255,230,180,0.2) 50%, transparent 90%);
  filter: blur(4px);
}
.scn-abbey-parliament-york-accuses .rostrum {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 12% 12% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateX(10deg);
}
.scn-abbey-parliament-york-accuses .figure-york {
  position: absolute; bottom: 20%; left: 42%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: apy-york 3s ease-in-out infinite;
}
.scn-abbey-parliament-york-accuses .figure-york::after {
  content: ''; position: absolute; top: 20%; left: 90%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 30% 10% 10% 30%; transform: rotate(20deg);
  animation: apy-arm 2s ease-in-out infinite alternate;
}
.scn-abbey-parliament-york-accuses .figures-back {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 35%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 12px);
  mask: linear-gradient(180deg, black 60%, transparent 100%);
  -webkit-mask: linear-gradient(180deg, black 60%, transparent 100%);
  animation: apy-back 12s ease-in-out infinite;
}
.scn-abbey-parliament-york-accuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-abbey-parliament-york-accuses .light-pool {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: apy-light 5s ease-in-out infinite alternate;
}
.scn-abbey-parliament-york-accuses .torch-flicker {
  position: absolute; top: 15%; left: 25%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, transparent 100%);
  box-shadow: 0 0 30px 15px rgba(255,160,64,0.4);
  animation: apy-torch 1.5s steps(2) infinite;
}
@keyframes apy-columns { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes apy-york { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes apy-arm { 0% { transform: rotate(20deg) scale(1); } 100% { transform: rotate(40deg) scale(1.1); } }
@keyframes apy-back { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes apy-light { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes apy-torch { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.8; transform: scaleY(0.9); } }

.scn-combat-peter-victory {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 30%, #a07040 60%, #d0a070 100%),
              radial-gradient(ellipse at 30% 40%, #ffd080 0%, transparent 50%);
}
.scn-combat-peter-victory .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #3a2010, #5a3020);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-combat-peter-victory .wall-left {
  position: absolute; top: 0; left: 0; width: 40%; bottom: 25%;
  background: linear-gradient(135deg, #5a3a2a, #3a1a0a);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-combat-peter-victory .wall-right {
  position: absolute; top: 0; right: 0; width: 40%; bottom: 25%;
  background: linear-gradient(225deg, #5a3a2a, #3a1a0a);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-combat-peter-victory .figure-peter {
  position: absolute; bottom: 28%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpv-strike 1.8s ease-in-out infinite;
}
.scn-combat-peter-victory .figure-foe {
  position: absolute; bottom: 27%; right: 38%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #4a2a1a, #3a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpv-fall 2.2s ease-in-out infinite;
}
.scn-combat-peter-victory .sword {
  position: absolute; bottom: 42%; left: 42%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0, #808080);
  border-radius: 2px;
  transform: rotate(25deg);
  animation: cpv-slash 1.8s ease-in-out infinite;
  box-shadow: 0 0 6px #aaa;
}
.scn-combat-peter-victory .light-shard {
  position: absolute; top: 30%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,224,128,0.6);
  animation: cpv-flicker 1.6s ease-in-out infinite alternate;
}
@keyframes cpv-strike {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(10deg) translateX(8px); }
  50% { transform: rotate(-5deg) translateX(0); }
  75% { transform: rotate(10deg) translateX(-8px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes cpv-fall {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(5deg) translateY(-2px); }
  40% { transform: rotate(-10deg) translateY(6px); opacity: 0.9; }
  60% { transform: rotate(-20deg) translateY(15px); opacity: 0.7; }
  100% { transform: rotate(-30deg) translateY(30px); opacity: 0; }
}
@keyframes cpv-slash {
  0% { transform: rotate(25deg) scaleX(1); }
  25% { transform: rotate(45deg) scaleX(1.2); }
  50% { transform: rotate(25deg) scaleX(1); }
  75% { transform: rotate(5deg) scaleX(1.2); }
  100% { transform: rotate(25deg) scaleX(1); }
}
@keyframes cpv-flicker {
  0% { opacity: 0.7; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

.scn-combat-king-justice {
  background: linear-gradient(180deg, #4a3020 0%, #7a5030 40%, #b08050 80%, #e0c090 100%),
              radial-gradient(ellipse at 50% 20%, #ffd090 0%, transparent 60%);
}
.scn-combat-king-justice .throne-bg {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a, #3a2010);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-combat-king-justice .king {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #c08050, #8a6030);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ckj-breathe 4s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-combat-king-justice .guard-left {
  position: absolute; bottom: 25%; left: 22%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
}
.scn-combat-king-justice .guard-right {
  position: absolute; bottom: 25%; right: 22%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
}
.scn-combat-king-justice .traitor {
  position: absolute; bottom: 24%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ckj-bow 3s ease-in-out infinite;
}
.scn-combat-king-justice .banner {
  position: absolute; top: 10%; left: 65%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #a07040, #6a4a2a);
  border-radius: 0 0 30% 30%;
  transform-origin: top center;
  animation: ckj-wave 5s ease-in-out infinite;
}
.scn-combat-king-justice .light-ray {
  position: absolute; top: 0; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(255,224,160,0.4), transparent);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: ckj-shine 6s ease-in-out infinite alternate;
}
@keyframes ckj-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ckj-bow {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ckj-wave {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ckj-shine {
  0% { opacity: 0.3; transform: scaleX(0.8); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}

.scn-street-penance-gloucester {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 30%, #e0e8f0 60%, #c0c8d0 100%),
              radial-gradient(ellipse at 60% 20%, #fff4d0 0%, transparent 50%);
}
.scn-street-penance-gloucester .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #b0d0e0, #d0e0f0 60%, #e8f0f8);
  animation: spg-sky 12s ease-in-out infinite alternate;
}
.scn-street-penance-gloucester .sun-half {
  position: absolute; top: 12%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,200,64,0.5);
  animation: spg-sun 8s ease-in-out infinite alternate;
}
.scn-street-penance-gloucester .cloud-gloom {
  position: absolute; top: 8%; right: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(100,100,120,0.7), rgba(80,80,100,0.3));
  border-radius: 50%;
  filter: blur(8px);
  animation: spg-cloud 30s linear infinite;
}
.scn-street-penance-gloucester .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-street-penance-gloucester .figure-silhouette {
  position: absolute; bottom: 32%; left: 25%; width: 20px; height: 55px;
  background: #2a2a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spg-walk 5s ease-in-out infinite;
}
.scn-street-penance-gloucester .shadow-long {
  position: absolute; bottom: 10%; left: 20%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: spg-shadow 5s ease-in-out infinite;
}
.scn-street-penance-gloucester .tower-spire {
  position: absolute; bottom: 65%; left: 40%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-5deg);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
@keyframes spg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes spg-sun {
  0% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 30px 10px rgba(255,200,64,0.4); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 60px 30px rgba(255,200,64,0.7); }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 40px 15px rgba(255,200,64,0.5); }
}
@keyframes spg-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-200px); }
}
@keyframes spg-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(-2deg); }
  75% { transform: translateX(30px) rotate(2deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
@keyframes spg-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.2; }
  50% { transform: translateX(20px) scaleX(1.5); opacity: 0.3; }
  100% { transform: translateX(40px) scaleX(1); opacity: 0.2; }
}

.scn-eleanor-penance-sheet {
  background: linear-gradient(180deg, #b0c8d8 0%, #d0dce8 30%, #e8f0f8 60%, #f8f8fc 100%),
              radial-gradient(ellipse at 80% 50%, #ffecb0 0%, transparent 50%);
}
.scn-eleanor-penance-sheet .sky-pale {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #c0d0e0, #e0e8f0);
  animation: eps-sky 10s ease-in-out infinite alternate;
}
.scn-eleanor-penance-sheet .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #6a5a4a, #8a7a6a);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-eleanor-penance-sheet .figure-duchess {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #d0c0b0, #a09080);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: eps-sway 4s ease-in-out infinite;
}
.scn-eleanor-penance-sheet .sheet-drape {
  position: absolute; bottom: 35%; left: 44%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #ffffff, #e0d8d0);
  border-radius: 40% 40% 20% 20%;
  opacity: 0.9;
  animation: eps-flutter 3s ease-in-out infinite alternate;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.1));
}
.scn-eleanor-penance-sheet .taper-flame {
  position: absolute; bottom: 62%; left: 52%; width: 10px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, #ffa040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.5);
  animation: eps-flame 1.8s ease-in-out infinite alternate;
}
.scn-eleanor-penance-sheet .taper-stick {
  position: absolute; bottom: 36%; left: 53%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d0a080, #8a6030);
  border-radius: 2px;
  transform: rotate(2deg);
}
.scn-eleanor-penance-sheet .crowd-shade {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(0deg, rgba(50,40,30,0.3), transparent);
  border-radius: 50%;
  filter: blur(12px);
  animation: eps-crowd 5s ease-in-out infinite alternate;
}
@keyframes eps-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes eps-sway {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes eps-flutter {
  0% { transform: skewX(0deg); opacity: 0.85; }
  50% { transform: skewX(-5deg); opacity: 0.95; }
  100% { transform: skewX(5deg); opacity: 0.85; }
}
@keyframes eps-flame {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.3) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes eps-crowd {
  0% { opacity: 0.3; transform: scaleX(0.95); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(0.98); }
}

/* gloucester-committed-cardinal (tag: gc1) */
.scn-gloucester-committed-cardinal {
  background: linear-gradient(180deg, #3a2e28 0%, #5a4438 20%, #7a5c4a 40%, #5a4438 70%, #3a2e28 100%),
              radial-gradient(ellipse at 50% 80%, #b08860 0%, #5a4438 80%, transparent 100%);
}
.scn-gloucester-committed-cardinal .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #4a3a2e 30%, #6a4e3a 60%, #4a3a2e 100%); animation: gc1-bg 8s ease-in-out infinite alternate; }
.scn-gloucester-committed-cardinal .cardinal { position:absolute; bottom:20%; left:15%; width:80px; height:120px; background: linear-gradient(180deg, #5e1a1d 0%, #702243 40%, #4a1012 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(112,34,67,.5); transform-origin: bottom center; animation: gc1-cardinal 4s ease-in-out infinite; }
.scn-gloucester-committed-cardinal .gloucester { position:absolute; bottom:18%; right:20%; width:60px; height:80px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: rotate(15deg) translateY(10px); animation: gc1-gloucester 6s ease-in-out infinite; }
.scn-gloucester-committed-cardinal .guard { position:absolute; bottom:22%; width:40px; height:100px; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 50%, #2a3a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; }
.scn-gloucester-committed-cardinal .guard-l { left:35%; animation: gc1-guard-l 7s ease-in-out infinite; }
.scn-gloucester-committed-cardinal .guard-r { right:35%; animation: gc1-guard-r 7s ease-in-out infinite reverse; }
.scn-gloucester-committed-cardinal .table { position:absolute; bottom:15%; left:30%; width:200px; height:15px; background: linear-gradient(90deg, #5a3a2a 0%, #7a4e3a 50%, #5a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-gloucester-committed-cardinal .candle { position:absolute; bottom:28%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #d4a060 0%, #a07040 100%); border-radius: 2px; transform: rotate(2deg); }
.scn-gloucester-committed-cardinal .flame { position:absolute; bottom:45%; left:49%; width:8px; height:14px; background: radial-gradient(circle, #ffe0a0 0%, #ffa050 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,160,80,.6); animation: gc1-flame 1.5s ease-in-out infinite alternate; }
@keyframes gc1-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gc1-cardinal { 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(0); } }
@keyframes gc1-gloucester { 0% { transform: rotate(15deg) translateY(10px) scale(1); } 33% { transform: rotate(16deg) translateY(12px) scale(1.02); } 66% { transform: rotate(14deg) translateY(8px) scale(0.98); } 100% { transform: rotate(15deg) translateY(10px) scale(1); } }
@keyframes gc1-guard-l { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes gc1-guard-r { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes gc1-flame { 0% { transform: scale(1) rotate(-5deg); opacity:.8; } 50% { transform: scale(1.1) rotate(5deg); opacity:1; } 100% { transform: scale(0.9) rotate(-3deg); opacity:.7; } }

/* gloucester-laments-conspiracy (tag: gl2) */
.scn-gloucester-laments-conspiracy {
  background: linear-gradient(180deg, #1c1a24 0%, #2a2638 30%, #3c3450 60%, #2a2638 100%),
              radial-gradient(ellipse at 50% 50%, #3c3450 0%, #1c1a24 80%);
}
.scn-gloucester-laments-conspiracy .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1822 0%, #2e2840 50%, #1a1822 100%); animation: gl2-bg 12s ease-in-out infinite alternate; }
.scn-gloucester-laments-conspiracy .window { position:absolute; top:5%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #3a3e50 0%, #2a2e40 100%); border: 4px solid #4a4a4a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-gloucester-laments-conspiracy .bars { position:absolute; top:5%; left:20%; width:80px; height:100px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #5a5a5a 8px, #5a5a5a 10px); animation: gl2-bars 6s ease-in-out infinite; }
.scn-gloucester-laments-conspiracy .figure { position:absolute; bottom:10%; left:40%; width:60px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); box-shadow: 0 0 15px rgba(0,0,0,.5); animation: gl2-figure 8s ease-in-out infinite; }
.scn-gloucester-laments-conspiracy .candle { position:absolute; bottom:15%; left:60%; width:4px; height:15px; background: linear-gradient(180deg, #c09860 0%, #906840 100%); border-radius: 1px; }
.scn-gloucester-laments-conspiracy .flame { position:absolute; bottom:30%; left:61%; width:6px; height:10px; background: radial-gradient(circle, #ffe0a0 0%, #ffb060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,176,96,.5); animation: gl2-flame 2s ease-in-out infinite alternate; }
.scn-gloucester-laments-conspiracy .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: gl2-shadow 10s ease-in-out infinite; }
.scn-gloucester-laments-conspiracy .chain { position:absolute; bottom:10%; left:35%; width:2px; height:40px; background: #7a7a7a; border-radius: 1px; transform: rotate(10deg); animation: gl2-chain 5s ease-in-out infinite; }
@keyframes gl2-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gl2-bars { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes gl2-figure { 0% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(-4deg) translateY(-2px); } 60% { transform: rotate(-6deg) translateY(3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes gl2-flame { 0% { transform: scale(1) rotate(0); opacity:.7; } 50% { transform: scale(1.15) rotate(3deg); opacity:1; } 100% { transform: scale(0.9) rotate(-2deg); opacity:.6; } }
@keyframes gl2-shadow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.5; } }
@keyframes gl2-chain { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(4px); } 100% { transform: rotate(10deg) translateY(0); } }

/* gloucester-accuses-all (tag: ga3) */
.scn-gloucester-accuses-all {
  background: linear-gradient(180deg, #1e1a1a 0%, #3a2e2e 25%, #5a4444 50%, #3a2e2e 75%, #1e1a1a 100%),
              radial-gradient(ellipse at 50% 40%, #6a5240 0%, transparent 70%);
}
.scn-gloucester-accuses-all .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1c1818 0%, #3c2c28 40%, #5c3c34 70%, #2c1c18 100%); animation: ga3-bg 6s ease-in-out infinite alternate; }
.scn-gloucester-accuses-all .table { position:absolute; bottom:20%; left:20%; width:60%; height:12px; background: linear-gradient(90deg, #4a3028 0%, #6a4438 50%, #4a3028 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-gloucester-accuses-all .gloucester { position:absolute; bottom:25%; left:45%; width:50px; height:80px; background: linear-gradient(180deg, #4a4038 0%, #2a2018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(10deg) scaleX(-1); transform-origin: bottom center; animation: ga3-gloucester 4s ease-in-out infinite; }
.scn-gloucester-accuses-all .beaufort { position:absolute; bottom:28%; left:12%; width:40px; height:70px; background: linear-gradient(180deg, #5e1a1d 0%, #4a1012 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: ga3-figure 5s ease-in-out infinite; }
.scn-gloucester-accuses-all .suffolk { position:absolute; bottom:30%; left:25%; width:35px; height:65px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(8deg); animation: ga3-figure 5s ease-in-out infinite reverse; }
.scn-gloucester-accuses-all .buckingham { position:absolute; bottom:26%; right:25%; width:35px; height:70px; background: linear-gradient(180deg, #4a404a 0%, #302a30 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: ga3-figure 5.5s ease-in-out infinite; }
.scn-gloucester-accuses-all .york { position:absolute; bottom:30%; right:12%; width:40px; height:75px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(12deg); animation: ga3-figure 5.5s ease-in-out infinite reverse; }
.scn-gloucester-accuses-all .document { position:absolute; bottom:18%; left:48%; width:40px; height:8px; background: #e0d0b0; border-radius: 1px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ga3-doc 8s ease-in-out infinite alternate; }
@keyframes ga3-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ga3-gloucester { 0% { transform: rotate(10deg) scaleX(-1) translateY(0); } 33% { transform: rotate(12deg) scaleX(-1) translateY(-3px); } 66% { transform: rotate(8deg) scaleX(-1) translateY(2px); } 100% { transform: rotate(10deg) scaleX(-1) translateY(0); } }
@keyframes ga3-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ga3-doc { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }

/* queen-resentments-speech (tag: qr4) */
.scn-queen-resentments-speech {
  background: linear-gradient(180deg, #1e1a14 0%, #3a2e24 30%, #5a4438 60%, #3a2e24 100%),
              radial-gradient(ellipse at 50% 30%, #8a7050 0%, #3a2e24 80%);
}
.scn-queen-resentments-speech .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1c1814 0%, #3c2c20 40%, #5c3c28 70%, #2c1c14 100%); animation: qr4-bg 10s ease-in-out infinite alternate; }
.scn-queen-resentments-speech .throne { position:absolute; bottom:10%; left:20%; width:100px; height:140px; background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 0 30px rgba(0,0,0,.6); }
.scn-queen-resentments-speech .queen { position:absolute; bottom:25%; left:22%; width:50px; height:90px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(0deg); animation: qr4-queen 5s ease-in-out infinite; }
.scn-queen-resentments-speech .attendant { position:absolute; bottom:20%; width:35px; height:80px; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-queen-resentments-speech .att-l { left:38%; animation: qr4-att 7s ease-in-out infinite; }
.scn-queen-resentments-speech .att-r { right:30%; animation: qr4-att 7s ease-in-out infinite reverse; }
.scn-queen-resentments-speech .gloucester { position:absolute; bottom:15%; right:20%; width:45px; height:75px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(15deg) translateX(10px); animation: qr4-gloucester 4s ease-in-out infinite; }
.scn-queen-resentments-speech .drapery { position:absolute; top:0; left:10%; width:20px; height:60%; background: linear-gradient(180deg, #5e1a1d 0%, #4a1012 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; opacity:.6; filter: blur(2px); animation: qr4-drapery 12s ease-in-out infinite alternate; }
@keyframes qr4-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes qr4-queen { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-1deg) translateY(-2px); } 60% { transform: rotate(1deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes qr4-att { 0% { transform: translateY(0); } 33% { transform: translateY(-2px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes qr4-gloucester { 0% { transform: rotate(15deg) translateX(10px) scale(1); } 25% { transform: rotate(17deg) translateX(12px) scale(1.02); } 50% { transform: rotate(14deg) translateX(8px) scale(0.98); } 75% { transform: rotate(16deg) translateX(11px) scale(1.01); } 100% { transform: rotate(15deg) translateX(10px) scale(1); } }
@keyframes qr4-drapery { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(0.95) rotate(2deg); } 100% { transform: scale(1) rotate(0); } }

/* Scene: york-aside-france-loss */
.scn-york-aside-france-loss {
  background: linear-gradient(180deg, #e8d5b8 0%, #d4b896 40%, #c0a078 100%),
              radial-gradient(ellipse at 30% 0%, #ffe8c8 0%, transparent 60%);
}
.scn-york-aside-france-loss .room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #d8c4a8 0%, #c8b498 50%, #d8c4a8 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
}
.scn-york-aside-france-loss .window {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8eb8d0 0%, #b0d0e0 100%);
  border: 6px solid #8a6a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: yaf-window 12s ease-in-out infinite alternate;
}
.scn-york-aside-france-loss .figure {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yaf-figure 6s ease-in-out infinite;
}
.scn-york-aside-france-loss .desk {
  position: absolute; bottom: 5%; left: 20%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-york-aside-france-loss .candle {
  position: absolute; bottom: 18%; left: 35%; width: 6px; height: 16px;
  background: #f0e0c0; border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 12px 4px #f0c060;
  animation: yaf-candle 2s ease-in-out infinite alternate;
}
.scn-york-aside-france-loss .petal-a,
.scn-york-aside-france-loss .petal-b {
  position: absolute; top: -10%; width: 10px; height: 6px;
  background: #d0a080; border-radius: 50% 0 50% 0;
  opacity: 0.6; filter: blur(1px);
}
.scn-york-aside-france-loss .petal-a { left: 55%; animation: yaf-petal 8s linear infinite; }
.scn-york-aside-france-loss .petal-b { left: 65%; animation: yaf-petal 10s linear infinite 3s; }
.scn-york-aside-france-loss .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.2), transparent);
  animation: yaf-shadow 5s ease-in-out infinite alternate;
}
@keyframes yaf-window {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes yaf-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-4px) translateY(-2px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes yaf-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 8px 2px #f0c060; }
  50% { transform: scaleY(1.1); box-shadow: 0 0 14px 4px #f0c060; }
  100% { transform: scaleY(0.95); box-shadow: 0 0 6px 2px #f0c060; }
}
@keyframes yaf-petal {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateY(40vh) rotate(90deg); opacity: 0.8; }
  100% { transform: translateY(100vh) rotate(180deg); opacity: 0; }
}
@keyframes yaf-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

/* Scene: gloucester-arrested-treason */
.scn-gloucester-arrested-treason {
  background: linear-gradient(180deg, #c8b088 0%, #b09878 50%, #a08868 100%),
              radial-gradient(ellipse at 50% 10%, #ffe8c0 0%, transparent 70%);
}
.scn-gloucester-arrested-treason .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b09878 0%, #908060 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-gloucester-arrested-treason .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(90deg, #d8c4a8 0%, #c8b498 30%, #d8c4a8 70%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-gloucester-arrested-treason .pillar-l,
.scn-gloucester-arrested-treason .pillar-r {
  position: absolute; bottom: 25%; width: 8%; height: 75%;
  background: linear-gradient(180deg, #b09878, #907050);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.2);
}
.scn-gloucester-arrested-treason .pillar-l { left: 10%; }
.scn-gloucester-arrested-treason .pillar-r { right: 10%; }
.scn-gloucester-arrested-treason .figure-center {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gar-fig-center 4s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .figure-left,
.scn-gloucester-arrested-treason .figure-right {
  position: absolute; bottom: 25%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-gloucester-arrested-treason .figure-left { left: 35%; animation: gar-fig-side 5s ease-in-out infinite; }
.scn-gloucester-arrested-treason .figure-right { right: 35%; animation: gar-fig-side 5s ease-in-out infinite 2.5s; }
.scn-gloucester-arrested-treason .chain {
  position: absolute; bottom: 60%; left: 48%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #a08060, #806040);
  border-radius: 2px;
  animation: gar-chain 3s ease-in-out infinite alternate;
}
@keyframes gar-fig-center {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes gar-fig-side {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gar-chain {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}

/* Scene: gloucester-defends-innocence */
.scn-gloucester-defends-innocence {
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 50%, #b0a088 100%),
              radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 60%);
}
.scn-gloucester-defends-innocence .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d8c8b0 0%, #c8b8a0 50%, #d8c8b0 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08);
}
.scn-gloucester-defends-innocence .window {
  position: absolute; top: 8%; left: 65%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #9ac4d8 0%, #b8dce8 100%);
  border: 4px solid #8a6a4a; border-radius: 4px;
  box-shadow: inset 0 0 16px rgba(255,255,200,0.3);
  animation: gdi-window 15s ease-in-out infinite alternate;
}
.scn-gloucester-defends-innocence .desk {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-gloucester-defends-innocence .figure {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gdi-figure 7s ease-in-out infinite;
}
.scn-gloucester-defends-innocence .book {
  position: absolute; bottom: 14%; left: 35%; width: 20%; height: 8%;
  background: #5a3a2a; border-radius: 2px;
  transform: rotate(-5deg);
  animation: gdi-book 10s ease-in-out infinite alternate;
}
.scn-gloucester-defends-innocence .quill {
  position: absolute; bottom: 20%; left: 40%; width: 4px; height: 20px;
  background: #e0c8a0; border-radius: 2px;
  transform-origin: bottom center;
  animation: gdi-quill 4s ease-in-out infinite;
}
.scn-gloucester-defends-innocence .inkwell {
  position: absolute; bottom: 12%; left: 33%; width: 12px; height: 12px;
  background: #3a2a1a; border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-gloucester-defends-innocence .candle {
  position: absolute; bottom: 18%; left: 55%; width: 6px; height: 20px;
  background: #f0e0c0; border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 14px 6px #f0c060;
  animation: gdi-candle 2.5s ease-in-out infinite alternate;
}
@keyframes gdi-window {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.8; transform: scale(0.97); }
}
@keyframes gdi-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes gdi-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes gdi-quill {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes gdi-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 10px 3px #f0c060; }
  50% { transform: scaleY(1.15); box-shadow: 0 0 20px 8px #f0c060; }
  100% { transform: scaleY(0.9); box-shadow: 0 0 8px 2px #f0c060; }
}

/* Scene: gloucester-defense-tortures */
.scn-gloucester-defense-tortures {
  background: linear-gradient(180deg, #b09878 0%, #988068 50%, #806050 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0b0 0%, transparent 70%);
}
.scn-gloucester-defense-tortures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #988068 0%, #786050 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
}
.scn-gloucester-defense-tortures .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(90deg, #c0a888 0%, #b09878 50%, #c0a888 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-gloucester-defense-tortures .figure-gloucester {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gdt-glo 5s ease-in-out infinite;
}
.scn-gloucester-defense-tortures .figure-kneeling {
  position: absolute; bottom: 20%; left: 55%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%) scale(0.8);
  animation: gdt-kneel 6s ease-in-out infinite alternate;
}
.scn-gloucester-defense-tortures .gibbet {
  position: absolute; bottom: 70%; left: 65%; width: 4px; height: 30%;
  background: #5a3a2a; border-radius: 2px;
  transform-origin: bottom center;
  animation: gdt-gibbet 8s ease-in-out infinite;
}
.scn-gloucester-defense-tortures .shackles {
  position: absolute; bottom: 30%; left: 60%; width: 10%; height: 4px;
  background: #806040; border-radius: 2px;
  animation: gdt-shackles 3s ease-in-out infinite alternate;
}
.scn-gloucester-defense-tortures .torch {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 24px;
  background: #6a4a3a; border-radius: 4px 4px 0 0;
}
.scn-gloucester-defense-tortures .torch::before {
  content: ''; position: absolute; top: -10px; left: -6px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffa060, #ff6000);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ff8030;
  animation: gdt-torch 2s ease-in-out infinite alternate;
}
@keyframes gdt-glo {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gdt-kneel {
  0% { transform: translateX(-50%) scale(0.8) translateY(0); }
  50% { transform: translateX(-50%) scale(0.8) translateY(-3px); }
  100% { transform: translateX(-50%) scale(0.8) translateY(0); }
}
@keyframes gdt-gibbet {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes gdt-shackles {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes gdt-torch {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}

.scn-hall-judgment-king {
  background:
    linear-gradient(180deg, #b8a68e 0%, #8a7a62 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fff3d6 0%, transparent 60%);
}
.scn-hall-judgment-king .bg-arch {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: hj-arch 12s ease-in-out infinite alternate;
}
.scn-hall-judgment-king .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(45deg, #7a6a5a 0px, #7a6a5a 2px, #6a5a4a 2px, #6a5a4a 4px);
  opacity: 0.6;
  animation: hj-floor 20s linear infinite;
}
.scn-hall-judgment-king .throne {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: hj-throne 4s ease-in-out infinite;
}
.scn-hall-judgment-king .king-silhouette {
  position: absolute; bottom: 30%; left: 45%; 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%;
  animation: hj-king 3s ease-in-out infinite;
}
.scn-hall-judgment-king .woman-silhouette {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hj-woman 4s ease-in-out infinite;
}
.scn-hall-judgment-king .guard-silhouette {
  position: absolute; bottom: 32%; left: 58%; width: 28px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hj-guard 5s ease-in-out infinite alternate;
}
.scn-hall-judgment-king .candles {
  position: absolute; bottom: 45%; left: 30%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #ffd680 0%, #ffb040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: hj-candle 2s ease-in-out infinite alternate;
}
.scn-hall-judgment-king .light-ray {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  animation: hj-ray 8s ease-in-out infinite alternate;
}
@keyframes hj-arch { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hj-floor { 0% { background-position: 0 0 } 100% { background-position: 40px 40px } }
@keyframes hj-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes hj-king { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-52%) rotate(-2deg) } 75% { transform: translateX(-48%) rotate(2deg) } }
@keyframes hj-woman { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes hj-guard { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(0.97) } }
@keyframes hj-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 hj-ray { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

.scn-gloucester-grief-king {
  background:
    linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #8a8a9a 0%, transparent 70%);
}
.scn-gloucester-grief-king .window {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at center, #d0d0e0 0%, #a0a0b0 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 40px rgba(200,200,220,0.4);
  animation: gg-window 15s ease-in-out infinite alternate;
}
.scn-gloucester-grief-king .light-shaft {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 90%;
  background: linear-gradient(180deg, rgba(210,210,230,0.2) 0%, transparent 80%);
  animation: gg-shaft 12s ease-in-out infinite alternate;
}
.scn-gloucester-grief-king .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 20px 60px rgba(0,0,0,0.5);
  animation: gg-wall 20s ease-in-out infinite;
}
.scn-gloucester-grief-king .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: gg-floor 25s ease-in-out infinite alternate;
}
.scn-gloucester-grief-king .chair {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: gg-chair 8s ease-in-out infinite;
}
.scn-gloucester-grief-king .figure-grief {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gg-figure 5s ease-in-out infinite;
}
.scn-gloucester-grief-king .staff {
  position: absolute; bottom: 20%; left: 48%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: gg-staff 6s ease-in-out infinite alternate;
}
@keyframes gg-window { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes gg-shaft { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }
@keyframes gg-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes gg-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes gg-chair { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes gg-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(-3deg) } 75% { transform: translateX(-52%) rotate(3deg) } }
@keyframes gg-staff { 0% { transform: translateX(0) } 100% { transform: translateX(-5px) } }

.scn-resignation-staff {
  background:
    linear-gradient(180deg, #d0a878 0%, #b89060 50%, #a07848 100%),
    radial-gradient(ellipse at 50% 30%, #f0d0a0 0%, transparent 70%);
}
.scn-resignation-staff .bg-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a070 0%, #a88050 100%);
  border-radius: 0 0 40% 40%;
  animation: rs-bg 14s ease-in-out infinite alternate;
}
.scn-resignation-staff .floor-amber {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #806848 0%, #604828 100%);
  animation: rs-floor 18s linear infinite;
}
.scn-resignation-staff .king-henry {
  position: absolute; bottom: 28%; left: 45%; width: 35px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rs-king 6s ease-in-out infinite;
}
.scn-resignation-staff .noble-humphrey {
  position: absolute; bottom: 26%; left: 55%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rs-noble 6s ease-in-out infinite reverse;
}
.scn-resignation-staff .staff-vertical {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 90px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(180deg, #c8a060 0%, #a07838 100%);
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: rs-staff 4s ease-in-out infinite;
}
.scn-resignation-staff .crown {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #f0c860 0%, #d0a040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,200,80,0.4);
  animation: rs-crown 5s ease-in-out infinite alternate;
}
.scn-resignation-staff .light-glow {
  position: absolute; top: 0; left: 10%; width: 80%; height: 100%;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,220,140,0.3) 0%, transparent 60%);
  animation: rs-glow 10s ease-in-out infinite alternate;
}
@keyframes rs-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rs-floor { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes rs-king { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-48%) translateY(-2px) } }
@keyframes rs-noble { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-52%) translateY(-2px) } }
@keyframes rs-staff { 0%,100% { transform: translateX(-50%) rotate(-15deg) } 50% { transform: translateX(-50%) rotate(-10deg) } }
@keyframes rs-crown { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rs-glow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }

.scn-kings-consolation {
  background:
    linear-gradient(180deg, #c8a878 0%, #a88858 50%, #886848 100%),
    radial-gradient(ellipse at 50% 40%, #e8c898 0%, transparent 60%);
}
.scn-kings-consolation .bg-soft {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b89878 0%, #987858 100%);
  border-radius: 0 0 30% 30%;
  animation: kc-bg 16s ease-in-out infinite alternate;
}
.scn-kings-consolation .floor-gold {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5840 0%, #4a3820 100%);
  animation: kc-floor 20s linear infinite;
}
.scn-kings-consolation .king-henry-comfort {
  position: absolute; bottom: 26%; left: 46%; width: 35px; height: 75px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: kc-king 8s ease-in-out infinite;
}
.scn-kings-consolation .queen-margaret {
  position: absolute; bottom: 26%; left: 54%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: kc-queen 8s ease-in-out infinite reverse;
}
.scn-kings-consolation .rose-petal {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #a05858 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(184,120,120,0.3);
  animation: kc-rose 6s ease-in-out infinite alternate;
}
.scn-kings-consolation .light-halo {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 70%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,160,0.2) 0%, transparent 70%);
  animation: kc-halo 12s ease-in-out infinite alternate;
}
.scn-kings-consolation .shadow-slow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, #2a1a1a 0%, transparent 70%);
  opacity: 0.3;
  animation: kc-shadow 18s ease-in-out infinite;
}
@keyframes kc-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes kc-floor { 0% { background-position: 0 0 } 100% { background-position: 15px 0 } }
@keyframes kc-king { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-51%) translateY(-2px) } }
@keyframes kc-queen { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-49%) translateY(-2px) } }
@keyframes kc-rose { 0% { transform: scale(0.8); opacity: 0.6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.8 } }
@keyframes kc-halo { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }
@keyframes kc-shadow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

/* Scene: final-parting */
.scn-final-parting {
  background: linear-gradient(145deg, #2a1a2a 0%, #1a0f1a 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%);
}
.scn-final-parting .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%);
  animation: fp-shadow 12s ease-in-out infinite alternate;
}
.scn-final-parting .window {
  position: absolute; top: 8%; left: 62%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  border: 6px solid #3a2a1a;
}
.scn-final-parting .window-light {
  position: absolute; top: 12%; left: 66%; width: 18%; height: 32%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,255,.15) 0%, transparent 70%);
  animation: fp-moon 20s ease-in-out infinite alternate;
}
.scn-final-parting .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-final-parting .candle {
  position: absolute; bottom: 28%; left: 44%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #b08040 0%, #a07030 50%, #604020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,.4), 0 0 40px 12px rgba(200,150,80,.2);
  animation: fp-candle 3s ease-in-out infinite alternate;
}
.scn-final-parting .figure-left {
  position: absolute; bottom: 22%; left: 26%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #0e0a14 0%, #06040a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-figure-left 6s ease-in-out infinite;
}
.scn-final-parting .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #0a0a12 0%, #04040a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-figure-right 6s ease-in-out infinite;
}
.scn-final-parting .letter {
  position: absolute; bottom: 20%; left: 46%; width: 6%; height: 4%;
  background: #c8b89a; border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,.5);
  animation: fp-letter 10s ease-in-out infinite;
}
@keyframes fp-shadow {
  0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; }
}
@keyframes fp-moon {
  0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.02); } 100% { opacity: .6; transform: scale(1); }
}
@keyframes fp-candle {
  0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 18px 4px rgba(200,150,80,.3); }
  50% { transform: scaleY(1.05) scaleX(1.02); box-shadow: 0 0 28px 8px rgba(200,150,80,.5); }
  100% { transform: scaleY(.98) scaleX(1); box-shadow: 0 0 22px 5px rgba(200,150,80,.35); }
}
@keyframes fp-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  33% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(0) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-2px) translateY(1px) rotate(0); }
}
@keyframes fp-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  33% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); }
  66% { transform: translateX(0) translateY(0) rotate(1deg); }
  100% { transform: translateX(2px) translateY(1px) rotate(0); }
}
@keyframes fp-letter {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}

/* Scene: cardinal-beaufort-death */
.scn-cardinal-beaufort-death {
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 40%, #16101a 100%),
              radial-gradient(ellipse at 30% 70%, #2a1a2a 0%, transparent 60%);
}
.scn-cardinal-beaufort-death .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a142a 0%, #0a0a14 100%);
  animation: cb-shadow 15s ease-in-out infinite alternate;
}
.scn-cardinal-beaufort-death .bed {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 55%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.6);
}
.scn-cardinal-beaufort-death .figure-cardinal {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg); transform-origin: bottom right;
  animation: cb-cardinal 8s ease-in-out infinite;
}
.scn-cardinal-beaufort-death .cup {
  position: absolute; bottom: 28%; left: 46%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #d0b090 0%, #8a7050 60%, #5a4020 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 14px 4px rgba(180,140,80,.5), 0 0 28px 8px rgba(180,140,80,.3);
  animation: cb-cup 4s ease-in-out infinite alternate;
}
.scn-cardinal-beaufort-death .candle-glow {
  position: absolute; bottom: 34%; left: 44%; width: 10%; height: 20%;
  background: radial-gradient(ellipse, rgba(220,180,100,.4) 0%, transparent 70%);
  animation: cb-glow 5s ease-in-out infinite alternate;
}
.scn-cardinal-beaufort-death .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  animation: cb-curtain 12s ease-in-out infinite;
}
.scn-cardinal-beaufort-death .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  animation: cb-curtain 12s ease-in-out infinite reverse;
}
@keyframes cb-shadow {
  0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; }
}
@keyframes cb-cardinal {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(2px); }
  100% { transform: rotate(16deg) translateX(-1px); }
}
@keyframes cb-cup {
  0% { transform: rotate(-3deg) scale(1); box-shadow: 0 0 12px 3px rgba(180,140,80,.4); }
  50% { transform: rotate(0deg) scale(1.02); box-shadow: 0 0 20px 6px rgba(180,140,80,.6); }
  100% { transform: rotate(2deg) scale(1); box-shadow: 0 0 14px 4px rgba(180,140,80,.5); }
}
@keyframes cb-glow {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.3); }
  100% { opacity: .6; transform: scale(1.1); }
}
@keyframes cb-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-3px); }
}

/* Scene: suffolk-capture */
.scn-suffolk-capture {
  background: linear-gradient(180deg, #2a1a30 0%, #4a2a3a 20%, #8a4a30 50%, #b0703a 80%, #8a5a2a 100%),
              radial-gradient(ellipse at 30% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-suffolk-capture .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a3a3a 40%, #b06030 70%, #d08040 100%);
  animation: sc-sky 20s ease-in-out infinite alternate;
}
.scn-suffolk-capture .dusk-sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0e1a2a 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  animation: sc-sea 10s ease-in-out infinite alternate;
}
.scn-suffolk-capture .cliff {
  position: absolute; bottom: 25%; left: 5%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-suffolk-capture .figure-attacker {
  position: absolute; bottom: 35%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #0e0a14 0%, #04040a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(20px) rotate(10deg);
  animation: sc-attacker 3s ease-in-out infinite;
}
.scn-suffolk-capture .figure-victim {
  position: absolute; bottom: 33%; left: 35%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1420 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg) translateX(-10px);
  animation: sc-victim 3s ease-in-out infinite;
}
.scn-suffolk-capture .weapon {
  position: absolute; bottom: 42%; left: 26%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%;
  transform: rotate(45deg);
  animation: sc-weapon 2s ease-in-out infinite;
}
.scn-suffolk-capture .mist {
  position: absolute; top: 10%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, rgba(150,100,80,.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: sc-mist 25s linear infinite alternate;
}
@keyframes sc-sky {
  0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; }
}
@keyframes sc-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(3px) scaleY(1.02); }
  100% { transform: translateY(-2px) scaleY(.98); }
}
@keyframes sc-attacker {
  0% { transform: translateX(20px) rotate(10deg) scale(1); }
  50% { transform: translateX(18px) rotate(15deg) scale(1.05); }
  100% { transform: translateX(22px) rotate(8deg) scale(1); }
}
@keyframes sc-victim {
  0% { transform: rotate(-15deg) translateX(-10px) scale(1); }
  50% { transform: rotate(-20deg) translateX(-8px) scale(.95); }
  100% { transform: rotate(-12deg) translateX(-12px) scale(1); }
}
@keyframes sc-weapon {
  0% { transform: rotate(45deg) scaleY(1); }
  50% { transform: rotate(40deg) scaleY(1.1); }
  100% { transform: rotate(48deg) scaleY(1); }
}
@keyframes sc-mist {
  0% { transform: translateX(0) scale(1); opacity: .3; }
  50% { transform: translateX(20px) scale(1.2); opacity: .5; }
  100% { transform: translateX(-10px) scale(.9); opacity: .4; }
}

/* Scene: york-buckingham-exchange */
.scn-york-buckingham-exchange {
  background: linear-gradient(180deg, #c8a070 0%, #b09060 30%, #8a7050 60%, #6a5038 100%),
              radial-gradient(ellipse at 50% 50%, #d0b090 0%, transparent 70%);
}
.scn-york-buckingham-exchange .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b89870 0%, #a08058 50%, #886848 100%);
  border-bottom: 4px solid #6a5038;
  animation: yb-wall 15s ease-in-out infinite alternate;
}
.scn-york-buckingham-exchange .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3820 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-york-buckingham-exchange .figure-york {
  position: absolute; bottom: 22%; left: 20%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yb-york 5s ease-in-out infinite;
}
.scn-york-buckingham-exchange .figure-buckingham {
  position: absolute; bottom: 22%; right: 20%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yb-buckingham 5s ease-in-out infinite reverse;
}
.scn-york-buckingham-exchange .table-map {
  position: absolute; bottom: 26%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5038 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: yb-table 10s ease-in-out infinite alternate;
}
.scn-york-buckingham-exchange .banner-left {
  position: absolute; top: 0; left: 8%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 0 0 20% 20% / 0 0 60% 60%;
  transform-origin: top center;
  animation: yb-banner-l 8s ease-in-out infinite;
}
.scn-york-buckingham-exchange .banner-right {
  position: absolute; top: 0; right: 8%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 0 0 20% 20% / 0 0 60% 60%;
  transform-origin: top center;
  animation: yb-banner-r 8s ease-in-out infinite;
}
.scn-york-buckingham-exchange .chandelier {
  position: absolute; top: 4%; left: 38%; width: 24%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #d0b090 0%, #b89070 40%, #8a6848 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,170,130,.3);
  animation: yb-chandelier 6s ease-in-out infinite alternate;
}
@keyframes yb-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes yb-york {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(3px) rotate(-2deg); }
  66% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(1px) rotate(0); }
}
@keyframes yb-buckingham {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(-3px) rotate(2deg); }
  66% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(-1px) rotate(0); }
}
@keyframes yb-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes yb-banner-l {
  0% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(4deg) scaleY(1.05); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes yb-banner-r {
  0% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(-4deg) scaleY(1.05); }
  100% { transform: rotate(2deg) scaleY(1); }
}
@keyframes yb-chandelier {
  0% { transform: scale(1) rotate(-1deg); }
  50% { transform: scale(1.03) rotate(0); }
  100% { transform: scale(1) rotate(1deg); }
}

.scn-queen-laments-jewel-heart {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 60%, #2a1a1a 100%), 
              radial-gradient(ellipse at 50% 100%, #4a2a2a 0%, transparent 60%);
}
.scn-queen-laments-jewel-heart .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1828 0%, #0d0b14 100%);
  animation: qjh-ambient 20s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart .window-outside {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 50%, #3a4a5a 100%);
  border-radius: 10% / 20%; box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  overflow: hidden; animation: qjh-storm 12s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart .queen-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 22%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: qjh-queen 6s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart .table {
  position: absolute; bottom: 15%; left: 40%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 20px rgba(0,0,0,.6);
}
.scn-queen-laments-jewel-heart .jewel-heart {
  position: absolute; bottom: 22%; left: 50%; width: 12%; height: 14%;
  background: radial-gradient(circle at 40% 30%, #c8553d 0%, #8a3020 50%, #4a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: 0 0 30px rgba(200,85,61,.5);
  animation: qjh-jewel-pulse 3s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart .candle-flame {
  position: absolute; bottom: 30%; left: 35%; width: 4%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8030 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,128,48,.6);
  animation: qjh-candle 2s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart .drape {
  position: absolute; top: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #3a2040 0%, #1a1020 100%);
  border-radius: 0 20% 40% 0 / 0 40% 60% 0;
  box-shadow: 4px 0 20px rgba(0,0,0,.5);
  animation: qjh-drape-sway 8s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart .drape-a { left: 0; transform-origin: top left; }
.scn-queen-laments-jewel-heart .drape-b { right: 0; transform: scaleX(-1); animation-delay: 4s; }

@keyframes qjh-ambient {
  0% { opacity: 0.9; }
  50% { opacity: 0.75; }
  100% { opacity: 0.85; }
}
@keyframes qjh-storm {
  0% { background-position: 0 0; }
  50% { background-position: 10% 5%; }
  100% { background-position: -5% -2%; }
}
@keyframes qjh-queen {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-1deg); }
}
@keyframes qjh-jewel-pulse {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px rgba(200,85,61,.4); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 40px rgba(200,85,61,.7); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 25px rgba(200,85,61,.5); }
}
@keyframes qjh-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scaleY(1.1) rotate(3deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; }
}
@keyframes qjh-drape-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}

.scn-queen-laments-jewel-heart-cont {
  background: linear-gradient(180deg, #1a1428 0%, #0d0a1a 50%, #2a1a24 100%), 
              radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-queen-laments-jewel-heart-cont .bg-dim {
  position: absolute; inset: 0; background: linear-gradient(160deg, #1a1220 0%, #0a0610 100%);
  animation: qjc-ambient 25s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart-cont .queen-profile {
  position: absolute; bottom: 18%; left: 20%; width: 18%; height: 35%;
  background: radial-gradient(ellipse at 60% 40%, #2a2030 0%, #0a0614 100%);
  border-radius: 40% 60% 50% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: inset -10px 0 20px rgba(0,0,0,.4);
  animation: qjc-profile 7s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart-cont .jewel-heart-large {
  position: absolute; bottom: 25%; left: 50%; width: 22%; height: 26%;
  background: radial-gradient(circle at 45% 35%, #c8553d 0%, #702020 60%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: 0 0 50px 10px rgba(200,85,61,.6);
  animation: qjc-jewel-glow 4s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart-cont .falling-tears {
  position: absolute; top: 10%; left: 30%; width: 100%; height: 100%;
  background: radial-gradient(circle at 50% 50%, rgba(180,200,220,0.3) 0%, transparent 70%);
  background-size: 4px 4px;
  animation: qjc-tears 3s ease-in-out infinite;
}
.scn-queen-laments-jewel-heart-cont .candle-glow {
  position: absolute; bottom: 30%; left: 15%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8030 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,128,48,.4);
  animation: qjc-candle-flicker 2.5s ease-in-out infinite alternate;
}
.scn-queen-laments-jewel-heart-cont .mirror-frame {
  position: absolute; top: 8%; right: 18%; width: 20%; height: 35%;
  background: linear-gradient(135deg, #3a3040 0%, #1a1020 100%);
  border-radius: 8px; box-shadow: inset 0 0 10px rgba(0,0,0,.8), 0 4px 12px rgba(0,0,0,.5);
  animation: qjc-mirror 12s ease-in-out infinite alternate;
}

@keyframes qjc-ambient {
  0% { opacity: 0.85; }
  50% { opacity: 0.7; }
  100% { opacity: 0.9; }
}
@keyframes qjc-profile {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes qjc-jewel-glow {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px rgba(200,85,61,.4); }
  50% { transform: translateX(-50%) scale(1.08); box-shadow: 0 0 60px rgba(200,85,61,.8); }
  100% { transform: translateX(-50%) scale(0.97); box-shadow: 0 0 40px rgba(200,85,61,.5); }
}
@keyframes qjc-tears {
  0% { background-position: 0 0; opacity: 0.6; }
  50% { background-position: 10px 20px; opacity: 0.9; }
  100% { background-position: -5px 10px; opacity: 0.5; }
}
@keyframes qjc-candle-flicker {
  0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; }
  50% { transform: scaleY(1.15) rotate(5deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(-2deg); opacity: 0.8; }
}
@keyframes qjc-mirror {
  0% { opacity: 0.7; filter: brightness(0.8); }
  50% { opacity: 0.9; filter: brightness(1); }
  100% { opacity: 0.75; filter: brightness(0.85); }
}

.scn-warwick-demands-justice {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 30%, #3a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a30 0%, transparent 80%);
}
.scn-warwick-demands-justice .hall-bright {
  position: absolute; inset: 0; background: linear-gradient(160deg, #3a3a28 0%, #1a1a0e 100%);
  animation: wdj-ambient 15s ease-in-out infinite alternate;
}
.scn-warwick-demands-justice .throne {
  position: absolute; bottom: 10%; left: 50%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: translateX(-50%); box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: wdj-throne 8s ease-in-out infinite alternate;
}
.scn-warwick-demands-justice .warwick-figure {
  position: absolute; bottom: 15%; left: 30%; width: 15%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #2a2a30 0%, #0a0a0e 100%);
  border-radius: 40% 30% 40% 40% / 50% 40% 60% 50%;
  transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,.4);
  animation: wdj-warwick 4s ease-in-out infinite alternate;
}
.scn-warwick-demands-justice .bee-swarm {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(circle at 50% 50%, #b87860 0%, transparent 60%);
  background-size: 6px 6px; opacity: 0.6;
  animation: wdj-bees 3s ease-in-out infinite;
}
.scn-warwick-demands-justice .pillar {
  position: absolute; bottom: 0; width: 6%; height: 100%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,.5);
}
.scn-warwick-demands-justice .pillar-l { left: 8%; }
.scn-warwick-demands-justice .pillar-r { right: 8%; }
.scn-warwick-demands-justice .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 100%);
  animation: wdj-shadow 6s ease-in-out infinite alternate;
}

@keyframes wdj-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes wdj-throne {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes wdj-warwick {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(10px) rotate(5deg); }
  70% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(3px) rotate(2deg); }
}
@keyframes wdj-bees {
  0% { background-position: 0 0; opacity: 0.4; }
  50% { background-position: 20px 30px; opacity: 0.8; }
  100% { background-position: -10px 10px; opacity: 0.5; }
}
@keyframes wdj-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

.scn-henry-laments-imagining {
  background: linear-gradient(180deg, #4a4a50 0%, #3a3a44 40%, #2a2a34 100%),
              radial-gradient(ellipse at 50% 80%, #5a5a66 0%, transparent 70%);
}
.scn-henry-laments-imagining .chamber-bright {
  position: absolute; inset: 0; background: linear-gradient(160deg, #4a4a55 0%, #3a3a44 100%);
  animation: hli-ambient 18s ease-in-out infinite alternate;
}
.scn-henry-laments-imagining .death-bed {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px; box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: hli-bed 9s ease-in-out infinite alternate;
}
.scn-henry-laments-imagining .body-cover {
  position: absolute; bottom: 14%; left: 32%; width: 36%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: hli-cover 5s ease-in-out infinite alternate;
}
.scn-henry-laments-imagining .henry-figure {
  position: absolute; bottom: 18%; left: 22%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: -5px 0 15px rgba(0,0,0,.4);
  animation: hli-henry 6s ease-in-out infinite alternate;
}
.scn-henry-laments-imagining .candle-flame {
  position: absolute; bottom: 28%; left: 15%; width: 3%; height: 6%;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8030 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,128,48,.5);
  animation: hli-candle 2.5s ease-in-out infinite alternate;
}
.scn-henry-laments-imagining .window-bright {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%);
  border-radius: 4px 4px 20px 20px; box-shadow: inset 0 0 30px rgba(255,255,255,.2);
  animation: hli-window 12s ease-in-out infinite alternate;
}
.scn-henry-laments-imagining .floating-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(200,200,220,0.2) 0%, transparent 80%);
  background-size: 3px 3px;
  animation: hli-motes 8s ease-in-out infinite;
}

@keyframes hli-ambient {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes hli-bed {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(0.99); }
}
@keyframes hli-cover {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(1px); opacity: 0.85; }
}
@keyframes hli-henry {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes hli-candle {
  0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; }
  50% { transform: scaleY(1.12) rotate(4deg); opacity: 1; }
  100% { transform: scaleY(0.92) rotate(-1deg); opacity: 0.85; }
}
@keyframes hli-window {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.75; filter: brightness(0.95); }
}
@keyframes hli-motes {
  0% { background-position: 0 0; opacity: 0.3; }
  50% { background-position: 30px 20px; opacity: 0.6; }
  100% { background-position: -20px 10px; opacity: 0.4; }
}

.scn-gloucester-house-message {
  background: linear-gradient(180deg, #4a3e3a 0%, #6a5a52 40%, #5a4a42 100%), radial-gradient(ellipse at 50% 0%, #b8c8d0 0%, transparent 60%);
}
.scn-gloucester-house-message .stone-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(60,50,45,.6) 0%, transparent 60%);
}
.scn-gloucester-house-message .window {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 140px; transform: translateX(-50%);
  background: linear-gradient(180deg, #a8bed0 0%, #d0dce8 40%, #b8c8d8 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 40px rgba(200,210,220,.3), 0 0 60px rgba(180,200,220,.1);
  animation: gl-mes-window 14s ease-in-out infinite alternate;
}
.scn-gloucester-house-message .table {
  position: absolute; bottom: 22%; left: 50%; width: 130px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-gloucester-house-message .map {
  position: absolute; bottom: 27%; left: 48%; width: 50px; height: 40px; transform: translateX(-50%) rotate(-8deg);
  background: linear-gradient(135deg, #d0b890 0%, #c0a880 50%, #b09870 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: gl-mes-map 10s ease-in-out infinite;
}
.scn-gloucester-house-message .figure-gloucester {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center; animation: gl-mes-stance 8s ease-in-out infinite;
}
.scn-gloucester-house-message .figure-nell {
  position: absolute; bottom: 22%; right: 28%; width: 34px; height: 62px;
  background: linear-gradient(180deg, #4a3630 0%, #2a201a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center; animation: gl-mes-stance 10s ease-in-out infinite 2s;
}
.scn-gloucester-house-message .glove {
  position: absolute; bottom: 32%; left: 45%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4230 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: gl-mes-glove 6s ease-in-out infinite;
}
@keyframes gl-mes-window {
  0% { opacity: .7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.02); }
  100% { opacity: .8; transform: translateX(-50%) scale(.98); }
}
@keyframes gl-mes-map {
  0%, 100% { transform: translateX(-50%) rotate(-8deg) scale(1); }
  50% { transform: translateX(-50%) rotate(-5deg) scale(1.03); }
}
@keyframes gl-mes-stance {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes gl-mes-glove {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(10deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}

.scn-gloucester-house-resolution {
  background: linear-gradient(180deg, #140e0c 0%, #2a1e18 40%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 70%);
}
.scn-gloucester-house-resolution .dark-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,14,12,.8) 0%, transparent 80%);
}
.scn-gloucester-house-resolution .figure-eleanor {
  position: absolute; bottom: 15%; left: 50%; width: 44px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a14 0%, #0e0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,.6);
  transform-origin: bottom center; animation: gl-res-eleanor 12s ease-in-out infinite;
}
.scn-gloucester-house-resolution .crown-shadow {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(180,120,60,.3) 0%, transparent 70%);
  border-radius: 50%; animation: gl-res-crown 20s linear infinite;
}
.scn-gloucester-house-resolution .fist {
  position: absolute; bottom: 20%; right: 38%; width: 16px; height: 18px;
  background: linear-gradient(135deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: gl-res-clench 6s ease-in-out infinite;
}
.scn-gloucester-house-resolution .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
}
.scn-gloucester-house-resolution .edge-light {
  position: absolute; bottom: 15%; left: 10%; width: 2px; height: 60px;
  background: linear-gradient(180deg, transparent 0%, rgba(200,140,80,.15) 50%, transparent 100%);
  animation: gl-res-edge 8s ease-in-out infinite alternate;
}
@keyframes gl-res-eleanor {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  40% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  80% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes gl-res-crown {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); opacity: .3; }
  50% { transform: translateX(-50%) rotate(180deg) scale(1.2); opacity: .5; }
  100% { transform: translateX(-50%) rotate(360deg) scale(1); opacity: .3; }
}
@keyframes gl-res-clench {
  0%, 100% { transform: scale(1) rotate(0deg); }
  30% { transform: scale(1.1) rotate(-5deg); }
  70% { transform: scale(.95) rotate(3deg); }
}
@keyframes gl-res-edge {
  0% { opacity: .1; }
  100% { opacity: .5; }
}

.scn-gloucester-house-conjuration {
  background: linear-gradient(180deg, #0a0608 0%, #18101a 30%, #100a12 100%), radial-gradient(circle at 50% 65%, #b84a20 0%, #4a1a0e 30%, transparent 70%);
}
.scn-gloucester-house-conjuration .circle-floor {
  position: absolute; bottom: 8%; left: 50%; width: 180px; height: 100px; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(60,30,40,.3) 0%, rgba(20,10,16,.1) 60%, transparent 100%);
  border-radius: 50%; animation: gl-con-circle 30s linear infinite;
}
.scn-gloucester-house-conjuration .brazier {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 36px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 0 20px rgba(180,60,20,.3);
}
.scn-gloucester-house-conjuration .flame {
  position: absolute; bottom: 44%; left: 50%; width: 14px; height: 26px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #d04010 40%, #7a1a08 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px #d04010, 0 0 80px rgba(180,40,10,.3);
  animation: gl-con-flame 2.4s ease-in-out infinite alternate;
}
.scn-gloucester-house-conjuration .smoke-a {
  position: absolute; top: 8%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(120,90,70,.15) 0%, transparent 80%);
  border-radius: 50%; filter: blur(8px);
  animation: gl-con-smoke 12s linear infinite;
}
.scn-gloucester-house-conjuration .smoke-b {
  position: absolute; top: 12%; right: 35%; width: 50px; height: 24px;
  background: radial-gradient(ellipse, rgba(100,80,60,.1) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: gl-con-smoke 16s linear infinite reverse;
}
.scn-gloucester-house-conjuration .figure-conjurer {
  position: absolute; bottom: 20%; left: 28%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #1a1418 0%, #0a080a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: gl-con-bob 8s ease-in-out infinite;
}
.scn-gloucester-house-conjuration .figure-duchess {
  position: absolute; bottom: 20%; right: 25%; width: 38px; height: 72px;
  background: linear-gradient(180deg, #2a1a20 0%, #120a0e 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center; animation: gl-con-bob 10s ease-in-out infinite 1.5s;
}
@keyframes gl-con-circle {
  0% { transform: translateX(-50%) rotate(0deg); opacity: .4; }
  50% { transform: translateX(-50%) rotate(180deg); opacity: .6; }
  100% { transform: translateX(-50%) rotate(360deg); opacity: .4; }
}
@keyframes gl-con-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .8; }
  30% { transform: translateX(-50%) scaleY(1.2) scaleX(.85); opacity: 1; }
  70% { transform: translateX(-50%) scaleY(1.15) scaleX(.9); opacity: .9; }
  100% { transform: translateX(-50%) scaleY(.95) scaleX(1.1); opacity: .7; }
}
@keyframes gl-con-smoke {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  20% { opacity: .3; }
  80% { opacity: .2; }
  100% { transform: translateY(-60px) translateX(40px) scale(2); opacity: 0; }
}
@keyframes gl-con-bob {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
}

.scn-gloucester-house-plot {
  background: linear-gradient(180deg, #050302 0%, #0c0806 40%, #040202 100%), radial-gradient(ellipse at 40% 55%, #2a201a 0%, transparent 60%);
}
.scn-gloucester-house-plot .darkness {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,2,2,.9) 0%, transparent 70%);
}
.scn-gloucester-house-plot .light-pool {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(180,140,80,.12) 0%, rgba(180,140,80,.05) 30%, transparent 70%);
  border-radius: 50%; animation: gl-plot-pool 10s ease-in-out infinite alternate;
}
.scn-gloucester-house-plot .hand-left {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: right center;
  animation: gl-plot-offer 12s ease-in-out infinite;
}
.scn-gloucester-house-plot .hand-right {
  position: absolute; bottom: 18%; left: 48%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: left center;
  animation: gl-plot-receive 14s ease-in-out infinite 1s;
}
.scn-gloucester-house-plot .coins {
  position: absolute; bottom: 22%; left: 37%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #c8a050 0%, #8a6a30 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 12px rgba(180,130,60,.3);
  animation: gl-plot-coins 8s ease-in-out infinite;
}
.scn-gloucester-house-plot .shadow-figure {
  position: absolute; bottom: 0; right: 10%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #0a0806 0%, #040202 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,.8);
  animation: gl-plot-shift 20s ease-in-out infinite;
}
@keyframes gl-plot-pool {
  0% { transform: scale(1); opacity: .3; }
  50% { transform: scale(1.15); opacity: .5; }
  100% { transform: scale(.9); opacity: .2; }
}
@keyframes gl-plot-offer {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(40px) translateY(-4px) rotate(-8deg); }
  70% { transform: translateX(35px) translateY(-2px) rotate(-5deg); }
}
@keyframes gl-plot-receive {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-30px) translateY(-3px) rotate(6deg); }
  70% { transform: translateX(-25px) translateY(-1px) rotate(4deg); }
}
@keyframes gl-plot-coins {
  0%, 100% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-2px) scale(1.05); opacity: 1; }
}
@keyframes gl-plot-shift {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* york-soliloquy-cade-description */
.scn-york-soliloquy-cade-description { background: linear-gradient(180deg, #c8b89a 0%, #a0886a 100%), radial-gradient(ellipse at 60% 20%, #fff5e0 0%, transparent 60%); }
.scn-york-soliloquy-cade-description .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c0a888 100%); }
.scn-york-soliloquy-cade-description .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); }
.scn-york-soliloquy-cade-description .window { position: absolute; top: 15%; left: 20%; width: 30%; height: 40%; background: linear-gradient(135deg, #b0d0f0 0%, #80b0e0 100%); border: 8px solid #6a5a4a; border-radius: 4px; }
.scn-york-soliloquy-cade-description .light-beam { position: absolute; top: 35%; left: 22%; width: 26%; height: 60%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); background: linear-gradient(180deg, rgba(255,245,220,0.6) 0%, rgba(255,245,220,0.1) 100%); animation: ysc-light 2s ease-in-out infinite alternate; }
.scn-york-soliloquy-cade-description .figure { position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ysc-caper 1.6s ease-in-out infinite; }
.scn-york-soliloquy-cade-description .dart { position: absolute; width: 4px; height: 12px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: top center; }
.scn-york-soliloquy-cade-description .dart-1 { bottom: 38%; left: 48%; transform: rotate(25deg); animation: ysc-dart-wobble 2.4s ease-in-out infinite; }
.scn-york-soliloquy-cade-description .dart-2 { bottom: 35%; left: 53%; transform: rotate(-15deg); animation: ysc-dart-wobble 2.4s ease-in-out infinite 0.4s; }
.scn-york-soliloquy-cade-description .dart-3 { bottom: 40%; left: 51%; transform: rotate(40deg); animation: ysc-dart-wobble 2.4s ease-in-out infinite 0.8s; }
.scn-york-soliloquy-cade-description .shadow { position: absolute; bottom: 18%; left: 50%; width: 50px; height: 10px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: ysc-shadow 1.6s ease-in-out infinite; }
@keyframes ysc-light { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } 100% { opacity: 0.5; transform: scaleX(0.98); } }
@keyframes ysc-caper { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 25% { transform: translateX(-48%) translateY(-8px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(-1deg); } 75% { transform: translateX(-52%) translateY(-6px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-3deg); } }
@keyframes ysc-dart-wobble { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(0.9); } 100% { transform: rotate(25deg) scaleY(1); } }
@keyframes ysc-shadow { 0% { width: 50px; opacity: 0.4; } 50% { width: 55px; opacity: 0.2; } 100% { width: 50px; opacity: 0.4; } }

/* york-soliloquy-future-plans */
.scn-york-soliloquy-future-plans { background: linear-gradient(180deg, #d4c4ac 0%, #b4a48c 100%), radial-gradient(ellipse at 70% 30%, #fffbe8 0%, transparent 50%); }
.scn-york-soliloquy-future-plans .bg-room { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #c8b89a 0%, #a0886a 100%); }
.scn-york-soliloquy-future-plans .window { position: absolute; top: 10%; right: 10%; width: 35%; height: 50%; background: linear-gradient(180deg, #b0d0f0 0%, #80b0e0 100%); border: 6px solid #6a5a4a; border-radius: 4px; }
.scn-york-soliloquy-future-plans .hill-outside { position: absolute; top: 20%; right: 12%; width: 31%; height: 35%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-york-soliloquy-future-plans .table { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-york-soliloquy-future-plans .candle { position: absolute; bottom: 30%; left: 45%; width: 8px; height: 16px; background: linear-gradient(180deg, #f0d0a0 0%, #c89860 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(240,208,160,0.6); animation: ysf-flame 3s ease-in-out infinite alternate; }
.scn-york-soliloquy-future-plans .figure { position: absolute; bottom: 22%; left: 48%; width: 36px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ysf-point 4s ease-in-out infinite; }
.scn-york-soliloquy-future-plans .scythe { position: absolute; bottom: 22%; left: 60%; width: 8px; height: 60px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: bottom center; animation: ysf-scythe 5s ease-in-out infinite; }
.scn-york-soliloquy-future-plans .shadow { position: absolute; bottom: 20%; left: 48%; width: 44px; height: 8px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: ysf-shadow 4s ease-in-out infinite; }
@keyframes ysf-flame { 0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 20px 6px rgba(240,208,160,0.6); } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 30px 10px rgba(240,208,160,0.8); } 100% { transform: scaleY(0.95); opacity: 0.7; box-shadow: 0 0 15px 4px rgba(240,208,160,0.4); } }
@keyframes ysf-point { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-40%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-60%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ysf-scythe { 0% { transform: rotate(30deg); } 50% { transform: rotate(50deg); } 100% { transform: rotate(30deg); } }
@keyframes ysf-shadow { 0% { width: 44px; opacity: 0.3; } 50% { width: 50px; opacity: 0.15; } 100% { width: 44px; opacity: 0.3; } }

/* murderers-report-to-suffolk */
.scn-murderers-report-to-suffolk { background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-murderers-report-to-suffolk .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); }
.scn-murderers-report-to-suffolk .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); }
.scn-murderers-report-to-suffolk .candle { position: absolute; bottom: 40%; left: 50%; width: 6px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #e0a060 0%, #b07030 100%); border-radius: 2px; box-shadow: 0 0 16px 4px rgba(200,120,40,0.5); animation: mrs-candle 5s ease-in-out infinite alternate; }
.scn-murderers-report-to-suffolk .figure-a { position: absolute; bottom: 22%; left: 35%; width: 30px; height: 60px; background: radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mrs-shift 7s ease-in-out infinite; }
.scn-murderers-report-to-suffolk .figure-b { position: absolute; bottom: 24%; left: 60%; width: 28px; height: 55px; background: radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mrs-shift 7s ease-in-out infinite 2s; }
.scn-murderers-report-to-suffolk .table { position: absolute; bottom: 22%; left: 40%; width: 20%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-murderers-report-to-suffolk .shadow { position: absolute; bottom: 22%; left: 35%; width: 40px; height: 6px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: mrs-shadow 7s ease-in-out infinite; }
@keyframes mrs-candle { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.7; box-shadow: 0 0 12px 3px rgba(200,120,40,0.3); } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; box-shadow: 0 0 20px 6px rgba(200,120,40,0.6); } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.6; box-shadow: 0 0 10px 2px rgba(200,120,40,0.2); } }
@keyframes mrs-shift { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mrs-shadow { 0% { width: 40px; opacity: 0.5; } 50% { width: 45px; opacity: 0.3; } 100% { width: 40px; opacity: 0.5; } }

/* king-calls-gloucester */
.scn-king-calls-gloucester { background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%), radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 50%); }
.scn-king-calls-gloucester .bg-palace { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); }
.scn-king-calls-gloucester .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #b8a890 0%, #988878 100%); }
.scn-king-calls-gloucester .throne { position: absolute; bottom: 15%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #b8a888 0%, #988870 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-king-calls-gloucester .king { position: absolute; bottom: 18%; left: 50%; width: 34px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kgc-breathe 6s ease-in-out infinite; }
.scn-king-calls-gloucester .queen { position: absolute; bottom: 18%; left: 42%; width: 28px; height: 60px; background: radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kgc-breathe 6s ease-in-out infinite 1.5s; }
.scn-king-calls-gloucester .cardinal { position: absolute; bottom: 18%; left: 58%; width: 30px; height: 65px; background: radial-gradient(ellipse at 50% 40%, #3a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kgc-breathe 6s ease-in-out infinite 3s; }
.scn-king-calls-gloucester .somerset { position: absolute; bottom: 18%; left: 35%; width: 26px; height: 55px; background: radial-gradient(ellipse at 50% 40%, #4a3a3e 0%, #2a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kgc-breathe 6s ease-in-out infinite 4.5s; }
.scn-king-calls-gloucester .attendant-a { position: absolute; bottom: 18%; left: 62%; width: 22px; height: 50px; background: radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kgc-breathe 6s ease-in-out infinite 1s; }
.scn-king-calls-gloucester .attendant-b { position: absolute; bottom: 18%; left: 68%; width: 20px; height: 48px; background: radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kgc-breathe 6s ease-in-out infinite 2s; }
@keyframes kgc-breathe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }

.scn-london-palace-arrival {
  background: 
    linear-gradient(180deg, #d4a85a 0%, #c49a4e 25%, #b08840 55%, #8a6a32 85%, #705a2a 100%),
    radial-gradient(ellipse at 50% 30%, #f0d488 0%, transparent 65%);
}
.scn-london-palace-arrival .wall-back {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(135deg, #c8a858 0%, #a88848 60%, #887038 100%); border-radius: 0 0 60% 60% / 0 0 30% 30%; animation: lpa-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-london-palace-arrival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #7a663a 0%, #5a4e2e 40%, #3a3220 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.35);
}
.scn-london-palace-arrival .arch-frame {
  position: absolute; top: 2%; left: 20%; right: 20%; bottom: 30%; background: radial-gradient(ellipse at 50% 0%, transparent 55%, #6a5230 56%, #5a4428 58%, #4a3620 62%); border-radius: 0 0 50% 50% / 0 0 30% 30%;
}
.scn-london-palace-arrival .banner-left {
  position: absolute; top: 6%; left: 8%; width: 20px; height: 70px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%); border-radius: 2px 2px 30% 30%; transform-origin: top center; animation: lpa-banner-sway 6s ease-in-out infinite alternate;
}
.scn-london-palace-arrival .banner-right {
  position: absolute; top: 6%; right: 8%; width: 20px; height: 70px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%); border-radius: 2px 2px 30% 30%; transform-origin: top center; animation: lpa-banner-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-arrival .throne-figure {
  position: absolute; bottom: 27%; left: 50%; width: 54px; height: 66px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: lpa-throne-breathe 4s ease-in-out infinite;
}
.scn-london-palace-arrival .court-left {
  position: absolute; bottom: 28%; left: 14%; width: 40px; height: 50px; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; animation: lpa-court-shift 7s ease-in-out infinite alternate;
}
.scn-london-palace-arrival .court-right {
  position: absolute; bottom: 28%; right: 14%; width: 40px; height: 50px; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; animation: lpa-court-shift 8s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-arrival .glow-chandelier {
  position: absolute; top: 4%; left: 50%; width: 20px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle, #ffe8b0 0%, #f0c860 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,200,96,0.5), 0 0 80px 40px rgba(240,200,96,0.25); animation: lpa-glow-flicker 3s ease-in-out infinite alternate;
}
@keyframes lpa-wall-pulse { 0% { opacity: 0.85; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.01); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes lpa-banner-sway { 0% { transform: rotate(-3deg) scaleX(0.95); } 50% { transform: rotate(2deg) scaleX(1.05); } 100% { transform: rotate(-4deg) scaleX(0.98); } }
@keyframes lpa-throne-breathe { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes lpa-court-shift { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lpa-glow-flicker { 0% { box-shadow: 0 0 30px 15px rgba(240,200,96,0.4), 0 0 60px 30px rgba(240,200,96,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 50px 25px rgba(255,216,120,0.7), 0 0 100px 50px rgba(255,216,120,0.35); opacity: 1; } 100% { box-shadow: 0 0 35px 18px rgba(240,200,96,0.45), 0 0 70px 35px rgba(240,200,96,0.22); opacity: 0.85; } }

.scn-london-palace-articles {
  background: 
    linear-gradient(135deg, #e8d5a0 0%, #d4be84 30%, #b89860 65%, #907840 100%),
    radial-gradient(ellipse at 60% 40%, #fae8c0 0%, transparent 55%);
}
.scn-london-palace-articles .wall-bg {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d4be84 0%, #b89860 60%, #a08850 100%); border-radius: 0 0 40% 40% / 0 0 15% 15%;
}
.scn-london-palace-articles .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: repeating-linear-gradient(45deg, #6a5a3a 0px, #6a5a3a 4px, #786648 4px, #786648 8px); box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-london-palace-articles .figure-king {
  position: absolute; bottom: 32%; right: 22%; width: 48px; height: 60px; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lpb-king 5s ease-in-out infinite alternate;
}
.scn-london-palace-articles .figure-kneeling {
  position: absolute; bottom: 30%; left: 28%; width: 32px; height: 44px; background: linear-gradient(180deg, #3a2a1a 0%, #221810 100%); border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; transform-origin: bottom center; animation: lpb-kneel 2s ease-in-out infinite;
}
.scn-london-palace-articles .paper-held {
  position: absolute; bottom: 43%; left: 32%; width: 24px; height: 14px; background: linear-gradient(180deg, #efe6c8 0%, #d4c8a0 100%); border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); transform-origin: center left; animation: lpb-paper 1.5s ease-in-out infinite;
}
.scn-london-palace-articles .shadow-stark {
  position: absolute; bottom: 30%; left: 24%; right: 18%; height: 6px; background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.25) 30%, rgba(0,0,0,0.35) 60%, rgba(0,0,0,0) 100%); border-radius: 50%; filter: blur(3px); animation: lpb-shadow 3s ease-in-out infinite alternate;
}
.scn-london-palace-articles .glow-tense {
  position: absolute; top: 8%; left: 50%; width: 18px; height: 18px; transform: translateX(-50%); background: radial-gradient(circle, #f0d488 0%, transparent 60%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(240,212,136,0.4); animation: lpb-glow 2.5s ease-in-out infinite alternate;
}
@keyframes lpb-king { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lpb-kneel { 0% { transform: translateY(0) rotate(-1deg) scaleY(1); } 50% { transform: translateY(1px) rotate(1deg) scaleY(0.98); } 100% { transform: translateY(0) rotate(-1deg) scaleY(1); } }
@keyframes lpb-paper { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(1px); } 50% { transform: rotate(-2deg) translateX(-1px); } 75% { transform: rotate(4deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes lpb-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.05); } 100% { opacity: 0.65; transform: scaleX(0.98); } }
@keyframes lpb-glow { 0% { box-shadow: 0 0 40px 16px rgba(240,212,136,0.35); opacity: 0.75; } 50% { box-shadow: 0 0 60px 25px rgba(255,224,160,0.6); opacity: 1; } 100% { box-shadow: 0 0 44px 18px rgba(240,212,136,0.4); opacity: 0.8; } }

.scn-item-articles-paper {
  background: 
    linear-gradient(180deg, #e0d0b0 0%, #c8b898 30%, #a89878 65%, #887860 100%),
    radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 55%);
}
.scn-item-articles-paper .surface-top {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #d4c4a4 0%, #b8a888 60%, #a09070 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-item-articles-paper .paper-document {
  position: absolute; top: 30%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(135deg, #f5ecd8 0%, #e0d4b8 50%, #c8bc9c 100%); border-radius: 3px; box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.8); transform-origin: center bottom; animation: iap-paper 4s ease-in-out infinite;
}
.scn-item-articles-paper .paper-edge-l {
  position: absolute; top: 30%; left: 44%; width: 8px; height: 80px; background: linear-gradient(180deg, rgba(200,188,156,0.4) 0%, transparent 100%); transform-origin: top left; animation: iap-flutter-l 2s ease-in-out infinite alternate;
}
.scn-item-articles-paper .paper-edge-r {
  position: absolute; top: 30%; right: 44%; width: 8px; height: 80px; background: linear-gradient(180deg, rgba(200,188,156,0.4) 0%, transparent 100%); transform-origin: top right; animation: iap-flutter-r 2.4s ease-in-out infinite alternate;
}
.scn-item-articles-paper .hand-releasing {
  position: absolute; bottom: 38%; right: 26%; width: 18px; height: 28px; background: linear-gradient(180deg, #8a7050 0%, #6a5238 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: top center; animation: iap-hand 4s ease-in-out infinite;
}
.scn-item-articles-paper .glare-spot {
  position: absolute; top: 34%; left: 54%; width: 12px; height: 18px; background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: iap-glare 5s ease-in-out infinite alternate;
}
.scn-item-articles-paper .drop-shadow {
  position: absolute; bottom: 48%; left: 50%; width: 50px; height: 8px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: iap-dropshadow 4s ease-in-out infinite;
}
@keyframes iap-paper { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) translateY(10px) rotate(2deg) scale(1.02); } 50% { transform: translateX(-50%) translateY(22px) rotate(-1deg) scale(0.98); } 75% { transform: translateX(-50%) translateY(10px) rotate(1deg) scale(1.01); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); } }
@keyframes iap-flutter-l { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes iap-flutter-r { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes iap-hand { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(8deg) translateY(-4px); } 70% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes iap-glare { 0% { opacity: 0.3; transform: translateX(0) scale(1); } 50% { opacity: 0.7; transform: translateX(3px) scale(1.2); } 100% { opacity: 0.35; transform: translateX(0) scale(1); } }
@keyframes iap-dropshadow { 0% { opacity: 0.3; transform: translateX(-50%) scale(1); } 50% { opacity: 0.6; transform: translateX(-50%) scale(0.85); } 100% { opacity: 0.3; transform: translateX(-50%) scale(1); } }

.scn-london-palace-appointment {
  background: 
    linear-gradient(180deg, #dab87a 0%, #c4a062 30%, #a88048 65%, #886a38 100%),
    radial-gradient(ellipse at 50% 35%, #f0d490 0%, transparent 55%);
}
.scn-london-palace-appointment .wall-ceremonial {
  position: absolute; inset: 0 0 32% 0; background: linear-gradient(135deg, #c8ac68 0%, #a88848 60%, #907840 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-london-palace-appointment .floor-ceremonial {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3e28 50%, #2e2618 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,0.3);
}
.scn-london-palace-appointment .figure-king-center {
  position: absolute; bottom: 24%; left: 50%; width: 50px; height: 62px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: lap-king-breathe 6s ease-in-out infinite;
}
.scn-london-palace-appointment .figure-york {
  position: absolute; bottom: 25%; left: 28%; width: 36px; height: 48px; background: linear-gradient(180deg, #3a2a1a 0%, #221810 100%); border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; transform-origin: bottom center; animation: lap-bow 8s ease-in-out infinite alternate;
}
.scn-london-palace-appointment .figure-advisor {
  position: absolute; bottom: 26%; right: 24%; width: 38px; height: 50px; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; animation: lap-bow 9s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-appointment .sword-girt {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 32px; transform: translateX(-50%); background: linear-gradient(180deg, #e8d490 0%, #b89a4a 40%, #8a7228 100%); border-radius: 2px; box-shadow: 0 0 8px 2px rgba(232,212,144,0.4); transform-origin: top center; animation: lap-sword 4s ease-in-out infinite;
}
.scn-london-palace-appointment .glow-ceremonial {
  position: absolute; top: 6%; left: 50%; width: 16px; height: 16px; transform: translateX(-50%); background: radial-gradient(circle, #f0d490 0%, transparent 65%); border-radius: 50%; box-shadow: 0 0 45px 18px rgba(240,212,144,0.45); animation: lap-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-london-palace-appointment .banner-ceremonial {
  position: absolute; top: 4%; left: 12%; width: 18px; height: 60px; background: linear-gradient(180deg, #5e1a1d 0%, #8a3a2a 40%, #5e1a1d 100%); border-radius: 2px 2px 25% 25%; transform-origin: top center; animation: lap-banner-sway 7s ease-in-out infinite alternate;
}
@keyframes lap-king-breathe { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes lap-bow { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(2px) rotate(2deg) scaleY(0.96); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes lap-sword { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 30% { transform: translateX(-50%) rotate(3deg) scaleY(1.05); } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(0.95); } 70% { transform: translateX(-50%) rotate(2deg) scaleY(1.03); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes lap-glow-pulse { 0% { box-shadow: 0 0 35px 14px rgba(240,212,144,0.35); opacity: 0.8; } 50% { box-shadow: 0 0 55px 22px rgba(255,224,160,0.65); opacity: 1; } 100% { box-shadow: 0 0 38px 16px rgba(240,212,144,0.4); opacity: 0.85; } }
@keyframes lap-banner-sway { 0% { transform: rotate(-4deg) scaleX(0.95); } 50% { transform: rotate(2deg) scaleX(1.04); } 100% { transform: rotate(-3deg) scaleX(0.97); } }

.scn-london-palace-protest {
  background: linear-gradient(180deg, #c8b280 0%, #7a6a4a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #ddd 0%, transparent 70%);
}
.scn-london-palace-protest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-london-palace-protest .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #ddd7c0 0%, #b8a880 100%);
}
.scn-london-palace-protest .pillar-left {
  position: absolute; left: 10%; top: 0; bottom: 20%; width: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  box-shadow: 4px 0 6px rgba(0,0,0,0.3);
  animation: lp1-pillar 10s ease-in-out infinite alternate;
}
.scn-london-palace-protest .pillar-right {
  position: absolute; right: 10%; top: 0; bottom: 20%; width: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  box-shadow: -4px 0 6px rgba(0,0,0,0.3);
  animation: lp1-pillar 10s ease-in-out infinite alternate;
}
.scn-london-palace-protest .throne {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: lp1-throne 8s ease-in-out infinite;
}
.scn-london-palace-protest .figure {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp1-fig 6s ease-in-out infinite;
}
.scn-london-palace-protest .scroll {
  position: absolute; bottom: 30%; left: 42%; width: 12px; height: 4px;
  background: #c8a870;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lp1-scroll 3s ease-in-out infinite alternate;
}
.scn-london-palace-protest .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: lp1-light 4s ease-in-out infinite alternate;
}
@keyframes lp1-pillar { 0% { box-shadow: 4px 0 6px rgba(0,0,0,0.3); } 50% { box-shadow: 8px 0 12px rgba(0,0,0,0.5); } 100% { box-shadow: 2px 0 4px rgba(0,0,0,0.2); } }
@keyframes lp1-throne { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01); } }
@keyframes lp1-fig { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(5px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes lp1-scroll { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(-3px) rotate(5deg); opacity:1; } 100% { transform: translateY(0) rotate(-2deg); opacity:0.9; } }
@keyframes lp1-light { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-london-palace-rebuttal {
  background: linear-gradient(180deg, #c0b090 0%, #8a7a5a 80%, #5a4a2a 100%), radial-gradient(ellipse at 60% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-london-palace-rebuttal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-london-palace-rebuttal .wall {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #b8a880 100%);
}
.scn-london-palace-rebuttal .pillar {
  position: absolute; left: 50%; top: 0; bottom: 18%; width: 16px; transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: lp2-pillar 12s ease-in-out infinite alternate;
}
.scn-london-palace-rebuttal .throne {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.5);
  animation: lp2-throne 9s ease-in-out infinite;
}
.scn-london-palace-rebuttal .speaker {
  position: absolute; bottom: 20%; left: 45%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp2-speaker 5s ease-in-out infinite;
}
.scn-london-palace-rebuttal .listeners {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: lp2-listeners 7s ease-in-out infinite;
}
.scn-london-palace-rebuttal .chandelier {
  position: absolute; top: 5%; left: 50%; width: 30px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b280 0%, #8a7a5a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px rgba(255,200,150,0.5);
  animation: lp2-chandelier 6s ease-in-out infinite alternate;
}
@keyframes lp2-pillar { 0% { box-shadow: 0 0 8px rgba(0,0,0,0.3); } 50% { box-shadow: 0 0 16px rgba(0,0,0,0.5); } 100% { box-shadow: 0 0 4px rgba(0,0,0,0.2); } }
@keyframes lp2-throne { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px) translateY(-1px); } }
@keyframes lp2-speaker { 0% { transform: translateX(0) rotate(-3deg); } 33% { transform: translateX(8px) rotate(4deg); } 66% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes lp2-listeners { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lp2-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; } }

.scn-london-palace-argument {
  background: linear-gradient(180deg, #c8b280 0%, #8a7a5a 70%, #4a3a2a 100%), radial-gradient(ellipse at 40% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-london-palace-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
}
.scn-london-palace-argument .wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #ddd7c0 0%, #b8a880 100%);
}
.scn-london-palace-argument .window {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #a0c0e0 0%, #c0d8f0 100%);
  border: 3px solid #6a5a3a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: lp3-window 8s ease-in-out infinite alternate;
}
.scn-london-palace-argument .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp3-fig-left 4s ease-in-out infinite;
}
.scn-london-palace-argument .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp3-fig-right 4s ease-in-out infinite;
}
.scn-london-palace-argument .desk {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 10px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-london-palace-argument .lamp {
  position: absolute; bottom: 32%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.5);
  animation: lp3-lamp 3s ease-in-out infinite alternate;
}
.scn-london-palace-argument .shadow {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: lp3-shadow 6s ease-in-out infinite alternate;
}
@keyframes lp3-window { 0% { background: linear-gradient(180deg, #a0c0e0, #c0d8f0); } 50% { background: linear-gradient(180deg, #b0d0e8, #d0e8f8); } 100% { background: linear-gradient(180deg, #90b0d0, #b0c8e0); } }
@keyframes lp3-fig-left { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(8px) rotate(4deg); } 66% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lp3-fig-right { 0% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(-8px) rotate(-4deg); } 66% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lp3-lamp { 0% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.5); opacity:0.9; } 50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.7); opacity:1; } 100% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); opacity:0.85; } }
@keyframes lp3-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-london-palace-plot {
  background: linear-gradient(180deg, #b8a880 0%, #7a6a4a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 10%, #ffe0a0 0%, transparent 70%);
}
.scn-london-palace-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-london-palace-plot .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #ddd7c0 0%, #b8a880 100%);
}
.scn-london-palace-plot .table {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 12px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: lp4-table 10s ease-in-out infinite alternate;
}
.scn-london-palace-plot .figure-1 {
  position: absolute; bottom: 25%; left: 28%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp4-fig1 7s ease-in-out infinite;
}
.scn-london-palace-plot .figure-2 {
  position: absolute; bottom: 25%; left: 46%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp4-fig2 7s ease-in-out infinite;
}
.scn-london-palace-plot .figure-3 {
  position: absolute; bottom: 25%; left: 62%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp4-fig3 7s ease-in-out infinite;
}
.scn-london-palace-plot .candle {
  position: absolute; bottom: 36%; left: 50%; width: 8px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a870 0%, #8a7a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(255,200,150,0.6);
  animation: lp4-candle 3s ease-in-out infinite alternate;
}
.scn-london-palace-plot .shadow-fig {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: lp4-shadow 8s ease-in-out infinite alternate;
}
@keyframes lp4-table { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes lp4-fig1 { 0% { transform: translateX(0); } 33% { transform: translateX(4px) rotate(-2deg); } 66% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes lp4-fig2 { 0% { transform: translateX(0); } 33% { transform: translateX(-4px) rotate(2deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes lp4-fig3 { 0% { transform: translateX(0); } 33% { transform: translateX(3px) rotate(-1deg); } 66% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes lp4-candle { 0% { box-shadow: 0 0 12px 4px rgba(255,200,150,0.6); opacity:0.9; } 50% { box-shadow: 0 0 20px 8px rgba(255,200,150,0.8); opacity:1; } 100% { box-shadow: 0 0 8px 2px rgba(255,200,150,0.4); opacity:0.85; } }
@keyframes lp4-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-queen-insults-warwick-birth {
  background: linear-gradient(180deg, #f0d8b0 0%, #b08050 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-queen-insults-warwick-birth .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4b890 0%, #a07850 100%); animation: qi-wall 15s ease infinite;
}
.scn-queen-insults-warwick-birth .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 0 20% 0 0;
}
.scn-queen-insults-warwick-birth .throne {
  position:absolute; bottom:25%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 5px 5px 15px rgba(0,0,0,0.5); animation: qi-throne 10s ease-in-out infinite;
}
.scn-queen-insults-warwick-birth .queen {
  position:absolute; bottom:28%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #c85030 0%, #802010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: qi-queen 6s ease-in-out infinite;
}
.scn-queen-insults-warwick-birth .warwick {
  position:absolute; bottom:25%; left:48%; width:28px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: qi-warwick 8s ease-in-out infinite alternate;
}
.scn-queen-insults-warwick-birth .window {
  position:absolute; top:15%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #fff8e0 0%, #f0d080 100%); border: 3px solid #8a6a4a; border-radius: 5%; box-shadow: 0 0 30px 10px rgba(255,240,200,0.6); animation: qi-window 4s ease-in-out infinite alternate;
}
.scn-queen-insults-warwick-birth .banner {
  position:absolute; top:10%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 0 50% 50%; transform: skewX(-10deg); animation: qi-banner 12s ease-in-out infinite;
}
@keyframes qi-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes qi-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes qi-queen { 0% { transform: rotate(-5deg); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-5deg); } }
@keyframes qi-warwick { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(-8deg) translateX(-5px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes qi-window { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,240,200,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,240,200,0.8); } 100% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(255,240,200,0.5); } }
@keyframes qi-banner { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(5deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(0); } }

.scn-warwick-and-suffolk-duel {
  background: linear-gradient(180deg, #e8d0b0 0%, #b09070 100%), radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 70%);
}
.scn-warwick-and-suffolk-duel .hall-wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8a888 0%, #987060 100%); animation: ws-wall 20s ease infinite;
}
.scn-warwick-and-suffolk-duel .hall-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
}
.scn-warwick-and-suffolk-duel .suffolk {
  position:absolute; bottom:25%; left:40%; width:25px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: ws-suffolk 3s ease-in-out infinite;
}
.scn-warwick-and-suffolk-duel .warwick-fig {
  position:absolute; bottom:25%; left:55%; width:25px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: ws-warwick 3s ease-in-out infinite alternate;
}
.scn-warwick-and-suffolk-duel .clash-spark {
  position:absolute; bottom:45%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ffff80 0%, #ffa020 60%, transparent 70%); border-radius: 50%; animation: ws-spark 1.8s ease-in-out infinite;
}
.scn-warwick-and-suffolk-duel .column-left {
  position:absolute; bottom:30%; left:15%; width:20px; height:60%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10%; box-shadow: 3px 0 8px rgba(0,0,0,0.3); animation: ws-column 30s linear infinite;
}
.scn-warwick-and-suffolk-duel .column-right {
  position:absolute; bottom:30%; right:15%; width:20px; height:60%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10%; box-shadow: -3px 0 8px rgba(0,0,0,0.3); animation: ws-column 30s linear infinite reverse;
}
@keyframes ws-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ws-suffolk { 0% { transform: rotate(0) translateX(0); } 33% { transform: rotate(10deg) translateX(10px); } 66% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes ws-warwick { 0% { transform: rotate(0) translateX(0); } 33% { transform: rotate(-15deg) translateX(-10px); } 66% { transform: rotate(10deg) translateX(-5px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes ws-spark { 0% { opacity: 1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(2); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes ws-column { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-king-quells-quarrel {
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-king-quells-quarrel .backdrop {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8c0a0 0%, #a88868 100%); animation: kq-backdrop 25s ease infinite;
}
.scn-king-quells-quarrel .steps {
  position:absolute; bottom:25%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 0 0;
}
.scn-king-quells-quarrel .king {
  position:absolute; bottom:35%; left:50%; width:35px; height:55px; background: linear-gradient(180deg, #c86830 0%, #803010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom; animation: kq-king 8s ease-in-out infinite;
}
.scn-king-quells-quarrel .warwick-lord {
  position:absolute; bottom:25%; left:35%; width:25px; height:45px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: kq-lord-left 6s ease-in-out infinite;
}
.scn-king-quells-quarrel .suffolk-lord {
  position:absolute; bottom:25%; left:65%; width:25px; height:45px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: kq-lord-right 6s ease-in-out infinite alternate;
}
.scn-king-quells-quarrel .crown {
  position:absolute; bottom:58%; left:50%; width:24px; height:10px; background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%); border-radius: 50% 50% 0 0; transform: translateX(-50%); animation: kq-crown 4s ease-in-out infinite;
}
.scn-king-quells-quarrel .sceptre {
  position:absolute; bottom:38%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #f0d080 0%, #b08840 100%); border-radius: 2px; animation: kq-sceptre 4s ease-in-out infinite;
}
@keyframes kq-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kq-king { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0) translateY(0); } 75% { transform: translateX(-50%) rotate(-5deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes kq-lord-left { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-10px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kq-lord-right { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kq-crown { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes kq-sceptre { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0); } }

.scn-commons-demand-ban {
  background: linear-gradient(180deg, #e8d0b8 0%, #b09878 100%), radial-gradient(ellipse at 50% 40%, #fff4e0 0%, transparent 70%);
}
.scn-commons-demand-ban .hall-bg {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8a888 0%, #987060 100%); animation: cd-hall 18s ease infinite;
}
.scn-commons-demand-ban .platform {
  position:absolute; bottom:30%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 5% 5% 0 0;
}
.scn-commons-demand-ban .speaker {
  position:absolute; bottom:40%; left:50%; width:30px; height:45px; background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: cd-speaker 7s ease-in-out infinite;
}
.scn-commons-demand-ban .crowd-left {
  position:absolute; bottom:20%; left:10%; width:15px; height:30px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: cd-crowd 5s ease-in-out infinite;
}
.scn-commons-demand-ban .crowd-right {
  position:absolute; bottom:20%; right:10%; width:15px; height:30px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: cd-crowd 5s ease-in-out infinite reverse;
}
.scn-commons-demand-ban .banner-cd {
  position:absolute; bottom:45%; left:40%; width:40px; height:25px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 0 30% 30%; transform: rotate(-10deg); animation: cd-banner 10s ease-in-out infinite;
}
@keyframes cd-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cd-speaker { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes cd-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cd-banner { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* combat-preparation-lists */
.scn-combat-preparation-lists {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b098 50%, #9a826a 100%), radial-gradient(ellipse at 50% 10%, rgba(255,240,210,0.4) 0%, transparent 70%);
}
.scn-combat-preparation-lists .cp-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%); border-radius: 0 0 40% 40%; }
.scn-combat-preparation-lists .cp-barrier-left { position:absolute; bottom:30%; left:15%; width:8%; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); animation: cp-barrier 8s ease-in-out infinite alternate; }
.scn-combat-preparation-lists .cp-barrier-right { position:absolute; bottom:30%; right:15%; width:8%; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.3); animation: cp-barrier 8s ease-in-out infinite alternate; }
.scn-combat-preparation-lists .cp-banner { position:absolute; top:15%; left:50%; width:12%; height:20%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); transform: translateX(-50%); clip-path: polygon(0 0,100% 0,100% 80%,50% 100%,0 80%); animation: cp-banner-wave 6s ease-in-out infinite; }
.scn-combat-preparation-lists .cp-sword { position:absolute; bottom:45%; left:45%; width:2%; height:25%; background: linear-gradient(180deg, #d0c0b0 0%, #a09080 50%, #706050 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: cp-sword-glow 4s ease-in-out infinite; }
.scn-combat-preparation-lists .cp-shield { position:absolute; bottom:40%; right:42%; width:10%; height:15%; background: linear-gradient(180deg, #e0c8b0 0%, #b09880 100%); border-radius: 50% 50% 40% 40%; border: 2px solid #8a6a4a; box-shadow: 0 0 12px rgba(200,160,120,0.6); animation: cp-shield-pulse 5s ease-in-out infinite; }
.scn-combat-preparation-lists .cp-flag { position:absolute; top:10%; left:30%; width:20%; height:6%; background: linear-gradient(90deg, #b87878 0%, #d09878 50%, #b87878 100%); transform: skewX(-20deg); animation: cp-flag-flow 12s linear infinite; }

@keyframes cp-barrier { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes cp-banner-wave { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes cp-sword-glow { 0%,100% { opacity:0.7; box-shadow: 0 0 6px rgba(200,180,160,0.4); } 50% { opacity:1; box-shadow: 0 0 18px rgba(255,230,200,0.8); } }
@keyframes cp-shield-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }
@keyframes cp-flag-flow { 0% { transform: skewX(-20deg) translateX(0); } 100% { transform: skewX(-20deg) translateX(-30px); } }

/* drunken-armourer-peter */
.scn-drunken-armourer-peter {
  background: linear-gradient(180deg, #f5d6a0 0%, #e0b87a 50%, #c09250 100%), radial-gradient(circle at 50% 60%, rgba(255,230,180,0.4) 0%, transparent 70%);
}
.scn-drunken-armourer-peter .da-stage { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b09870 0%, #806040 100%); border-radius: 20% 20% 0 0; }
.scn-drunken-armourer-peter .da-drum-left { position:absolute; bottom:20%; left:22%; width:15%; height:20%; background: linear-gradient(180deg, #e0c8b0 0%, #b09880 100%); border-radius: 50%; border: 4px solid #8a6a4a; animation: da-drum 2s ease-in-out infinite; }
.scn-drunken-armourer-peter .da-drum-right { position:absolute; bottom:20%; right:22%; width:15%; height:20%; background: linear-gradient(180deg, #e0c8b0 0%, #b09880 100%); border-radius: 50%; border: 4px solid #8a6a4a; animation: da-drum 2.4s ease-in-out infinite; }
.scn-drunken-armourer-peter .da-sandbag { position:absolute; bottom:25%; left:50%; width:8%; height:18%; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 20%; transform: translateX(-50%); animation: da-sandbag 3s ease-in-out infinite; }
.scn-drunken-armourer-peter .da-figure-horner { position:absolute; bottom:18%; left:18%; width:12%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: da-sway-left 2s ease-in-out infinite; }
.scn-drunken-armourer-peter .da-figure-peter { position:absolute; bottom:18%; right:18%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: da-sway-right 2.2s ease-in-out infinite; }
.scn-drunken-armourer-peter .da-mug { position:absolute; bottom:30%; left:42%; width:6%; height:10%; background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%); border-radius: 20% 20% 10% 10%; border: 2px solid #8a6a4a; animation: da-mug-raise 4s ease-in-out infinite; }

@keyframes da-drum { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } }
@keyframes da-sandbag { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes da-sway-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes da-sway-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(3deg); } }
@keyframes da-mug-raise { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-10deg); } }

/* peter-fearful-prayer */
.scn-peter-fearful-prayer {
  background: linear-gradient(180deg, #f7e4c8 0%, #d9c4a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.5) 0%, transparent 70%);
}
.scn-peter-fearful-prayer .pf-table { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 10% 10% 0 0; transform: perspective(500px) rotateX(10deg); }
.scn-peter-fearful-prayer .pf-beer-pot { position:absolute; bottom:25%; left:30%; width:8%; height:15%; background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%); border-radius: 30% 30% 10% 10%; animation: pf-beer 6s ease-in-out infinite; }
.scn-peter-fearful-prayer .pf-figure-peter { position:absolute; bottom:15%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: pf-tremble 1.5s ease-in-out infinite; }
.scn-peter-fearful-prayer .pf-figure-neighbour1 { position:absolute; bottom:10%; left:15%; width:12%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: pf-pat 3s ease-in-out infinite; }
.scn-peter-fearful-prayer .pf-figure-neighbour2 { position:absolute; bottom:10%; right:15%; width:12%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: pf-pat 3.5s ease-in-out infinite; }
.scn-peter-fearful-prayer .pf-hand-patting { position:absolute; bottom:20%; left:20%; width:5%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; animation: pf-hand-move 1.5s ease-in-out infinite; }
.scn-peter-fearful-prayer .pf-light-glow { position:absolute; top:10%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: pf-glow-pulse 4s ease-in-out infinite; }

@keyframes pf-beer { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes pf-tremble { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-1px,-1px) rotate(-1deg); } 50% { transform: translate(1px,1px) rotate(1deg); } 75% { transform: translate(-1px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes pf-pat { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes pf-hand-move { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pf-glow-pulse { 0%,100% { opacity:0.5; } 50% { opacity:1; } }

/* combat-begins-thump */
.scn-combat-begins-thump {
  background: linear-gradient(180deg, #e8d2b0 0%, #c0a080 50%, #8a6a4a 100%), radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.3) 0%, transparent 70%);
}
.scn-combat-begins-thump .cb-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a080 0%, #7a5a3a 100%); border-radius: 0 0 20% 20%; }
.scn-combat-begins-thump .cb-figure-horner { position:absolute; bottom:20%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: cb-attack-left 1.6s ease-in-out infinite; }
.scn-combat-begins-thump .cb-figure-peter { position:absolute; bottom:20%; right:25%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: cb-deflect-right 1.8s ease-in-out infinite; }
.scn-combat-begins-thump .cb-sandbag { position:absolute; bottom:25%; left:50%; width:10%; height:20%; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 20%; transform: translateX(-50%); animation: cb-sandbag-swing 1.8s ease-in-out infinite; }
.scn-combat-begins-thump .cb-drum { position:absolute; bottom:10%; left:40%; width:15%; height:15%; background: linear-gradient(180deg, #d0b8a0 0%, #a08060 100%); border-radius: 50%; border: 4px solid #8a6a4a; animation: cb-drum-hit 1.6s ease-in-out infinite; }
.scn-combat-begins-thump .cb-action-line { position:absolute; top:30%; left:45%; width:10%; height:4%; background: linear-gradient(90deg, transparent, #c8553d, transparent); border-radius: 2px; animation: cb-slash 1.5s ease-in-out infinite; }
.scn-combat-begins-thump .cb-sparks { position:absolute; top:35%; left:47%; width:6%; height:6%; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: cb-sparkle 1.5s ease-in-out infinite; }

@keyframes cb-attack-left { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(15deg) translateX(10px); } }
@keyframes cb-deflect-right { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-10deg) translateX(-10px); } }
@keyframes cb-sandbag-swing { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(20deg); } 100% { transform: translateX(-50%) rotate(-10deg); } }
@keyframes cb-drum-hit { 0%,100% { transform: scale(1); } 50% { transform: scale(0.85); } }
@keyframes cb-slash { 0% { transform: scaleX(0); opacity:0; } 50% { transform: scaleX(1); opacity:1; } 100% { transform: scaleX(0); opacity:0; } }
@keyframes cb-sparkle { 0%,100% { opacity:0; } 50% { opacity:1; } }

/* item-conjuration-circle */
.scn-icr { background: linear-gradient(180deg, #0b0b1a 0%, #1a0f2e 50%, #0b0b1a 100%), radial-gradient(ellipse at 50% 40%, #2a1a4a 0%, transparent 60%); }
.scn-icr .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0a0a1a, #1a1a2e); border-radius: 60% 60% 0 0 / 40% 40% 0 0; animation: icr-ground 8s ease infinite alternate; }
.scn-icr .circle { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:120px; height:120px; background: radial-gradient(circle, transparent 40%, #5a3a8a 40%, transparent 50%), repeating-radial-gradient(circle, transparent, transparent 10px, #5a3a8a 10px, #5a3a8a 12px, transparent 12px); border-radius:50%; box-shadow: 0 0 30px 10px rgba(90,58,138,0.4); animation: icr-circle-pulse 6s ease-in-out infinite; }
.scn-icr .glow { position:absolute; bottom:45%; left:50%; transform:translateX(-50%); width:40px; height:40px; background: radial-gradient(circle, #b080e0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(176,128,224,0.5); animation: icr-glow 3s ease-in-out infinite alternate; }
.scn-icr .spirit { position:absolute; bottom:50%; left:50%; transform:translateX(-50%); width:30px; height:80px; background: linear-gradient(180deg, #2a1a4a 0%, #4a2a6e 50%, #1a0a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 5px rgba(74,42,110,0.6); animation: icr-spirit-rise 10s ease-in-out infinite; }
.scn-icr .rune1 { position:absolute; bottom:45%; left:30%; width:6px; height:6px; background: #c0a0f0; border-radius:50%; box-shadow: 0 0 8px 2px #c0a0f0; animation: icr-rune-a 5s ease-in-out infinite; }
.scn-icr .rune2 { position:absolute; bottom:50%; right:25%; width:6px; height:6px; background: #c0a0f0; border-radius:50%; box-shadow: 0 0 8px 2px #c0a0f0; animation: icr-rune-b 6s ease-in-out infinite 1s; }
.scn-icr .rune3 { position:absolute; bottom:40%; left:55%; width:6px; height:6px; background: #c0a0f0; border-radius:50%; box-shadow: 0 0 8px 2px #c0a0f0; animation: icr-rune-c 4s ease-in-out infinite 0.5s; }
.scn-icr .lightning { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(200,200,255,0.8) 50%, rgba(255,255,255,0) 100%); opacity:0; animation: icr-flash 8s ease-in-out infinite; }
@keyframes icr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes icr-circle-pulse { 0% { transform: translateX(-50%) scale(1); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:0.9; } }
@keyframes icr-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.7; transform: translateX(-50%) scale(1); } }
@keyframes icr-spirit-rise { 0% { transform: translateX(-50%) translateY(20px) scale(0.8); opacity:0; } 30% { opacity:0.8; } 50% { transform: translateX(-50%) translateY(0) scale(1); opacity:1; } 70% { opacity:0.9; } 100% { transform: translateX(-50%) translateY(-10px) scale(1.1); opacity:0.5; } }
@keyframes icr-rune-a { 0% { transform: translate(0,0) rotate(0deg); opacity:0.5; } 50% { transform: translate(10px,-10px) rotate(180deg); opacity:1; } 100% { transform: translate(0,0) rotate(360deg); opacity:0.5; } }
@keyframes icr-rune-b { 0% { transform: translate(0,0) rotate(0deg); opacity:0.6; } 50% { transform: translate(-10px,5px) rotate(180deg); opacity:1; } 100% { transform: translate(0,0) rotate(-360deg); opacity:0.6; } }
@keyframes icr-rune-c { 0% { transform: translate(0,0) rotate(0deg); opacity:0.4; } 50% { transform: translate(5px,-15px) rotate(180deg); opacity:0.9; } 100% { transform: translate(0,0) rotate(-180deg); opacity:0.4; } }
@keyframes icr-flash { 0%, 90%, 100% { opacity:0; } 10% { opacity:0.6; } 12% { opacity:0; } 20% { opacity:0.8; } 22% { opacity:0; } }

/* gloucester-garden-discovery */
.scn-ggd { background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #1a2a1a 0%, transparent 70%); }
.scn-ggd .garden-bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #0a1a0a, #0a1a0a 10px, #0f200f 10px, #0f200f 20px); opacity:0.5; }
.scn-ggd .path { position:absolute; bottom:10%; left:30%; right:30%; height:40%; background: linear-gradient(90deg, transparent, #2a3a2a, transparent); border-radius:20%; transform: perspective(200px) rotateX(60deg); animation:ggd-path 10s ease-in-out infinite; }
.scn-ggd .bush-left { position:absolute; bottom:35%; left:10%; width:80px; height:60px; background: radial-gradient(ellipse, #1a3a1a, #0a1a0a); border-radius:50%; box-shadow: 0 0 20px 5px rgba(0,20,0,0.5); animation:ggd-bush 15s ease-in-out infinite; }
.scn-ggd .bush-right { position:absolute; bottom:30%; right:5%; width:100px; height:70px; background: radial-gradient(ellipse, #1a3a1a, #0a1a0a); border-radius:50%; box-shadow: 0 0 20px 5px rgba(0,20,0,0.5); animation:ggd-bush 18s ease-in-out infinite reverse; }
.scn-ggd .figure-hidden { position:absolute; bottom:40%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #0a0a0a, #1a1a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:ggd-hidden 6s ease-in-out infinite; }
.scn-ggd .figure-approaching { position:absolute; bottom:10%; left:45%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:ggd-approach 12s ease-in-out infinite; }
.scn-ggd .lantern { position:absolute; bottom:22%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #d0a060, transparent); border-radius:50%; box-shadow: 0 0 30px 10px rgba(208,160,96,0.6); animation:ggd-lantern 4s ease-in-out infinite alternate; }
.scn-ggd .shadow-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4), transparent 70%); opacity:0.6; animation:ggd-ambient 8s ease-in-out infinite alternate; }
@keyframes ggd-path { 0% { transform: perspective(200px) rotateX(60deg) scaleY(1); } 50% { transform: perspective(200px) rotateX(60deg) scaleY(0.95); } 100% { transform: perspective(200px) rotateX(60deg) scaleY(1); } }
@keyframes ggd-bush { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ggd-hidden { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ggd-approach { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.5; } }
@keyframes ggd-lantern { 0% { box-shadow: 0 0 20px 5px rgba(208,160,96,0.4); } 50% { box-shadow: 0 0 40px 15px rgba(208,160,96,0.8); } 100% { box-shadow: 0 0 20px 5px rgba(208,160,96,0.4); } }
@keyframes ggd-ambient { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* st-albans-hawking */
.scn-sah { background: linear-gradient(180deg, #87CEEB 0%, #b0e0ff 40%, #e0f0ff 70%, #f0f8ff 100%), radial-gradient(ellipse at 50% 100%, #87CEEB 0%, transparent 50%); }
.scn-sah .sky { position:absolute; inset:0; background: linear-gradient(180deg, #4a90d9 0%, #87CEEB 40%, #b0e0ff 70%); animation: sah-sky 20s ease-in-out infinite alternate; }
.scn-sah .sun { position:absolute; top:10%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fff0b0, #ffd700); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,215,0,0.5); animation: sah-sun 30s linear infinite; }
.scn-sah .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6d9b37, #4a7729); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: sah-hills 18s ease-in-out infinite alternate; }
.scn-sah .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a8a2a, #3a5a1a); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-sah .falcon { position:absolute; top:20%; left:40%; width:30px; height:20px; background: linear-gradient(135deg, #4a3a2a, #2a1a0a); border-radius: 70% 70% 50% 50% / 60% 60% 40% 40%; transform: rotate(-30deg); animation: sah-falcon 8s ease-in-out infinite; }
.scn-sah .figure { position:absolute; bottom:25%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a2a, #1a1a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sah-figure 6s ease-in-out infinite; }
.scn-sah .cloud-a { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.8), rgba(255,255,255,0.2)); border-radius:50%; filter: blur(5px); animation: sah-cloud-a 40s linear infinite; }
.scn-sah .cloud-b { position:absolute; top:25%; right:5%; width:60px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,0.7), rgba(255,255,255,0.1)); border-radius:50%; filter: blur(4px); animation: sah-cloud-b 50s linear infinite reverse; }
@keyframes sah-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sah-sun { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-10px) translateY(5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes sah-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sah-falcon { 0% { transform: translate(0,0) rotate(-30deg); } 50% { transform: translate(30px,-30px) rotate(-20deg); } 100% { transform: translate(0,0) rotate(-30deg); } }
@keyframes sah-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sah-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes sah-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* st-albans-quarrel */
.scn-saq { background: linear-gradient(180deg, #87CEEB 0%, #b0e0ff 30%, #fff0d0 70%, #fff8f0 100%), radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 60%); }
.scn-saq .sky { position:absolute; inset:0; background: linear-gradient(180deg, #5a9fcf 0%, #87CEEB 40%, #b0e0ff 70%); animation: saq-sky 15s ease-in-out infinite alternate; }
.scn-saq .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a88a, #9a8a6a); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-saq .figure-left { position:absolute; bottom:25%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #c8553d, #8a3a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saq-left 5s ease-in-out infinite; }
.scn-saq .figure-right { position:absolute; bottom:25%; right:25%; width:30px; height:72px; background: linear-gradient(180deg, #2a3a5a, #1a2a3a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saq-right 5s ease-in-out infinite 0.5s; }
.scn-saq .shadow-left { position:absolute; bottom:0; left:20%; width:40px; height:20px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: saq-shadow 5s ease-in-out infinite; }
.scn-saq .shadow-right { position:absolute; bottom:0; right:20%; width:40px; height:20px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: saq-shadow 5s ease-in-out infinite 0.5s; }
.scn-saq .glare { position:absolute; top:10%; left:50%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,255,200,0.6), transparent); border-radius:50%; opacity:0.5; animation: saq-glare 3s ease-in-out infinite alternate; }
@keyframes saq-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes saq-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes saq-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes saq-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }
@keyframes saq-glare { 0% { transform: translateX(-50%) scale(1); opacity:0.4; } 50% { transform: translateX(-50%) scale(1.1); opacity:0.6; } 100% { transform: translateX(-50%) scale(1); opacity:0.4; } }

/* Scene: st-albans-hawking (calm, sunlit) */
.scn-st-albans-hawking {
  background: linear-gradient(180deg, #7db8e0 0%, #a8d2e8 40%, #e0e8c0 70%, #c4c48a 100%),
              radial-gradient(ellipse at 30% 20%, #ffe6a0 0%, transparent 60%);
}
.scn-st-albans-hawking .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9ac8e8 0%, transparent 100%); }
.scn-st-albans-hawking .cloud-a { position:absolute; top:12%; left:10%; width:120px; height:28px; background: rgba(255,255,255,.6); border-radius:50%; filter:blur(5px); animation: sah-cloud-a 30s linear infinite; }
.scn-st-albans-hawking .cloud-b { position:absolute; top:20%; right:5%; width:90px; height:20px; background: rgba(255,255,255,.4); border-radius:50%; filter:blur(4px); animation: sah-cloud-b 40s linear infinite; }
.scn-st-albans-hawking .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-st-albans-hawking .meadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8aaa5a 0%, #6a8a3a 100%); border-radius: 80% 70% 0 0 / 100% 90% 0 0; }
.scn-st-albans-hawking .figure { position:absolute; bottom:28%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sah-figure 5s ease-in-out infinite; }
.scn-st-albans-hawking .falcon { position:absolute; top:15%; left:55%; width:24px; height:28px; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: sah-falcon 4s ease-in-out infinite alternate; }
.scn-st-albans-hawking .sun { position:absolute; top:5%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffd060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,224,128,.5); animation: sah-sun 10s ease-in-out infinite alternate; }
@keyframes sah-cloud-a { 0% { transform: translateX(0) } 100% { transform: translateX(50vw) } }
@keyframes sah-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-40vw) } }
@keyframes sah-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes sah-falcon { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(8px) translateY(-4px) } 100% { transform: rotate(-20deg) translateX(-4px) translateY(2px) } }
@keyframes sah-sun { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,.3); } 50% { box-shadow: 0 0 40px 15px rgba(255,224,128,.6); } 100% { box-shadow: 0 0 25px 8px rgba(255,224,128,.4); } }

/* Scene: st-albans-quarrel (tense, sunlit) */
.scn-st-albans-quarrel {
  background: linear-gradient(180deg, #c8b07a 0%, #b09868 50%, #a08858 100%),
              radial-gradient(ellipse at 70% 30%, #e0c898 0%, transparent 60%);
}
.scn-st-albans-quarrel .bg { position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); z-index:0; }
.scn-st-albans-quarrel .table { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; z-index:1; }
.scn-st-albans-quarrel .figure-left { position:absolute; bottom:30%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saq-fig-left 1.5s ease-in-out infinite alternate; z-index:2; }
.scn-st-albans-quarrel .figure-right { position:absolute; bottom:30%; right:25%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saq-fig-right 1.8s ease-in-out infinite alternate; z-index:2; }
.scn-st-albans-quarrel .arm-left { position:absolute; bottom:45%; left:32%; width:14px; height:4px; background: #3a2a1a; border-radius: 0 50% 50% 0; transform-origin: 0 50%; animation: saq-arm-left 1.6s ease-in-out infinite alternate; z-index:3; }
.scn-st-albans-quarrel .arm-right { position:absolute; bottom:45%; right:32%; width:14px; height:4px; background: #3a2a1a; border-radius: 50% 0 0 50%; transform-origin: 100% 50%; animation: saq-arm-right 1.8s ease-in-out infinite alternate; z-index:3; }
.scn-st-albans-quarrel .shadow-left { position:absolute; bottom:28%; left:22%; width:40px; height:20px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(6px); animation: saq-shadow 2s ease-in-out infinite alternate; z-index:1; }
.scn-st-albans-quarrel .shadow-right { position:absolute; bottom:28%; right:22%; width:40px; height:20px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(6px); animation: saq-shadow 2.3s ease-in-out infinite alternate; z-index:1; }
.scn-st-albans-quarrel .candle { position:absolute; bottom:30%; left:48%; width:6px; height:12px; background: #c8a868; border-radius:2px; z-index:4; }
.scn-st-albans-quarrel .candle::after { content:''; display:block; width:8px; height:8px; margin:-4px -1px; background: radial-gradient(circle, #ffd080 0%, #e08030 70%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,.6); animation: saq-flame 1.5s ease-in-out infinite alternate; }
@keyframes saq-fig-left { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes saq-fig-right { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes saq-arm-left { 0% { transform: rotate(-10deg); } 100% { transform: rotate(30deg); } }
@keyframes saq-arm-right { 0% { transform: rotate(10deg); } 100% { transform: rotate(-30deg); } }
@keyframes saq-shadow { 0% { opacity:0.3; transform: scaleY(1); } 100% { opacity:0.6; transform: scaleY(1.2); } }
@keyframes saq-flame { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.3) translateY(-2px); } }

.scn-item-conjuration-circle {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a2e 40%, #2a1040 100%), radial-gradient(ellipse at 50% 60%, #2a1040 0%, transparent 80%);
  overflow: hidden;
}
.scn-item-conjuration-circle .cic-void { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, transparent 60%); animation: cic-void-hover 12s ease-in-out infinite alternate; }
.scn-item-conjuration-circle .cic-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #1a1224 0%, #2a1a3e 40%, #2a2040 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 20px #000; }
.scn-item-conjuration-circle .cic-circle { position:absolute; bottom:20%; left:50%; width:140px; height:140px; transform:translateX(-50%); border-radius:50%; border:2px solid rgba(120,80,200,0.5); box-shadow: 0 0 30px rgba(120,80,200,0.3), inset 0 0 30px rgba(120,80,200,0.1); background: radial-gradient(circle, rgba(120,80,200,0.08) 0%, transparent 70%); animation: cic-pulse 4s ease-in-out infinite alternate; }
.scn-item-conjuration-circle .cic-conjurer { position:absolute; bottom:18%; left:40%; width:24px; height:48px; background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cic-bow 6s ease-in-out infinite; }
.scn-item-conjuration-circle .cic-spirit { position:absolute; bottom:38%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 20%, rgba(180,140,255,0.3) 0%, rgba(120,80,200,0.1) 60%, transparent 100%); border-radius: 40% 60% 60% 40% / 60% 40% 60% 40%; filter: blur(4px); box-shadow: 0 0 40px 10px rgba(120,80,200,0.3); animation: cic-ascend 10s ease-in-out infinite; }
.scn-item-conjuration-circle .cic-flash { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(200,200,255,0.6) 0%, transparent 70%); opacity:0; animation: cic-lightning 8s ease-in-out infinite; }
.scn-item-conjuration-circle .cic-glint { position:absolute; top:28%; left:40%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 10px 4px rgba(200,200,255,0.8); animation: cic-sparkle 3s ease-in-out infinite alternate; }

@keyframes cic-void-hover { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cic-pulse { 0% { box-shadow: 0 0 20px 4px rgba(120,80,200,0.2); border-width:2px; } 50% { box-shadow: 0 0 50px 15px rgba(120,80,200,0.4); border-width:3px; } 100% { box-shadow: 0 0 30px 8px rgba(120,80,200,0.25); border-width:2px; } }
@keyframes cic-bow { 0% { transform: translateX(-2px) rotate(-2deg); } 25% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes cic-ascend { 0% { transform: translateX(-50%) translateY(20px) scale(.8); opacity:.3; } 30% { transform: translateX(-50%) translateY(-10px) scale(1.1); opacity:.7; } 60% { transform: translateX(-50%) translateY(-20px) scale(1); opacity:.9; } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity:.5; } }
@keyframes cic-lightning { 0% { opacity:0; } 3% { opacity:.8; } 4% { opacity:.2; } 5% { opacity:.6; } 7% { opacity:0; } 100% { opacity:0; } }
@keyframes cic-sparkle { 0% { opacity:.2; transform:scale(.5); } 100% { opacity:1; transform:scale(1.5); } }

.scn-gloucester-garden-discovery {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a2420 40%, #2a3a2e 100%), radial-gradient(ellipse at 50% 80%, #2a3a2e 0%, transparent 80%);
  overflow: hidden;
}
.scn-gloucester-garden-discovery .ggd-night { position:absolute; inset:0; background: linear-gradient(180deg, #0b0e1a 0%, #141a18 60%); animation: ggd-night 20s ease-in-out infinite alternate; }
.scn-gloucester-garden-discovery .ggd-bush-left { position:absolute; bottom:10%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 20% 80% / 80% 60% 40% 60%; box-shadow: inset 0 5px 15px rgba(0,0,0,0.6); }
.scn-gloucester-garden-discovery .ggd-bush-right { position:absolute; bottom:15%; right:2%; width:25%; height:45%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 60% 80% 20% / 60% 80% 20% 40%; box-shadow: inset 0 5px 15px rgba(0,0,0,0.6); }
.scn-gloucester-garden-discovery .ggd-figure { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ggd-watch 8s ease-in-out infinite; }
.scn-gloucester-garden-discovery .ggd-lantern { position:absolute; bottom:28%; left:25%; width:10px; height:14px; background: radial-gradient(circle at 50% 30%, #e8b860 0%, #a07030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 25px 8px rgba(232,184,96,0.6), 0 0 50px 16px rgba(232,184,96,0.3); animation: ggd-flicker 3s ease-in-out infinite alternate; }
.scn-gloucester-garden-discovery .ggd-sneak { position:absolute; bottom:18%; right:30%; width:18px; height:44px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ggd-crouch 6s ease-in-out infinite; }
.scn-gloucester-garden-discovery .ggd-leaves { position:absolute; bottom:35%; left:15%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 30%, #2a4a2a 0%, transparent 70%); border-radius:40%; filter:blur(3px); animation: ggd-shake 12s linear infinite; }

@keyframes ggd-night { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes ggd-watch { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ggd-flicker { 0% { box-shadow: 0 0 20px 5px rgba(232,184,96,0.5); opacity:.9; } 50% { box-shadow: 0 0 35px 12px rgba(232,184,96,0.8); opacity:1; } 100% { box-shadow: 0 0 20px 5px rgba(232,184,96,0.5); opacity:.9; } }
@keyframes ggd-crouch { 0% { transform: translateY(0) scaleY(1); } 30% { transform: translateY(-2px) scaleY(0.95); } 60% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(1px) scaleY(1.02); } }
@keyframes ggd-shake { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-ggd {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 30%, #2a1a2e 60%, #1e1010 100%),
              radial-gradient(ellipse at 70% 20%, #2a2a4e 0%, transparent 60%);
}
.scn-ggd .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0a0a12 0%, #14142a 50%, #1e1e3a 100%); animation: ggd-sky 20s ease-in-out infinite alternate; }
.scn-ggd .moon { position:absolute; top:12%; right:25%; width:50px; height:50px; background: radial-gradient(circle, #c0c8e0 0%, #8088a0 70%, transparent 100%); border-radius:50%; filter: blur(2px); box-shadow: 0 0 40px 20px #7078a0; animation: ggd-moon 8s ease-in-out infinite; }
.scn-ggd .treeline-back { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); animation: ggd-back-sway 15s ease-in-out infinite; }
.scn-ggd .treeline-front { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 100%); border-radius: 50% 30% 0 0 / 70% 60% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5); animation: ggd-front-sway 10s ease-in-out infinite; }
.scn-ggd .path { position:absolute; bottom:10%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); animation: ggd-path 12s ease-in-out infinite alternate; }
.scn-ggd .figure-accuser { position:absolute; bottom:20%; left:30%; width:24px; height:64px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ggd-accuser 2s ease-in-out infinite; }
.scn-ggd .figure-kneeling { position:absolute; bottom:12%; left:55%; width:20px; 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: ggd-kneeling 3s ease-in-out infinite; }
.scn-ggd .lantern { position:absolute; bottom:33%; left:38%; width:8px; height:12px; background: radial-gradient(circle, #d08040 0%, #a05830 60%, transparent 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 8px #d08040, 0 0 40px 16px rgba(208,128,64,.4); animation: ggd-lantern 1.6s ease-in-out infinite alternate; }

@keyframes ggd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ggd-moon { 0% { opacity:.6; transform: scale(.95) translateY(0) } 50% { opacity:1; transform: scale(1.05) translateY(-2px) } 100% { opacity:.7; transform: scale(.98) translateY(1px) } }
@keyframes ggd-back-sway { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(2px) } }
@keyframes ggd-front-sway { 0% { transform: translateX(0) rotate(-0.5deg) } 50% { transform: translateX(6px) rotate(0.5deg) } 100% { transform: translateX(-3px) rotate(-0.3deg) } }
@keyframes ggd-path { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.9; transform: scaleY(0.98) } }
@keyframes ggd-accuser { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ggd-kneeling { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(3px) rotate(0) } 70% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ggd-lantern { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }

.scn-item-conjuration-circle { background: linear-gradient(180deg, #0b0b1a 0%, #1a0a2e 40%, #0d0d2b 100%), radial-gradient(ellipse at 50% 80%, #2a1a4e 0%, transparent 70%); }

.scn-item-conjuration-circle .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2a5e 0%, transparent 70%); animation: sc1-bg 10s ease-in-out infinite; }

.scn-item-conjuration-circle .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }

.scn-item-conjuration-circle .circle-ring { position:absolute; bottom:20%; left:50%; width:200px; height:200px; transform:translateX(-50%); border: 2px solid rgba(180,150,255,0.5); border-radius:50%; box-shadow: 0 0 20px rgba(180,150,255,0.3), inset 0 0 20px rgba(180,150,255,0.1); animation: sc1-ring 8s ease-in-out infinite; }

.scn-item-conjuration-circle .circle-inner { position:absolute; bottom:20%; left:50%; width:180px; height:180px; transform:translateX(-50%) translateY(10px); background: radial-gradient(circle, rgba(180,150,255,0.15) 0%, rgba(100,80,200,0.05) 60%, transparent 100%); border-radius:50%; animation: sc1-inner 4s ease-in-out infinite alternate; }

.scn-item-conjuration-circle .figure { position:absolute; bottom:25%; 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; animation: sc1-figure 6s ease-in-out infinite; }

.scn-item-conjuration-circle .spirit { position:absolute; bottom:25%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,180,255,0.4) 0%, rgba(100,80,200,0.1) 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; filter: blur(4px); animation: sc1-spirit 12s ease-in-out infinite; }

.scn-item-conjuration-circle .lightning { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 20%, rgba(200,200,255,0.8) 0%, transparent 50%); opacity:0; animation: sc1-lightning 8s ease-in-out infinite; }

.scn-item-conjuration-circle .sp1 { position:absolute; bottom:25%; left:42%; width:4px; height:4px; background: rgba(200,200,255,0.8); border-radius:50%; box-shadow: 0 0 6px rgba(200,200,255,0.8); animation: sc1-sparkle 2s ease-in-out infinite; }

.scn-item-conjuration-circle .sp2 { position:absolute; bottom:30%; left:58%; width:3px; height:3px; background: rgba(180,150,255,0.7); border-radius:50%; box-shadow: 0 0 4px rgba(180,150,255,0.7); animation: sc1-sparkle 2.5s ease-in-out infinite 0.5s; }

@keyframes sc1-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }

@keyframes sc1-ring { 0% { transform: translateX(-50%) rotate(0deg); box-shadow: 0 0 20px rgba(180,150,255,0.3); } 50% { transform: translateX(-50%) rotate(180deg); box-shadow: 0 0 40px rgba(180,150,255,0.6); } 100% { transform: translateX(-50%) rotate(360deg); box-shadow: 0 0 20px rgba(180,150,255,0.3); } }

@keyframes sc1-inner { 0% { opacity:0.5; transform: translateX(-50%) translateY(10px) scale(1); } 50% { opacity:1; transform: translateX(-50%) translateY(5px) scale(1.1); } 100% { opacity:0.6; transform: translateX(-50%) translateY(10px) scale(1); } }

@keyframes sc1-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-5deg) scale(1.02); } 50% { transform: translateY(0) rotate(0deg) scale(1); } 75% { transform: translateY(-3px) rotate(5deg) scale(1.01); } 100% { transform: translateY(0) rotate(0deg); } }

@keyframes sc1-spirit { 0% { transform: translateX(-50%) translateY(0) scale(0.8); opacity:0.3; } 30% { transform: translateX(-50%) translateY(-60px) scale(1.2); opacity:0.6; } 60% { transform: translateX(-50%) translateY(-120px) scale(1.5); opacity:0.4; } 100% { transform: translateX(-50%) translateY(-200px) scale(2); opacity:0; } }

@keyframes sc1-lightning { 0%, 90%, 100% { opacity:0; } 10% { opacity:0.6; } 15% { opacity:0; } 20% { opacity:0.8; } 25% { opacity:0; } }

@keyframes sc1-sparkle { 0% { opacity:0; transform: scale(0); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0); } }

.scn-st-albans-quarrel { background: linear-gradient(180deg, #f9e4b7 0%, #b8c6db 50%, #7c98b3 100%), radial-gradient(ellipse at 70% 20%, #fff8e7 0%, transparent 60%); }
.scn-st-albans-quarrel .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); animation: saq-bg 6s ease-in-out infinite alternate; }
.scn-st-albans-quarrel .sunburst { position:absolute; top:0; right:20%; width:60%; height:80%; background: radial-gradient(ellipse at center, #ffecb3 0%, transparent 60%); opacity:0.6; animation: saq-glare 2s ease-in-out infinite alternate; }
.scn-st-albans-quarrel .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-st-albans-quarrel .figure-left { position:absolute; bottom:20%; left:20%; width:80px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: saq-tremor-left 1.6s ease-in-out infinite; }
.scn-st-albans-quarrel .figure-right { position:absolute; bottom:20%; right:20%; width:80px; height:130px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: saq-tremor-right 2.1s ease-in-out infinite; }
.scn-st-albans-quarrel .lectern { position:absolute; bottom:20%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-st-albans-quarrel .tension-ray { position:absolute; top:30%; left:10%; width:80%; height:4px; background: linear-gradient(90deg, transparent, rgba(255,180,100,0.5), transparent); transform: rotate(15deg); animation: saq-ray 1.5s ease-in-out infinite; }
@keyframes saq-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes saq-glare { 0% { opacity:0.4; transform: scale(0.98) } 50% { opacity:0.8; transform: scale(1.02) } 100% { opacity:0.5; transform: scale(1) } }
@keyframes saq-tremor-left { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-2px,1px) rotate(1deg) } 50% { transform: translate(1px,-1px) rotate(-1deg) } 75% { transform: translate(-1px,2px) rotate(0.5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes saq-tremor-right { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(-1deg) } 50% { transform: translate(-1px,1px) rotate(1deg) } 75% { transform: translate(1px,-2px) rotate(-0.5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes saq-ray { 0% { opacity:0; transform: rotate(15deg) translateX(-20px) } 50% { opacity:0.4; transform: rotate(15deg) translateX(10px) } 100% { opacity:0; transform: rotate(15deg) translateX(30px) } }

.scn-st-albans-hawking {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E6D0 100%),
    radial-gradient(ellipse at 30% 20%, #FFDAB9 0%, transparent 70%);
}
.scn-st-albans-hawking .sky {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #7EC8E3 0%, #E0F7FA 100%);
  animation: sh-sky 30s ease-in-out infinite alternate;
}
.scn-st-albans-hawking .sun {
  position: absolute; top: 8%; left: 22%; 
  width: 70px; height: 70px; 
  background: radial-gradient(circle at center, #FFE4B5 0%, #FFA07A 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,218,185,0.6);
  animation: sh-sun 8s ease-in-out infinite alternate;
}
.scn-st-albans-hawking .hills {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7CCD7C 0%, #4A7A4A 100%);
  border-radius: 40% 60% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: sh-hills 12s ease-in-out infinite alternate;
}
.scn-st-albans-hawking .falcon {
  position: absolute; top: 15%; left: 50%; 
  width: 40px; height: 30px; 
  background: #2c1a0e; 
  border-radius: 50% 50% 20% 20%;
  transform-origin: center bottom;
  animation: sh-falcon 20s ease-in-out infinite alternate;
}
.scn-st-albans-hawking .falcon::before,
.scn-st-albans-hawking .falcon::after {
  content: '';
  position: absolute; 
  width: 30px; height: 8px; 
  background: #2c1a0e;
  border-radius: 0 50% 50% 0;
}
.scn-st-albans-hawking .falcon::before {
  top: 6px; left: -24px; 
  transform: rotate(-25deg);
  animation: sh-wing-left 2s ease-in-out infinite;
}
.scn-st-albans-hawking .falcon::after {
  top: 6px; right: -24px; 
  transform: rotate(25deg);
  animation: sh-wing-right 2s ease-in-out infinite;
}
.scn-st-albans-hawking .cloud {
  position: absolute; 
  width: 80px; height: 20px; 
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-st-albans-hawking .cloud-a {
  top: 12%; left: 10%; 
  animation: sh-drift-a 50s linear infinite;
  animation-delay: -10s;
}
.scn-st-albans-hawking .cloud-b {
  top: 25%; right: 15%; 
  width: 60px; height: 15px;
  animation: sh-drift-b 60s linear infinite reverse;
  animation-delay: -30s;
}
@keyframes sh-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sh-sun {
  0% { box-shadow: 0 0 30px 8px rgba(255,218,185,0.5); opacity: 0.9; transform: scale(0.95); }
  50% { box-shadow: 0 0 50px 15px rgba(255,218,185,0.8); opacity: 1; transform: scale(1.05); }
  100% { box-shadow: 0 0 35px 10px rgba(255,218,185,0.6); opacity: 0.95; transform: scale(1); }
}
@keyframes sh-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes sh-falcon {
  0% { transform: translateX(-20px) translateY(0) rotate(-2deg); }
  25% { transform: translateX(10px) translateY(-20px) rotate(2deg); }
  50% { transform: translateX(40px) translateY(-5px) rotate(-1deg); }
  75% { transform: translateX(70px) translateY(-30px) rotate(1deg); }
  100% { transform: translateX(100px) translateY(-10px) rotate(0deg); }
}
@keyframes sh-wing-left {
  0%,100% { transform: rotate(-25deg) scaleY(1); }
  50% { transform: rotate(-35deg) scaleY(0.8); }
}
@keyframes sh-wing-right {
  0%,100% { transform: rotate(25deg) scaleY(1); }
  50% { transform: rotate(35deg) scaleY(0.8); }
}
@keyframes sh-drift-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes sh-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.foliage { position: absolute; pointer-events: none; }
.lord { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-combat-preparation {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #d4c0a0 100%),
              radial-gradient(ellipse at 70% 30%, #ffe0b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-combat-preparation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 100%);
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.05);
}
.scn-combat-preparation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 20% 10% 0 0 / 30% 20% 0 0;
}
.scn-combat-preparation .figure-drunk {
  position: absolute; bottom: 26%; left: 40%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #c88050 0%, #a06030 60%, #704020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp-drunk 2s ease-in-out infinite alternate;
}
.scn-combat-preparation .armourer-mug {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0a890 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  transform-origin: center bottom;
  animation: cp-mug 1.5s ease-in-out infinite alternate;
}
.scn-combat-preparation .drum {
  position: absolute; bottom: 28%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c89040 0%, #a87030 100%);
  border-radius: 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cp-drum 3s ease-in-out infinite;
}
.scn-combat-preparation .staff {
  position: absolute; bottom: 24%; left: 34%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: cp-staff 2.5s ease-in-out infinite alternate;
}
.scn-combat-preparation .neighbour {
  position: absolute; bottom: 26%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #886a4a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-combat-preparation .neighbour.left {
  left: 20%;
  animation: cp-neigh-left 3s ease-in-out infinite;
}
.scn-combat-preparation .neighbour.right {
  right: 20%;
  animation: cp-neigh-right 3.5s ease-in-out infinite;
}

@keyframes cp-drunk {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(1px); }
}
@keyframes cp-mug {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(1px); }
}
@keyframes cp-drum {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.05); }
}
@keyframes cp-staff {
  0% { transform: rotate(-18deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(1px); }
}
@keyframes cp-neigh-left {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(3deg); }
}
@keyframes cp-neigh-right {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-4px) rotate(-4deg); }
}

.scn-combat-fight {
  background: linear-gradient(180deg, #f2e0c8 0%, #e0c8a8 30%, #d0b890 100%),
              radial-gradient(ellipse at 30% 40%, #ffe8b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-combat-fight .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d4bc 0%, #d4bca0 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.06);
}
.scn-combat-fight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c0a884 0%, #a08868 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
}
.scn-combat-fight .figure-arms {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #b87858 0%, #906040 60%, #684028 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: cf-figure 4s ease-in-out infinite;
}
.scn-combat-fight .apron {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #a07050 0%, #805030 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top center;
  animation: cf-apron 3s ease-in-out infinite alternate;
}
.scn-combat-fight .hammer {
  position: absolute; bottom: 22%; left: 60%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%, #3a1a08 100%);
  border-radius: 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: cf-hammer 2.5s ease-in-out infinite;
}
.scn-combat-fight .mug-fight {
  position: absolute; bottom: 26%; left: 42%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #d4c4b0 0%, #b8a088 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: 0 3px 5px rgba(0,0,0,0.2);
  transform-origin: center bottom;
  animation: cf-mug 1.8s ease-in-out infinite alternate;
}
.scn-combat-fight .coin {
  position: absolute; bottom: 24%; left: 70%; width: 14px; height: 14px;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 80%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: cf-coin 6s linear infinite;
}

@keyframes cf-figure {
  0%,100% { transform: translateX(-50%) rotate(0) translateY(0); }
  25% { transform: translateX(-50%) rotate(4deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(2px); }
  75% { transform: translateX(-50%) rotate(6deg) translateY(-1px); }
}
@keyframes cf-apron {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.9); }
  100% { transform: rotate(-15deg) scaleY(1.05); }
}
@keyframes cf-hammer {
  0%,100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
}
@keyframes cf-mug {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes cf-coin {
  0% { transform: translateY(0) rotate(0) scale(1); }
  20% { transform: translateY(-10px) rotate(180deg) scale(1.1); }
  40% { transform: translateY(0) rotate(360deg) scale(1); }
  60% { transform: translateY(-6px) rotate(540deg) scale(0.95); }
  80% { transform: translateY(0) rotate(720deg) scale(1.05); }
  100% { transform: translateY(0) rotate(720deg) scale(1); }
}

/* garden-conjuring (dark, dark) */
.scn-garden-conjuring {
  background:
    radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%),
    linear-gradient(180deg, #0f1020 0%, #1a1a30 40%, #0a0a14 100%);
}
.scn-garden-conjuring .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0c0e1f 0%, #161836 100%);
  animation: gc-sky 16s ease-in-out infinite alternate;
}
.scn-garden-conjuring .trees {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background:
    linear-gradient(135deg, #0f120f 0%, #0a0c0a 50%, #050605 100%);
  clip-path: polygon(0 100%, 5% 20%, 12% 70%, 20% 15%, 30% 55%, 38% 10%, 48% 60%, 55% 5%, 65% 40%, 72% 0%, 80% 35%, 88% 5%, 95% 30%, 100% 20%, 100% 100%);
  animation: gc-trees 9s ease-in-out infinite;
}
.scn-garden-conjuring .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #121412 0%, #0b0d0b 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-garden-conjuring .figure-conjurer {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: gc-figure 5s ease-in-out infinite;
}
.scn-garden-conjuring .circle {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 70%);
  border: 2px solid #5a4a2a;
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(90,74,42,.3);
  animation: gc-circle 8s ease-in-out infinite;
}
.scn-garden-conjuring .glow {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c0a040 0%, rgba(192,160,64,.3) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,160,64,.5);
  animation: gc-glow 2s ease-in-out infinite alternate;
}
.scn-garden-conjuring .smoke {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(80,80,100,.4) 0%, transparent 70%);
  filter: blur(4px);
  border-radius: 50%;
  animation: gc-smoke 12s linear infinite;
}
@keyframes gc-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes gc-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) rotate(1deg) } 100% { transform: scaleY(1) } }
@keyframes gc-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-50%) } }
@keyframes gc-circle { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes gc-glow { 0% { opacity: .4; box-shadow: 0 0 20px 5px rgba(192,160,64,.3) } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(192,160,64,.6) } }
@keyframes gc-smoke { 0% { transform: translate(0,0) scale(1); opacity: .5 } 50% { transform: translate(10px,-20px) scale(2); opacity: .2 } 100% { transform: translate(-5px,-40px) scale(3); opacity: 0 } }

/* spirit-raised (dark, dark) */
.scn-spirit-raised {
  background:
    radial-gradient(ellipse at 50% 60%, #1a0a2a 0%, transparent 80%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a30 50%, #0a0510 100%);
}
.scn-spirit-raised .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0a1a 0%, #1c1430 50%, #080410 100%);
  animation: sr-bg 12s ease-in-out infinite alternate;
}
.scn-spirit-raised .altar {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 20px rgba(80,40,60,.4);
  animation: sr-altar 10s ease-in-out infinite;
}
.scn-spirit-raised .conjurer {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  animation: sr-conjurer 4s ease-in-out infinite;
}
.scn-spirit-raised .spirit {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(100,80,160,.7) 0%, rgba(60,40,120,.3) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: sr-spirit 6s ease-in-out infinite alternate;
}
.scn-spirit-raised .rays {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(140,120,200,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: sr-rays 8s ease-in-out infinite;
}
.scn-spirit-raised .smoke {
  position: absolute; bottom: 20%; left: 40%; width: 25px; height: 30px;
  background: radial-gradient(ellipse, rgba(160,140,200,.3) 0%, transparent 70%);
  filter: blur(5px);
  border-radius: 50%;
  animation: sr-smoke 15s linear infinite;
}
@keyframes sr-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sr-altar { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes sr-conjurer { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) } }
@keyframes sr-spirit { 0% { transform: translateX(-50%) scaleY(1); opacity: .4 } 50% { transform: translateX(-50%) scaleY(1.1); opacity: .8 } 100% { transform: translateX(-50%) scaleY(0.9); opacity: .5 } }
@keyframes sr-rays { 0% { transform: translateX(-50%) scale(1); opacity: .3 } 50% { transform: translateX(-50%) scale(1.3); opacity: .6 } 100% { transform: translateX(-50%) scale(0.9); opacity: .2 } }
@keyframes sr-smoke { 0% { transform: translate(0,0) scale(1); opacity: .4 } 50% { transform: translate(-8px,-15px) scale(1.5); opacity: .6 } 100% { transform: translate(10px,-35px) scale(2); opacity: 0 } }

/* falconry-argue (tense, sunlit) */
.scn-falconry-argue {
  background:
    radial-gradient(ellipse at 50% 0%, #f8e8c0 0%, transparent 60%),
    linear-gradient(180deg, #c8d8e8 0%, #e8e0c8 50%, #c0b890 100%);
}
.scn-falconry-argue .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #d0e0f0 100%);
  animation: fa-sky 8s ease-in-out infinite alternate;
}
.scn-falconry-argue .sun {
  position: absolute; top: 12%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5d0 0%, #f0d080 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,208,128,.5);
  animation: fa-sun 5s ease-in-out infinite;
}
.scn-falconry-argue .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a0b850 0%, #7a9a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.2);
}
.scn-falconry-argue .figures.left {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fa-fig-left 3s ease-in-out infinite;
}
.scn-falconry-argue .figures.right {
  position: absolute; bottom: 25%; right: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fa-fig-right 3.4s ease-in-out infinite reverse;
}
.scn-falconry-argue .falcon {
  position: absolute; top: 30%; left: 60%; width: 40px; height: 20px;
  background: #3a2a1a;
  border-radius: 70% 70% 30% 30% / 80% 80% 20% 20%;
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 80%);
  transform: rotate(-20deg);
  animation: fa-falcon 2.5s ease-in-out infinite;
}
.scn-falconry-argue .prey {
  position: absolute; top: 45%; left: 45%; width: 12px; height: 12px;
  background: #6a4a2a;
  border-radius: 50%;
  animation: fa-prey 3s ease-in-out infinite;
}
@keyframes fa-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes fa-sun { 0% { transform: scale(1) } 50% { transform: scale(1.08) } 100% { transform: scale(0.95) } }
@keyframes fa-fig-left { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-2px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(-5deg) } }
@keyframes fa-fig-right { 0% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(5deg) } }
@keyframes fa-falcon { 0% { transform: rotate(-20deg) translate(0,0) } 30% { transform: rotate(-30deg) translate(20px,-10px) scale(1.1) } 60% { transform: rotate(10deg) translate(0,0) } 100% { transform: rotate(-20deg) } }
@keyframes fa-prey { 0% { transform: translate(0,0) } 30% { transform: translate(-30px,20px) } 60% { transform: translate(10px,10px) } 100% { transform: translate(0,0) } }

/* miracle-claim (funny, sunlit) */
.scn-miracle-claim {
  background:
    radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 50%),
    linear-gradient(180deg, #c0d8f0 0%, #e8f0ff 50%, #e0d8c0 100%);
}
.scn-miracle-claim .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0c0e0 0%, #c8e0f8 100%);
  animation: mc-sky 10s ease-in-out infinite alternate;
}
.scn-miracle-claim .sunbeams {
  position: absolute; top: 0; left: 30%; width: 100px; height: 100vh;
  background: linear-gradient(180deg, rgba(255,240,180,.3) 0%, rgba(255,200,100,.05) 100%);
  clip-path: polygon(0 0, 40% 0, 60% 100%, 20% 100%);
  animation: mc-beams 6s ease-in-out infinite;
}
.scn-miracle-claim .shrine {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 0 40px 10px rgba(200,160,100,.4);
  animation: mc-shrine 4s ease-in-out infinite;
}
.scn-miracle-claim .blind-man {
  position: absolute; bottom: 15%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mc-blind 3s ease-in-out infinite;
}
.scn-miracle-claim .glow {
  position: absolute; bottom: 25%; left: 38%; width: 14px; height: 14px;
  background: radial-gradient(circle, #f0d090 0%, rgba(200,160,80,.4) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(240,208,144,.6);
  animation: mc-glow 2s ease-in-out infinite alternate;
}
.scn-miracle-claim .townspeople.a {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mc-person-a 5s ease-in-out infinite;
}
.scn-miracle-claim .townspeople.b {
  position: absolute; bottom: 20%; right: 20%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mc-person-b 5.5s ease-in-out infinite reverse;
}
@keyframes mc-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mc-beams { 0% { transform: rotate(-3deg); opacity: .7 } 50% { transform: rotate(3deg); opacity: 1 } 100% { transform: rotate(-2deg); opacity: .8 } }
@keyframes mc-shrine { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes mc-blind { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-5px) rotate(-2deg) } 60% { transform: translateY(5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mc-glow { 0% { box-shadow: 0 0 20px 10px rgba(240,208,144,.4); opacity: .6 } 100% { box-shadow: 0 0 50px 25px rgba(240,208,144,.8); opacity: 1 } }
@keyframes mc-person-a { 0% { transform: rotate(-3deg) } 25% { transform: rotate(4deg) translateX(5px) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(3deg) translateX(-3px) } 100% { transform: rotate(-3deg) } }
@keyframes mc-person-b { 0% { transform: rotate(2deg) } 25% { transform: rotate(-3deg) translateX(-4px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-4deg) translateX(3px) } 100% { transform: rotate(2deg) } }

/* warwick-anger – dark mood, bright interior */
.scn-warwick-anger { background: linear-gradient(135deg, #2a1a1a 0%, #3a2020 50%, #4a2a2a 100%), radial-gradient(ellipse at 60% 30%, #5a3a3a 0%, transparent 70%); }
.scn-warwick-anger .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1010 0%, #2a1818 40%, #3a2020 100%); }
.scn-warwick-anger .wall-l { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #2a1a1a 0%, #3a2020 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,0.5); }
.scn-warwick-anger .wall-r { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(270deg, #2a1a1a 0%, #3a2020 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,0.5); }
.scn-warwick-anger .window { position:absolute; top:20%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at center, #e0c090 0%, #b08060 40%, #4a2a2a 80%); border-radius: 12px; box-shadow: 0 0 60px 20px rgba(224,192,144,0.3); animation: wa-window 6s ease-in-out infinite alternate; }
.scn-warwick-anger .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2020 0%, #1a1010 100%); border-radius: 0 0 0 0; }
.scn-warwick-anger .figure { position:absolute; bottom:30%; left:50%; width:40px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0808 0%, #1a1010 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -4px 0 8px rgba(0,0,0,0.6); animation: wa-figure 2s ease-in-out infinite; }
.scn-warwick-anger .shadow { position:absolute; bottom:30%; left:44%; width:12%; height:20px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(6px); animation: wa-shadow 2s ease-in-out infinite; }
.scn-warwick-anger .candle { position:absolute; bottom:35%; left:20%; width:10px; height:40px; background: linear-gradient(180deg, #e0a060 0%, #c08040 40%, #2a1818 100%); border-radius: 4px; box-shadow: 0 0 20px 8px #e0a060; animation: wa-candle 3s ease-in-out infinite alternate; }
@keyframes wa-window { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes wa-figure { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 30% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 100% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } }
@keyframes wa-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(0.9); opacity:0.5; } }
@keyframes wa-candle { 0% { box-shadow: 0 0 20px 8px #e0a060; } 50% { box-shadow: 0 0 30px 12px #f0b070; } 100% { box-shadow: 0 0 15px 5px #c08040; } }

/* gloucester-exit-prophecy – tense, bright interior */
.scn-gloucester-exit-prophecy { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #1a1a2a 100%), radial-gradient(ellipse at 70% 40%, #4a4a5a 0%, transparent 70%); }
.scn-gloucester-exit-prophecy .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 100%); }
.scn-gloucester-exit-prophecy .wall-l { position:absolute; left:0; top:0; width:25%; height:100%; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 100%); box-shadow: inset -5px 0 15px rgba(0,0,0,0.4); }
.scn-gloucester-exit-prophecy .wall-r { position:absolute; right:0; top:0; width:25%; height:100%; background: linear-gradient(270deg, #2a2a3a 0%, #3a3a4a 100%); box-shadow: inset 5px 0 15px rgba(0,0,0,0.4); }
.scn-gloucester-exit-prophecy .door { position:absolute; top:15%; right:30%; width:15%; height:70%; background: radial-gradient(ellipse at center, #e8d090 0%, #b09060 50%, #3a3a4a 100%); border-radius: 8px; box-shadow: 0 0 40px 15px rgba(232,208,144,0.3); animation: gep-door 4s ease-in-out infinite alternate; }
.scn-gloucester-exit-prophecy .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-gloucester-exit-prophecy .figure { position:absolute; bottom:25%; left:15%; width:35px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gep-figure 3s ease-in-out infinite; }
.scn-gloucester-exit-prophecy .shadow { position:absolute; bottom:25%; left:18%; width:10%; height:15px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: gep-shadow 3s ease-in-out infinite; }
.scn-gloucester-exit-prophecy .prophet-orb { position:absolute; top:30%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #a0c0e0 0%, #4060a0 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px #4060a0; animation: gep-orb 5s ease-in-out infinite; }
@keyframes gep-door { 0% { transform: scaleX(1); opacity:0.9; } 50% { transform: scaleX(1.1); opacity:1; } 100% { transform: scaleX(0.9); opacity:0.8; } }
@keyframes gep-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(20px) rotate(-2deg); } 50% { transform: translateX(40px) rotate(1deg); } 75% { transform: translateX(60px) rotate(-1deg); } 100% { transform: translateX(80px) rotate(0deg); } }
@keyframes gep-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.5; } 50% { transform: scaleX(1.3) translateX(20px); opacity:0.7; } 100% { transform: scaleX(0.8) translateX(80px); opacity:0.3; } }
@keyframes gep-orb { 0% { transform: scale(0.9) rotate(0deg); opacity:0.6; } 50% { transform: scale(1.2) rotate(180deg); opacity:1; } 100% { transform: scale(0.8) rotate(360deg); opacity:0.5; } }

/* suffolk-plotting – tense, bright interior */
.scn-suffolk-plotting { background: linear-gradient(180deg, #2a2a1a 0%, #3a3a2a 50%, #1a1a0a 100%), radial-gradient(ellipse at 50% 60%, #4a4a3a 0%, transparent 70%); }
.scn-suffolk-plotting .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a0a 0%, #2a2a1a 100%); }
.scn-suffolk-plotting .table { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); animation: sp-table 6s ease-in-out infinite; }
.scn-suffolk-plotting .candle-a { position:absolute; bottom:40%; left:25%; width:6px; height:30px; background: linear-gradient(180deg, #e0a060 0%, #c08040 40%, #3a2a1a 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #e0a060; animation: sp-candle 2s ease-in-out infinite alternate; }
.scn-suffolk-plotting .candle-b { position:absolute; bottom:40%; right:25%; width:6px; height:30px; background: linear-gradient(180deg, #e0a060 0%, #c08040 40%, #3a2a1a 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #e0a060; animation: sp-candle 2s ease-in-out infinite alternate-reverse; }
.scn-suffolk-plotting .figure-a { position:absolute; bottom:30%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sp-fig 8s ease-in-out infinite; }
.scn-suffolk-plotting .figure-b { position:absolute; bottom:30%; right:25%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sp-fig 8s ease-in-out infinite 2s; }
.scn-suffolk-plotting .figure-c { position:absolute; bottom:30%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sp-fig 8s ease-in-out infinite 4s; }
.scn-suffolk-plotting .map { position:absolute; bottom:28%; left:35%; width:30%; height:10%; background: linear-gradient(135deg, #b8a880 0%, #c8b890 50%, #a89870 100%); border-radius: 8px; transform: perspective(400px) rotateX(10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: sp-map 12s ease-in-out infinite alternate; }
.scn-suffolk-plotting .shadow { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: rgba(0,0,0,0.4); filter: blur(8px); border-radius: 50%; animation: sp-shadow 8s ease-in-out infinite; }
@keyframes sp-table { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes sp-candle { 0% { box-shadow: 0 0 20px 6px #e0a060; } 50% { box-shadow: 0 0 30px 10px #f0b070; } 100% { box-shadow: 0 0 15px 4px #c08040; } }
@keyframes sp-fig { 0% { transform: rotate(0deg) scaleY(1); } 20% { transform: rotate(-3deg) scaleY(1.02); } 40% { transform: rotate(2deg) scaleY(0.98); } 60% { transform: rotate(-1deg) scaleY(1.01); } 80% { transform: rotate(4deg) scaleY(0.99); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes sp-map { 0% { transform: perspective(400px) rotateX(10deg) translateX(0); } 50% { transform: perspective(400px) rotateX(12deg) translateX(5px); } 100% { transform: perspective(400px) rotateX(8deg) translateX(-5px); } }
@keyframes sp-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(0.9); } }

/* salisbury-wisdom – calm, bright interior */
.scn-salisbury-wisdom { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #b8b0a0 100%), radial-gradient(ellipse at 70% 30%, #f0e8d8 0%, transparent 70%); }
.scn-salisbury-wisdom .bg { position:absolute; inset:0; background: linear-gradient(135deg, #d0c8b8 0%, #e8e0d0 100%); }
.scn-salisbury-wisdom .window { position:absolute; top:10%; right:10%; width:30%; height:50%; background: radial-gradient(ellipse at center, #f0e8d8 0%, #d0c8b8 60%, #b8b0a0 100%); border-radius: 12px; box-shadow: inset 0 0 40px 10px rgba(255,255,240,0.3); animation: sw-window 8s ease-in-out infinite alternate; }
.scn-salisbury-wisdom .curtain { position:absolute; top:10%; right:10%; width:34%; height:55%; background: linear-gradient(180deg, rgba(200,180,160,0.6) 0%, rgba(180,160,140,0.4) 100%); border-radius: 4px; filter: blur(2px); animation: sw-curtain 10s ease-in-out infinite; }
.scn-salisbury-wisdom .chair { position:absolute; bottom:25%; left:25%; width:20%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: sw-chair 12s ease-in-out infinite; }
.scn-salisbury-wisdom .figure { position:absolute; bottom:22%; left:30%; width:35px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sw-figure 5s ease-in-out infinite; }
.scn-salisbury-wisdom .book { position:absolute; bottom:28%; left:36%; width:20px; height:15px; background: linear-gradient(135deg, #b0a090 0%, #908070 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sw-book 8s ease-in-out infinite alternate; }
.scn-salisbury-wisdom .light { position:absolute; top:15%; left:40%; width:40%; height:20%; background: radial-gradient(ellipse at center, rgba(255,255,240,0.3) 0%, transparent 70%); filter: blur(20px); animation: sw-light 6s ease-in-out infinite alternate; }
@keyframes sw-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sw-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes sw-chair { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes sw-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sw-book { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-12deg) scale(0.95); } }
@keyframes sw-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

/* queen-complaint scene */
.scn-queen-complaint { background: linear-gradient(180deg, #1a1428 0%, #2a1e3a 40%, #3a2848 70%, #2a1a30 100%), radial-gradient(ellipse at 50% 60%, #4a3858 0%, transparent 70%); }
.scn-queen-complaint .wall    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a38 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.5); }
.scn-queen-complaint .floor   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1020 0%, #2a1a30 100%); border-top:2px solid #4a3858; }
.scn-queen-complaint .window  { position:absolute; top:15%; right:15%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #6a5a7a 0%, #3a2a4a 60%, transparent 90%); border:3px solid #5a4a6a; border-radius:4px; box-shadow: inset 0 0 30px rgba(100,80,120,.3); animation: qc-window 8s ease-in-out infinite alternate; }
.scn-queen-complaint .candle  { position:absolute; bottom:40%; left:28%; width:8px; height:50px; background: linear-gradient(180deg, #f0d090 0%, #c09050 60%, #8a6030 100%); border-radius:2px; box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 12px rgba(200,160,80,.4); animation: qc-candle 3s ease-in-out infinite alternate; }
.scn-queen-complaint .queen   { position:absolute; bottom:20%; left:55%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: qc-queen 5s ease-in-out infinite; }
.scn-queen-complaint .gown    { position:absolute; bottom:18%; left:52%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 0%, #5a4a6a 0%, #2a1a3a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: rotate(-2deg); animation: qc-gown 5s ease-in-out infinite; }
.scn-queen-complaint .drapery { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #3a2a4a 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 90% 15%, 100% 30%, 85% 45%, 100% 60%, 88% 75%, 100% 90%, 95% 100%, 0 100%); animation: qc-drape 12s ease-in-out infinite alternate; }
.scn-queen-complaint .shadow  { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); }
@keyframes qc-window  { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.8; transform: scale(1.02) } 100% { opacity:.7; transform: scale(.98) } }
@keyframes qc-candle  { 0% { opacity:.7; box-shadow: 0 0 12px 3px #d0a060, 0 0 24px 6px rgba(200,160,80,.3) } 50% { opacity:1; box-shadow: 0 0 24px 8px #f0c080, 0 0 48px 16px rgba(240,192,128,.5) } 100% { opacity:.8; box-shadow: 0 0 16px 5px #d0a060, 0 0 32px 10px rgba(200,160,80,.35) } }
@keyframes qc-queen   { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes qc-gown    { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(.98) } }
@keyframes qc-drape   { 0% { clip-path: polygon(0 0, 100% 0, 90% 15%, 100% 30%, 85% 45%, 100% 60%, 88% 75%, 100% 90%, 95% 100%, 0 100%) } 50% { clip-path: polygon(0 0, 100% 0, 88% 18%, 100% 33%, 82% 47%, 100% 58%, 85% 72%, 100% 88%, 92% 100%, 0 100%) } 100% { clip-path: polygon(0 0, 100% 0, 92% 12%, 100% 28%, 88% 43%, 100% 62%, 90% 78%, 100% 92%, 98% 100%, 0 100%) } }

/* court-argument scene */
.scn-court-argument { background: linear-gradient(180deg, #c8b898 0%, #b0a080 30%, #a09070 60%, #908060 100%), radial-gradient(ellipse at 50% 0%, #d8c8a8 0%, transparent 60%); }
.scn-court-argument .hall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #a89878 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.15); animation: ca-hall 12s ease-in-out infinite alternate; }
.scn-court-argument .column-l { position:absolute; bottom:5%; left:20%; width:20px; height:80%; background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 30%, #c8b898 100%); border-radius:4px; box-shadow: 4px 0 12px rgba(0,0,0,.15); animation: ca-columns 8s ease-in-out infinite; }
.scn-court-argument .column-r { position:absolute; bottom:5%; right:20%; width:20px; height:80%; background: linear-gradient(90deg, #c8b898 0%, #e0d0b0 30%, #c8b898 100%); border-radius:4px; box-shadow: -4px 0 12px rgba(0,0,0,.15); animation: ca-columns 8s ease-in-out infinite reverse; }
.scn-court-argument .throne  { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.2); animation: ca-throne 6s ease-in-out infinite alternate; }
.scn-court-argument .lord-l  { position:absolute; bottom:22%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #806850 0%, #605040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ca-lord-l 5s ease-in-out infinite; }
.scn-court-argument .lord-r  { position:absolute; bottom:22%; right:35%; width:22px; height:60px; background: linear-gradient(180deg, #7a6840 0%, #5a4830 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ca-lord-r 5s ease-in-out infinite 2s; }
.scn-court-argument .banner  { position:absolute; top:10%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806030 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: ca-banner 9s ease-in-out infinite alternate; }
.scn-court-argument .step    { position:absolute; bottom:25%; left:35%; right:35%; height:6px; background: linear-gradient(0deg, #a09070 0%, #b8a888 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.1); }
@keyframes ca-hall    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes ca-columns { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes ca-throne  { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ca-lord-l  { 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 ca-lord-r  { 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 ca-banner  { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.03) skewX(1deg) } 100% { transform: translateX(-50%) scale(.98) } }

/* gloucester-defense scene */
.scn-gloucester-defense { background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 40%, #5a6a4a 70%, #4a5a3a 100%), radial-gradient(ellipse at 50% 20%, #9aaa8a 0%, transparent 60%); }
.scn-gloucester-defense .arch      { position:absolute; top:5%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: gd-arch 15s ease-in-out infinite alternate; }
.scn-gloucester-defense .path      { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #5a6a4a 0%, #6a7a5a 40%, #7a8a6a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-gloucester-defense .foliage-a { position:absolute; top:30%; left:5%; width:80px; height:50px; background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, transparent 70%); filter: blur(4px); animation: gd-foliage-a 20s ease-in-out infinite alternate; }
.scn-gloucester-defense .foliage-b { position:absolute; top:35%; right:8%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, transparent 70%); filter: blur(3px); animation: gd-foliage-b 25s ease-in-out infinite alternate; }
.scn-gloucester-defense .figure    { position:absolute; bottom:30%; left:45%; width:24px; height:70px; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: gd-figure 4s ease-in-out infinite; }
.scn-gloucester-defense .cape      { position:absolute; bottom:30%; left:43%; width:40px; height:45px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 20% 60% 10% 40% / 50% 50% 20% 40%; transform-origin: top center; animation: gd-cape 4s ease-in-out infinite; }
.scn-gloucester-defense .light-shaft { position:absolute; top:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, rgba(200,220,180,.3) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%); animation: gd-light 6s ease-in-out infinite alternate; }
.scn-gloucester-defense .stone     { position:absolute; bottom:25%; left:30%; width:10px; height:10px; background: #5a6a4a; border-radius:50%; box-shadow: 20px -2px 0 #4a5a3a, -10px 4px 0 #6a7a5a, 30px 8px 0 #5a6a4a; animation: gd-stone 15s linear infinite; }
@keyframes gd-arch      { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes gd-foliage-a { 0% { transform: translateX(0) scale(1); opacity:.6 } 50% { transform: translateX(5px) scale(1.05); opacity:.8 } 100% { transform: translateX(-3px) scale(.95); opacity:.7 } }
@keyframes gd-foliage-b { 0% { transform: translateX(0) scale(1); opacity:.5 } 50% { transform: translateX(-4px) scale(1.03); opacity:.7 } 100% { transform: translateX(2px) scale(.97); opacity:.6 } }
@keyframes gd-figure    { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(6px) rotate(2deg) } 40% { transform: translateX(12px) rotate(0) } 60% { transform: translateX(18px) rotate(-2deg) } 80% { transform: translateX(24px) rotate(0) } 100% { transform: translateX(30px) rotate(1deg) } }
@keyframes gd-cape      { 0% { transform: rotate(0deg) } 20% { transform: rotate(3deg) } 40% { transform: rotate(0deg) } 60% { transform: rotate(-3deg) } 80% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes gd-light     { 0% { opacity:.2; transform: scaleX(1) } 50% { opacity:.4; transform: scaleX(1.05) } 100% { opacity:.25; transform: scaleX(.95) } }
@keyframes gd-stone     { 0% { transform: translateX(0) } 100% { transform: translateX(80px) } }

/* accusation-treason scene */
.scn-accusation-treason { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #4a3a3a 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%); }
.scn-accusation-treason .floor-dark  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0a0a 0%, #2a1a1a 100%); border-top:2px solid #4a3a3a; }
.scn-accusation-treason .wall-dark   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.5); }
.scn-accusation-treason .accuser     { position:absolute; bottom:25%; left:35%; width:28px; height:75px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: -6px 0 12px rgba(0,0,0,.5); animation: at-accuser 3s ease-in-out infinite; }
.scn-accusation-treason .accused     { position:absolute; bottom:25%; right:38%; width:26px; height:70px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: 6px 0 12px rgba(0,0,0,.5); animation: at-accused 4s ease-in-out infinite; }
.scn-accusation-treason .throne-dark { position:absolute; bottom:28%; left:50%; width:50px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6% 6% 3% 3%; box-shadow: 0 6px 16px rgba(0,0,0,.6); animation: at-throne 5s ease-in-out infinite alternate; }
.scn-accusation-treason .torch-l     { position:absolute; bottom:40%; left:18%; width:6px; height:40px; background: linear-gradient(180deg, #c08040 0%, #8a6030 60%, #5a4020 100%); border-radius:2px; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,120,60,.4); animation: at-torch-l 2s ease-in-out infinite alternate; }
.scn-accusation-treason .torch-r     { position:absolute; bottom:40%; right:18%; width:6px; height:40px; background: linear-gradient(180deg, #c08040 0%, #8a6030 60%, #5a4020 100%); border-radius:2px; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,120,60,.4); animation: at-torch-r 2s ease-in-out infinite alternate .5s; }
.scn-accusation-treason .shadow-stripe { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 50%, rgba(0,0,0,.4) 100%); animation: at-stripe 6s ease-in-out infinite alternate; }
@keyframes at-accuser  { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(4deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes at-accused  { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(-2px) scale(.98) } 50% { transform: translateX(0) scale(1) } 75% { transform: translateX(2px) scale(.99) } 100% { transform: translateX(0) scale(1) } }
@keyframes at-throne   { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes at-torch-l  { 0% { opacity:.7; box-shadow: 0 0 12px 3px #d09050, 0 0 24px 6px rgba(200,120,60,.3) } 50% { opacity:1; box-shadow: 0 0 24px 8px #f0a060, 0 0 48px 16px rgba(240,160,80,.5) } 100% { opacity:.8; box-shadow: 0 0 16px 5px #d09050, 0 0 32px 10px rgba(200,120,60,.35) } }
@keyframes at-torch-r  { 0% { opacity:.8; box-shadow: 0 0 16px 5px #d09050, 0 0 32px 10px rgba(200,120,60,.35) } 50% { opacity:1; box-shadow: 0 0 24px 8px #f0a060, 0 0 48px 16px rgba(240,160,80,.5) } 100% { opacity:.7; box-shadow: 0 0 12px 3px #d09050, 0 0 24px 6px rgba(200,120,60,.3) } }
@keyframes at-stripe   { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(.9) } }

/* Scene: miracle-exposed (funny sunlit) */
.scn-miracle-exposed {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #ffd700 60%, #fff8dc 100%),
    radial-gradient(ellipse at 50% 0, #ffd700 0%, transparent 60%);
}
.scn-miracle-exposed .sun {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%);
  transform: translateX(-50%);
  animation: me-sun 4s ease-in-out infinite alternate;
}
.scn-miracle-exposed .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%);
  border-radius: 30% 30% 0 0;
  animation: me-stage 5s ease-in-out infinite;
}
.scn-miracle-exposed .king {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 50%, #8b6508 100%);
  border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: me-king 3s ease-in-out infinite;
}
.scn-miracle-exposed .beggar {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: me-beggar 2.5s ease-in-out infinite;
}
.scn-miracle-exposed .scepter {
  position: absolute; bottom: 38%; left: 44%; width: 4px; height: 30px;
  background: #ffd700;
  border-radius: 2px;
  transform-origin: bottom;
  animation: me-scepter 4s ease-in-out infinite;
}
.scn-miracle-exposed .lie-1,
.scn-miracle-exposed .lie-2 {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #ff69b4 0%, transparent 70%);
  border-radius: 50%;
  animation: me-lie 6s ease-in-out infinite;
}
.scn-miracle-exposed .lie-1 { top: 20%; left: 35%; animation-delay: 0s; }
.scn-miracle-exposed .lie-2 { top: 30%; left: 60%; animation-delay: 3s; }

@keyframes me-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; }
}
@keyframes me-stage {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes me-king {
  0% { transform: translate(0, 0) rotate(-2deg); }
  50% { transform: translate(2px, -5px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(-1deg); }
}
@keyframes me-beggar {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(2deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes me-scepter {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes me-lie {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  50% { transform: translate(15px, -20px) scale(1.5); opacity: 0.9; }
  100% { transform: translate(30px, -40px) scale(0.8); opacity: 0; }
}

/* Scene: duchess-exposed (tense sunlit) */
.scn-duchess-exposed {
  background:
    linear-gradient(135deg, #fff8dc 0%, #f5deb3 30%, #d2b48c 70%, #a0522d 100%),
    linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
}
.scn-duchess-exposed .bg-hard {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 50%);
  opacity: 0.6;
  animation: de-bg 8s ease-in-out infinite alternate;
}
.scn-duchess-exposed .sun-harsh {
  position: absolute; top: 0; left: 60%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, transparent 70%);
  box-shadow: 0 0 50px 20px #ffd700;
  animation: de-sun 3s ease-in-out infinite alternate;
}
.scn-duchess-exposed .judge {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3d2b 0%, #2c1810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: de-judge 4s ease-in-out infinite;
}
.scn-duchess-exposed .duchess {
  position: absolute; bottom: 20%; left: 50%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: de-duchess 2s ease-in-out infinite;
}
.scn-duchess-exposed .guard-1,
.scn-duchess-exposed .guard-2 {
  position: absolute; bottom: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a4a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
}
.scn-duchess-exposed .guard-1 { left: 55%; animation: de-guard 3s ease-in-out infinite; }
.scn-duchess-exposed .guard-2 { left: 63%; animation: de-guard 3.5s ease-in-out infinite reverse; }
.scn-duchess-exposed .chains {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 10px;
  background: repeating-linear-gradient(90deg, #b0b0b0 0px, #b0b0b0 4px, transparent 4px, transparent 8px);
  animation: de-chains 1.5s ease-in-out infinite;
}

@keyframes de-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes de-sun { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes de-judge { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-3px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes de-duchess { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes de-guard { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes de-chains { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }

/* Scene: york-title-claim (calm dusk) */
.scn-york-title-claim {
  background:
    linear-gradient(180deg, #2c1a4a 0%, #4a2c5e 30%, #8b5a2b 60%, #c68e17 80%, #f5deb3 100%),
    radial-gradient(ellipse at 50% 0, #c68e17 0%, transparent 60%);
}
.scn-york-title-claim .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a0e2e 0%, #4a2c5e 50%, transparent 100%);
  animation: ytc-sky 12s ease-in-out infinite alternate;
}
.scn-york-title-claim .tree-left,
.scn-york-title-claim .tree-right {
  position: absolute; bottom: 35%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-york-title-claim .tree-left { left: 10%; animation: ytc-tree 20s ease-in-out infinite; }
.scn-york-title-claim .tree-right { right: 10%; animation: ytc-tree 25s ease-in-out infinite reverse; }
.scn-york-title-claim .york,
.scn-york-title-claim .salisbury,
.scn-york-title-claim .warwick {
  position: absolute; bottom: 28%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ytc-figure 15s ease-in-out infinite;
}
.scn-york-title-claim .york { left: 46%; animation-delay: 0s; }
.scn-york-title-claim .salisbury { left: 36%; animation-delay: 0.5s; }
.scn-york-title-claim .warwick { left: 56%; animation-delay: 1s; }

@keyframes ytc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ytc-tree { 0% { transform: scale(1); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1); } }
@keyframes ytc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene: duchess-sentenced (tense bright-interior) */
.scn-duchess-sentenced {
  background:
    linear-gradient(90deg, #5c2e1a 0%, #8b4513 30%, #d2691e 50%, #8b4513 70%, #5c2e1a 100%),
    radial-gradient(ellipse at 50% 60%, #d2691e 0%, transparent 60%);
}
.scn-duchess-sentenced .hall {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, #2c1810 40px, #2c1810 44px);
  opacity: 0.3;
  animation: ds-hall 15s linear infinite;
}
.scn-duchess-sentenced .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5c3a2a 0%, #3a1a0a 100%);
}
.scn-duchess-sentenced .throne {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ds-throne 6s ease-in-out infinite;
}
.scn-duchess-sentenced .king {
  position: absolute; bottom: 28%; left: 44%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: ds-king 4s ease-in-out infinite;
}
.scn-duchess-sentenced .queen {
  position: absolute; bottom: 28%; left: 56%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #c04000 0%, #a03000 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: ds-queen 4.5s ease-in-out infinite;
}
.scn-duchess-sentenced .duchess-guarded {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: ds-duchess 3s ease-in-out infinite;
}
.scn-duchess-sentenced .guard-left,
.scn-duchess-sentenced .guard-right {
  position: absolute; bottom: 18%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  animation: ds-guard 2s ease-in-out infinite;
}
.scn-duchess-sentenced .guard-left { left: 42%; animation-delay: 0s; }
.scn-duchess-sentenced .guard-right { left: 57%; animation-delay: 0.3s; }

@keyframes ds-hall { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes ds-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ds-king { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(-1px, -2px) rotate(-2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ds-queen { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(1px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ds-duchess { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ds-guard { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }

.scn-york-ambition {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-york-ambition .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: ya-wall 20s ease-in-out infinite alternate;
}
.scn-york-ambition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-york-ambition .window-night {
  position: absolute; top: 8%; left: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: ya-night 12s ease-in-out infinite alternate;
}
.scn-york-ambition .candle {
  position: absolute; bottom: 35%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e0b0 0%, #c8a870 100%);
  border-radius: 3px;
  animation: ya-candle-move 6s ease-in-out infinite;
}
.scn-york-ambition .candle-glow {
  position: absolute; bottom: 38%; left: 44%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 30%, transparent 70%);
  border-radius: 50%;
  animation: ya-glow 3s ease-in-out infinite alternate;
}
.scn-york-ambition .map {
  position: absolute; bottom: 35%; left: 18%; width: 28%; height: 18%;
  background: linear-gradient(135deg, #c8b88a 0%, #a89868 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: ya-map 5s ease-in-out infinite;
}
.scn-york-ambition .figure-york {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ya-york 8s ease-in-out infinite;
}
@keyframes ya-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ya-night {
  0% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%); }
  50% { background: linear-gradient(180deg, #12122a 0%, #22223a 40%, #12122a 100%); }
  100% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%); }
}
@keyframes ya-candle-move {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(1px) scaleY(0.95); }
  100% { transform: translateX(-1px) scaleY(1.02); }
}
@keyframes ya-glow {
  0% { box-shadow: 0 0 30px 10px #ffdd88, 0 0 60px 20px rgba(255,221,136,.4); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 20px #ffcc66, 0 0 90px 30px rgba(255,204,102,.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px #ffdd88, 0 0 70px 25px rgba(255,221,136,.35); opacity: 0.85; }
}
@keyframes ya-map {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(3px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes ya-york {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(2px); }
  75% { transform: rotate(0.5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-gloucester-arrives-home {
  background:
    linear-gradient(180deg, #c8b090 0%, #a08860 50%, #786848 100%),
    radial-gradient(ellipse at 50% 80%, #e0c090 0%, transparent 70%);
}
.scn-gloucester-arrives-home .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #b09878 0%, #807060 100%);
  animation: ga-wall 18s ease-in-out infinite alternate;
}
.scn-gloucester-arrives-home .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #908060 0%, #605040 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-gloucester-arrives-home .hearth {
  position: absolute; bottom: 25%; left: 10%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #483830 0%, #282018 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-gloucester-arrives-home .fire-glow {
  position: absolute; bottom: 28%; left: 12%; width: 14%; height: 12%;
  background: radial-gradient(circle, #ffaa44 0%, #ff8822 30%, transparent 70%);
  border-radius: 50%;
  animation: ga-fire 4s ease-in-out infinite alternate;
}
.scn-gloucester-arrives-home .figure-humphrey {
  position: absolute; bottom: 22%; left: 35%; width: 55px; height: 85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ga-humphrey 9s ease-in-out infinite;
}
.scn-gloucester-arrives-home .figure-duchess {
  position: absolute; bottom: 23%; left: 48%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #684838 0%, #402820 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ga-duchess 12s ease-in-out infinite;
}
@keyframes ga-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ga-fire {
  0% { box-shadow: 0 0 40px 15px #ffaa44, 0 0 80px 30px rgba(255,170,68,.3); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 25px #ff8822, 0 0 100px 40px rgba(255,136,34,.5); opacity: 1; }
  100% { box-shadow: 0 0 50px 18px #ffaa44, 0 0 90px 35px rgba(255,170,68,.35); opacity: 0.9; }
}
@keyframes ga-humphrey {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(3px) rotate(-1deg); }
  50% { transform: translateY(5px) rotate(-2deg); }
  75% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ga-duchess {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(1deg); }
  60% { transform: translateX(8px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-duchess-schemes {
  background:
    linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #1a1510 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-duchess-schemes .wall-paneling {
  position: absolute; inset: 0 0 20% 0;
  background:
    linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 15%, #2a1a0a 30%, #3a2a1a 45%, #2a1a0a 60%, #3a2a1a 75%, #2a1a0a 90%, #3a2a1a 100%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  background-size: 12% 100%, 100% 100%;
  animation: ds-panel 30s ease-in-out infinite alternate;
}
.scn-duchess-schemes .desk {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 5% 5% 15% 15%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-duchess-schemes .candle-dim {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #d0c098 0%, #a09068 100%);
  border-radius: 3px;
  animation: ds-candle 7s ease-in-out infinite;
}
.scn-duchess-schemes .candle-glint {
  position: absolute; bottom: 33%; left: 41%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0c880 0%, #c0a860 30%, transparent 70%);
  border-radius: 50%;
  animation: ds-glint 3s ease-in-out infinite alternate;
}
.scn-duchess-schemes .figure-duchess {
  position: absolute; bottom: 18%; left: 40%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ds-duchess 10s ease-in-out infinite;
}
.scn-duchess-schemes .shadow-hand {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: ds-hand 6s ease-in-out infinite alternate;
}
.scn-duchess-schemes .scroll-lie {
  position: absolute; bottom: 26%; left: 60%; width: 40px; height: 8px;
  background: linear-gradient(135deg, #b8a080 0%, #988068 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ds-scroll 9s ease-in-out infinite;
}
@keyframes ds-panel {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes ds-candle {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.95); }
  100% { transform: translateY(1px) scaleX(1.02); }
}
@keyframes ds-glint {
  0% { box-shadow: 0 0 20px 5px #e0c880, 0 0 40px 12px rgba(224,200,128,.3); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px #c0a860, 0 0 60px 20px rgba(192,168,96,.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #e0c880, 0 0 50px 15px rgba(224,200,128,.35); opacity: 0.8; }
}
@keyframes ds-duchess {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(2deg) translateY(-2px); }
  60% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ds-hand {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(3px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes ds-scroll {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-7deg) scaleY(0.9); }
  100% { transform: rotate(-5deg) scaleY(1); }
}

.scn-petitioners-palace {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 50%, #a89880 100%),
    radial-gradient(ellipse at 50% 10%, #f0e8d0 0%, transparent 60%);
}
.scn-petitioners-palace .hall-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #b8a890 100%);
  animation: pp-hall 25s ease-in-out infinite alternate;
}
.scn-petitioners-palace .floor-check {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background:
    linear-gradient(45deg, #b09880 25%, transparent 25%),
    linear-gradient(-45deg, #b09880 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #b09880 75%),
    linear-gradient(-45deg, transparent 75%, #b09880 75%);
  background-size: 40px 40px;
  background-position: 0 0, 0 20px, 20px -20px, -20px 0px;
  opacity: 0.4;
}
.scn-petitioners-palace .column-a {
  position: absolute; bottom: 0; left: 15%; width: 6%; height: 85%;
  background: linear-gradient(90deg, #d0c0a8 0%, #b8a890 40%, #d0c0a8 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 2px 0 10px rgba(0,0,0,.15);
}
.scn-petitioners-palace .column-b {
  position: absolute; bottom: 0; right: 15%; width: 6%; height: 85%;
  background: linear-gradient(90deg, #d0c0a8 0%, #b8a890 40%, #d0c0a8 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: -2px 0 10px rgba(0,0,0,.15);
}
.scn-petitioners-palace .figure-p1 {
  position: absolute; bottom: 14%; left: 25%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #785848 0%, #483828 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pp-p1 5s ease-in-out infinite alternate;
}
.scn-petitioners-palace .figure-p2 {
  position: absolute; bottom: 14%; left: 38%; width: 42px; height: 78px;
  background: linear-gradient(180deg, #685848 0%, #382828 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pp-p2 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-petitioners-palace .figure-p3 {
  position: absolute; bottom: 14%; right: 25%; width: 38px; height: 72px;
  background: linear-gradient(180deg, #786858 0%, #483838 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pp-p3 6s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-petitioners-palace .scroll-waive {
  position: absolute; bottom: 18%; left: 26%; width: 30px; height: 10px;
  background: linear-gradient(135deg, #c8b088 0%, #a89068 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  animation: pp-scroll 4s ease-in-out infinite alternate;
}
@keyframes pp-hall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pp-p1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pp-p2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pp-p3 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pp-scroll {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.1); }
  100% { transform: rotate(-10deg) scaleX(1); }
}

.scn-suffolk-presents-queen {
  background: linear-gradient(180deg, #c9b99a 0%, #b8a683 40%, #a08b6e 100%), radial-gradient(ellipse at 50% 0%, #e0d4c0 0%, transparent 70%);
}
.scn-suffolk-presents-queen .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d9ceba 0%, #c1b39e 100%);
  animation: spq-wall 14s ease-in-out infinite alternate;
}
.scn-suffolk-presents-queen .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%);
}
.scn-suffolk-presents-queen .throne {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d4aa70 0%, #b8925a 50%, #a07a40 100%);
  border-radius: 40% 40% 8% 8% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.scn-suffolk-presents-queen .figure-king {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: spq-breathe 5s ease-in-out infinite;
}
.scn-suffolk-presents-queen .figure-queen {
  position: absolute; bottom: 30%; right: 42%; width: 36px; height: 76px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: spq-breathe 5s ease-in-out infinite 0.5s;
}
.scn-suffolk-presents-queen .banner {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0402a 50%, #7a2a1a 100%);
  border-radius: 2px 2px 30% 30% / 10% 10% 40% 40%;
  animation: spq-banner 8s ease-in-out infinite;
}
.scn-suffolk-presents-queen .column-left {
  position: absolute; bottom: 35%; left: 10%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #b8a683 0%, #8a7a62 100%);
  border-radius: 4px;
  box-shadow: inset -3px 0 10px rgba(0,0,0,.3);
}
.scn-suffolk-presents-queen .column-right {
  position: absolute; bottom: 35%; right: 10%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #b8a683 0%, #8a7a62 100%);
  border-radius: 4px;
  box-shadow: inset 3px 0 10px rgba(0,0,0,.3);
}
@keyframes spq-wall {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes spq-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes spq-banner {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  75% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

.scn-margaret-addresses-king {
  background: linear-gradient(135deg, #e8dcc0 0%, #d4c4a0 40%, #b8a880 100%), radial-gradient(ellipse at 30% 50%, #ffe8b0 0%, transparent 50%);
}
.scn-margaret-addresses-king .arch-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c8b0 0%, #c0b49a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-margaret-addresses-king .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #9a8a72 0%, #7a6a52 100%);
}
.scn-margaret-addresses-king .king-figure {
  position: absolute; bottom: 30%; left: 30%; width: 44px; height: 84px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 35% 35% / 70% 70% 30% 30%;
  animation: mak-nod 9s ease-in-out infinite;
}
.scn-margaret-addresses-king .queen-figure {
  position: absolute; bottom: 30%; right: 35%; width: 38px; height: 80px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 35% 35% / 70% 70% 30% 30%;
  animation: mak-gesture 7s ease-in-out infinite;
}
.scn-margaret-addresses-king .window-light {
  position: absolute; top: 10%; left: 60%; width: 100px; height: 130px;
  background: radial-gradient(ellipse at center, #ffe8b0 0%, #ffd480 40%, transparent 70%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: mak-glow 4s ease-in-out infinite alternate;
}
.scn-margaret-addresses-king .tapestry {
  position: absolute; top: 15%; left: 15%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #b87878 0%, #a06868 30%, #8a5858 60%, #6a4848 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: mak-sway 12s ease-in-out infinite;
}
@keyframes mak-nod {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mak-gesture {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-3deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mak-glow {
  0% { opacity: 0.7; box-shadow: 0 0 30px 10px #ffd480; }
  50% { opacity: 1; box-shadow: 0 0 60px 20px #ffd480; }
  100% { opacity: 0.8; box-shadow: 0 0 40px 15px #ffd480; }
}
@keyframes mak-sway {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.005) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

.scn-articles-read {
  background: linear-gradient(180deg, #d4c4a8 0%, #bfaf93 40%, #a89878 100%), radial-gradient(ellipse at 50% 30%, #f0e6d0 0%, transparent 60%);
}
.scn-articles-read .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.4);
}
.scn-articles-read .paper {
  position: absolute; bottom: 45%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #fffaf0 0%, #f5ecd6 100%);
  border-radius: 2px 2px 30% 2px / 4px 4px 20% 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: ar-paper 10s ease-in-out infinite;
}
.scn-articles-read .candle {
  position: absolute; bottom: 48%; left: 60%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c8b090 100%);
  border-radius: 4px 4px 2px 2px;
  animation: ar-candle 3s ease-in-out infinite;
}
.scn-articles-read .candle-glow {
  position: absolute; bottom: 50%; left: 60%; width: 40px; height: 40px;
  margin-left: -14px; margin-bottom: -10px;
  background: radial-gradient(circle, #ffd060 0%, rgba(255,208,96,0) 70%);
  animation: ar-glow 2s ease-in-out infinite alternate;
}
.scn-articles-read .figure-suffolk {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ar-figure 8s ease-in-out infinite;
}
.scn-articles-read .figure-scribe {
  position: absolute; bottom: 30%; right: 25%; width: 34px; height: 74px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ar-scribe 6s ease-in-out infinite 1s;
}
@keyframes ar-paper {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ar-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.08); }
  100% { transform: scaleY(1); }
}
@keyframes ar-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes ar-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ar-scribe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-gloucester-laments {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 80%, #4a4a5e 0%, transparent 60%);
}
.scn-gloucester-laments .wall-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: gl-shadow 12s ease-in-out infinite alternate;
}
.scn-gloucester-laments .arch {
  position: absolute; bottom: 35%; left: 50%; width: 200px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,.5);
}
.scn-gloucester-laments .figure-gloucester {
  position: absolute; bottom: 28%; left: 50%; width: 44px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gl-shake 3s ease-in-out infinite;
}
.scn-gloucester-laments .chain {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 10px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg, #5a5a6a 0px, #5a5a6a 6px, transparent 6px, transparent 12px);
  animation: gl-chain 5s ease-in-out infinite;
}
.scn-gloucester-laments .light-shaft {
  position: absolute; top: 0; left: 40%; width: 100px; height: 60%;
  background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: gl-light 8s ease-in-out infinite alternate;
}
.scn-gloucester-laments .pillar-left {
  position: absolute; bottom: 0; left: 10%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 4px;
  box-shadow: inset -3px 0 10px rgba(0,0,0,.4);
}
.scn-gloucester-laments .pillar-right {
  position: absolute; bottom: 0; right: 10%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 4px;
  box-shadow: inset 3px 0 10px rgba(0,0,0,.4);
}
@keyframes gl-shadow {
  0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes gl-shake {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  20% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  40% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  80% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes gl-chain {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes gl-light {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.4; transform: scaleY(1.05); }
  100% { opacity: 0.25; transform: scaleY(0.95); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.object { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* final-scene-list - calm overcast theater empty stage */
.scn-final-scene-list {
  background: 
    linear-gradient(180deg, #9aa9b5 0%, #5c6b7a 60%, #3a4452 100%),
    radial-gradient(ellipse at 50% 30%, #bcc9d4 0%, transparent 70%);
}
.scn-final-scene-list .bg-theater {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2f3542 0%, #1a1e26 100%);
  animation: fsl-bg 16s ease-in-out infinite alternate;
}
.scn-final-scene-list .stage-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #6b4c3b 0%, #4d3327 70%, #2b1d14 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 8px 18px rgba(0,0,0,0.6);
}
.scn-final-scene-list .curtain {
  position: absolute;
  top: 0;
  width: 35%;
  height: 85%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e0e 60%, #240808 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-final-scene-list .curtain-l {
  left: 0;
  transform-origin: left center;
  animation: fsl-curtain-l 20s ease-in-out infinite;
}
.scn-final-scene-list .curtain-r {
  right: 0;
  transform-origin: right center;
  animation: fsl-curtain-r 20s ease-in-out infinite reverse;
}
.scn-final-scene-list .proscenium {
  position: absolute;
  bottom: 15%;
  left: 0;
  right: 0;
  height: 8%;
  background: linear-gradient(180deg, #6b5a4e 0%, #423630 100%);
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-final-scene-list .figure-actor {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #2f3542 0%, #1a1e26 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: fsl-actor 8s ease-in-out infinite;
}
.scn-final-scene-list .spotlight {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #f5f0e0 0%, #e8dcc8 30%, rgba(232,220,200,0.4) 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%) scale(1);
  animation: fsl-spot 6s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes fsl-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes fsl-curtain-l {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes fsl-curtain-r {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-5px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(3px) rotate(1deg); }
}
@keyframes fsl-actor {
  0%,100% { transform: translateX(-50%) translateY(0) scale(1); }
  33% { transform: translateX(-48%) translateY(-2px) scale(1.02); }
  66% { transform: translateX(-52%) translateY(0) scale(0.98); }
}
@keyframes fsl-spot {
  0% { transform: translateX(-50%) scale(1) rotate(0); opacity: 0.7; }
  33% { transform: translateX(-50%) scale(1.05) rotate(2deg); opacity: 1; }
  66% { transform: translateX(-50%) scale(0.95) rotate(-2deg); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1) rotate(0); opacity: 0.9; }
}

/* Scene 1: Henry welcomes Margaret - warm interior */
.scn-henry-welcomes-margaret-queen {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a86c 60%) , radial-gradient(ellipse at 50% 70%, #f5e6c8 0%, transparent 70%);
}
.scn-henry-welcomes-margaret-queen .throne-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(90deg, #b89a6a 0%, #d4b88a 50%, #b89a6a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
}
.scn-henry-welcomes-margaret-queen .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-henry-welcomes-margaret-queen .king-throne {
  position:absolute; bottom:32%; left:50%; width:70px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a86c 0%, #9a7a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: hwmq-throne 6s ease-in-out infinite;
}
.scn-henry-welcomes-margaret-queen .queen-kneeling {
  position:absolute; bottom:28%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #d4706a 0%, #a84a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hwmq-kneel 4s ease-in-out infinite alternate;
}
.scn-henry-welcomes-margaret-queen .suffolk-bow {
  position:absolute; bottom:30%; left:65%; width:25px; height:45px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hwmq-bow 5s ease-in-out infinite;
}
.scn-henry-welcomes-margaret-queen .banner-l {
  position:absolute; top:15%; left:12%; width:16px; height:60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: hwmq-banner 8s ease-in-out infinite alternate;
}
.scn-henry-welcomes-margaret-queen .banner-r {
  position:absolute; top:15%; right:12%; width:16px; height:60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: hwmq-banner 8s ease-in-out infinite alternate-reverse;
}
.scn-henry-welcomes-margaret-queen .glow-spot {
  position:absolute; bottom:45%; left:50%; width:60px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f5e6c8 0%, transparent 70%);
  opacity:0.6;
  animation: hwmq-glow 9s ease-in-out infinite alternate;
}
@keyframes hwmq-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hwmq-kneel { 0% { transform: translateX(0) rotate(-4deg); } 100% { transform: translateX(3px) rotate(4deg); } }
@keyframes hwmq-bow { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } }
@keyframes hwmq-banner { 0% { transform: rotate(-6deg); } 100% { transform: rotate(6deg); } }
@keyframes hwmq-glow { 0% { opacity:0.4; transform: translateX(-50%) scale(0.95); } 100% { opacity:0.7; transform: translateX(-50%) scale(1.05); } }

/* Scene 2: Nobles plot against Protector - tense bright interior */
.scn-nobles-plot-against-protector {
  background: linear-gradient(180deg, #e0e4e8 0%, #b8c4d0 60%), radial-gradient(ellipse at 30% 80%, #c0c8d0 0%, transparent 60%);
}
.scn-nobles-plot-against-protector .wide-table {
  position:absolute; bottom:20%; left:10%; width:80%; height:20%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-nobles-plot-against-protector .noble-gathered.np-left {
  position:absolute; bottom:38%; left:15%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: npap-figure 3s ease-in-out infinite alternate;
}
.scn-nobles-plot-against-protector .noble-gathered.np-center {
  position:absolute; bottom:40%; left:45%; width:26px; height:52px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: npap-figure 3.5s ease-in-out infinite alternate-reverse;
}
.scn-nobles-plot-against-protector .noble-gathered.np-right {
  position:absolute; bottom:38%; right:18%; width:22px; height:48px;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: npap-figure 4s ease-in-out infinite alternate;
}
.scn-nobles-plot-against-protector .shadow-dagger {
  position:absolute; bottom:30%; left:42%; width:20px; height:10px;
  background: linear-gradient(180deg, #3a3a4a 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 30%, 60% 100%, 40% 100%, 0% 30%);
  transform: rotate(-20deg);
  animation: npap-dagger 2s ease-in-out infinite alternate;
}
.scn-nobles-plot-against-protector .flicker-light {
  position:absolute; top:20%; left:40%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  animation: npap-flicker 1.6s ease-in-out infinite alternate;
}
@keyframes npap-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes npap-dagger { 0% { transform: rotate(-25deg) scaleX(1); opacity:0.6; } 100% { transform: rotate(-15deg) scaleX(1.1); opacity:1; } }
@keyframes npap-flicker { 0% { opacity:0.2; transform: scale(0.9); } 100% { opacity:0.5; transform: scale(1.1); } }

/* Scene 3: Gloucester warns duchess - dim interior */
.scn-gloucester-warns-duchess {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 50%, #1a0a1a 100%);
}
.scn-gloucester-warns-duchess .dark-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1e1e30 0%, #0a0a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
}
.scn-gloucester-warns-duchess .candle-glow {
  position:absolute; bottom:45%; left:50%; width:14px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffa060 0%, #d08020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,160,96,0.5);
  animation: gwd-candle 2s ease-in-out infinite alternate;
}
.scn-gloucester-warns-duchess .gloucester-figure {
  position:absolute; bottom:28%; left:20%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gwd-point 4s ease-in-out infinite;
}
.scn-gloucester-warns-duchess .duchess-figure {
  position:absolute; bottom:30%; right:25%; width:26px; height:55px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gwd-recoil 3.5s ease-in-out infinite alternate;
}
.scn-gloucester-warns-duchess .broken-staff {
  position:absolute; bottom:35%; left:35%; width:4px; height:20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  transform: rotate(30deg);
  animation: gwd-break 6s ease-in-out infinite;
}
.scn-gloucester-warns-duchess .shadow-veil {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: gwd-veil 10s ease-in-out infinite alternate;
}
@keyframes gwd-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:0.7; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:0.9; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.6; } }
@keyframes gwd-point { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(5deg); } 60% { transform: translateX(2px) rotate(-2deg); } }
@keyframes gwd-recoil { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-6px) rotate(-6deg); } }
@keyframes gwd-break { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } }
@keyframes gwd-veil { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* Scene 4: Suffolk and Margaret plot - tense bright interior */
.scn-suffolk-margaret-plot {
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 60%), radial-gradient(ellipse at 60% 50%, #e0d8c0 0%, transparent 60%);
}
.scn-suffolk-margaret-plot .throne-base {
  position:absolute; bottom:25%; left:50%; width:80px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a5a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-suffolk-margaret-plot .margaret-seated {
  position:absolute; bottom:40%; left:50%; width:30px; height:55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d8b060 0%, #a88a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smp-seated 5s ease-in-out infinite alternate;
}
.scn-suffolk-margaret-plot .suffolk-lean {
  position:absolute; bottom:35%; left:30%; width:28px; height:50px;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smp-lean 3s ease-in-out infinite;
}
.scn-suffolk-margaret-plot .petitioner-a {
  position:absolute; bottom:28%; left:15%; width:20px; height:40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smp-pet 4s ease-in-out infinite alternate;
}
.scn-suffolk-margaret-plot .petitioner-b {
  position:absolute; bottom:26%; right:20%; width:18px; height:38px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smp-pet 4.5s ease-in-out infinite alternate-reverse;
}
.scn-suffolk-margaret-plot .scroll-accuse {
  position:absolute; bottom:30%; left:45%; width:12px; height:8px;
  background: linear-gradient(180deg, #e0d0a0 0%, #b0a070 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: smp-scroll 2s ease-in-out infinite alternate;
}
.scn-suffolk-margaret-plot .harsh-light {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,230,180,0.2) 0%, transparent 70%);
  animation: smp-harsh 3s ease-in-out infinite alternate;
}
@keyframes smp-seated { 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 smp-lean { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(10deg) translateX(4px); } }
@keyframes smp-pet { 0% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-2px) rotate(3deg); } }
@keyframes smp-scroll { 0% { transform: rotate(15deg) scaleX(1); } 100% { transform: rotate(25deg) scaleX(1.2); } }
@keyframes smp-harsh { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* scene: duchess-humiliation-trial - bright interior, tense */
.scn-duchess-humiliation-trial {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c0a0 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-duchess-humiliation-trial .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #e8dcc8 0%, #d4c4a8 50%, #e8dcc8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-duchess-humiliation-trial .floor {
  position: absolute; inset: 80% 0 0 0;
  background: linear-gradient(0deg, #8a6e4a 0%, #a8896a 100%);
}
.scn-duchess-humiliation-trial .pillar-left {
  position: absolute; left: 10%; top: 20%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c0a888 0%, #e0d0b8 30%, #c0a888 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-duchess-humiliation-trial .pillar-right {
  position: absolute; right: 10%; top: 20%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c0a888 0%, #e0d0b8 30%, #c0a888 100%);
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-duchess-humiliation-trial .crowd {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  opacity: 0.8;
  animation: du-crowd 4s ease-in-out infinite alternate;
}
.scn-duchess-humiliation-trial .duchess {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #b87878 0%, #9a5a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: du-duchess 3s ease-in-out infinite;
}
.scn-duchess-humiliation-trial .margaret {
  position: absolute; bottom: 20%; left: 55%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 80%;
  animation: du-margaret 2.5s ease-in-out infinite;
}
.scn-duchess-humiliation-trial .strikeline {
  position: absolute; bottom: 38%; left: 52%; width: 12%; height: 2px;
  background: #c8553d;
  box-shadow: 0 0 6px #c8553d;
  animation: du-strike 2.5s ease-in-out infinite;
}
.scn-duchess-humiliation-trial .light-ray {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: du-ray 6s ease-in-out infinite alternate;
}
@keyframes du-crowd {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes du-duchess {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes du-margaret {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes du-strike {
  0% { opacity: 0; transform: scaleX(0); }
  20% { opacity: 1; transform: scaleX(1); }
  40% { opacity: 1; transform: scaleX(1); }
  60% { opacity: 0; transform: scaleX(0); }
  100% { opacity: 0; transform: scaleX(0); }
}
@keyframes du-ray {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.3; transform: scaleY(0.95); }
}

/* scene: duchess-arrested-witchcraft - dim interior, dark */
.scn-duchess-arrested-witchcraft {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5e 0%, transparent 70%);
}
.scn-duchess-arrested-witchcraft .bg-cellar {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e30 0%, #0e0e1a 100%);
}
.scn-duchess-arrested-witchcraft .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.6);
}
.scn-duchess-arrested-witchcraft .conjurer {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-conjurer 4s ease-in-out infinite;
}
.scn-duchess-arrested-witchcraft .duchess {
  position: absolute; bottom: 28%; left: 55%; width: 9%; height: 26%;
  background: linear-gradient(180deg, #702243 0%, #4a102a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ar-duchess 3s ease-in-out infinite;
}
.scn-duchess-arrested-witchcraft .spirit {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(180,220,255,0.6) 0%, rgba(100,150,200,0.15) 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ar-spirit 5s ease-in-out infinite alternate;
}
.scn-duchess-arrested-witchcraft .book {
  position: absolute; bottom: 25%; left: 38%; width: 4%; height: 6%;
  background: #5a4a3a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
  transform: rotate(-10deg);
  animation: ar-book 3s ease-in-out infinite alternate;
}
.scn-duchess-arrested-witchcraft .candle {
  position: absolute; bottom: 30%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(224,192,128,0.5);
  animation: ar-candle 2s ease-in-out infinite alternate;
}
.scn-duchess-arrested-witchcraft .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ar-shadow 6s ease-in-out infinite;
}
@keyframes ar-conjurer {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ar-duchess {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(1.03); }
  50% { transform: translateY(0) scaleY(1); }
  75% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ar-spirit {
  0% { opacity: 0.3; transform: scale(0.8) translateY(0); }
  50% { opacity: 0.8; transform: scale(1.1) translateY(-10px); }
  100% { opacity: 0.3; transform: scale(0.8) translateY(0); }
}
@keyframes ar-book {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-10deg); }
}
@keyframes ar-candle {
  0% { box-shadow: 0 0 15px 4px rgba(224,192,128,0.4); }
  50% { box-shadow: 0 0 25px 8px rgba(224,192,128,0.7); }
  100% { box-shadow: 0 0 15px 4px rgba(224,192,128,0.4); }
}
@keyframes ar-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.2); }
  100% { opacity: 0.6; transform: scaleX(1); }
}

/* scene: simpcx-fraud-exposed - sunlit, funny */
.scn-simpcx-fraud-exposed {
  background: linear-gradient(180deg, #8fc1d9 0%, #bde0e8 40%, #f0e8d8 100%),
              radial-gradient(circle at 30% 20%, #ffe8b0, transparent 60%);
}
.scn-simpcx-fraud-exposed .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7bb0d0 0%, #a0d0e0 100%);
}
.scn-simpcx-fraud-exposed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b88a 0%, #a89868 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-simpcx-fraud-exposed .building-l {
  position: absolute; bottom: 30%; left: 8%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.15);
}
.scn-simpcx-fraud-exposed .building-r {
  position: absolute; bottom: 30%; right: 8%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.15);
}
.scn-simpcx-fraud-exposed .crowd {
  position: absolute; bottom: 30%; left: 28%; width: 44%; height: 12%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  opacity: 0.7;
  animation: si-crowd 5s ease-in-out infinite alternate;
}
.scn-simpcx-fraud-exposed .simpcx {
  position: absolute; bottom: 28%; left: 42%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #e0d0b8 0%, #b8a888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-simpcx 2s ease-in-out infinite;
}
.scn-simpcx-fraud-exposed .gloucester {
  position: absolute; bottom: 30%; left: 52%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #3a5a7a 0%, #1a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 90%;
  animation: si-gloucester 3s ease-in-out infinite alternate;
}
.scn-simpcx-fraud-exposed .sunburst {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(circle, rgba(255,248,200,0.6) 0%, transparent 70%);
  animation: si-sun 8s ease-in-out infinite alternate;
}
@keyframes si-crowd {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes si-simpcx {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateY(-3px) rotate(15deg) scaleX(0.9); }
  60% { transform: translateY(0) rotate(0deg) scaleX(1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes si-gloucester {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px) scaleY(1.02); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes si-sun {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* scene: item-staff-of-office - bright interior, tense */
.scn-item-staff-of-office {
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 50%, #9a8868 100%),
              radial-gradient(ellipse at 50% 40%, #f0e0b0 0%, transparent 60%);
}
.scn-item-staff-of-office .bg-panel {
  position: absolute; inset: 0 10% 10% 10%;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  border-radius: 20px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
}
.scn-item-staff-of-office .throne {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
}
.scn-item-staff-of-office .york {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: it-york 4s ease-in-out infinite;
}
.scn-item-staff-of-office .warwick {
  position: absolute; bottom: 20%; left: 52%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a4a5a 0%, #0a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: it-warwick 3.5s ease-in-out infinite;
}
.scn-item-staff-of-office .salisbury {
  position: absolute; bottom: 20%; left: 60%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: it-salisbury 4.5s ease-in-out infinite alternate;
}
.scn-item-staff-of-office .staff {
  position: absolute; bottom: 38%; left: 48%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(200,160,96,0.5);
  transform: rotate(-5deg);
  animation: it-staff 2s ease-in-out infinite alternate;
}
.scn-item-staff-of-office .map {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: it-map 5s ease-in-out infinite alternate;
}
.scn-item-staff-of-office .light-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(255,248,224,0.3) 0%, transparent 80%);
  clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%);
  animation: it-shaft 7s ease-in-out infinite alternate;
}
@keyframes it-york {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes it-warwick {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes it-salisbury {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes it-staff {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes it-map {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-13deg) scale(1.02); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes it-shaft {
  0% { opacity: 0.2; transform: scaleX(0.95); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.2; transform: scaleX(0.95); }
}

.scn-gloucester-farewell-duchess {
  background: linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6e 0%, transparent 70%);
}
.scn-gloucester-farewell-duchess .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 100%);
  animation: gf-sky 15s ease-in-out infinite alternate;
}
.scn-gloucester-farewell-duchess .clouds {
  position: absolute; top: 15%; left: 10%; width: 120%; height: 20%;
  background: radial-gradient(circle at 20% 50%, rgba(180,180,200,0.3) 0%, transparent 50%),
              radial-gradient(circle at 80% 30%, rgba(160,160,180,0.2) 0%, transparent 40%);
  filter: blur(10px);
  animation: gf-clouds 30s linear infinite;
}
.scn-gloucester-farewell-duchess .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-gloucester-farewell-duchess .figure-gloucester {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 30%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gf-fig-glou 6s ease-in-out infinite;
}
.scn-gloucester-farewell-duchess .figure-duchess {
  position: absolute; bottom: 15%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a2a 30%, #1a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gf-fig-duc 6s ease-in-out infinite 2s;
}
.scn-gloucester-farewell-duchess .ship {
  position: absolute; bottom: 25%; left: 65%; width: 40px; height: 20px;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: gf-ship 12s ease-in-out infinite alternate;
}
.scn-gloucester-farewell-duchess .tower {
  position: absolute; bottom: 25%; left: 75%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
@keyframes gf-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes gf-clouds { 0% { transform: translateX(-10%) } 100% { transform: translateX(110%) } }
@keyframes gf-fig-glou { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes gf-fig-duc { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes gf-ship { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }

.scn-gloucester-arrested-treason {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89878 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-gloucester-arrested-treason .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 50%, #b8a888 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: ga-hall 8s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #b8a888 0%, #988878 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-gloucester-arrested-treason .throne {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-gloucester-arrested-treason .figure-queen {
  position: absolute; bottom: 12%; left: 42%; width: 22px; height: 60px;
  background: radial-gradient(circle at 50% 20%, #c8a888 0%, #a87858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-queen 4s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .figure-cardinal {
  position: absolute; bottom: 10%; left: 60%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #a84838 0%, #682828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ga-cardinal 4.5s ease-in-out infinite 0.5s;
}
.scn-gloucester-arrested-treason .figure-gloucester-arrested {
  position: absolute; bottom: 5%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ga-gloucester 3s ease-in-out infinite;
}
.scn-gloucester-arrested-treason .chains {
  position: absolute; bottom: 8%; left: 33%; width: 15px; height: 30px;
  border: 2px solid #6a6a6a;
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 0 1px #888;
  animation: ga-chains 2s ease-in-out infinite alternate;
}
.scn-gloucester-arrested-treason .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: ga-beam 5s ease-in-out infinite;
}
@keyframes ga-hall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ga-queen { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1px) rotate(2deg) } 70% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ga-cardinal { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ga-gloucester { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ga-chains { 0% { transform: rotate(0deg) } 100% { transform: rotate(20deg) } }
@keyframes ga-beam { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }

.scn-gloucester-murder-arranged {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%), radial-gradient(circle at 30% 50%, #4a2a10 0%, transparent 60%);
}
.scn-gloucester-murder-arranged .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a0a00 0%, #3a1a0a 50%, #1a0a00 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}
.scn-gloucester-murder-arranged .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #4a2a10 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-gloucester-murder-arranged .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 15px;
  background: linear-gradient(180deg, #d8a060 0%, #a06020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(216,160,96,0.6);
  animation: gm-candle 3s ease-in-out infinite alternate;
}
.scn-gloucester-murder-arranged .hand-reach {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: gm-hand 4s ease-in-out infinite;
}
.scn-gloucester-murder-arranged .figure-suffolk {
  position: absolute; bottom: 10%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gm-suffolk 5s ease-in-out infinite;
}
.scn-gloucester-murder-arranged .figure-cardinal-plot {
  position: absolute; bottom: 10%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gm-cardinal 5s ease-in-out infinite 1s;
}
.scn-gloucester-murder-arranged .shadow-york {
  position: absolute; bottom: 5%; left: 15%; width: 18px; height: 40px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(6px);
  animation: gm-shadow 7s ease-in-out infinite;
}
.scn-gloucester-murder-arranged .map {
  position: absolute; bottom: 28%; left: 35%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4a28 100%);
  border-radius: 5%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: gm-map 12s ease-in-out infinite;
}
@keyframes gm-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes gm-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes gm-suffolk { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 70% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gm-cardinal { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gm-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes gm-map { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-suffolk-banished-cardinal-dying {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #b8a890 100%), radial-gradient(circle at 50% 70%, #ffe8c0 0%, transparent 50%);
}
.scn-suffolk-banished-cardinal-dying .floor-pale {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 30% 30% 0 0;
}
.scn-suffolk-banished-cardinal-dying .body-outline {
  position: absolute; bottom: 5%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sb-body 6s ease-in-out infinite;
}
.scn-suffolk-banished-cardinal-dying .figure-warwick {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sb-warwick 4s ease-in-out infinite;
}
.scn-suffolk-banished-cardinal-dying .figure-suffolk-defiant {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sb-suffolk 4.5s ease-in-out infinite 0.5s;
}
.scn-suffolk-banished-cardinal-dying .figure-cardinal-ill {
  position: absolute; bottom: 10%; left: 70%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: sb-cardinal 5s ease-in-out infinite 1s;
}
.scn-suffolk-banished-cardinal-dying .light-blaze {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 80%);
  filter: blur(12px);
  animation: sb-light 8s ease-in-out infinite alternate;
}
.scn-suffolk-banished-cardinal-dying .crowd-shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.2) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 100%, rgba(0,0,0,0.15) 0%, transparent 60%);
  animation: sb-crowd 10s ease-in-out infinite;
}
@keyframes sb-body { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sb-warwick { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 70% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sb-suffolk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sb-cardinal { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sb-light { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes sb-crowd { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

/* scene: item-cades-head */
.scn-item-cades-head {
  background:
    linear-gradient(180deg, #1a1020 0%, #2d1a30 40%, #1e1220 100%),
    radial-gradient(ellipse at 70% 30%, #3a2050 0%, transparent 70%);
}
.scn-item-cades-head .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2d1a30 0%, #1e1220 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: cde-wall 12s ease-in-out infinite alternate;
}
.scn-item-cades-head .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a18 0%, #120c0e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-item-cades-head .window {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #b08040 40%, transparent 70%);
  border-radius: 10%;
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.3), 0 0 120px 40px rgba(255,200,100,0.1);
  animation: cde-glow 4s ease-in-out infinite alternate;
}
.scn-item-cades-head .king {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: cde-king 6s ease-in-out infinite;
}
.scn-item-cades-head .iden {
  position: absolute; bottom: 30%; left: 55%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0e20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cde-iden 5s ease-in-out infinite;
}
.scn-item-cades-head .head {
  position: absolute; bottom: 42%; left: 58%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #c08060 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.6);
  animation: cde-head 3s ease-in-out infinite alternate;
}
.scn-item-cades-head .shadow {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(4px);
  animation: cde-shadow 5s ease-in-out infinite;
}
@keyframes cde-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cde-glow { 0% { box-shadow: 0 0 40px 10px rgba(255,200,100,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 80px 20px rgba(255,200,100,0.4); opacity: 1; } 100% { box-shadow: 0 0 50px 15px rgba(255,200,100,0.25); opacity: 0.85; } }
@keyframes cde-king { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cde-iden { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cde-head { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cde-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.6; } }

/* scene: york-declares-king */
.scn-york-declares-king {
  background:
    linear-gradient(180deg, #2a2030 0%, #4a3a50 50%, #2a2030 100%),
    radial-gradient(ellipse at 50% 20%, #6a5060 0%, transparent 60%);
}
.scn-york-declares-king .backdrop {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a40 0%, #1a1020 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: ydk-backdrop 20s ease-in-out infinite alternate;
}
.scn-york-declares-king .throne {
  position: absolute; bottom: 20%; left: 10%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: ydk-throne 8s ease-in-out infinite;
}
.scn-york-declares-king .york {
  position: absolute; bottom: 20%; left: 35%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ydk-york 4s ease-in-out infinite;
}
.scn-york-declares-king .edward {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #2a1a2a 0%, #120812 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ydk-edward 5s ease-in-out infinite;
}
.scn-york-declares-king .richard {
  position: absolute; bottom: 20%; left: 62%; width: 60px; height: 105px;
  background: linear-gradient(180deg, #2a1a2a 0%, #120812 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ydk-richard 6s ease-in-out infinite;
}
.scn-york-declares-king .banner {
  position: absolute; top: 15%; left: 45%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%);
  filter: blur(1px);
  clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 50% 100%, 0% 70%);
  animation: ydk-banner 3s ease-in-out infinite alternate;
}
.scn-york-declares-king .crown {
  position: absolute; top: 12%; left: 37%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #f0d680 0%, #b08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 5px rgba(240,214,128,0.4);
  animation: ydk-crown 7s ease-in-out infinite;
}
@keyframes ydk-backdrop { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ydk-throne { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ydk-york { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-5px) rotate(2deg) scaleY(1.02); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg) scaleY(1.01); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ydk-edward { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ydk-richard { 0% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(2deg) translateY(-4px); } 66% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ydk-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ydk-crown { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }

/* scene: battle-st-albans */
.scn-battle-st-albans {
  background:
    linear-gradient(180deg, #6a7a80 0%, #b0a090 40%, #807060 100%),
    radial-gradient(ellipse at 80% 20%, #f0d080 0%, transparent 50%);
}
.scn-battle-st-albans .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a9aa0 0%, #6a7a80 100%);
  animation: bsa-sky 15s ease-in-out infinite alternate;
}
.scn-battle-st-albans .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #f0a040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(240,160,64,0.3);
  animation: bsa-sun 8s ease-in-out infinite alternate;
}
.scn-battle-st-albans .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #605040 0%, #4a3a2a 100%);
  border-radius: 30% 50% 0 0;
}
.scn-battle-st-albans .army-left {
  position: absolute; bottom: 30%; left: 5%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%);
  filter: blur(2px);
  animation: bsa-left 5s ease-in-out infinite;
}
.scn-battle-st-albans .army-right {
  position: absolute; bottom: 30%; right: 5%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 20% 100%, 40% 0%, 60% 100%, 80% 0%, 100% 100%);
  filter: blur(2px);
  animation: bsa-right 5s ease-in-out infinite reverse;
}
.scn-battle-st-albans .clash {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #8a5030 0%, #5a3020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: bsa-clash 3s ease-in-out infinite;
}
.scn-battle-st-albans .dust {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,140,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: bsa-dust 10s ease-in-out infinite;
}
@keyframes bsa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; background-position: 0% 50%; } 100% { opacity: 0.8; } }
@keyframes bsa-sun { 0% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.1); filter: brightness(1.2); } 100% { transform: scale(1); filter: brightness(1); } }
@keyframes bsa-left { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-10px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bsa-right { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bsa-clash { 0% { transform: rotate(-5deg) scaleY(1); } 25% { transform: rotate(5deg) scaleY(1.05); } 50% { transform: rotate(-5deg) scaleY(1); } 75% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes bsa-dust { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.5); } 100% { opacity: 0.3; transform: scaleY(1); } }

/* scene: york-wins-first-battle */
.scn-york-wins-first-battle {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 50%, #8a7040 0%, transparent 60%);
}
.scn-york-wins-first-battle .tent {
  position: absolute; inset: 20% 5% 10% 5%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: ywf-tent 15s ease-in-out infinite alternate;
}
.scn-york-wins-first-battle .torch-light {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #f0a040 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  box-shadow: 0 0 60px 30px rgba(240,160,64,0.4);
  animation: ywf-torch 2s ease-in-out infinite alternate;
}
.scn-york-wins-first-battle .table {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ywf-table 12s ease-in-out infinite;
}
.scn-york-wins-first-battle .york {
  position: absolute; bottom: 35%; left: 20%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ywf-figure 6s ease-in-out infinite;
}
.scn-york-wins-first-battle .warwick {
  position: absolute; bottom: 35%; left: 45%; width: 65px; height: 105px;
  background: linear-gradient(180deg, #2a1a1a 0%, #120808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ywf-figure 8s ease-in-out infinite reverse;
}
.scn-york-wins-first-battle .richard {
  position: absolute; bottom: 35%; left: 65%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #120808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ywf-figure 7s ease-in-out infinite;
}
.scn-york-wins-first-battle .goblet {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(200,160,100,0.3);
  transform-origin: bottom center;
  animation: ywf-goblet 5s ease-in-out infinite alternate;
}
@keyframes ywf-tent { 0% { opacity: 0.8; background-position: 0% 50%; } 50% { opacity: 1; background-position: 100% 50%; } 100% { opacity: 0.8; } }
@keyframes ywf-torch { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes ywf-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ywf-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ywf-goblet { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-cardinal-death-suffolk-killed { background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 60%); }
.scn-cardinal-death-suffolk-killed .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0d0d2b 100%); animation: cd-sky 12s ease-in-out infinite alternate; }
.scn-cardinal-death-suffolk-killed .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); animation: cd-sea 8s ease-in-out infinite alternate; }
.scn-cardinal-death-suffolk-killed .ship { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: cd-ship 6s ease-in-out infinite; }
.scn-cardinal-death-suffolk-killed .cardinal { position:absolute; bottom:20%; left:45%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure 4s ease-in-out infinite; }
.scn-cardinal-death-suffolk-killed .suffolk { position:absolute; bottom:10%; left:60%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure 5s ease-in-out infinite reverse; }
.scn-cardinal-death-suffolk-killed .lantern { position:absolute; bottom:28%; left:36%; width:6px; height:6px; background: #ffd680; border-radius:50%; box-shadow: 0 0 16px 4px rgba(255,214,128,.4); animation: cd-lantern 4s ease-in-out infinite; }
.scn-cardinal-death-suffolk-killed .wave { position:absolute; bottom:5%; left:0; width:200%; height:10px; background: linear-gradient(90deg, transparent 0%, #0a0a1a 30%, #1a1a2a 60%, transparent 100%); border-radius:50%; filter: blur(4px); animation: cd-wave 15s linear infinite; }
@keyframes cd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cd-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes cd-ship { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes cd-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cd-lantern { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-1px) scale(1.1) } }
@keyframes cd-wave { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }

.scn-item-staffords-armor { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%); }
.scn-item-staffords-armor .sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: sa-sky 10s ease-in-out infinite alternate; }
.scn-item-staffords-armor .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: sa-ground 8s ease-in-out infinite alternate; }
.scn-item-staffords-armor .cade { position:absolute; bottom:20%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 8px 2px #f0e68c; animation: sa-cade 3s ease-in-out infinite; }
.scn-item-staffords-armor .armor { position:absolute; bottom:18%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 20% 20% 10% 10%; animation: sa-armor 5s ease-in-out infinite; }
.scn-item-staffords-armor .body { position:absolute; bottom:18%; left:50%; width:16px; height:28px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sa-body 6s ease-in-out infinite; }
.scn-item-staffords-armor .sword { position:absolute; bottom:22%; left:48%; width:4px; height:24px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform-origin: bottom center; animation: sa-sword 4s ease-in-out infinite; }
.scn-item-staffords-armor .flag { position:absolute; top:10%; right:20%; width:12px; height:20px; background: linear-gradient(180deg, #a0461a 0%, #7a2e0e 100%); border-radius: 2px; animation: sa-flag 2s ease-in-out infinite; }
@keyframes sa-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sa-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sa-cade { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes sa-armor { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } }
@keyframes sa-body { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sa-sword { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes sa-flag { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }

.scn-item-london-stone { background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 50%, #deb887 100%), radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 80%); }
.scn-item-london-stone .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); animation: ls-sky 15s ease-in-out infinite alternate; }
.scn-item-london-stone .stone { position:absolute; bottom:20%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #a0522d 0%, #6b3a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ls-stone 8s ease-in-out infinite; }
.scn-item-london-stone .cade-sitting { position:absolute; bottom:30%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ls-figure 4s ease-in-out infinite; }
.scn-item-london-stone .lord-say { position:absolute; bottom:15%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ls-figure 5s ease-in-out infinite reverse; }
.scn-item-london-stone .crowd-shadow { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%); animation: ls-crowd 10s ease-in-out infinite; }
.scn-item-london-stone .flame { position:absolute; bottom:35%; left:60%; width:8px; height:12px; background: radial-gradient(circle, #ffa500 0%, #ff4500 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #ff4500; animation: ls-flame 3s ease-in-out infinite; }
@keyframes ls-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ls-stone { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes ls-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ls-crowd { 0%,100% { opacity:.4 } 50% { opacity:.6 } }
@keyframes ls-flame { 0%,100% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.2) translate(2px,-2px) } }

.scn-cade-army-defeated { background: linear-gradient(180deg, #696969 0%, #808080 50%, #a9a9a9 100%), radial-gradient(ellipse at 50% 0%, #a9a9a9 0%, transparent 80%); }
.scn-cade-army-defeated .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #919191 0%, #b0b0b0 100%); animation: ca-sky 20s ease-in-out infinite alternate; }
.scn-cade-army-defeated .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #556b2f 0%, #3e4a1e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ca-ground 10s ease-in-out infinite alternate; }
.scn-cade-army-defeated .pole-a { position:absolute; bottom:30%; left:20%; width:6px; height:80px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: ca-pole 6s ease-in-out infinite; }
.scn-cade-army-defeated .pole-b { position:absolute; bottom:30%; left:80%; width:6px; height:80px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: ca-pole 7s ease-in-out infinite reverse; }
.scn-cade-army-defeated .head-a { position:absolute; bottom:55%; left:20%; width:18px; height:18px; margin-left:-9px; background: radial-gradient(circle, #a0522d 0%, #6b3a1a 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(0,0,0,.5); animation: ca-head 4s ease-in-out infinite; }
.scn-cade-army-defeated .head-b { position:absolute; bottom:55%; left:80%; width:18px; height:18px; margin-left:-9px; background: radial-gradient(circle, #a0522d 0%, #6b3a1a 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(0,0,0,.5); animation: ca-head 5s ease-in-out infinite reverse; }
.scn-cade-army-defeated .army { position:absolute; bottom:10%; left:30%; width:40%; height:30%; background: linear-gradient(90deg, transparent 0%, #3a2a1a 30%, #2a1a0a 60%, transparent 100%); clip-path: polygon(0% 100%, 5% 0%, 10% 100%, 15% 0%, 20% 100%, 25% 0%, 30% 100%, 35% 0%, 40% 100%, 45% 0%, 50% 100%, 55% 0%, 60% 100%, 65% 0%, 70% 100%, 75% 0%, 80% 100%, 85% 0%, 90% 100%, 95% 0%, 100% 100%); animation: ca-army 12s ease-in-out infinite; }
.scn-cade-army-defeated .banner { position:absolute; top:10%; left:50%; width:12px; height:24px; background: linear-gradient(180deg, #a0461a 0%, #7a2e0e 100%); border-radius: 2px; transform-origin: top center; animation: ca-banner 3s ease-in-out infinite; }
@keyframes ca-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes ca-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes ca-pole { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes ca-head { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes ca-army { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes ca-banner { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
/* end per-scene blocks */
